ATLAS Offline Software
TGCCabling.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONTGC_CABLING_TGCCABLING_HH
6 #define MUONTGC_CABLING_TGCCABLING_HH
7 
9 
10 #include "MuonTGC_Cabling/TGCId.h"
13 
14 #include <map>
15 #include <mutex>
16 
17 class StatusCode;
18 
19 namespace MuonTGC_Cabling
20 {
21 
22 class TGCCableASDToPP;
23 class TGCCableHPBToSL;
24 class TGCCableInASD;
25 class TGCCableInPP;
26 class TGCCableInSLB;
27 class TGCCablePPToSLB;
28 class TGCCableSLBToHPB;
29 class TGCCableSLBToSSW;
30 class TGCCableSSWToROD;
31 class TGCChannelASDOut;
32 class TGCChannelId;
33 class TGCModuleMap;
34 class TGCModuleSLB;
35 
36 class TGCCabling : public TGCCablingBase
37 {
38  private: //hide default constructor, copy constructor and assignment
39  TGCCabling () = delete;
40  TGCCabling (const TGCCabling&) = delete;
41  TGCCabling& operator= (const TGCCabling&) = delete;
42 
43 
44  public:
45  // Constructor & Destructor
46  TGCCabling(const std::string& filenameASDToPP,
47  const std::string& filenameInPP,
48  const std::string& filenamePPToSL,
49  const std::string& filenameSLBToROD);
50 
51  virtual ~TGCCabling(void);
52 
54  MAXRODID = 12,
55  MINRODID = 1,
56  MAXSRODID = 3,
57  MINSRODID = 1,
58  MAXSSWID = 9,
59  MINSSWID = 0,
60  MAXSBLOC = 31,
61  MINSBLOC = 0,
62  MINCHANNELID = 40,
63  MAXCHANNELID = 199
64  };
65 
66  // virtual method of TGCCabligBase
67  // slbIn --> AsdOut
68  virtual TGCIdBase* getASDOutChannel(const TGCIdBase* slb_in) const ;
69 
70 
72  // readout ID -> SLB Module
74  int rodId,
75  int sswId,
76  int sbLoc) const;
77 
78  // readoutID -> RxID
80  int rodId,
81  int sswId,
82  int sbLoc) const;
83 
84  // SSW ID/RX ID-> SLB Module
86  int rodId,
87  int sswId,
88  int rxId) const;
89 
90 
91  // SLB Module -> readout ID
92  bool getReadoutFromSLB(const TGCModuleSLB* slb,
94  int & rodId,
95  int & sswId,
96  int & sbLoc) const;
97 
98 
99  // readout channel -> chamber channel
101  int rodId,
102  int sswId,
103  int sbLoc,
104  int channel,
105  bool orChannel=false) const;
106 
107 
108  // chamber channel -> readout channel
109  bool getReadoutFromASDOut(const TGCChannelASDOut* asdout,
111  int & rodId,
112  int & sswId,
113  int & sbLoc,
114  int & channel,
115  bool orChannel=false) const;
116 
117 
118  // readout channel -> coincidence channel
120  int rodId,
121  int sswId,
122  int sbLoc,
123  int channel,
125  TGCIdBase::RegionType & region,
126  int & sectorInReadout,
127  int & hpbId,
128  int & block,
129  int & hitId,
130  int & pos) const;
131 
132 
133  // coincidence channel -> readout channel
135  int rodId,
136  int & sswId,
137  int & sbLoc,
138  int & channel,
140  TGCIdBase::RegionType region,
141  int sectorInReadout,
142  int hpbId,
143  int block,
144  int hitId,
145  int pos,
146  TGCIdBase::ModuleType moduleType,
147  bool orChannel) const;
148 
149  // readout channel -> coincidence channel
151  int rodId,
152  int sswId,
153  int sbLoc,
154  int channel,
155  int & block,
156  int & pos,
157  bool middle=false) const;
158 
159 
160  // coincidence channel -> readout channel
162  int rodId,
163  int sswId,
164  int sbLoc,
165  int & channel,
166  int block,
167  int pos,
168  bool middle=false) const;
169 
170  // channel connection
173  bool orChannel=false) const;
174  // module connection
175  TGCModuleMap* getModule(const TGCModuleId* moduleId,
177 
178 public:
179  // readin database which describes difference from ASDToPP.db
181 
182 private:
192 
193  // Protected by mutex.
194  mutable std::map<int, TGCModuleId*> m_slbModuleIdMap ATLAS_THREAD_SAFE;
196 
198  const int rodId,
199  const int sswId,
200  const int sbLoc) const;
201 };
202 
203 } // end of namespace
204 
205 #endif
MuonTGC_Cabling::TGCCabling::MINSRODID
@ MINSRODID
Definition: TGCCabling.h:57
MuonTGC_Cabling::TGCCabling::getChannel
TGCChannelId * getChannel(const TGCChannelId *channelId, TGCIdBase::ChannelIdType type, bool orChannel=false) const
Definition: TGCCabling.cxx:618
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
MuonTGC_Cabling::TGCCableInSLB
Definition: TGCCableInSLB.h:14
MuonTGC_Cabling::TGCCabling::m_cableSSWToROD
TGCCableSSWToROD * m_cableSSWToROD
Definition: TGCCabling.h:191
MuonTGC_Cabling::TGCCablePPToSLB
Definition: TGCCablePPToSLB.h:20
MuonTGC_Cabling::TGCCabling::MAXSBLOC
@ MAXSBLOC
Definition: TGCCabling.h:60
MuonTGC_Cabling::TGCCabling::getReadoutFromASDOut
bool getReadoutFromASDOut(const TGCChannelASDOut *asdout, TGCIdBase::SideType &side, int &rodId, int &sswId, int &sbLoc, int &channel, bool orChannel=false) const
Definition: TGCCabling.cxx:582
MuonTGC_Cabling::TGCCabling::m_cableInASD
TGCCableInASD * m_cableInASD
Definition: TGCCabling.h:183
MuonTGC_Cabling::TGCCabling::m_cableInPP
TGCCableInPP * m_cableInPP
Definition: TGCCabling.h:185
MuonTGC_Cabling::TGCCabling::m_cableSLBToHPB
TGCCableSLBToHPB * m_cableSLBToHPB
Definition: TGCCabling.h:188
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
MuonTGC_Cabling::TGCCableSLBToHPB
Definition: TGCCableSLBToHPB.h:20
MuonTGC_Cabling::TGCCabling::getReadoutFromLowPtCoincidence
bool getReadoutFromLowPtCoincidence(TGCIdBase::SideType side, int rodId, int sswId, int sbLoc, int &channel, int block, int pos, bool middle=false) const
Definition: TGCCabling.cxx:484
MuonTGC_Cabling::TGCCabling::MAXSSWID
@ MAXSSWID
Definition: TGCCabling.h:58
MuonTGC_Cabling::TGCModuleSLB
Definition: TGCModuleSLB.h:14
MuonTGC_Cabling::TGCCabling::getReadoutFromSLB
bool getReadoutFromSLB(const TGCModuleSLB *slb, TGCIdBase::SideType &side, int &rodId, int &sswId, int &sbLoc) const
Definition: TGCCabling.cxx:261
MuonTGC_Cabling::TGCCabling::MAXRODID
@ MAXRODID
Definition: TGCCabling.h:54
MuonTGC_Cabling::TGCCabling::MAXCHANNELID
@ MAXCHANNELID
Definition: TGCCabling.h:63
MuonTGC_Cabling::TGCCabling::m_mutex
std::mutex m_mutex
Definition: TGCCabling.h:195
MuonTGC_Cabling::TGCCabling::getSLBFromRxId
TGCModuleId * getSLBFromRxId(TGCIdBase::SideType side, int rodId, int sswId, int rxId) const
Definition: TGCCabling.cxx:211
MuonTGC_Cabling::TGCCabling::m_cableSLBToSSW
TGCCableSLBToSSW * m_cableSLBToSSW
Definition: TGCCabling.h:190
TGCModuleId.h
MuonTGC_Cabling::TGCModuleMap
Definition: TGCModuleMap.h:16
MuonTGC_Cabling::TGCCableSSWToROD
Definition: TGCCableSSWToROD.h:18
TGCId.h
MuonTGC_Cabling::TGCCableInPP
Definition: TGCCableInPP.h:20
TRT::Hit::side
@ side
Definition: HitInfo.h:83
MuonTGC_Cabling::TGCCabling::getIndexFromReadoutWithoutChannel
int getIndexFromReadoutWithoutChannel(const TGCIdBase::SideType side, const int rodId, const int sswId, const int sbLoc) const
Definition: TGCCabling.cxx:816
TGCCablingBase.h
MuonTGC_Cabling::TGCCabling::m_cableHPBToSL
TGCCableHPBToSL * m_cableHPBToSL
Definition: TGCCabling.h:189
MuonTGC_Cabling::TGCCabling::MAXMINREADOUTIDS
MAXMINREADOUTIDS
Definition: TGCCabling.h:53
MuonTGC_Cabling::TGCCabling::m_cableASDToPP
TGCCableASDToPP * m_cableASDToPP
Definition: TGCCabling.h:184
MuonTGC_Cabling::TGCCabling::getRxIdFromReadout
int getRxIdFromReadout(TGCIdBase::SideType side, int rodId, int sswId, int sbLoc) const
Definition: TGCCabling.cxx:161
MuonTGC_Cabling::TGCCabling::getASDOutFromReadout
TGCChannelId * getASDOutFromReadout(TGCIdBase::SideType side, int rodId, int sswId, int sbLoc, int channel, bool orChannel=false) const
Definition: TGCCabling.cxx:557
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TGCIdBase::ModuleType
ModuleType
Definition: TGCIdBase.h:33
MuonTGC_Cabling
Definition: TGCCable.h:13
MuonTGC_Cabling::TGCCabling::MINSSWID
@ MINSSWID
Definition: TGCCabling.h:59
MuonTGC_Cabling::TGCCabling::MINCHANNELID
@ MINCHANNELID
Definition: TGCCabling.h:62
TGCCablingBase
Definition: TGCCablingBase.h:23
MuonTGC_Cabling::TGCCabling::getReadoutFromHighPtID
bool getReadoutFromHighPtID(TGCIdBase::SideType side, int rodId, int &sswId, int &sbLoc, int &channel, TGCIdBase::SignalType signal, TGCIdBase::RegionType region, int sectorInReadout, int hpbId, int block, int hitId, int pos, TGCIdBase::ModuleType moduleType, bool orChannel) const
Definition: TGCCabling.cxx:351
MuonTGC_Cabling::TGCCabling::getModule
TGCModuleMap * getModule(const TGCModuleId *moduleId, TGCModuleId::ModuleIdType type) const
Definition: TGCCabling.cxx:775
MuonTGC_Cabling::TGCCabling::MINRODID
@ MINRODID
Definition: TGCCabling.h:55
CaloCondBlobAlgs_fillNoiseFromASCII.channelId
channelId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:122
MuonTGC_Cabling::TGCCabling::getLowPtCoincidenceFromReadout
bool getLowPtCoincidenceFromReadout(TGCIdBase::SideType side, int rodId, int sswId, int sbLoc, int channel, int &block, int &pos, bool middle=false) const
Definition: TGCCabling.cxx:522
MuonTGC_Cabling::TGCCabling::getHighPtIDFromReadout
bool getHighPtIDFromReadout(TGCIdBase::SideType side, int rodId, int sswId, int sbLoc, int channel, TGCIdBase::SignalType &signal, TGCIdBase::RegionType &region, int &sectorInReadout, int &hpbId, int &block, int &hitId, int &pos) const
Definition: TGCCabling.cxx:430
MuonTGC_Cabling::TGCCabling::operator=
TGCCabling & operator=(const TGCCabling &)=delete
MuonTGC_Cabling::TGCCabling::m_cablePPToSLB
TGCCablePPToSLB * m_cablePPToSLB
Definition: TGCCabling.h:186
MuonTGC_Cabling::TGCModuleId::ModuleIdType
ModuleIdType
Definition: TGCModuleId.h:16
TGCIdBase::RegionType
RegionType
Definition: TGCIdBase.h:39
MuonTGC_Cabling::TGCCabling::m_cableInSLB
TGCCableInSLB * m_cableInSLB
Definition: TGCCabling.h:187
Cut::signal
@ signal
Definition: SUSYToolsAlg.cxx:64
MuonTGC_Cabling::TGCCabling::~TGCCabling
virtual ~TGCCabling(void)
Definition: TGCCabling.cxx:45
TGCIdBase
Definition: TGCIdBase.h:18
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
MuonTGC_Cabling::TGCCabling::ATLAS_THREAD_SAFE
std::map< int, TGCModuleId * > m_slbModuleIdMap ATLAS_THREAD_SAFE
Definition: TGCCabling.h:194
MuonTGC_Cabling::TGCCabling::TGCCabling
TGCCabling()=delete
MuonTGC_Cabling::TGCCableInASD
Definition: TGCCableInASD.h:20
MuonTGC_Cabling::TGCCabling::getASDOutChannel
virtual TGCIdBase * getASDOutChannel(const TGCIdBase *slb_in) const
Definition: TGCCabling.cxx:70
MuonTGC_Cabling::TGCCableASDToPP
Definition: TGCCableASDToPP.h:25
MuonTGC_Cabling::TGCCabling::TGCCabling
TGCCabling(const TGCCabling &)=delete
MuonTGC_Cabling::TGCCabling::getSLBFromReadout
const TGCModuleId * getSLBFromReadout(TGCIdBase::SideType side, int rodId, int sswId, int sbLoc) const
Definition: TGCCabling.cxx:85
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MuonTGC_Cabling::TGCChannelId
Definition: TGCChannelId.h:15
MuonTGC_Cabling::TGCCableHPBToSL
Definition: TGCCableHPBToSL.h:20
TGCIdBase::SideType
SideType
Definition: TGCIdBase.h:31
TGCIdBase::SignalType
SignalType
Definition: TGCIdBase.h:35
MuonTGC_Cabling::TGCChannelASDOut
Definition: TGCChannelASDOut.h:14
MuonTGC_Cabling::TGCModuleId
Definition: TGCModuleId.h:14
checker_macros.h
Define macros for attributes used to control the static checker.
MuonTGC_Cabling::TGCCabling::updateCableASDToPP
StatusCode updateCableASDToPP()
Definition: TGCCabling.cxx:63
MuonTGC_Cabling::TGCCabling::MINSBLOC
@ MINSBLOC
Definition: TGCCabling.h:61
TGCIdBase::ChannelIdType
ChannelIdType
Definition: TGCIdBase.h:42
MuonTGC_Cabling::TGCCableSLBToSSW
Definition: TGCCableSLBToSSW.h:20
MuonTGC_Cabling::TGCCabling
Definition: TGCCabling.h:37
MuonTGC_Cabling::TGCCabling::MAXSRODID
@ MAXSRODID
Definition: TGCCabling.h:56