ATLAS Offline Software
TgcRdoToPrepDataToolMT.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONTGC_CNVTOOLS_TGCRDOTOPREPDATATOOLMT_H
6 #define MUONTGC_CNVTOOLS_TGCRDOTOPREPDATATOOLMT_H
7 
10 #include "GaudiKernel/ServiceHandle.h"
11 
13 #include "MuonRDO/TgcRdo.h"
23 #include "StoreGate/UpdateHandle.h"
25 #include "CxxUtils/CachedValue.h"
27 
28 #include <string>
29 #include <vector>
30 #include <atomic>
31 
32 namespace MuonGM
33 {
34  class TgcReadoutElement;
35 }
36 
37 namespace Muon
38 {
39  // Typedef the two update handle arrays that can be used to match handle key functionality
40  // Requested to not use StoreGate template for UpdateHandleKeyArray
43 
53  class TgcRdoToPrepDataToolMT : public extends<AthAlgTool, IMuonRdoToPrepDataTool>
54  {
55  public:
57  TgcRdoToPrepDataToolMT(const std::string& t, const std::string& n, const IInterface* p);
58 
60  virtual ~TgcRdoToPrepDataToolMT()=default;
61 
63  virtual StatusCode initialize() override;
65  virtual StatusCode finalize() override;
66 
72  virtual StatusCode decode(const EventContext& ctx,
73  const std::vector<IdentifierHash>& idVect) const override;
74 
75 
76  protected:
78  static constexpr int NBC_HIT = 3;
79  /* Run1,2: The number of recorded Bunch Crossings (BCs) FOR TRIGGER (HPT/SL) is 3 (Previous, Current, Next BCs) */
80  /* Run3: The number of recorded Bunch Crossings (BCs) FOR TRIGGER (HPT/SL) is 4 (Previous, Current, Next, and Next-to-Next BCs) */
81  static constexpr int NBC_TRIG = 4;
82 
83  struct State {
86  std::unordered_map<Identifier, TgcPrepDataCollection*> m_tgcPrepDataCollections[NBC_HIT+1];
89  std::unordered_map<Identifier, TgcCoinDataCollection*> m_tgcCoinDataCollections[NBC_TRIG];
90 
93  };
94  StatusCode setupState(const EventContext& ctx, State& state) const;
95 
96  struct CablingInfo {
97  const ITGCcablingSvc* m_tgcCabling = nullptr;
99  std::vector<uint16_t> m_hashToOnlineId;
100  int m_MAX_N_ROD = 0;
101  };
103 
106  ASIDE = 103,
107  CSIDE = 104
108  };
109 
134  enum BIT_POS {
144 
145  /* CHannel starts from 00 at the small R side (the same as ASD). */
154 
158 
163 
164  /* CHannel starts from 00
165  at the small phi side for A side forward chambers and C side backward chambers and
166  at the large phi side for A side backward chambers and C side forward chambers (the same as ASD). */
175 
180  };
181 
183  enum MAP_SIZE {
188  };
189 
190 
192  void printPrepDataImpl(const TgcPrepDataContainer* const* tgcPrepDataContainer,
193  const TgcCoinDataContainer* const* tgcCoinDataContainer) const;
194 
196  void selectDecoder(State& state,
197  const TgcRawData& rd,
198  const TgcRdo* rdoColl,
199  std::vector< std::unordered_map<IdentifierHash, std::unique_ptr<TgcPrepDataCollection> > >& collectionMap,
200  std::vector< std::unordered_map<IdentifierHash, std::unique_ptr<TgcCoinDataCollection> > >& coinMap) const;
201 
203  StatusCode decodeHits(State& state,
204  const TgcRawData& rd,
205  std::vector<std::unordered_map<IdentifierHash, std::unique_ptr<TgcPrepDataCollection> > >& collectionMap) const;
208  const TgcRawData& rd,
209  std::vector< std::unordered_map<IdentifierHash, std::unique_ptr<TgcCoinDataCollection> > >& coinMap) const;
212  const TgcRawData& rd,
213  std::vector< std::unordered_map<IdentifierHash, std::unique_ptr<TgcCoinDataCollection> > >& coinMap) const;
215  StatusCode decodeHiPt(State& state,
216  const TgcRawData& rd,
217  std::vector< std::unordered_map<IdentifierHash, std::unique_ptr<TgcCoinDataCollection> > >& coinMap) const;
220  const TgcRawData& rd,
221  std::vector< std::unordered_map<IdentifierHash, std::unique_ptr<TgcCoinDataCollection> > >& coinMap) const;
223  StatusCode decodeSL(State& state,
224  const TgcRawData& rd,
225  const TgcRdo* rdoColl,
226  std::vector< std::unordered_map<IdentifierHash, std::unique_ptr<TgcCoinDataCollection> > >& coinMap) const;
227 
229  static int getbitpos(int channel, TgcRawData::SlbType slbType) ;
231  static int getchannel(int bitpos, TgcRawData::SlbType slbType) ;
232 
234  static bool getRPhiEtafromXYZ(const double x, const double y, const double z, double& r, double& phi, double& eta) ;
236  static bool getRfromEtaZ(const double eta, const double z, double& r) ;
238  static bool getEtafromRZ(const double r, const double z, double& eta) ;
239 
241  static bool isAlreadyConverted(const std::vector<const TgcRdo*>& decodedRdoCollVec,
242  const std::vector<const TgcRdo*>& rdoCollVec,
243  const TgcRdo* rdoColl) ;
244 
246  static bool isRequested(const std::vector<IdentifierHash>& requestedIdHashVect,
247  IdentifierHash tgcHashId) ;
248 
251 
252 
254  void showIdentifierHash(const State& state) const;
255 
257  static bool isIdentifierHashFoundInAnyTgcPrepDataContainer(const State& state,
258  const IdentifierHash Hash) ;
260  static bool isIdentifierHashFoundInAnyTgcCoinDataContainer(const State& state,
261  const IdentifierHash Hash) ;
262 
264  bool getTrackletInfo(const TgcRawData& rd,
265  int& tmp_slbId, int& tmp_subMatrix, int& tmp_position) const;
266 
268  static int getRoiRow(const TgcRawData& rd) ;
270  bool isIncludedInChamberBoundary(const TgcRawData& rd) const;
271 
273  static void getBitPosOutWire(const TgcRawData& rd, int& slbsubMatrix, std::array<int, 2>& bitpos_o) ;
275  void getBitPosInWire(const TgcRawData& rd,
276  const int DeltaBeforeConvert,
277  std::array<int, 4>& bitpos_i,
278  std::array<int, 4>& slbchannel_i,
279  std::array<int, 4>& slbId_in,
280  std::array<int, 4>& sbLoc_in,
281  int& sswId_i,
282  const std::array<int, 2>& bitpos_o,
283  std::array<int, 2>& slbchannel_o,
284  const int slbId_o) const;
286  static void getBitPosOutStrip(const TgcRawData& rd, int& slbsubMatrix, std::array<int, 2>& bitpos_o) ;
288  void getBitPosInStrip(const TgcRawData& rd,
289  const int DeltaBeforeConvert,
290  std::array<int, 4>& bitpos_i,
291  std::array<int, 4>& slbchannel_i,
292  int& sbLoc_i,
293  int& sswId_i,
294  const std::array<int, 2>& bitpos_o,
295  std::array<int, 2>& slbchannel_o) const;
297  void getBitPosWire(const TgcRawData& rd,
298  const int hitId_w,
299  const int sub_w,
300  int& subMatrix_w,
301  std::array<int, 3>& bitpos_w) const;
303  static void getBitPosStrip(const int hitId_s,
304  const int sub_s,
305  int& subMatrix_s,
306  std::array<int, 3>& bitpos_s) ;
307 
309  static int getDeltaBeforeConvert(const TgcRawData& rd) ;
310 
312  static bool isBackwardBW(const TgcRawData& rd) ;
313 
315  bool getSLWireGeometry(const std::array<Identifier, 3>& channelId_wire,
316  double& width_wire,
317  double& r_wire,
318  double& z_wire) const;
320  bool getSLStripGeometry(const std::array<Identifier, 3>& channelId_strip,
321  const bool isBackWard,
322  const bool isAside,
323  double& width_strip,
324  double& theta_strip) const;
326  bool getPosAndIdWireOut(const std::array<const MuonGM::TgcReadoutElement*, 2>& descriptor_o,
327  const std::array<Identifier, 2>& channelIdOut,
328  const std::array<int, 2>& gasGap_o,
329  const std::array<int, 2>& channel_o,
330  double& width_o,
331  double& hit_position_o,
332  Amg::Vector2D& tmp_hitPos_o,
333  Identifier& channelIdOut_tmp) const;
335  bool getPosAndIdStripOut(const std::array<const MuonGM::TgcReadoutElement*, 2>& descriptor_o,
336  const std::array<Identifier,2 >& channelIdOut,
337  const std::array<int, 2>& gasGap_o,
338  const std::array<int, 2>& channel_o,
339  double& width_o,
340  double& hit_position_o,
341  Amg::Vector2D& tmp_hitPos_o,
342  Identifier& channelIdOut_tmp,
343  const bool isBackward, const bool isAside) const;
344 
346  bool getPosAndIdWireIn(const std::array<const MuonGM::TgcReadoutElement*, 4>& descriptor_i,
347  const std::array<Identifier,4 >& channelIdIn,
348  const std::array<int, 4>& gasGap_i,
349  const std::array<int, 4>& channel_i,
350  double& width_i, double& hit_position_i,
351  Amg::Vector2D& tmp_hitPos_i,
352  Identifier& channelIdIn_tmp) const;
354  bool getPosAndIdStripIn(const std::array<const MuonGM::TgcReadoutElement*, 4>& descriptor_i,
355  const std::array<Identifier, 4>& channelIdIn,
356  const std::array<int, 4>& gasGap_i,
357  const std::array<int, 4>& channel_i,
358  double& width_i, double& hit_position_i,
359  Amg::Vector2D& tmp_hitPos_i,
360  Identifier& channelIdIn_tmp,
361  const bool isBackward, const bool isAside) const;
362 
364  bool getHiPtIds(const TgcRawData& rd, int& sswId_o, int& sbLoc_o, int& slbId_o) const;
365 
367  bool getSLIds(const bool isStrip,
368  const TgcRawData& rd,
369  std::array<Identifier, 3>& channelId,
370  int& index, int& chip, int& hitId, int& sub, int& sswId, int& sbLoc, int& subMatrix,
371  std::array<int, 3>& bitpos,
372  const bool isBoundary=false, const TgcRdo* rdoColl=0,
373  const int index_w=-1, const int chip_w=-1, const int hitId_w=-1, const int sub_w=-1) const;
376  int& sbLoc,
377  const TgcRdo* rdoColl,
378  const int index_w, const int chip_w, const int hitId_w, const int sub_w) const;
381  int& sbLoc,
382  const TgcRdo* rdoColl,
383  const int index_w, const int chip_w, const int hitId_w, const int sub_w) const;
385  static void getEndcapStripCandidateTrackletIds(const int roi, int &trackletIdStripFirst,
386  int &trackletIdStripSecond, int &trackletIdStripThird) ;
387 
388  const CablingInfo* getCabling() const;
389 
391  static const Amg::Vector2D* getSLLocalPosition(const MuonGM::TgcReadoutElement* readout, const Identifier, const double eta, const double phi) ;
392 
394  TgcCoinDataCollection* getTgcCoinDataColFromMap(const IdentifierHash& tgcHashId, State& state, std::vector< std::unordered_map<IdentifierHash, std::unique_ptr<TgcCoinDataCollection> > >& coinMap, int locId, const Identifier& elementId) const;
395 
396  SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> m_muDetMgrKey {this, "DetectorManagerKey", "MuonDetectorManager", "Key of input MuonDetectorManager condition data"};
397 
398  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
399 
400  /* TGC Cabling service */
401  const ITGCcablingSvc* m_tgcCabling = nullptr;
402 
404  Gaudi::Property<std::string> m_outputCollectionLocation{this, "OutputCollection", "TGC_Measurements"};
405 
407  Gaudi::Property<std::string> m_outputCoinCollectionLocation{this, "OutputCoinCollection", "TrigT1CoinDataCollection"};
408 
410  Gaudi::Property<int> m_tgcOffset{this, "TGCHashIdOffset", 26000};
411 
413  Gaudi::Property<bool> m_decodeData{this, "DecodeData", true};
415  Gaudi::Property<bool> m_fillCoinData{this, "FillCoinData", true};
416 
422  Gaudi::Property<bool> m_show_warning_level_invalid_A09_SSW6_hit{this, "show_warning_level_invalid_A09_SSW6_hit", false};
423 
425  Gaudi::Property<bool> m_dropPrdsWithZeroWidth{this, "dropPrdsWithZeroWidth", true};
427  const static double s_cutDropPrdsWithZeroWidth; // 0.1 mm
428 
430  mutable std::atomic<long> m_nHitRDOs{0};
431  mutable std::atomic<long> m_nHitPRDs{0};
432  mutable std::atomic<long> m_nTrackletRDOs{0};
433  mutable std::atomic<long> m_nTrackletPRDs{0};
434  mutable std::atomic<long> m_nTrackletEIFIRDOs{0};
435  mutable std::atomic<long> m_nTrackletEIFIPRDs{0};
436  mutable std::atomic<long> m_nHiPtRDOs{0};
437  mutable std::atomic<long> m_nHiPtPRDs{0};
438  mutable std::atomic<long> m_nSLRDOs{0};
439  mutable std::atomic<long> m_nSLPRDs{0};
440 
441  SG::ReadHandleKey<TgcRdoContainer> m_rdoContainerKey{this, "RDOContainer", "TGCRDO" ,"TgcRdoContainer to retrieve"};
442 
443  // Write handle keys for CoinDataContainers, need 3, for current, previous and next BC
445  // Write handle keys for PrepDataContainers, need 4, for current, previous, next and all BC
447 
448  SG::WriteHandleKey<xAOD::TgcStripContainer> m_xAODKey {this, "xAODKey", "", "If empty, do not produce xAOD, otherwise this is the key of the output xAOD MDT PRD container"};
449 
450 
452  TgcPrdUpdateHandles m_prdContainerCacheKeys{this, "UpdateKeysPrd", {}};
454  TgcCoinUpdateHandles m_coinContainerCacheKeys{this, "UpdateKeysCoin", {}};
455 
456  // TgcPrepRawData container cache key prefix (code automatically creates three keys with from this string if it is non-empty)
457  Gaudi::Property<std::string> m_prdContainerCacheKeyStr{this, "PrdCacheString", "", "Prefix for names of PRD cache collections"};
458  // TgcCoinData container cache key prefix (code automatically creates three keys with from this string if it is non-empty)
459  Gaudi::Property<std::string> m_coinContainerCacheKeyStr{this, "CoinCacheString", "", "Prefix for names of Coin cache collections"};
460 
462  virtual StatusCode decode(const EventContext& ctx, const std::vector<uint32_t>& robIds) const override;
463  virtual StatusCode provideEmptyContainer(const EventContext& ctx) const override;
464  // Run3->Run2 conversion of rodId and sector
465  void convertToRun2(const TgcRawData* rd, uint16_t& newrodId, uint16_t& newsector) const {
466  newrodId = rd->rodId();
467  newsector = rd->sector();
468  if (rd->rodId()>12){ // Run3 rodID is 17..19 while Run2 rodId is 1..12
469  if(rd->isForward()){
470  newrodId = rd->sector() / 2 + 1 + (rd->rodId()-17) * 4;
471  newsector = (rd->sector() + (rd->rodId()-17)*8) % 2;
472  }else{
473  newrodId = rd->sector() / 4 + 1 + (rd->rodId()-17) * 4;
474  newsector = (rd->sector() + (rd->rodId()-17)*16) % 4;
475  }
476  }
477  }
478  void convertToRun2(const TgcRawData& rd, uint16_t& newrodId, uint16_t& newsector) const {
479  convertToRun2(&rd,newrodId,newsector);
480  }
481 
482  };
483 } // end of namespace
484 
485 #endif // MUONTGC_CNVTOOLS_TGCRDOTOPREPDATATOOLMT_H
Muon::TgcRdoToPrepDataToolMT::getSLIds
bool getSLIds(const bool isStrip, const TgcRawData &rd, std::array< Identifier, 3 > &channelId, int &index, int &chip, int &hitId, int &sub, int &sswId, int &sbLoc, int &subMatrix, std::array< int, 3 > &bitpos, const bool isBoundary=false, const TgcRdo *rdoColl=0, const int index_w=-1, const int chip_w=-1, const int hitId_w=-1, const int sub_w=-1) const
Get ReadoutID of SL from RDO.
Definition: TgcRdoToPrepDataToolMT.cxx:2966
Muon::TgcRdoToPrepDataToolMT::BIT_POS_B_INPUT_SMALL_PHI_FOR_A_FWD_C_BWD_CH07
@ BIT_POS_B_INPUT_SMALL_PHI_FOR_A_FWD_C_BWD_CH07
Definition: TgcRdoToPrepDataToolMT.h:173
Muon::TgcRdoToPrepDataToolMT::State::m_tgcCoinDataCollections
std::unordered_map< Identifier, TgcCoinDataCollection * > m_tgcCoinDataCollections[NBC_TRIG]
Definition: TgcRdoToPrepDataToolMT.h:89
Muon::TgcRdoToPrepDataToolMT::CablingInfo::m_tgcCabling
const ITGCcablingSvc * m_tgcCabling
Definition: TgcRdoToPrepDataToolMT.h:97
beamspotman.r
def r
Definition: beamspotman.py:676
Muon::TgcRdoToPrepDataToolMT::m_nTrackletEIFIRDOs
std::atomic< long > m_nTrackletEIFIRDOs
Definition: TgcRdoToPrepDataToolMT.h:434
Muon::MuonPrepDataContainer
Template for Muon PRD containers (which are basically collections of MuonPrepDataCollections).
Definition: MuonPrepDataContainer.h:42
Muon::TgcRdoToPrepDataToolMT::TgcRdoToPrepDataToolMT
TgcRdoToPrepDataToolMT(const std::string &t, const std::string &n, const IInterface *p)
Constructor.
Definition: TgcRdoToPrepDataToolMT.cxx:26
MuonGM
Ensure that the Athena extensions are properly loaded.
Definition: GeoMuonHits.h:27
Muon::TgcRdoToPrepDataToolMT::BIT_POS
BIT_POS
SLB bit position /code Large R <--> Small R Large phi <--> Small phi for A side forward chambers and ...
Definition: TgcRdoToPrepDataToolMT.h:134
Muon::TgcRdoToPrepDataToolMT::m_decodeData
Gaudi::Property< bool > m_decodeData
Switch for the decoding of TGC RDO into TgcPrepData.
Definition: TgcRdoToPrepDataToolMT.h:413
Muon::TgcRdoToPrepDataToolMT::getRfromEtaZ
static bool getRfromEtaZ(const double eta, const double z, double &r)
Get r from eta and z.
Definition: TgcRdoToPrepDataToolMT.cxx:1863
Muon::TgcRdoToPrepDataToolMT::selectDecoder
void selectDecoder(State &state, const TgcRawData &rd, const TgcRdo *rdoColl, std::vector< std::unordered_map< IdentifierHash, std::unique_ptr< TgcPrepDataCollection > > > &collectionMap, std::vector< std::unordered_map< IdentifierHash, std::unique_ptr< TgcCoinDataCollection > > > &coinMap) const
Select decoder based on RDO type (Hit or Coincidence (Tracklet, HiPt and SL))
Definition: TgcRdoToPrepDataToolMT.cxx:483
Muon::TgcRdoToPrepDataToolMT::s_cutDropPrdsWithZeroWidth
static const double s_cutDropPrdsWithZeroWidth
Cut value for zero widths.
Definition: TgcRdoToPrepDataToolMT.h:427
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Muon::TgcRdoToPrepDataToolMT::decode
virtual StatusCode decode(const EventContext &ctx, const std::vector< IdentifierHash > &idVect) const override
Decode RDO to PRD A vector of IdentifierHash are passed in, and the data corresponding to this list...
Definition: TgcRdoToPrepDataToolMT.cxx:177
Muon::TgcRdoToPrepDataToolMT::getPosAndIdStripOut
bool getPosAndIdStripOut(const std::array< const MuonGM::TgcReadoutElement *, 2 > &descriptor_o, const std::array< Identifier, 2 > &channelIdOut, const std::array< int, 2 > &gasGap_o, const std::array< int, 2 > &channel_o, double &width_o, double &hit_position_o, Amg::Vector2D &tmp_hitPos_o, Identifier &channelIdOut_tmp, const bool isBackward, const bool isAside) const
Get position and offline ID of TGC3 strip for HiPt.
Definition: TgcRdoToPrepDataToolMT.cxx:2637
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
MuonPrepDataCollection_Cache.h
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
Muon::TgcRdoToPrepDataToolMT::getPosAndIdWireIn
bool getPosAndIdWireIn(const std::array< const MuonGM::TgcReadoutElement *, 4 > &descriptor_i, const std::array< Identifier, 4 > &channelIdIn, const std::array< int, 4 > &gasGap_i, const std::array< int, 4 > &channel_i, double &width_i, double &hit_position_i, Amg::Vector2D &tmp_hitPos_i, Identifier &channelIdIn_tmp) const
Get position and offline ID of TGC1 wire for HiPt.
Definition: TgcRdoToPrepDataToolMT.cxx:2697
SG::UpdateHandleKey< TgcPrepDataCollection_Cache >
ITGCcablingSvc
Definition: ITGCcablingSvc.h:31
Muon::TgcRdoToPrepDataToolMT::isIncludedInChamberBoundary
bool isIncludedInChamberBoundary(const TgcRawData &rd) const
Check SL RDO is at the chamber boundary.
Definition: TgcRdoToPrepDataToolMT.cxx:2038
Muon::TgcRdoToPrepDataToolMT::isIdentifierHashFoundInAnyTgcPrepDataContainer
static bool isIdentifierHashFoundInAnyTgcPrepDataContainer(const State &state, const IdentifierHash Hash)
Check an IdentifierHash is in any TgcPrepDataContainers.
Definition: TgcRdoToPrepDataToolMT.cxx:1934
Muon::TgcRdoToPrepDataToolMT::getBitPosWire
void getBitPosWire(const TgcRawData &rd, const int hitId_w, const int sub_w, int &subMatrix_w, std::array< int, 3 > &bitpos_w) const
Get bitPos etc of wire for SL.
Definition: TgcRdoToPrepDataToolMT.cxx:2277
Muon::TgcRdoToPrepDataToolMT::NBC_TRIG
static constexpr int NBC_TRIG
Definition: TgcRdoToPrepDataToolMT.h:81
Muon::TgcRdoToPrepDataToolMT::getSLStripGeometry
bool getSLStripGeometry(const std::array< Identifier, 3 > &channelId_strip, const bool isBackWard, const bool isAside, double &width_strip, double &theta_strip) const
Get strip geometry (width, theta) for SL.
Definition: TgcRdoToPrepDataToolMT.cxx:2505
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_SMALL_PHI_FOR_A_FWD_C_BWD_CH04
@ BIT_POS_A_INPUT_SMALL_PHI_FOR_A_FWD_C_BWD_CH04
Definition: TgcRdoToPrepDataToolMT.h:179
Muon::TgcRdoToPrepDataToolMT::BIT_POS_OFFSET_LARGE_PHIFOR_A_FWD_C_BWD
@ BIT_POS_OFFSET_LARGE_PHIFOR_A_FWD_C_BWD
Definition: TgcRdoToPrepDataToolMT.h:139
Muon::TgcRdoToPrepDataToolMT::isBackwardBW
static bool isBackwardBW(const TgcRawData &rd)
Check if a chamber in BigWheel is a backward chamber or a forward chamber.
Definition: TgcRdoToPrepDataToolMT.cxx:2409
Muon::TgcRdoToPrepDataToolMT::m_nTrackletEIFIPRDs
std::atomic< long > m_nTrackletEIFIPRDs
Definition: TgcRdoToPrepDataToolMT.h:435
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
index
Definition: index.py:1
Muon::TgcRdoToPrepDataToolMT::State::m_xaodHandle
SG::WriteHandle< xAOD::TgcStripContainer > m_xaodHandle
Handle for the xAOD container.
Definition: TgcRdoToPrepDataToolMT.h:92
Muon::TgcRdoToPrepDataToolMT::WT_MAP_SIZE
@ WT_MAP_SIZE
Definition: TgcRdoToPrepDataToolMT.h:184
Muon::TgcRdoToPrepDataToolMT::decodeTracklet
StatusCode decodeTracklet(State &state, const TgcRawData &rd, std::vector< std::unordered_map< IdentifierHash, std::unique_ptr< TgcCoinDataCollection > > > &coinMap) const
Decode RDO's of Tracklet.
Definition: TgcRdoToPrepDataToolMT.cxx:804
Muon::TgcRdoToPrepDataToolMT::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: TgcRdoToPrepDataToolMT.h:398
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_SMALL_PHI_FOR_A_FWD_C_BWD_CH08
@ BIT_POS_A_INPUT_SMALL_PHI_FOR_A_FWD_C_BWD_CH08
Definition: TgcRdoToPrepDataToolMT.h:172
Muon::TgcRdoToPrepDataToolMT::convertToRun2
void convertToRun2(const TgcRawData *rd, uint16_t &newrodId, uint16_t &newsector) const
Definition: TgcRdoToPrepDataToolMT.h:465
Muon::TgcRdoToPrepDataToolMT::getRPhiEtafromXYZ
static bool getRPhiEtafromXYZ(const double x, const double y, const double z, double &r, double &phi, double &eta)
Get r, phi and eta from x, y and z.
Definition: TgcRdoToPrepDataToolMT.cxx:1847
Muon::TgcRdoToPrepDataToolMT::getBitPosInWire
void getBitPosInWire(const TgcRawData &rd, const int DeltaBeforeConvert, std::array< int, 4 > &bitpos_i, std::array< int, 4 > &slbchannel_i, std::array< int, 4 > &slbId_in, std::array< int, 4 > &sbLoc_in, int &sswId_i, const std::array< int, 2 > &bitpos_o, std::array< int, 2 > &slbchannel_o, const int slbId_o) const
Get bitPos etc of TGC1 wire for HiPt.
Definition: TgcRdoToPrepDataToolMT.cxx:2104
Muon::TgcRdoToPrepDataToolMT::decodeHiPt
StatusCode decodeHiPt(State &state, const TgcRawData &rd, std::vector< std::unordered_map< IdentifierHash, std::unique_ptr< TgcCoinDataCollection > > > &coinMap) const
Decode RDO's of HiPt.
Definition: TgcRdoToPrepDataToolMT.cxx:1194
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_LARGE_PHI_FOR_A_FWD_C_BWD_CH00
@ BIT_POS_A_INPUT_LARGE_PHI_FOR_A_FWD_C_BWD_CH00
Definition: TgcRdoToPrepDataToolMT.h:170
Muon::MuonCoinDataCollection
Definition: MuonCoinDataCollection.h:25
Muon::TgcRdoToPrepDataToolMT::CablingInfo::m_MAX_N_ROD
int m_MAX_N_ROD
Definition: TgcRdoToPrepDataToolMT.h:100
Muon::TgcRdoToPrepDataToolMT::BIT_POS_C_INPUT_ORIGIN
@ BIT_POS_C_INPUT_ORIGIN
Definition: TgcRdoToPrepDataToolMT.h:142
Muon::TgcRdoToPrepDataToolMT::BIT_POS_OFFSET_LARGE_R
@ BIT_POS_OFFSET_LARGE_R
Definition: TgcRdoToPrepDataToolMT.h:138
Muon::TgcRdoToPrepDataToolMT::ASIDE
@ ASIDE
Definition: TgcRdoToPrepDataToolMT.h:106
Muon::TgcRdoToPrepDataToolMT
Definition: TgcRdoToPrepDataToolMT.h:54
Muon::TgcRdoToPrepDataToolMT::getSLWireGeometry
bool getSLWireGeometry(const std::array< Identifier, 3 > &channelId_wire, double &width_wire, double &r_wire, double &z_wire) const
Get wire geometry (width, r, z) for SL.
Definition: TgcRdoToPrepDataToolMT.cxx:2433
Muon::TgcRdoToPrepDataToolMT::initialize
virtual StatusCode initialize() override
Standard AthAlgTool initialize method.
Definition: TgcRdoToPrepDataToolMT.cxx:31
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
Muon::TgcRdoToPrepDataToolMT::BIT_POS_B_INPUT_ORIGIN
@ BIT_POS_B_INPUT_ORIGIN
Definition: TgcRdoToPrepDataToolMT.h:141
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
MuonPrepDataContainer.h
SG::ReadHandleKey< TgcRdoContainer >
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_LARGE_R_CH04
@ BIT_POS_A_INPUT_LARGE_R_CH04
Definition: TgcRdoToPrepDataToolMT.h:161
Muon::TgcRdoToPrepDataToolMT::getEtafromRZ
static bool getEtafromRZ(const double r, const double z, double &eta)
Get eta from r and z.
Definition: TgcRdoToPrepDataToolMT.cxx:1873
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::TgcRdoToPrepDataToolMT::getBitPosInStrip
void getBitPosInStrip(const TgcRawData &rd, const int DeltaBeforeConvert, std::array< int, 4 > &bitpos_i, std::array< int, 4 > &slbchannel_i, int &sbLoc_i, int &sswId_i, const std::array< int, 2 > &bitpos_o, std::array< int, 2 > &slbchannel_o) const
Get bitPos etc of TGC1 strip for HiPt.
Definition: TgcRdoToPrepDataToolMT.cxx:2217
x
#define x
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_LARGE_PHI_FOR_A_FWD_C_BWD_CH04
@ BIT_POS_A_INPUT_LARGE_PHI_FOR_A_FWD_C_BWD_CH04
Definition: TgcRdoToPrepDataToolMT.h:177
Muon::TgcRdoToPrepDataToolMT::m_coinContainerCacheKeys
TgcCoinUpdateHandles m_coinContainerCacheKeys
Keys for the Coin cache containers, 3 needed for different BC.
Definition: TgcRdoToPrepDataToolMT.h:454
Muon::TgcRdoToPrepDataToolMT::BIT_POS_B_INPUT_LARGE_R_CH07
@ BIT_POS_B_INPUT_LARGE_R_CH07
Definition: TgcRdoToPrepDataToolMT.h:148
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_SMALL_R_CH00
@ BIT_POS_A_INPUT_SMALL_R_CH00
Definition: TgcRdoToPrepDataToolMT.h:153
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_SMALL_R_CH03
@ BIT_POS_A_INPUT_SMALL_R_CH03
Definition: TgcRdoToPrepDataToolMT.h:156
Muon::TgcRdoToPrepDataToolMT::~TgcRdoToPrepDataToolMT
virtual ~TgcRdoToPrepDataToolMT()=default
Destructor.
Muon::TgcRdoToPrepDataToolMT::finalize
virtual StatusCode finalize() override
Standard AthAlgTool finalize method.
Definition: TgcRdoToPrepDataToolMT.cxx:111
Muon::TgcRdoToPrepDataToolMT::m_fillCoinData
Gaudi::Property< bool > m_fillCoinData
Switch for the coincince decoding.
Definition: TgcRdoToPrepDataToolMT.h:415
Muon::TgcRdoToPrepDataToolMT::getSbLocOfEndcapStripBoundaryFromHiPt
bool getSbLocOfEndcapStripBoundaryFromHiPt(const TgcRawData &rd, int &sbLoc, const TgcRdo *rdoColl, const int index_w, const int chip_w, const int hitId_w, const int sub_w) const
Get strip sbLoc of Endcap chamber boundary from HiPt Strip.
Definition: TgcRdoToPrepDataToolMT.cxx:3086
Muon::TgcRdoToPrepDataToolMT::m_dropPrdsWithZeroWidth
Gaudi::Property< bool > m_dropPrdsWithZeroWidth
Flag for dropping PRD's with zero widths.
Definition: TgcRdoToPrepDataToolMT.h:425
Muon::TgcRdoToPrepDataToolMT::BIT_POS_B_INPUT_LARGE_R_CH15
@ BIT_POS_B_INPUT_LARGE_R_CH15
Definition: TgcRdoToPrepDataToolMT.h:146
Muon::TgcRdoToPrepDataToolMT::BIT_POS_B_INPUT_LARGE_PHI_FOR_A_FWD_C_BWD_CH07
@ BIT_POS_B_INPUT_LARGE_PHI_FOR_A_FWD_C_BWD_CH07
Definition: TgcRdoToPrepDataToolMT.h:169
TgcRawData::rodId
uint16_t rodId() const
Definition: TgcRawData.h:268
Muon::TgcRdoToPrepDataToolMT::m_nSLPRDs
std::atomic< long > m_nSLPRDs
Definition: TgcRdoToPrepDataToolMT.h:439
Muon::TgcRdoToPrepDataToolMT::BIT_POS_B_INPUT_SMALL_PHI_FOR_A_FWD_C_BWD_CH15
@ BIT_POS_B_INPUT_SMALL_PHI_FOR_A_FWD_C_BWD_CH15
Definition: TgcRdoToPrepDataToolMT.h:171
Muon::TgcRdoToPrepDataToolMT::State::m_tgcPrepDataContainer
TgcPrepDataContainer * m_tgcPrepDataContainer[NBC_HIT+1]
TgcPrepRawData (hit PRD) containers.
Definition: TgcRdoToPrepDataToolMT.h:85
Muon::TgcRdoToPrepDataToolMT::provideEmptyContainer
virtual StatusCode provideEmptyContainer(const EventContext &ctx) const override
Definition: TgcRdoToPrepDataToolMT.cxx:129
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_SMALL_R_CH04
@ BIT_POS_A_INPUT_SMALL_R_CH04
Definition: TgcRdoToPrepDataToolMT.h:159
Muon::TgcRdoToPrepDataToolMT::BIT_POS_NUM_ASD
@ BIT_POS_NUM_ASD
Definition: TgcRdoToPrepDataToolMT.h:136
TgcRawData::isForward
bool isForward() const
Definition: TgcRawData.h:289
Muon::TgcRdoToPrepDataToolMT::getRoiRow
static int getRoiRow(const TgcRawData &rd)
Get ROI row from RDO.
Definition: TgcRdoToPrepDataToolMT.cxx:2032
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
Muon::TgcRdoToPrepDataToolMT::BIT_POS_B_INPUT_SMALL_R_CH05
@ BIT_POS_B_INPUT_SMALL_R_CH05
Definition: TgcRdoToPrepDataToolMT.h:155
Muon::TgcRdoToPrepDataToolMT::m_outputCollectionLocation
Gaudi::Property< std::string > m_outputCollectionLocation
TgcPrepRawData container key for current BC.
Definition: TgcRdoToPrepDataToolMT.h:404
ITGCcablingSvc.h
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
IMuonRdoToPrepDataTool.h
z
#define z
Muon::TgcRdoToPrepDataToolMT::getHiPtIds
bool getHiPtIds(const TgcRawData &rd, int &sswId_o, int &sbLoc_o, int &slbId_o) const
Get ReadoutID of HiPt from RDOHighPtID.
Definition: TgcRdoToPrepDataToolMT.cxx:2898
Muon::TgcRdoToPrepDataToolMT::getchannel
static int getchannel(int bitpos, TgcRawData::SlbType slbType)
Get channel from bitpos and SlbType.
Definition: TgcRdoToPrepDataToolMT.cxx:1818
Muon::TgcRdoToPrepDataToolMT::m_outputprepdataKeys
SG::WriteHandleKeyArray< Muon::TgcPrepDataContainer > m_outputprepdataKeys
Definition: TgcRdoToPrepDataToolMT.h:446
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
beamspotman.n
n
Definition: beamspotman.py:731
Muon::TgcRdoToPrepDataToolMT::MAP_SIZE
MAP_SIZE
Bit map sizes.
Definition: TgcRdoToPrepDataToolMT.h:183
Muon::TgcRdoToPrepDataToolMT::decodeSL
StatusCode decodeSL(State &state, const TgcRawData &rd, const TgcRdo *rdoColl, std::vector< std::unordered_map< IdentifierHash, std::unique_ptr< TgcCoinDataCollection > > > &coinMap) const
Decode RDO's of SectorLogic.
Definition: TgcRdoToPrepDataToolMT.cxx:1605
Muon::TgcRdoToPrepDataToolMT::m_nHitPRDs
std::atomic< long > m_nHitPRDs
Definition: TgcRdoToPrepDataToolMT.h:431
TgcStripContainer.h
Muon::TgcRdoToPrepDataToolMT::getEndcapStripCandidateTrackletIds
static void getEndcapStripCandidateTrackletIds(const int roi, int &trackletIdStripFirst, int &trackletIdStripSecond, int &trackletIdStripThird)
Get trackletIds of three Tracklet Strip candidates in the Endcap boudary.
Definition: TgcRdoToPrepDataToolMT.cxx:3331
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MuonTrigCoinData_Cache.h
Muon::TgcRdoToPrepDataToolMT::m_prdContainerCacheKeyStr
Gaudi::Property< std::string > m_prdContainerCacheKeyStr
Definition: TgcRdoToPrepDataToolMT.h:457
Muon::TgcRdoToPrepDataToolMT::BIT_POS_B_INPUT_LARGE_R_CH12
@ BIT_POS_B_INPUT_LARGE_R_CH12
Definition: TgcRdoToPrepDataToolMT.h:157
Muon::TgcRdoToPrepDataToolMT::getSLLocalPosition
static const Amg::Vector2D * getSLLocalPosition(const MuonGM::TgcReadoutElement *readout, const Identifier, const double eta, const double phi)
Get SL local position.
Definition: TgcRdoToPrepDataToolMT.cxx:3442
AthAlgTool.h
Muon::TgcRdoToPrepDataToolMT::CablingInfo
Definition: TgcRdoToPrepDataToolMT.h:96
Muon::TgcRdoToPrepDataToolMT::BIT_POS_D_INPUT_ORIGIN
@ BIT_POS_D_INPUT_ORIGIN
Definition: TgcRdoToPrepDataToolMT.h:143
Muon::TgcRdoToPrepDataToolMT::ST_MAP_SIZE
@ ST_MAP_SIZE
Definition: TgcRdoToPrepDataToolMT.h:185
LHEF::Reader
Pythia8::Reader Reader
Definition: Prophecy4fMerger.cxx:11
CxxUtils::CachedValue
Cached value with atomic update.
Definition: CachedValue.h:55
MuonGM::TgcReadoutElement
A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains s...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:42
Muon::TgcRdoToPrepDataToolMT::CSIDE
@ CSIDE
Definition: TgcRdoToPrepDataToolMT.h:107
Muon::TgcRdoToPrepDataToolMT::BIT_POS_B_INPUT_LARGE_PHI_FOR_A_FWD_C_BWD_CH15
@ BIT_POS_B_INPUT_LARGE_PHI_FOR_A_FWD_C_BWD_CH15
Definition: TgcRdoToPrepDataToolMT.h:167
Muon::TgcRdoToPrepDataToolMT::isOfflineIdOKForTgcReadoutElement
bool isOfflineIdOKForTgcReadoutElement(const MuonGM::TgcReadoutElement *descriptor, const Identifier channelId) const
Check offline ID is OK for TgcReadoutElement.
Definition: TgcRdoToPrepDataToolMT.cxx:1905
Muon::TgcRdoToPrepDataToolMT::setupState
StatusCode setupState(const EventContext &ctx, State &state) const
Definition: TgcRdoToPrepDataToolMT.cxx:134
TgcRawData::sector
uint16_t sector() const
Definition: TgcRawData.h:333
Muon::TgcRdoToPrepDataToolMT::getSbLocOfEndcapStripBoundaryFromTracklet
bool getSbLocOfEndcapStripBoundaryFromTracklet(const TgcRawData &rd, int &sbLoc, const TgcRdo *rdoColl, const int index_w, const int chip_w, const int hitId_w, const int sub_w) const
Get strip sbLoc of Endcap chamber boundary from Tracklet Strip.
Definition: TgcRdoToPrepDataToolMT.cxx:3204
Muon::TgcRdoToPrepDataToolMT::m_nHiPtPRDs
std::atomic< long > m_nHiPtPRDs
Definition: TgcRdoToPrepDataToolMT.h:437
Muon::TgcRdoToPrepDataToolMT::m_nSLRDOs
std::atomic< long > m_nSLRDOs
Definition: TgcRdoToPrepDataToolMT.h:438
Muon::TgcRdoToPrepDataToolMT::getBitPosStrip
static void getBitPosStrip(const int hitId_s, const int sub_s, int &subMatrix_s, std::array< int, 3 > &bitpos_s)
Get bitPos etc of strip for SL.
Definition: TgcRdoToPrepDataToolMT.cxx:2341
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_LARGE_PHI_FOR_A_FWD_C_BWD_CH08
@ BIT_POS_A_INPUT_LARGE_PHI_FOR_A_FWD_C_BWD_CH08
Definition: TgcRdoToPrepDataToolMT.h:168
TgcRdoContainer.h
TgcRdo.h
CaloCondBlobAlgs_fillNoiseFromASCII.channelId
channelId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:122
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_LARGE_R_CH12
@ BIT_POS_A_INPUT_LARGE_R_CH12
Definition: TgcRdoToPrepDataToolMT.h:160
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_SMALL_PHI_FOR_A_FWD_C_BWD_CH12
@ BIT_POS_A_INPUT_SMALL_PHI_FOR_A_FWD_C_BWD_CH12
Definition: TgcRdoToPrepDataToolMT.h:178
Muon::TgcRdoToPrepDataToolMT::m_coinContainerCacheKeyStr
Gaudi::Property< std::string > m_coinContainerCacheKeyStr
Definition: TgcRdoToPrepDataToolMT.h:459
Muon::TgcRdoToPrepDataToolMT::getBitPosOutStrip
static void getBitPosOutStrip(const TgcRawData &rd, int &slbsubMatrix, std::array< int, 2 > &bitpos_o)
Get bitPos etc of TGC3 strip for HiPt.
Definition: TgcRdoToPrepDataToolMT.cxx:2192
TgcCoinDataContainer.h
ReadCondHandleKey.h
Muon::TgcRdoToPrepDataToolMT::decodeHits
StatusCode decodeHits(State &state, const TgcRawData &rd, std::vector< std::unordered_map< IdentifierHash, std::unique_ptr< TgcPrepDataCollection > > > &collectionMap) const
Decode RDO's of Hit.
Definition: TgcRdoToPrepDataToolMT.cxx:528
Muon::TgcRdoToPrepDataToolMT::m_cablingInfo
CxxUtils::CachedValue< CablingInfo > m_cablingInfo
Definition: TgcRdoToPrepDataToolMT.h:102
Muon::TgcRdoToPrepDataToolMT::getTgcCoinDataColFromMap
TgcCoinDataCollection * getTgcCoinDataColFromMap(const IdentifierHash &tgcHashId, State &state, std::vector< std::unordered_map< IdentifierHash, std::unique_ptr< TgcCoinDataCollection > > > &coinMap, int locId, const Identifier &elementId) const
Utility function to get TgcCoinDataCollection from supplied map.
Definition: TgcRdoToPrepDataToolMT.cxx:774
dumpTgcDigiThreshold.isStrip
list isStrip
Definition: dumpTgcDigiThreshold.py:33
UpdateHandleKey.h
Property holding a SG store/key/clid from which an UpdateHandle is made.
Muon::TgcRdoToPrepDataToolMT::getbitpos
static int getbitpos(int channel, TgcRawData::SlbType slbType)
Get bitpos from channel and SlbType.
Definition: TgcRdoToPrepDataToolMT.cxx:1790
CachedValue.h
Cached value with atomic update.
Muon::TgcRdoToPrepDataToolMT::m_outputCoinKeys
SG::WriteHandleKeyArray< Muon::TgcCoinDataContainer > m_outputCoinKeys
Definition: TgcRdoToPrepDataToolMT.h:444
Muon::TgcRdoToPrepDataToolMT::BIT_POS_INPUT_SIZE
@ BIT_POS_INPUT_SIZE
Definition: TgcRdoToPrepDataToolMT.h:137
Muon::MuonCoinDataContainer
Definition: MuonCoinDataContainer.h:32
Muon::TgcRdoToPrepDataToolMT::convertToRun2
void convertToRun2(const TgcRawData &rd, uint16_t &newrodId, uint16_t &newsector) const
Definition: TgcRdoToPrepDataToolMT.h:478
Muon::TgcRdoToPrepDataToolMT::decodeInner
StatusCode decodeInner(State &state, const TgcRawData &rd, std::vector< std::unordered_map< IdentifierHash, std::unique_ptr< TgcCoinDataCollection > > > &coinMap) const
Decode RDO's of Inner.
Definition: TgcRdoToPrepDataToolMT.cxx:1470
Muon::TgcRdoToPrepDataToolMT::m_muDetMgrKey
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_muDetMgrKey
Definition: TgcRdoToPrepDataToolMT.h:396
HandleKeyArray.h
Muon::TgcRdoToPrepDataToolMT::WD_MAP_SIZE
@ WD_MAP_SIZE
Definition: TgcRdoToPrepDataToolMT.h:187
Muon::TgcRdoToPrepDataToolMT::m_tgcOffset
Gaudi::Property< int > m_tgcOffset
Identifier hash offset.
Definition: TgcRdoToPrepDataToolMT.h:410
Muon::TgcRdoToPrepDataToolMT::isRequested
static bool isRequested(const std::vector< IdentifierHash > &requestedIdHashVect, IdentifierHash tgcHashId)
Check the IdHash is already requested or not.
Definition: TgcRdoToPrepDataToolMT.cxx:1897
Muon::TgcRdoToPrepDataToolMT::getTrackletInfo
bool getTrackletInfo(const TgcRawData &rd, int &tmp_slbId, int &tmp_subMatrix, int &tmp_position) const
Retrieve slbId, subMatrix and position from Tracklet RDO.
Definition: TgcRdoToPrepDataToolMT.cxx:1955
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_LARGE_R_CH00
@ BIT_POS_A_INPUT_LARGE_R_CH00
Definition: TgcRdoToPrepDataToolMT.h:149
Muon::TgcRdoToPrepDataToolMT::BIT_POS_ASD_SIZE
@ BIT_POS_ASD_SIZE
Definition: TgcRdoToPrepDataToolMT.h:135
MuonDetectorManager.h
Muon::TgcRdoToPrepDataToolMT::getDeltaBeforeConvert
static int getDeltaBeforeConvert(const TgcRawData &rd)
Get delta (sagitta) before converion for HiPt.
Definition: TgcRdoToPrepDataToolMT.cxx:2376
Muon::TgcRdoToPrepDataToolMT::getPosAndIdWireOut
bool getPosAndIdWireOut(const std::array< const MuonGM::TgcReadoutElement *, 2 > &descriptor_o, const std::array< Identifier, 2 > &channelIdOut, const std::array< int, 2 > &gasGap_o, const std::array< int, 2 > &channel_o, double &width_o, double &hit_position_o, Amg::Vector2D &tmp_hitPos_o, Identifier &channelIdOut_tmp) const
Get position and offline ID of TGC3 wire for HiPt.
Definition: TgcRdoToPrepDataToolMT.cxx:2580
Muon::TgcRdoToPrepDataToolMT::m_nHiPtRDOs
std::atomic< long > m_nHiPtRDOs
Definition: TgcRdoToPrepDataToolMT.h:436
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager >
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
Muon::TgcRdoToPrepDataToolMT::State::m_tgcPrepDataCollections
std::unordered_map< Identifier, TgcPrepDataCollection * > m_tgcPrepDataCollections[NBC_HIT+1]
Definition: TgcRdoToPrepDataToolMT.h:86
Muon::TgcRdoToPrepDataToolMT::isAlreadyConverted
static bool isAlreadyConverted(const std::vector< const TgcRdo * > &decodedRdoCollVec, const std::vector< const TgcRdo * > &rdoCollVec, const TgcRdo *rdoColl)
Check the rdo is already converted or not.
Definition: TgcRdoToPrepDataToolMT.cxx:1886
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_SMALL_PHI_FOR_A_FWD_C_BWD_CH00
@ BIT_POS_A_INPUT_SMALL_PHI_FOR_A_FWD_C_BWD_CH00
Definition: TgcRdoToPrepDataToolMT.h:174
UpdateHandle.h
Handle class for modifying an existing object in StoreGate.
Muon::TgcRdoToPrepDataToolMT::m_nHitRDOs
std::atomic< long > m_nHitRDOs
long to count the numbers of RDOs and PRDs
Definition: TgcRdoToPrepDataToolMT.h:430
Muon::TgcCoinUpdateHandles
SG::HandleKeyArray< SG::UpdateHandle< TgcCoinDataCollection_Cache >, SG::UpdateHandleKey< TgcCoinDataCollection_Cache >, Gaudi::DataHandle::Reader > TgcCoinUpdateHandles
Definition: TgcRdoToPrepDataToolMT.h:42
Muon::TgcRdoToPrepDataToolMT::m_nTrackletPRDs
std::atomic< long > m_nTrackletPRDs
Definition: TgcRdoToPrepDataToolMT.h:433
Muon::TgcRdoToPrepDataToolMT::m_tgcCabling
const ITGCcablingSvc * m_tgcCabling
Definition: TgcRdoToPrepDataToolMT.h:401
y
#define y
Muon::TgcRdoToPrepDataToolMT::isIdentifierHashFoundInAnyTgcCoinDataContainer
static bool isIdentifierHashFoundInAnyTgcCoinDataContainer(const State &state, const IdentifierHash Hash)
Check an IdentifierHash is in any TgcCoinDataContainers.
Definition: TgcRdoToPrepDataToolMT.cxx:1945
Muon::TgcRdoToPrepDataToolMT::SD_MAP_SIZE
@ SD_MAP_SIZE
Definition: TgcRdoToPrepDataToolMT.h:186
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_LARGE_R_CH08
@ BIT_POS_A_INPUT_LARGE_R_CH08
Definition: TgcRdoToPrepDataToolMT.h:147
TgcRawData
An unit object of TGC ROD output.
Definition: TgcRawData.h:23
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_LARGE_PHI_FOR_A_FWD_C_BWD_CH12
@ BIT_POS_A_INPUT_LARGE_PHI_FOR_A_FWD_C_BWD_CH12
Definition: TgcRdoToPrepDataToolMT.h:176
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_SMALL_R_CH12
@ BIT_POS_A_INPUT_SMALL_R_CH12
Definition: TgcRdoToPrepDataToolMT.h:162
Muon::TgcRdoToPrepDataToolMT::State
Definition: TgcRdoToPrepDataToolMT.h:83
TgcRdo
Definition: TgcRdo.h:22
Muon::TgcRdoToPrepDataToolMT::BIT_POS_B_INPUT_SMALL_R_CH15
@ BIT_POS_B_INPUT_SMALL_R_CH15
Definition: TgcRdoToPrepDataToolMT.h:150
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_ORIGIN
@ BIT_POS_A_INPUT_ORIGIN
Definition: TgcRdoToPrepDataToolMT.h:140
Muon::TgcRdoToPrepDataToolMT::NBC_HIT
static constexpr int NBC_HIT
The number of recorded Bunch Crossings (BCs) FOR HITS is 3 (Previous, Current, and Next BCs)
Definition: TgcRdoToPrepDataToolMT.h:78
Muon::TgcRdoToPrepDataToolMT::getBitPosOutWire
static void getBitPosOutWire(const TgcRawData &rd, int &slbsubMatrix, std::array< int, 2 > &bitpos_o)
Get bitPos etc of TGC3 wire for HiPt.
Definition: TgcRdoToPrepDataToolMT.cxx:2053
Muon::TgcRdoToPrepDataToolMT::showIdentifierHash
void showIdentifierHash(const State &state) const
Show all IdentifierHash.
Definition: TgcRdoToPrepDataToolMT.cxx:1916
IdentifierHash
Definition: IdentifierHash.h:38
Muon::TgcRdoToPrepDataToolMT::m_show_warning_level_invalid_A09_SSW6_hit
Gaudi::Property< bool > m_show_warning_level_invalid_A09_SSW6_hit
Switch for error message disabling on one invalid channel in sector A09 seen in 2008 data,...
Definition: TgcRdoToPrepDataToolMT.h:422
Muon::TgcRdoToPrepDataToolMT::BIT_POS_A_INPUT_SMALL_R_CH08
@ BIT_POS_A_INPUT_SMALL_R_CH08
Definition: TgcRdoToPrepDataToolMT.h:151
Muon::TgcRdoToPrepDataToolMT::State::m_tgcCoinDataContainer
TgcCoinDataContainer * m_tgcCoinDataContainer[NBC_TRIG]
TgcCoinData (coincidence PRD) containers.
Definition: TgcRdoToPrepDataToolMT.h:88
Muon::TgcRdoToPrepDataToolMT::decodeTrackletEIFI
StatusCode decodeTrackletEIFI(State &state, const TgcRawData &rd, std::vector< std::unordered_map< IdentifierHash, std::unique_ptr< TgcCoinDataCollection > > > &coinMap) const
Decode RDO's of Tracklet EIFI.
Definition: TgcRdoToPrepDataToolMT.cxx:988
Muon::TgcPrdUpdateHandles
SG::HandleKeyArray< SG::UpdateHandle< TgcPrepDataCollection_Cache >, SG::UpdateHandleKey< TgcPrepDataCollection_Cache >, Gaudi::DataHandle::Reader > TgcPrdUpdateHandles
Definition: TgcRdoToPrepDataToolMT.h:41
Muon::TgcRdoToPrepDataToolMT::m_outputCoinCollectionLocation
Gaudi::Property< std::string > m_outputCoinCollectionLocation
TgcCoinData container key for current BC.
Definition: TgcRdoToPrepDataToolMT.h:407
Muon::TgcRdoToPrepDataToolMT::SUB_DETCTOR_ID
SUB_DETCTOR_ID
Sub detector IDs are 103 and 104 for TGC A side and C side, respectively.
Definition: TgcRdoToPrepDataToolMT.h:105
IMuonIdHelperSvc.h
Muon::TgcRdoToPrepDataToolMT::m_rdoContainerKey
SG::ReadHandleKey< TgcRdoContainer > m_rdoContainerKey
Definition: TgcRdoToPrepDataToolMT.h:441
Muon::TgcRdoToPrepDataToolMT::m_prdContainerCacheKeys
TgcPrdUpdateHandles m_prdContainerCacheKeys
Keys for the PRD cache containers, 4 needed for different BC.
Definition: TgcRdoToPrepDataToolMT.h:452
Muon::TgcRdoToPrepDataToolMT::BIT_POS_B_INPUT_SMALL_R_CH07
@ BIT_POS_B_INPUT_SMALL_R_CH07
Definition: TgcRdoToPrepDataToolMT.h:152
Muon::TgcRdoToPrepDataToolMT::m_nTrackletRDOs
std::atomic< long > m_nTrackletRDOs
Definition: TgcRdoToPrepDataToolMT.h:432
Muon::TgcRdoToPrepDataToolMT::m_xAODKey
SG::WriteHandleKey< xAOD::TgcStripContainer > m_xAODKey
Definition: TgcRdoToPrepDataToolMT.h:448
Muon::TgcRdoToPrepDataToolMT::CablingInfo::m_hashToOnlineId
std::vector< uint16_t > m_hashToOnlineId
Conversion from hash to onlineId.
Definition: TgcRdoToPrepDataToolMT.h:99
Muon::TgcRdoToPrepDataToolMT::printPrepDataImpl
void printPrepDataImpl(const TgcPrepDataContainer *const *tgcPrepDataContainer, const TgcCoinDataContainer *const *tgcCoinDataContainer) const
Print PRD for debugging.
Muon::TgcRdoToPrepDataToolMT::getPosAndIdStripIn
bool getPosAndIdStripIn(const std::array< const MuonGM::TgcReadoutElement *, 4 > &descriptor_i, const std::array< Identifier, 4 > &channelIdIn, const std::array< int, 4 > &gasGap_i, const std::array< int, 4 > &channel_i, double &width_i, double &hit_position_i, Amg::Vector2D &tmp_hitPos_i, Identifier &channelIdIn_tmp, const bool isBackward, const bool isAside) const
Get position and offline ID of TGC1 strip for HiPt.
Definition: TgcRdoToPrepDataToolMT.cxx:2806
ServiceHandle< Muon::IMuonIdHelperSvc >
Muon::TgcRdoToPrepDataToolMT::getCabling
const CablingInfo * getCabling() const
Definition: TgcRdoToPrepDataToolMT.cxx:3395
TgcRawData::SlbType
SlbType
Definition: TgcRawData.h:31