ATLAS Offline Software
NswDcsDbData.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
8 #include "Identifier/Identifier.h"
9 
12 
13 
16 
17 
18 
19 
20 // general functions ---------------------------------
21 
22 NswDcsDbData::NswDcsDbData(const MmIdHelper& mmIdHelper, const sTgcIdHelper& stgcIdHelper, const MuonGM::MuonDetectorManager* muonGeoMgr):
23  m_mmIdHelper(mmIdHelper),
24  m_stgcIdHelper(stgcIdHelper),
25  m_muonGeoMgr(muonGeoMgr)
26 {
27 }
28 
29 std::ostream& operator<<(std::ostream& ostr, const NswDcsDbData::TDaqConstants& obj) {
30  ostr << " timeSince " << obj.timeSince << " timeUntil " << obj.timeUntil << " elink " << obj.elink;
31  return ostr;
32 }
33 
34 unsigned int NswDcsDbData::identToModuleIdx(const Identifier& chan_id) const{
35  if (m_mmIdHelper.is_mm(chan_id)) {
38  throw std::runtime_error("NswDcsDbData() - Failed to retrieve valid micromega hash ");
39  }
40  return static_cast<unsigned int>(hash)*(m_mmIdHelper.gasGapMax()) + (m_mmIdHelper.gasGap(chan_id) -1);
41  } else if (m_stgcIdHelper.is_stgc(chan_id)) {
44  throw std::runtime_error("NswDcsDbData() - Failed to retrieve valid stgc hash ");
45  }
46  return static_cast<unsigned int>(hash)*(m_stgcIdHelper.gasGapMax()) + (m_stgcIdHelper.gasGap(chan_id) -1);
47  }
48  throw std::runtime_error("NswDcsDbData() - No NSW identifier");
49  return -1;
50  }
51 
52 // setting functions ---------------------------------
53 
54 // setDataHv
55 void
57  if(tech == DcsTechType::MMG || tech == DcsTechType::MMD) {
59  const unsigned int array_idx = identToModuleIdx(chnlId);
60  if (array_idx >= dcsMap.size()) dcsMap.resize(array_idx + 1);
61  DcsModule& dcs_mod = dcsMap[array_idx];
62  const unsigned int channel = m_mmIdHelper.channel(chnlId)-1;
63  if(dcs_mod.channels.empty())
64  dcs_mod.layer_id = m_mmIdHelper.channelID(chnlId, m_mmIdHelper.multilayer(chnlId), m_mmIdHelper.gasGap(chnlId), 1);
65  if(dcs_mod.channels.size() <= channel) dcs_mod.channels.resize(channel +1);
66  if(dcs_mod.channels[channel]) {
67  throw std::runtime_error("NswDcsDbData::setData() -- Cannot overwrite channel");
68  return;
69  }
70  dcs_mod.channels[channel] = std::make_unique<DcsConstants>(std::move(constants));
71  } else if(tech == DcsTechType::STG) {
72  ChannelDcsMap& dcsMap = m_data_hv_stg;
73  const unsigned int array_idx = identToModuleIdx(chnlId);
74  if (array_idx >= dcsMap.size()) dcsMap.resize(array_idx + 1);
75  DcsModule& dcs_mod = dcsMap.at(array_idx);
76  const unsigned int channel = m_stgcIdHelper.channel(chnlId)-1;
77  if(dcs_mod.channels.empty()) {
79  }
80  if(dcs_mod.channels.size() <= channel) dcs_mod.channels.resize(channel +1);
81  if(dcs_mod.channels[channel]) {
82  throw std::runtime_error("setData() -- Cannot overwrite channel");
83  return;
84  }
85  dcs_mod.channels[channel] = std::make_unique<DcsConstants>(std::move(constants));
86  }
87 }
88 
89 // setDataTDaq
90 void
91 NswDcsDbData::setDataTDaq(const DcsTechType tech, const Identifier& chnlId, uint64_t timeSince, uint64_t timeUntil, unsigned int elink, bool permanentlyDisabled) {
93  const unsigned int array_idx = identToModuleIdx(chnlId);
94  if (array_idx >= data.size()) data.resize(array_idx + 1);
96  x.timeSince = timeSince;
97  x.timeUntil = timeUntil;
98  x.elink = elink;
99  x.permanentlyDisabled = permanentlyDisabled;
100  data[array_idx][chnlId].insert(x);
101 }
102 
103 void
106  const uint array_idx = identToModuleIdx(channelId);
107  if (array_idx >= data.size()) data.resize(array_idx + 1);
108  data[array_idx].insert(channelId);
109 }
110 
111 
112 
113 // retrieval functions -------------------------------
114 
115 // getChannelIds
116 std::vector<Identifier>
117 NswDcsDbData::getChannelIdsHv(const DcsTechType tech, const std::string& side) const {
118  std::vector<Identifier> chnls;
119  if(tech == DcsTechType::MMG || tech == DcsTechType::MMD){
120  const ChannelDcsMap& dcsMap = tech == DcsTechType::MMG ? m_data_hv_mmg : m_data_hv_mmd;
121  chnls.reserve(dcsMap.size());
122  for(const DcsModule& module : dcsMap) {
123  if(module.channels.empty()) continue;
124  if(side == "A" && m_mmIdHelper.stationEta(module.layer_id) < 0) continue;
125  if(side == "C" && m_mmIdHelper.stationEta(module.layer_id) > 0) continue;
126  for(unsigned int chn = 1 ; chn <= module.channels.size() ; ++chn) {
127  if(!module.channels[chn -1]) continue;
128  chnls.push_back(m_mmIdHelper.channelID(module.layer_id, m_mmIdHelper.multilayer(module.layer_id), m_mmIdHelper.gasGap(module.layer_id), chn ));
129  }
130  }
131  } else if(tech == DcsTechType::STG){
132  const ChannelDcsMap& dcsMap = m_data_hv_stg;
133  chnls.reserve(dcsMap.size());
134  for(const DcsModule& module : dcsMap) {
135  if(module.channels.empty()) continue;
136  if(side == "A" && m_stgcIdHelper.stationEta(module.layer_id) < 0) continue;
137  if(side == "C" && m_stgcIdHelper.stationEta(module.layer_id) > 0) continue;
138  for(unsigned int chn = 1 ; chn <= module.channels.size() ; ++chn) {
139  if(!module.channels[chn -1]) continue;
140  chnls.push_back(m_stgcIdHelper.channelID(module.layer_id, m_stgcIdHelper.multilayer(module.layer_id),
141  m_stgcIdHelper.gasGap(module.layer_id), m_stgcIdHelper.channelType(module.layer_id), chn ));
142  }
143  }
144  }
145  return chnls;
146 }
147 
149 NswDcsDbData::getDataForChannelHv(const DcsTechType tech, const Identifier& channelId, bool issTgcQ1OuterHv) const {
150  if(tech == DcsTechType::MMG){
151  if(!m_mmIdHelper.is_mm(channelId)) return nullptr;
152  Identifier dcsChannelIdStripHv = m_mmIdHelper.pcbID(channelId);
153  const ChannelDcsMap& dcsMap = m_data_hv_mmg; // later add something like: type == DcsDataType::HV ? m_data_hv : m_data_lv;
154  const unsigned int array_idx = identToModuleIdx(dcsChannelIdStripHv);
155  const unsigned int channel = m_mmIdHelper.channel(dcsChannelIdStripHv) -1;
156  if (dcsMap.size() > array_idx && dcsMap.at(array_idx).channels.size() > channel && dcsMap[array_idx].channels[channel]) return dcsMap[array_idx].channels[channel].get();
157  } else if (tech == DcsTechType::MMD) {
158  if(!m_mmIdHelper.is_mm(channelId)) return nullptr;
159  Identifier dcsChannelIdDriftHv = m_mmIdHelper.multilayerID(channelId);
160  const ChannelDcsMap& dcsMap = m_data_hv_mmd;
161  const unsigned int array_idx = identToModuleIdx(dcsChannelIdDriftHv);
162  const unsigned int channel = m_mmIdHelper.channel(dcsChannelIdDriftHv) -1;
163  if (dcsMap.size() > array_idx && dcsMap.at(array_idx).channels.size() > channel && dcsMap[array_idx].channels[channel]) return dcsMap[array_idx].channels[channel].get();
164  } else if(tech == DcsTechType::STG){
165  if(!m_stgcIdHelper.is_stgc(channelId)) return nullptr;
166 
167  // the parameter issTgcQ1OuterHv is only relevant for the Q1s of the stgcs. So set it to false if we are not in Q1, just in case
168  if(std::abs(m_stgcIdHelper.stationEta(channelId))!= 1) {issTgcQ1OuterHv=false;}
169  Identifier dcsChannelId = m_stgcIdHelper.hvID(channelId, !issTgcQ1OuterHv /* the function take isInnerQ1 therefore invert the isOuterQ1 variable*/);
170  const ChannelDcsMap& dcsMap = m_data_hv_stg;
171  const unsigned int array_idx = identToModuleIdx(dcsChannelId);
172  const unsigned int channel = m_stgcIdHelper.channel(dcsChannelId) -1;
173  if (dcsMap.size() > array_idx && dcsMap.at(array_idx).channels.size() > channel && dcsMap[array_idx].channels[channel]) return dcsMap[array_idx].channels[channel].get();
174  }
175  return nullptr;
176 }
177 
178 
179 bool NswDcsDbData::isGood(const EventContext& ctx, const Identifier& channelId, bool issTgcQ1OuterHv) const {
180  // here we will check the different DCS components that need to be good to declare a detector region as good
181  // for now we only we only have the HV data
182  if(!isGoodHv(channelId, issTgcQ1OuterHv)) return false;
183  //isGoodEltx and isGoodTdaq are still under validation, but since they are switched off in the NswDcsAlg their data will be empty so they do not reject hits for now.
184  bool permanentlyDisabled{false};
185  if(!isGoodTDaq(ctx, channelId, permanentlyDisabled)) return false;
186  if(!isGoodEltx(channelId)) return false;
187  if(!isConnectedChannel(channelId)) return false;
188  return true;
189 
190 }
191 
192 
193 bool NswDcsDbData::isGoodHv(const Identifier& channelId, bool issTgcQ1OuterHv) const {
197  return !dcs || dcs->fsmState == DcsFsmState::ON;
198  } else if (m_stgcIdHelper.is_mm(channelId)){
199  const NswDcsDbData::DcsConstants* dcsDrift = getDataForChannelHv(DcsTechType::MMD, channelId, issTgcQ1OuterHv);
200  bool driftHvIsGood = (!dcsDrift || dcsDrift->fsmState == DcsFsmState::ON);
201 
202  const NswDcsDbData::DcsConstants* dcsStrips = getDataForChannelHv(DcsTechType::MMG, channelId, issTgcQ1OuterHv);
203  bool stripHvIsGood = (!dcsStrips || dcsStrips->fsmState == DcsFsmState::ON);
204 
205  return driftHvIsGood && stripHvIsGood;
206  }
207  return false;
208 }
209 
210 bool NswDcsDbData::isGoodTDaq(const EventContext& ctx, const Identifier& channelId, bool &permanentlyDisabled) const {
212  const unsigned int array_idx = identToModuleIdx(channelId);
213  if(data.size()<=array_idx || data[array_idx].empty()) return true; // for this ro element no bad elink have been recorded
214  const std::map<Identifier, std::set<TDaqConstants>>& dataInRoElement = data[array_idx];
215  Identifier mapIdentifier{0};
216  uint elink{0};
217 
219  mapIdentifier = m_stgcIdHelper.febID(channelId);
220  auto mapper = Muon::nsw::MapperSTG();
222  } else {
223  mapIdentifier = m_mmIdHelper.febID(channelId);
224  auto mapper = Muon::nsw::MapperMMG();
225  mapper.elink_info(std::abs(m_mmIdHelper.stationEta(channelId))-1, m_mmIdHelper.channel(channelId), elink);
226  }
227 
228  auto elm = dataInRoElement.find(mapIdentifier);
229  if(elm == dataInRoElement.end()) return true; // channel in question was not deactivated at all
231  uint64_t evtTime = ctx.eventID().time_stamp()*1e9; // go from seconds to nanoseconds
232  evtTime += ctx.eventID().time_stamp_ns_offset();
233  x.timeSince = evtTime;
234  x.timeUntil = evtTime;
235  x.elink = elink;
236 
237  auto disabledLink = elm->second.find(x);
238  if(disabledLink != elm->second.end()){// elink was deactivated for this time period
239  permanentlyDisabled = disabledLink->permanentlyDisabled;
240  return false;
241  }
242  return true; // checked the channel in question, not deactivated for given run and lumi block combination, all good
243 }
244 
247  const unsigned int array_idx = identToModuleIdx(channelId);
248  if(data.size()<=array_idx || data[array_idx].empty()) return true; // for this ro element no bad elink have been recorded
249  if(data[array_idx].find(channelId) != data[array_idx].end()) return false;
250  return true;
251 }
252 
253 
255  // for stgc we do not have unconnected channels
256  if(m_stgcIdHelper.is_stgc(channelId)) return true;
257 
258  if(!m_mmIdHelper.is_mm(channelId)) throw std::runtime_error("the check for unconnected channels was called with an identifier that is in MM and not sTGC");
259 
260  const MuonGM::MMReadoutElement* detectorReadoutElement = m_muonGeoMgr->getMMReadoutElement(channelId);
261  if(!detectorReadoutElement) {
262  throw std::runtime_error("failed to retrieve MMReadoutElement");
263  }
264  const MuonGM::MuonChannelDesign* channelDesign = detectorReadoutElement->getDesign(channelId);
265  if(!channelDesign) {
266  throw std::runtime_error("failed to retrieve MuonChannelDesign");
267  }
268 
269  int channel_number = m_mmIdHelper.channel(channelId);
271  if(channel_number <= channelDesign->nMissedBottomStereo || channel_number >= channelDesign->totalStrips - channelDesign->nMissedTopStereo) {
272  return false;
273  }
274  } else {
275  if(channel_number <= channelDesign->nMissedBottomEta || channel_number >= channelDesign->totalStrips - channelDesign->nMissedTopEta) {
276  return false;
277  }
278  }
279  return true;
280 
281 }
sTgcIdHelper::multilayer
int multilayer(const Identifier &id) const
Definition: sTgcIdHelper.cxx:1017
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
NswDcsDbData::getDataForChannelHv
const DcsConstants * getDataForChannelHv(const DcsTechType tech, const Identifier &channelId, bool issTgcQ1OuterHv) const
Retrieves the calibration constant for a particular readout channel.
Definition: NswDcsDbData.cxx:149
NswDcsDbData::DcsTechType
DcsTechType
Definition: NswDcsDbData.h:22
NswDcsDbData::NswDcsDbData
NswDcsDbData(const MmIdHelper &mmHelper, const sTgcIdHelper &stgcHelper, const MuonGM::MuonDetectorManager *muonGeoMgr)
Definition: NswDcsDbData.cxx:22
NswDcsDbData::DcsTechType::STG
@ STG
NswDcsDbData::setDataEltx
void setDataEltx(const DcsTechType tech, const Identifier &chnlId)
Definition: NswDcsDbData.cxx:104
NswDcsDbData::isGood
bool isGood(const EventContext &ctx, const Identifier &channelId, bool issTgcQ1OuterHv=false) const
Returns whether the channel is alive, i.e. DCS state on, etc...
Definition: NswDcsDbData.cxx:179
NswDcsDbData::m_data_tdaq_mmg
ChannelTDaqMap m_data_tdaq_mmg
Definition: NswDcsDbData.h:79
sTgcIdHelper.h
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
NswDcsDbData::DcsModule::channels
std::vector< std::unique_ptr< DcsConstants > > channels
Definition: NswDcsDbData.h:71
sTgcIdHelper::gasGapMax
static int gasGapMax()
Definition: sTgcIdHelper.cxx:1044
sTgcIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int channelType, int channel) const
Definition: sTgcIdHelper.cxx:886
MuonIdHelper::detectorElement_hash_max
size_type detectorElement_hash_max() const
Definition: MuonIdHelper.h:186
MuonGM::MMReadoutElement::getDesign
const MuonChannelDesign * getDesign(const Identifier &id) const
returns the MuonChannelDesign class for the given identifier
Definition: MMReadoutElement.h:193
MmIdHelper::febID
Identifier febID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int radius) const
Definition: MmIdHelper.cxx:339
operator<<
std::ostream & operator<<(std::ostream &ostr, const NswDcsDbData::TDaqConstants &obj)
Definition: NswDcsDbData.cxx:29
MmIdHelper::get_detectorElement_hash
virtual int get_detectorElement_hash(const Identifier &id, IdentifierHash &hash_id) const override
Definition: MmIdHelper.cxx:268
x
#define x
NswDcsDbData::m_data_hv_stg
ChannelDcsMap m_data_hv_stg
Definition: NswDcsDbData.h:77
MapperMMG.h
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
MmIdHelper::multilayer
int multilayer(const Identifier &id) const
Definition: MmIdHelper.cxx:796
MuonIdHelper::isSmall
bool isSmall(const Identifier &id) const
Definition: MuonIdHelper.cxx:835
TRT::Hit::side
@ side
Definition: HitInfo.h:83
MuonCond::DcsFsmState::ON
@ ON
MuonIdHelper::is_stgc
bool is_stgc(const Identifier &id) const
Definition: MuonIdHelper.cxx:798
python.PyAthena.module
module
Definition: PyAthena.py:134
MmIdHelper::multilayerID
Identifier multilayerID(const Identifier &channeldID) const
Definition: MmIdHelper.cxx:276
uint
unsigned int uint
Definition: LArOFPhaseFill.cxx:20
MapperSTG.h
MMReadoutElement.h
NswDcsDbData::identToModuleIdx
unsigned int identToModuleIdx(const Identifier &chan_id) const
Definition: NswDcsDbData.cxx:34
sTgcIdHelper::channel
int channel(const Identifier &id) const override
Definition: sTgcIdHelper.cxx:1027
NswDcsDbData::TDaqConstants
Definition: NswDcsDbData.h:32
NswDcsDbData::DcsTechType::MMD
@ MMD
NswDcsDbData::isGoodHv
bool isGoodHv(const Identifier &channelId, bool issTgcQ1OuterHv=false) const
Definition: NswDcsDbData.cxx:193
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
sTgcIdHelper::gasGap
int gasGap(const Identifier &id) const override
get the hashes
Definition: sTgcIdHelper.cxx:1020
NswDcsDbData::isGoodEltx
bool isGoodEltx(const Identifier &channelId) const
Definition: NswDcsDbData.cxx:245
MuonCond::DcsConstants
Helper struct to cache all dcs constants in a common place of the memory.
Definition: MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondData/MuonCondData/Defs.h:31
MmIdHelper.h
MmIdHelper::gasGapMax
static int gasGapMax()
Definition: MmIdHelper.cxx:827
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
NswDcsDbData::ChannelDcsMap
std::vector< DcsModule > ChannelDcsMap
Definition: NswDcsDbData.h:74
Muon::nsw::MapperMMG
Definition: MapperMMG.h:15
NswDcsDbData::DcsModule
Definition: NswDcsDbData.h:70
MuonIdHelper::is_mm
bool is_mm(const Identifier &id) const
Definition: MuonIdHelper.cxx:801
MuonCond::DcsConstants::fsmState
DcsFsmState fsmState
Definition: MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondData/MuonCondData/Defs.h:34
CaloCondBlobAlgs_fillNoiseFromASCII.channelId
channelId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:122
NswDcsDbData::m_data_hv_mmd
ChannelDcsMap m_data_hv_mmd
Definition: NswDcsDbData.h:76
NswDcsDbData::DcsTechType::MMG
@ MMG
MuonGM::MuonChannelDesign::nMissedTopStereo
int nMissedTopStereo
Definition: MuonChannelDesign.h:45
NswDcsDbData::setDataHv
void setDataHv(const DcsTechType tech, const Identifier &chnlId, DcsConstants constants)
Definition: NswDcsDbData.cxx:56
NswDcsDbData::ChannelEltxMap
std::vector< std::set< Identifier > > ChannelEltxMap
Definition: NswDcsDbData.h:81
NswDcsDbData::isGoodTDaq
bool isGoodTDaq(const EventContext &ctx, const Identifier &channelId, bool &permanentlyDisabled) const
Definition: NswDcsDbData.cxx:210
MuonGM::MuonChannelDesign::totalStrips
int totalStrips
Definition: MuonChannelDesign.h:47
sTgcIdHelper
Definition: sTgcIdHelper.h:55
MuonIdHelper::stationEta
int stationEta(const Identifier &id) const
Definition: MuonIdHelper.cxx:809
sTgcIdHelper::get_detectorElement_hash
virtual int get_detectorElement_hash(const Identifier &id, IdentifierHash &hash_id) const override
Definition: sTgcIdHelper.cxx:287
MuonChannelDesign.h
NswDcsDbData::getChannelIdsHv
std::vector< Identifier > getChannelIdsHv(const DcsTechType tech, const std::string &side) const
Definition: NswDcsDbData.cxx:117
MuonGM::MuonChannelDesign
Definition: MuonChannelDesign.h:24
NswDcsDbData::m_data_eltx_mmg
ChannelEltxMap m_data_eltx_mmg
Definition: NswDcsDbData.h:82
MmIdHelper::channel
int channel(const Identifier &id) const override
Definition: MmIdHelper.cxx:800
MmIdHelper
Definition: MmIdHelper.h:54
MmIdHelper::gasGap
int gasGap(const Identifier &id) const override
get the hashes
Definition: MmIdHelper.cxx:798
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
NswDcsDbData::ChannelTDaqMap
std::vector< std::map< Identifier, std::set< TDaqConstants > >> ChannelTDaqMap
Definition: NswDcsDbData.h:78
constants
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:1
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:49
NswDcsDbData::m_data_hv_mmg
ChannelDcsMap m_data_hv_mmg
Definition: NswDcsDbData.h:75
MuonGM::MuonDetectorManager::getMMReadoutElement
const MMReadoutElement * getMMReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:255
NswDcsDbData::m_mmIdHelper
const MmIdHelper & m_mmIdHelper
Definition: NswDcsDbData.h:86
NswDcsDbData::isConnectedChannel
bool isConnectedChannel(const Identifier &channelId) const
Definition: NswDcsDbData.cxx:254
MmIdHelper::pcbID
Identifier pcbID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int pcb) const
Definition: MmIdHelper.cxx:303
MuonGM::MMReadoutElement
An MMReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station con...
Definition: MMReadoutElement.h:23
NswDcsDbData::DcsModule::layer_id
Identifier layer_id
Definition: NswDcsDbData.h:72
MuonGM::MuonChannelDesign::nMissedTopEta
int nMissedTopEta
Definition: MuonChannelDesign.h:43
NswDcsDbData::setDataTDaq
void setDataTDaq(const DcsTechType tech, const Identifier &chnlId, uint64_t timeSince, uint64_t timeUntil, unsigned int elink, bool permanentlyDisabled)
Definition: NswDcsDbData.cxx:91
sTgcIdHelper::febID
Identifier febID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int channelType) const
Definition: sTgcIdHelper.cxx:321
NswDcsDbData::m_stgcIdHelper
const sTgcIdHelper & m_stgcIdHelper
Definition: NswDcsDbData.h:87
NswDcsDbData::m_muonGeoMgr
const MuonGM::MuonDetectorManager * m_muonGeoMgr
Definition: NswDcsDbData.h:89
IdentifierHash
Definition: IdentifierHash.h:38
sTgcIdHelper::hvID
Identifier hvID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, bool isInnerQ1) const
Definition: sTgcIdHelper.cxx:338
python.PyAthena.obj
obj
Definition: PyAthena.py:135
NswDcsDbData.h
MmIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int channel) const
Definition: MmIdHelper.cxx:736
MmIdHelper::isStereo
bool isStereo(const Identifier &id) const
Definition: MmIdHelper.cxx:817
sTgcIdHelper::channelType
int channelType(const Identifier &id) const
Definition: sTgcIdHelper.cxx:1022
NswDcsDbData::m_data_tdaq_stg
ChannelTDaqMap m_data_tdaq_stg
Definition: NswDcsDbData.h:80
Muon::nsw::MapperSTG
Definition: MapperSTG.h:18
NswDcsDbData::m_data_eltx_stg
ChannelEltxMap m_data_eltx_stg
Definition: NswDcsDbData.h:83