ATLAS Offline Software
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Muon::MuonIdHelperSvc Class Reference

Helper service that creates muon Identifiers and can be used to print Identifiers. More...

#include <MuonIdHelperSvc.h>

Inheritance diagram for Muon::MuonIdHelperSvc:
Collaboration diagram for Muon::MuonIdHelperSvc:

Classes

struct  StationNameData
 

Public Member Functions

 MuonIdHelperSvc (const std::string &name, ISvcLocator *svc)
 default AlgService constructor More...
 
virtual ~MuonIdHelperSvc () override=default
 destructor More...
 
virtual StatusCode initialize () override
 AlgTool initilize. More...
 
virtual std::string toString (const Identifier &id) const override
 print all fields to string More...
 
virtual std::string toStringTech (const Identifier &id) const override
 print all fields up to technology to string More...
 
virtual std::string toStringStation (const Identifier &id) const override
 print all fields up to stationName to string More...
 
virtual std::string toStringChamber (const Identifier &id) const override
 print all fields up to chamber to string More...
 
virtual std::string toStringDetEl (const Identifier &id) const override
 print all fields up to detector element to string More...
 
virtual std::string toStringGasGap (const Identifier &id) const override
 print all fields up to gas gap to string More...
 
virtual std::string chamberNameString (const Identifier &id) const override
 print chamber name to string More...
 
virtual bool isMuon (const Identifier &id) const override
 returns whether this is a Muon Identifier or not More...
 
virtual bool isMdt (const Identifier &id) const override
 returns whether this is a MDT Identifier or not More...
 
virtual bool isMM (const Identifier &id) const override
 returns whether this is a MM Identifier or not More...
 
virtual bool isCsc (const Identifier &id) const override
 returns whether this is a CSC Identifier or not More...
 
virtual bool isRpc (const Identifier &id) const override
 returns whether this is a RPC Identifier or not More...
 
virtual bool isTgc (const Identifier &id) const override
 returns whether this is a TGC Identifier or not More...
 
virtual bool issTgc (const Identifier &id) const override
 returns whether this is a sTGC Identifier or not More...
 
virtual bool issMdt (const Identifier &id) const override
 returns whether this is a sMDT Identifier or not More...
 
virtual bool hasHPTDC (const Identifier &id) const override
 returns whether this Identifier belongs to an MDT with HPTDC or not NOTE that in Run4, no HPTDCs at all are planned to be present any more, so this function should be obsolete from Run4 onwards More...
 
virtual bool measuresPhi (const Identifier &id) const override
 returns whether channel measures phi or not More...
 
virtual bool isEndcap (const Identifier &id) const override
 returns whether this is an endcap Identifier or not More...
 
virtual bool isTrigger (const Identifier &id) const override
 returns whether trigger chamber id or not More...
 
virtual bool isSmallChamber (const Identifier &id) const override
 returns whether this is a small chamber, always returns true for TGCs More...
 
virtual int gasGap (const Identifier &id) const override
 returns gas gap: gasGap for RPC + TGC, wireLayer for CSC, tube for MDT More...
 
virtual Identifier chamberId (const Identifier &id) const override
 create a chamber ID More...
 
virtual Identifier detElId (const Identifier &id) const override
 create a detector element ID More...
 
virtual Identifier gasGapId (const Identifier &id) const override
 create a gasGap ID (will return layer Id for MDTs) More...
 
virtual Identifier layerId (const Identifier &id) const override
 create a layer ID, returns tube id for the MDTs More...
 
virtual const MdtIdHelpermdtIdHelper () const override
 access to MdtIdHelper More...
 
virtual const RpcIdHelperrpcIdHelper () const override
 access to RpcIdHelper More...
 
virtual const TgcIdHelpertgcIdHelper () const override
 access to TgcIdHelper More...
 
virtual const CscIdHelpercscIdHelper () const override
 access to CscIdHelper More...
 
virtual const sTgcIdHelperstgcIdHelper () const override
 access to TgcIdHelper More...
 
virtual const MmIdHelpermmIdHelper () const override
 access to CscIdHelper More...
 
virtual MuonStationIndex::ChIndex chamberIndex (const Identifier &id) const override
 calculate chamber index from Identifier More...
 
virtual MuonStationIndex::StIndex stationIndex (const Identifier &id) const override
 calculate station index from Identifier More...
 
virtual MuonStationIndex::PhiIndex phiIndex (const Identifier &id) const override
 calculate phi index from Identifier (not supported for MDT hits) More...
 
virtual MuonStationIndex::DetectorRegionIndex regionIndex (const Identifier &id) const override
 calculate detector region index from Identifier More...
 
virtual MuonStationIndex::LayerIndex layerIndex (const Identifier &id) const override
 calculate layer index from Identifier More...
 
virtual MuonStationIndex::TechnologyIndex technologyIndex (const Identifier &id) const override
 calculate layer index from Identifier More...
 
virtual int stationPhi (const Identifier &id) const override
 Return stationPhi for all technologies. More...
 
virtual int stationEta (const Identifier &id) const override
 Return stationEta for all technologies. More...
 
virtual std::string stationNameString (const Identifier &id) const override
 Return the station name string for all technologies. More...
 
virtual int stationName (const Identifier &id) const override
 Return stationName for all technologies. More...
 
virtual int stationRegion (const Identifier &id) const override
 Return stationRegion for all technologies. More...
 
virtual int sector (const Identifier &id) const override
 return sector number 1-16, odd=large, even=small More...
 
virtual const std::set< MuonStationIndex::TechnologyIndex > & technologiesInStation (MuonStationIndex::StIndex stIndex) const override
 Recieve all technologies in a station. More...
 
bool hasRPC () const override
 
bool hasTGC () const override
 
bool hasMDT () const override
 
bool hasCSC () const override
 
bool hasSTGC () const override
 
bool hasMM () const override
 
virtual IdentifierHash moduleHash (const Identifier &id) const override
 Returns the module hash associated to an Identifier. More...
 
virtual IdentifierHash detElementHash (const Identifier &id) const override
 Returns the detector element hash associated to an Identifier. More...
 

Private Types

using TechIdx = MuonStationIndex::TechnologyIndex
 
using ChIdx = MuonStationIndex::ChIndex
 
using StIdx = MuonStationIndex::StIndex
 
using PhiIdx = MuonStationIndex::PhiIndex
 

Private Member Functions

IdentifierHash moduleHash (const MuonIdHelper &idHelper, const Identifier &id) const
 
IdentifierHash detElementHash (const MuonIdHelper &idHelper, const Identifier &id) const
 

Private Attributes

const RpcIdHelperm_rpcIdHelper {nullptr}
 Sub detector specific IdHelpers. More...
 
const TgcIdHelperm_tgcIdHelper {nullptr}
 
const CscIdHelperm_cscIdHelper {nullptr}
 
const MdtIdHelperm_mdtIdHelper {nullptr}
 
const MmIdHelperm_mmIdHelper {nullptr}
 
const sTgcIdHelperm_stgcIdHelper {nullptr}
 
const MuonIdHelperm_primaryHelper {nullptr}
 
Gaudi::Property< bool > m_hasMDT {this, "HasMDT", true, "Specify whether the current detector layour contains MDT chambers"}
 
Gaudi::Property< bool > m_hasRPC {this, "HasRPC", true, "Specify whether the current detector layour contains RPC chambers"}
 
Gaudi::Property< bool > m_hasTGC {this, "HasTGC", true, "Specify whether the current detector layour contains TGC chambers"}
 
Gaudi::Property< bool > m_hasCSC {this, "HasCSC", true, "Specify whether current detector layout contains CSC chambers"}
 
Gaudi::Property< bool > m_hasSTGC {this, "HasSTGC", true, "Specify whether current detector layout contains STGC chambers"}
 
Gaudi::Property< bool > m_hasMM {this, "HasMM", true, "Specify whether current detector layout contains MicroMegas chambers"}
 
ServiceHandle< StoreGateSvcm_detStore {this, "DetectorStore", "DetectorStore"}
 
std::vector< StationNameDatam_stationNameData {}
 
std::vector< TechIdxm_technologies {}
 
int m_BIS_stat {-1}
 
std::unordered_set< Identifierm_smdt_stat {}
 
std::array< std::set< TechIdx >, static_cast< int >StIdx::StIndexMax)> m_techPerStation {}
 Array holding which technologies are there per station. More...
 

Detailed Description

Helper service that creates muon Identifiers and can be used to print Identifiers.

Definition at line 19 of file MuonIdHelperSvc.h.

Member Typedef Documentation

◆ ChIdx

Definition at line 202 of file MuonIdHelperSvc.h.

◆ PhiIdx

Definition at line 204 of file MuonIdHelperSvc.h.

◆ StIdx

Definition at line 203 of file MuonIdHelperSvc.h.

◆ TechIdx

Definition at line 201 of file MuonIdHelperSvc.h.

Constructor & Destructor Documentation

◆ MuonIdHelperSvc()

Muon::MuonIdHelperSvc::MuonIdHelperSvc ( const std::string &  name,
ISvcLocator *  svc 
)

default AlgService constructor

Definition at line 14 of file MuonIdHelperSvc.cxx.

14  :
15  base_class(name, svc) {}

◆ ~MuonIdHelperSvc()

virtual Muon::MuonIdHelperSvc::~MuonIdHelperSvc ( )
overridevirtualdefault

destructor

Member Function Documentation

◆ chamberId()

Identifier Muon::MuonIdHelperSvc::chamberId ( const Identifier id) const
overridevirtual

create a chamber ID

Definition at line 421 of file MuonIdHelperSvc.cxx.

421  {
422  Identifier chId;
423  // use phi hits on segment
424  if (isTgc(id)) {
425  chId = m_tgcIdHelper->elementID(id);
426  } else if (isRpc(id)) {
427  chId = m_rpcIdHelper->elementID(id);
428  } else if (isMM(id)) {
429  chId = m_mmIdHelper->elementID(id);
430  } else if (issTgc(id)) {
431  chId = m_stgcIdHelper->elementID(id);
432  } else if (isCsc(id)) {
433  chId = m_cscIdHelper->channelID(id, 2, 1, 1, 1);
434  } else if (isMdt(id)) {
435  chId = m_mdtIdHelper->elementID(id);
436  }
437  return chId;
438  }

◆ chamberIndex()

MuonStationIndex::ChIndex Muon::MuonIdHelperSvc::chamberIndex ( const Identifier id) const
overridevirtual

calculate chamber index from Identifier

Definition at line 272 of file MuonIdHelperSvc.cxx.

272  {
273  if (!id.is_valid() || !isMuon(id)) {
274  if (id.is_valid()) ATH_MSG_WARNING("chamberIndex: invalid ID " << m_primaryHelper->print_to_string(id));
275  return ChIdx::ChUnknown;
276  }
277  return m_stationNameData[stationName(id)].chIndex;
278  }

◆ chamberNameString()

std::string Muon::MuonIdHelperSvc::chamberNameString ( const Identifier id) const
overridevirtual

print chamber name to string

Definition at line 372 of file MuonIdHelperSvc.cxx.

372  {
374  }

◆ cscIdHelper()

virtual const CscIdHelper& Muon::MuonIdHelperSvc::cscIdHelper ( ) const
inlineoverridevirtual

access to CscIdHelper

Definition at line 117 of file MuonIdHelperSvc.h.

117 { return *m_cscIdHelper; }

◆ detElementHash() [1/2]

IdentifierHash Muon::MuonIdHelperSvc::detElementHash ( const Identifier id) const
overridevirtual

Returns the detector element hash associated to an Identifier.

Definition at line 653 of file MuonIdHelperSvc.cxx.

653  {
654  if (isMdt(id)) return detElementHash(*m_mdtIdHelper, id);
655  else if (isRpc(id)) return detElementHash(*m_rpcIdHelper, id);
656  else if (isTgc(id)) return detElementHash(*m_tgcIdHelper, id);
657  else if (isMM(id)) return detElementHash(*m_mmIdHelper, id);
658  else if (issTgc(id)) return detElementHash(*m_stgcIdHelper, id);
659  else if (isCsc(id)) return detElementHash(*m_cscIdHelper, id);
660  ATH_MSG_WARNING("detElementHash(): No muon Identifier "<<id);
661  return IdentifierHash{};
662  }

◆ detElementHash() [2/2]

IdentifierHash Muon::MuonIdHelperSvc::detElementHash ( const MuonIdHelper idHelper,
const Identifier id 
) const
inlineprivate

Definition at line 635 of file MuonIdHelperSvc.cxx.

635  {
637  if (idHelper.get_detectorElement_hash(id, hash) ||
638  static_cast<unsigned int>(hash)>= idHelper.detectorElement_hash_max()) {
639  ATH_MSG_VERBOSE("Failed to deduce detector element hash "<<toString(id));
640  }
641  return hash;
642  }

◆ detElId()

Identifier Muon::MuonIdHelperSvc::detElId ( const Identifier id) const
overridevirtual

create a detector element ID

Definition at line 440 of file MuonIdHelperSvc.cxx.

440  {
441  // use phi hits on segment
442  if (isTgc(id)) {
443  return m_tgcIdHelper->elementID(id);
444  } else if (isRpc(id)) {
445  return m_rpcIdHelper->channelID(id, m_rpcIdHelper->doubletZ(id), m_rpcIdHelper->doubletPhi(id), 1, false, 1);
446  } else if (isCsc(id)) {
447  return m_cscIdHelper->channelID(id, 2, 1, 1, 1);
448  } else if (issTgc(id)) {
449  return m_stgcIdHelper->channelID(id, m_stgcIdHelper->multilayer(id), 1, sTgcIdHelper::sTgcChannelTypes::Strip, 1);
450  } else if (isMM(id)) {
451  return m_mmIdHelper->channelID(id, m_mmIdHelper->multilayer(id), 1, 1);
452  }
453  return m_mdtIdHelper->channelID(id, m_mdtIdHelper->multilayer(id), 1, 1);
454  }

◆ gasGap()

int Muon::MuonIdHelperSvc::gasGap ( const Identifier id) const
overridevirtual

returns gas gap: gasGap for RPC + TGC, wireLayer for CSC, tube for MDT

Definition at line 184 of file MuonIdHelperSvc.cxx.

184  {
185  if (isRpc(id)) {
186  return m_rpcIdHelper->gasGap(id);
187  } else if (isTgc(id)) {
188  return m_tgcIdHelper->gasGap(id);
189 
190  } else if (isCsc(id)) {
191  return m_cscIdHelper->wireLayer(id);
192 
193  } else if (issTgc(id)) {
194  return m_stgcIdHelper->gasGap(id);
195 
196  } else if (isMM(id)) {
197  return m_mmIdHelper->gasGap(id);
198  } else {
199  return m_mdtIdHelper->channel(id);
200  }
201  return 1;
202  }

◆ gasGapId()

Identifier Muon::MuonIdHelperSvc::gasGapId ( const Identifier id) const
overridevirtual

create a gasGap ID (will return layer Id for MDTs)

Definition at line 476 of file MuonIdHelperSvc.cxx.

476  {
477  // use phi hits on segment
478  if (isTgc(id)) {
479  return m_tgcIdHelper->channelID(id, m_tgcIdHelper->gasGap(id), false, 1);
480 
481  } else if (isRpc(id)) {
483  m_rpcIdHelper->gasGap(id), false, 1);
484 
485  } else if (isCsc(id)) {
487  } else if (isMM(id)) {
489 
490  } else if (issTgc(id)) {
492  sTgcIdHelper::sTgcChannelTypes::Strip, 1);
493 
494  }
496  }

◆ hasCSC()

bool Muon::MuonIdHelperSvc::hasCSC ( ) const
override

Definition at line 613 of file MuonIdHelperSvc.cxx.

613 { return m_hasCSC; }

◆ hasHPTDC()

bool Muon::MuonIdHelperSvc::hasHPTDC ( const Identifier id) const
overridevirtual

returns whether this Identifier belongs to an MDT with HPTDC or not NOTE that in Run4, no HPTDCs at all are planned to be present any more, so this function should be obsolete from Run4 onwards

NOTE that in Run4, no HPTDCs at all are planned to be present any more, so this function should be obsolete from Run4 onwards

Definition at line 242 of file MuonIdHelperSvc.cxx.

242  {
245  // the remaining sMDTs (installed in BI in LS1) all have an HPTDC in Run3
246  // all BME sMDTs have no HPTDC
247  return issMdt(id) && !m_mdtIdHelper->isBME(id);
248  }

◆ hasMDT()

bool Muon::MuonIdHelperSvc::hasMDT ( ) const
override

Definition at line 612 of file MuonIdHelperSvc.cxx.

612 { return m_mdtIdHelper != nullptr; }

◆ hasMM()

bool Muon::MuonIdHelperSvc::hasMM ( ) const
override

Definition at line 615 of file MuonIdHelperSvc.cxx.

615 { return m_hasMM; }

◆ hasRPC()

bool Muon::MuonIdHelperSvc::hasRPC ( ) const
override

Definition at line 610 of file MuonIdHelperSvc.cxx.

610 { return m_rpcIdHelper != nullptr; }

◆ hasSTGC()

bool Muon::MuonIdHelperSvc::hasSTGC ( ) const
override

Definition at line 614 of file MuonIdHelperSvc.cxx.

614 { return m_hasSTGC; }

◆ hasTGC()

bool Muon::MuonIdHelperSvc::hasTGC ( ) const
override

Definition at line 611 of file MuonIdHelperSvc.cxx.

611 { return m_tgcIdHelper != nullptr; }

◆ initialize()

StatusCode Muon::MuonIdHelperSvc::initialize ( )
overridevirtual

AlgTool initilize.

Find an id helper that is not a nullptr

Cache the sMDT stations

Definition at line 17 of file MuonIdHelperSvc.cxx.

17  {
18  ATH_CHECK(m_detStore.retrieve());
19  if (m_hasMDT) ATH_CHECK(m_detStore->retrieve(m_mdtIdHelper));
20  if (m_hasRPC) ATH_CHECK(m_detStore->retrieve(m_rpcIdHelper));
21  if (m_hasTGC) ATH_CHECK(m_detStore->retrieve(m_tgcIdHelper));
22  if (m_hasCSC) ATH_CHECK(m_detStore->retrieve(m_cscIdHelper));
24  if (m_hasMM) ATH_CHECK(m_detStore->retrieve(m_mmIdHelper));
25 
27  using AllHelperArray = std::array<const MuonIdHelper*, 6>;
28  const AllHelperArray allHelpers{m_mdtIdHelper, m_rpcIdHelper, m_tgcIdHelper,
30  AllHelperArray::const_iterator itr = std::ranges::find_if(allHelpers,
31  [](const MuonIdHelper* h){return h != nullptr;});
32  if (itr == allHelpers.end()){
33  ATH_MSG_WARNING("No MuonIdHelper has been created before. Please do not setup the service if no muon layout is loaded");
34  return StatusCode::SUCCESS;
35  }
36  m_primaryHelper = (*itr);
37 
38  std::stringstream techStr{};
39 
40  for (int tech = 0; tech <= m_primaryHelper->technologyNameIndexMax(); ++tech) {
41  std::string name = m_primaryHelper->technologyString(tech);
42 
43  if (name == "MDT") m_technologies.push_back(TechIdx::MDT);
44  if (name == "CSC") m_technologies.push_back(TechIdx::CSCI);
45  if (name == "RPC") m_technologies.push_back(TechIdx::RPC);
46  if (name == "TGC") m_technologies.push_back(TechIdx::TGC);
47  if (name == "STGC") m_technologies.push_back(TechIdx::STGC);
48  if (name == "MM") m_technologies.push_back(TechIdx::MM);
49  techStr<< ", " << tech << " " << name;
50  }
51  ATH_MSG_DEBUG(" Technologies: size " << m_primaryHelper->technologyNameIndexMax()<<" "<<techStr.str());
52 
53  unsigned int nstationsNames = m_primaryHelper->stationNameIndexMax() + 1;
54  m_stationNameData.resize(nstationsNames);
55  for (int i = 0; i <= m_primaryHelper->stationNameIndexMax(); ++i) {
56  std::string name = m_primaryHelper->stationNameString(i);
57  if (name.compare(MuonIdHelper::BAD_NAME) == 0) continue;
58 
59  StationNameData& data = m_stationNameData[i];
60 
61  data.stationName = name;
62  data.isEndcap = m_primaryHelper->isEndcap(i);
63  data.isSmall = m_primaryHelper->isSmall(i);
64 
65  if (data.isEndcap) {
66  if (data.stationName[1] == '1')
67  data.chIndex = ChIdx::EML;
68  else if (data.stationName[1] == '2')
69  data.chIndex = ChIdx::EML;
70  else if (data.stationName[1] == '3')
71  data.chIndex = ChIdx::EML;
72  else if (data.stationName[1] == '4')
73  data.chIndex = ChIdx::EIL;
74 
75  if (data.stationName[1] == 'O') {
76  if (data.stationName[2] == 'L')
77  data.chIndex = ChIdx::EOL;
78  else
79  data.chIndex = ChIdx::EOS;
80  } else if (data.stationName[1] == 'M') {
81  if (data.stationName[2] == 'L')
82  data.chIndex = ChIdx::EML;
83  else
84  data.chIndex = ChIdx::EMS;
85  } else if (data.stationName[1] == 'I') {
86  if (data.stationName[2] == 'L')
87  data.chIndex = ChIdx::EIL;
88  else
89  data.chIndex = ChIdx::EIS;
90  } else if (data.stationName[1] == 'E') {
91  if (data.stationName[0] == 'B') {
92  data.chIndex = ChIdx::BEE;
93  } else {
94  if (data.stationName[2] == 'L')
95  data.chIndex = ChIdx::EEL;
96  else
97  data.chIndex = ChIdx::EES;
98  }
99  } else if (data.stationName[0] == 'C') {
100  if (data.stationName[2] == 'L')
101  data.chIndex = ChIdx::CSL;
102  else
103  data.chIndex = ChIdx::CSS;
104  }
105  if (data.stationName[0] == 'S' || data.stationName[0] == 'M') {
106  if (data.isSmall)
107  data.chIndex = ChIdx::EIS;
108  else
109  data.chIndex = ChIdx::EIL;
110  }
111 
112  } else {
113  if (data.stationName[1] == 'O') {
114  if (data.stationName[2] == 'L')
115  data.chIndex = ChIdx::BOL;
116  else
117  data.chIndex = ChIdx::BOS;
118  } else if (data.stationName[1] == 'M') {
119  if (data.stationName[2] == 'L' || data.stationName[2] == 'E')
120  data.chIndex = ChIdx::BML;
121  else
122  data.chIndex = ChIdx::BMS;
123  } else if (data.stationName[1] == 'I') {
124  if (data.stationName[2] == 'L' || data.stationName[2] == 'M' || data.stationName[2] == 'R')
125  data.chIndex = ChIdx::BIL;
126  else
127  data.chIndex = ChIdx::BIS;
128  }
129  }
130  if (data.chIndex == ChIdx::ChUnknown) {
131  ATH_MSG_ERROR("data.chIndex is negative in MuonIdHelperSvc::initialize ");
132  return StatusCode::FAILURE;
133  }
134  data.stIndex = MuonStationIndex::toStationIndex(data.chIndex);
135 
136  if (msgLvl(MSG::DEBUG)) {
137  msg(MSG::DEBUG) << "Adding station " << i << " " << data.stationName << " ";
138  if (data.isEndcap)
139  msg(MSG::DEBUG) << " Endcap, ";
140  else
141  msg(MSG::DEBUG) << " Barrel, ";
142  if (data.isSmall)
143  msg(MSG::DEBUG) << " Small, ";
144  else
145  msg(MSG::DEBUG) << " Large, ";
146 
148  }
149  }
151  // now, let's check if we are in the inner barrel layer, and if there are RPCs installed
152  // if yes, the MDT chambers must be sMDTs
153  if (m_mdtIdHelper && m_rpcIdHelper) {
155  for (int eta = MdtIdHelper::stationEtaMin(true); eta <= MdtIdHelper::stationEtaMax(true); ++eta) {
156  for (int phi = 1; phi <= 8; ++phi) {
157  // now, let's check if we are in the inner barrel layer, and if there are RPCs installed
158  // if yes, the MDT chambers must be sMDTs
159  // now try to retrieve RPC identifier with the same station name/eta/phi and check if it is valid
160  bool isValid = false;
161  m_rpcIdHelper->elementID(m_BIS_stat, eta, phi, 1, isValid);
162  // last 4 arguments are: doubletR, check, isValid
163  // there is a BI RPC in the same station, thus, this station was already upgraded and sMDTs are present
164  if (!isValid) continue;
165  m_smdt_stat.emplace(m_mdtIdHelper->elementID(m_BIS_stat, eta, phi));
166  }
167  }
168  }
169 
170  std::ranges::for_each(allHelpers, [this](const MuonIdHelper* idHelper){
171  if (!idHelper) return;
172  const TechIdx techIdx = technologyIndex(*idHelper->module_begin());
173  for (auto itr = idHelper->module_begin(); itr != idHelper->module_end(); ++itr) {
174  const int stIdx = static_cast<int>(MuonStationIndex::toStationIndex(chamberIndex(*itr)));
175  m_techPerStation[stIdx].insert(techIdx);
176  }
177  });
178 
179  ATH_MSG_DEBUG("Configured the service with the following flags --- hasMDT: "<< hasMDT()<<" hasRPC: "<<hasRPC()
180  <<" hasTGC"<< hasTGC() << " hasCSC: "<< hasCSC() << " hasSTGC: " << hasSTGC() << " hasMM: " << hasMM() );
181  return StatusCode::SUCCESS;
182  }

◆ isCsc()

bool Muon::MuonIdHelperSvc::isCsc ( const Identifier id) const
overridevirtual

returns whether this is a CSC Identifier or not

Definition at line 213 of file MuonIdHelperSvc.cxx.

213  {
214  return m_cscIdHelper && m_cscIdHelper->is_csc(id);
215  }

◆ isEndcap()

bool Muon::MuonIdHelperSvc::isEndcap ( const Identifier id) const
overridevirtual

returns whether this is an endcap Identifier or not

Definition at line 268 of file MuonIdHelperSvc.cxx.

268 { return m_primaryHelper->isEndcap(id); }

◆ isMdt()

bool Muon::MuonIdHelperSvc::isMdt ( const Identifier id) const
overridevirtual

returns whether this is a MDT Identifier or not

Definition at line 207 of file MuonIdHelperSvc.cxx.

207  {
208  return m_mdtIdHelper && m_mdtIdHelper->is_mdt(id);
209  }

◆ isMM()

bool Muon::MuonIdHelperSvc::isMM ( const Identifier id) const
overridevirtual

returns whether this is a MM Identifier or not

Definition at line 210 of file MuonIdHelperSvc.cxx.

210  {
211  return m_mmIdHelper && m_mmIdHelper->is_mm(id);
212  }

◆ isMuon()

bool Muon::MuonIdHelperSvc::isMuon ( const Identifier id) const
overridevirtual

returns whether this is a Muon Identifier or not

Definition at line 204 of file MuonIdHelperSvc.cxx.

204  {
205  return m_primaryHelper && m_primaryHelper->is_muon(id);
206  }

◆ isRpc()

bool Muon::MuonIdHelperSvc::isRpc ( const Identifier id) const
overridevirtual

returns whether this is a RPC Identifier or not

Definition at line 216 of file MuonIdHelperSvc.cxx.

216  {
217  return m_rpcIdHelper && m_rpcIdHelper->is_rpc(id);
218  }

◆ isSmallChamber()

bool Muon::MuonIdHelperSvc::isSmallChamber ( const Identifier id) const
overridevirtual

returns whether this is a small chamber, always returns true for TGCs

Definition at line 270 of file MuonIdHelperSvc.cxx.

270 { return m_primaryHelper->isSmall(id); }

◆ issMdt()

bool Muon::MuonIdHelperSvc::issMdt ( const Identifier id) const
overridevirtual

returns whether this is a sMDT Identifier or not

Definition at line 233 of file MuonIdHelperSvc.cxx.

233  {
234  if (!isMdt(id))
235  return false;
236  if (stationName(id) == m_BIS_stat) {
237  return m_smdt_stat.find(m_mdtIdHelper->elementID(id)) != m_smdt_stat.end();
238  }
239  return m_mdtIdHelper->isBME(id) || m_mdtIdHelper->isBMG(id);
240  }

◆ issTgc()

bool Muon::MuonIdHelperSvc::issTgc ( const Identifier id) const
overridevirtual

returns whether this is a sTGC Identifier or not

Definition at line 224 of file MuonIdHelperSvc.cxx.

224  {
225  return m_stgcIdHelper && m_stgcIdHelper->is_stgc(id);
226  }

◆ isTgc()

bool Muon::MuonIdHelperSvc::isTgc ( const Identifier id) const
overridevirtual

returns whether this is a TGC Identifier or not

Definition at line 220 of file MuonIdHelperSvc.cxx.

220  {
221  return m_tgcIdHelper && m_tgcIdHelper->is_tgc(id);
222  }

◆ isTrigger()

bool Muon::MuonIdHelperSvc::isTrigger ( const Identifier id) const
overridevirtual

returns whether trigger chamber id or not

Definition at line 264 of file MuonIdHelperSvc.cxx.

264  {
265  return isRpc(id) || isTgc(id);
266  }

◆ layerId()

Identifier Muon::MuonIdHelperSvc::layerId ( const Identifier id) const
overridevirtual

create a layer ID, returns tube id for the MDTs

Return Identifier for the Mdts

Definition at line 456 of file MuonIdHelperSvc.cxx.

456  {
457  // use phi hits on segment
458  if (isTgc(id)) {
460  } else if (isRpc(id)) {
463  } else if (isCsc(id)) {
465  m_cscIdHelper->measuresPhi(id), 1);
466  } else if (isMM(id)) {
468  } else if (issTgc(id)) {
471  }
473  return id;
474  }

◆ layerIndex()

MuonStationIndex::LayerIndex Muon::MuonIdHelperSvc::layerIndex ( const Identifier id) const
overridevirtual

calculate layer index from Identifier

Definition at line 333 of file MuonIdHelperSvc.cxx.

333  {
335  }

◆ mdtIdHelper()

virtual const MdtIdHelper& Muon::MuonIdHelperSvc::mdtIdHelper ( ) const
inlineoverridevirtual

access to MdtIdHelper

Definition at line 108 of file MuonIdHelperSvc.h.

108 { return *m_mdtIdHelper; }

◆ measuresPhi()

bool Muon::MuonIdHelperSvc::measuresPhi ( const Identifier id) const
overridevirtual

returns whether channel measures phi or not

Definition at line 250 of file MuonIdHelperSvc.cxx.

250  {
251  if (isRpc(id)) {
252  return m_rpcIdHelper->measuresPhi(id);
253  } else if (isTgc(id)) {
254  return m_tgcIdHelper->measuresPhi(id);
255  } else if (isCsc(id)) {
256  return m_cscIdHelper->measuresPhi(id);
257  } else if (issTgc(id)) {
258  return m_stgcIdHelper->measuresPhi(id);
259  }
260  // MM and MDTs only measure eta
261  return false;
262  }

◆ mmIdHelper()

virtual const MmIdHelper& Muon::MuonIdHelperSvc::mmIdHelper ( ) const
inlineoverridevirtual

access to CscIdHelper

Definition at line 123 of file MuonIdHelperSvc.h.

123 { return *m_mmIdHelper; }

◆ moduleHash() [1/2]

IdentifierHash Muon::MuonIdHelperSvc::moduleHash ( const Identifier id) const
overridevirtual

Returns the module hash associated to an Identifier.

Definition at line 643 of file MuonIdHelperSvc.cxx.

643  {
644  if (isMdt(id)) return moduleHash(*m_mdtIdHelper, id);
645  else if (isRpc(id)) return moduleHash(*m_rpcIdHelper, id);
646  else if (isTgc(id)) return moduleHash(*m_tgcIdHelper, id);
647  else if (isMM(id)) return moduleHash(*m_mmIdHelper, id);
648  else if (issTgc(id)) return moduleHash(*m_stgcIdHelper, id);
649  else if (isCsc(id)) return moduleHash(*m_cscIdHelper, id);
650  ATH_MSG_WARNING("moduleHash(): No muon Identifier "<<id);
651  return IdentifierHash{};
652  }

◆ moduleHash() [2/2]

IdentifierHash Muon::MuonIdHelperSvc::moduleHash ( const MuonIdHelper idHelper,
const Identifier id 
) const
inlineprivate

Definition at line 627 of file MuonIdHelperSvc.cxx.

627  {
629  if (idHelper.get_module_hash(id, hash) ||
630  static_cast<unsigned int>(hash) >= idHelper.module_hash_max()){
631  ATH_MSG_VERBOSE("Failed to deduce module hash "<<toString(id));
632  }
633  return hash;
634  }

◆ phiIndex()

MuonStationIndex::PhiIndex Muon::MuonIdHelperSvc::phiIndex ( const Identifier id) const
overridevirtual

calculate phi index from Identifier (not supported for MDT hits)

Definition at line 288 of file MuonIdHelperSvc.cxx.

288  {
289  if (!id.is_valid() || !isMuon(id)) {
290  if (id.is_valid()) ATH_MSG_WARNING("phiIndex: invalid ID " << m_primaryHelper->print_to_string(id));
291  return PhiIdx::PhiUnknown;
292  }
293  if (isMdt(id) || isMM(id)) {
294  ATH_MSG_WARNING("phiIndex: not supported for " << toString(id));
295  return PhiIdx::PhiUnknown;
296  }
297  PhiIdx index{PhiIdx::PhiUnknown};
298  const StIdx stIndex = stationIndex(id);
299  if (stIndex == StIdx::BI) {
300  index = m_rpcIdHelper->doubletR(id) == 1 ? PhiIdx::BI1 : PhiIdx::BI2;
301  } else if (stIndex == StIdx::BM) {
302  index = m_rpcIdHelper->doubletR(id) == 1 ? PhiIdx::BM1 : PhiIdx::BM2;
303  } else if (stIndex == StIdx::BO) {
304  index = m_rpcIdHelper->doubletR(id) == 1 ? PhiIdx::BO1 : PhiIdx::BO2;
305  } else if (stIndex == StIdx::EI) {
306  if (isCsc(id)) {
307  index = PhiIdx::CSC;
308  } else if (isTgc(id)) {
309  index = PhiIdx::T4;
310  } else if (m_stgcIdHelper->multilayer(id) == 1) {
311  index = PhiIdx::STGC1;
312  } else {
313  index = PhiIdx::STGC2;
314  }
315  } else if (stIndex == StIdx::EM) {
316  std::string chamberName = chamberNameString(id);
317  if (chamberName[1] == '1')
318  index = PhiIdx::T1;
319  else if (chamberName[1] == '2')
320  index = PhiIdx::T2;
321  else
322  index = PhiIdx::T3;
323  }
324  return index;
325  }

◆ regionIndex()

MuonStationIndex::DetectorRegionIndex Muon::MuonIdHelperSvc::regionIndex ( const Identifier id) const
overridevirtual

calculate detector region index from Identifier

Definition at line 327 of file MuonIdHelperSvc.cxx.

327  {
328  using DetRegIdx = MuonStationIndex::DetectorRegionIndex;
329  if (isEndcap(id)) return stationEta(id) < 0 ? DetRegIdx::EndcapC : DetRegIdx::EndcapA;
330  return DetRegIdx::Barrel;
331  }

◆ rpcIdHelper()

virtual const RpcIdHelper& Muon::MuonIdHelperSvc::rpcIdHelper ( ) const
inlineoverridevirtual

access to RpcIdHelper

Definition at line 111 of file MuonIdHelperSvc.h.

111 { return *m_rpcIdHelper; }

◆ sector()

int Muon::MuonIdHelperSvc::sector ( const Identifier id) const
overridevirtual

return sector number 1-16, odd=large, even=small

Definition at line 582 of file MuonIdHelperSvc.cxx.

582  {
583  // TGC has different segmentation, return 0 for the moment
584  if (isTgc(id)) {
585  auto initTgcSectorMapping = [&]() -> std::vector<int>* {
586  std::vector<int>* mapping = nullptr;
587  StatusCode sc = m_detStore->retrieve(mapping, "TGC_SectorMapping");
588  if (sc.isFailure() || !mapping) {
589  ATH_MSG_WARNING("sector: failed to retrieve TGC sector mapping");
590  return nullptr;
591  }
592  ATH_MSG_DEBUG("sector: retrieve TGC sector mapping " << mapping->size());
593  return mapping;
594  };
595  static const std::vector<int> tgcSectorMapping = *initTgcSectorMapping();
596 
599  if (hash >= tgcSectorMapping.size()) {
600  ATH_MSG_WARNING("sector: TGC not yet supported");
601  return 0;
602  }
603  return tgcSectorMapping[hash];
604  }
605  int sect = 2 * stationPhi(id);
606  if (!isSmallChamber(id)) --sect;
607  return sect;
608  }

◆ stationEta()

int Muon::MuonIdHelperSvc::stationEta ( const Identifier id) const
overridevirtual

Return stationEta for all technologies.

Definition at line 519 of file MuonIdHelperSvc.cxx.

519  {
520  if (!id.is_valid()) {
521  ATH_MSG_WARNING("stationEta: invalid ID");
522  return 0;
523  }
524  if (isRpc(id)) {
525  return m_rpcIdHelper->stationEta(id);
526  } else if (isTgc(id)) {
527  return m_tgcIdHelper->stationEta(id);
528  } else if (isMdt(id)) {
529  return m_mdtIdHelper->stationEta(id);
530  } else if (isCsc(id)) {
531  return m_cscIdHelper->stationEta(id);
532  } else if (issTgc(id)) {
533  return m_stgcIdHelper->stationEta(id);
534  } else if (isMM(id)) {
535  return m_mmIdHelper->stationEta(id);
536  }
537  return 0;
538  }

◆ stationIndex()

MuonStationIndex::StIndex Muon::MuonIdHelperSvc::stationIndex ( const Identifier id) const
overridevirtual

calculate station index from Identifier

Definition at line 280 of file MuonIdHelperSvc.cxx.

280  {
281  if (!id.is_valid() || !isMuon(id)) {
282  if (id.is_valid()) ATH_MSG_WARNING("stationIndex: invalid ID " << m_primaryHelper->print_to_string(id));
283  return StIdx::StUnknown;
284  }
285  return m_stationNameData[stationName(id)].stIndex;
286  }

◆ stationName()

int Muon::MuonIdHelperSvc::stationName ( const Identifier id) const
overridevirtual

Return stationName for all technologies.

Definition at line 540 of file MuonIdHelperSvc.cxx.

540  {
541  if (!id.is_valid()) {
542  ATH_MSG_WARNING("stationName: invalid ID");
543  return 0;
544  }
545  if (isRpc(id)) {
546  return m_rpcIdHelper->stationName(id);
547  } else if (isTgc(id)) {
548  return m_tgcIdHelper->stationName(id);
549  } else if (isMdt(id)) {
550  return m_mdtIdHelper->stationName(id);
551  } else if (isCsc(id)) {
552  return m_cscIdHelper->stationName(id);
553  } else if (issTgc(id)) {
554  return m_stgcIdHelper->stationName(id);
555  } else if (isMM(id)) {
556  return m_mmIdHelper->stationName(id);
557  }
558  return 0;
559  }

◆ stationNameString()

std::string Muon::MuonIdHelperSvc::stationNameString ( const Identifier id) const
overridevirtual

Return the station name string for all technologies.

Definition at line 617 of file MuonIdHelperSvc.cxx.

617  {
618  const int station = stationName(id);
619  if (isMdt(id)) return m_mdtIdHelper->stationNameString(station);
620  else if (isRpc(id)) return m_rpcIdHelper->stationNameString(station);
621  else if (isTgc(id)) return m_tgcIdHelper->stationNameString(station);
622  else if (isMM(id)) return m_mmIdHelper->stationNameString(station);
623  else if (issTgc(id)) return m_stgcIdHelper->stationNameString(station);
624  else if (isCsc(id)) return m_cscIdHelper->stationNameString(station);
625  return "UNKNOWN";
626  }

◆ stationPhi()

int Muon::MuonIdHelperSvc::stationPhi ( const Identifier id) const
overridevirtual

Return stationPhi for all technologies.

Definition at line 498 of file MuonIdHelperSvc.cxx.

498  {
499  if (!id.is_valid()) {
500  ATH_MSG_WARNING("stationPhi: invalid ID");
501  return 0;
502  }
503  if (isRpc(id)) {
504  return m_rpcIdHelper->stationPhi(id);
505  } else if (isTgc(id)) {
506  return m_tgcIdHelper->stationPhi(id);
507  } else if (isMdt(id)) {
508  return m_mdtIdHelper->stationPhi(id);
509  } else if (isCsc(id)) {
510  return m_cscIdHelper->stationPhi(id);
511  } else if (issTgc(id)) {
512  return m_stgcIdHelper->stationPhi(id);
513  } else if (isMM(id)) {
514  return m_mmIdHelper->stationPhi(id);
515  }
516  return 0;
517  }

◆ stationRegion()

int Muon::MuonIdHelperSvc::stationRegion ( const Identifier id) const
overridevirtual

Return stationRegion for all technologies.

Definition at line 561 of file MuonIdHelperSvc.cxx.

561  {
562  if (!id.is_valid()) {
563  ATH_MSG_WARNING("stationRegion: invalid ID");
564  return 0;
565  }
566  if (isRpc(id)) {
567  return m_rpcIdHelper->stationRegion(id);
568  } else if (isTgc(id)) {
569  return m_tgcIdHelper->stationRegion(id);
570  } else if (isMdt(id)) {
571  return m_mdtIdHelper->stationRegion(id);
572  } else if (isCsc(id)) {
573  return m_cscIdHelper->stationRegion(id);
574  } else if (issTgc(id)) {
575  return m_stgcIdHelper->stationRegion(id);
576  } else if (isMM(id)) {
577  return m_mmIdHelper->stationRegion(id);
578  }
579  return 0;
580  }

◆ stgcIdHelper()

virtual const sTgcIdHelper& Muon::MuonIdHelperSvc::stgcIdHelper ( ) const
inlineoverridevirtual

access to TgcIdHelper

Definition at line 120 of file MuonIdHelperSvc.h.

120 { return *m_stgcIdHelper; }

◆ technologiesInStation()

const std::set< MuonStationIndex::TechnologyIndex > & Muon::MuonIdHelperSvc::technologiesInStation ( MuonStationIndex::StIndex  stIndex) const
overridevirtual

Recieve all technologies in a station.

Definition at line 229 of file MuonIdHelperSvc.cxx.

229  {
230  assert(static_cast<unsigned>(stIndex) < m_techPerStation.size());
231  return m_techPerStation[static_cast<unsigned>(stIndex)];
232  }

◆ technologyIndex()

MuonStationIndex::TechnologyIndex Muon::MuonIdHelperSvc::technologyIndex ( const Identifier id) const
overridevirtual

calculate layer index from Identifier

Definition at line 337 of file MuonIdHelperSvc.cxx.

337  {
338  if (isMdt(id)) return TechIdx::MDT;
339  if (isCsc(id)) return TechIdx::CSCI;
340  if (isTgc(id)) return TechIdx::TGC;
341  if (isRpc(id)) return TechIdx::RPC;
342  if (issTgc(id)) return TechIdx::STGC;
343  if (isMM(id)) return TechIdx::MM;
344  return TechIdx::TechnologyUnknown;
345  }

◆ tgcIdHelper()

virtual const TgcIdHelper& Muon::MuonIdHelperSvc::tgcIdHelper ( ) const
inlineoverridevirtual

access to TgcIdHelper

Definition at line 114 of file MuonIdHelperSvc.h.

114 { return *m_tgcIdHelper; }

◆ toString()

std::string Muon::MuonIdHelperSvc::toString ( const Identifier id) const
overridevirtual

print all fields to string

Definition at line 346 of file MuonIdHelperSvc.cxx.

346  {
347  if (!id.is_valid()) return " Invalid Identifier";
348  if (isMdt(id)) {
349  return toStringGasGap(id);
350  }
351  const std::string_view phiStr{measuresPhi(id) ? "phi" : "eta"};
352  if (isRpc(id)) {
353  return std::format("{:} {:} channel {:2d}",toStringGasGap(id), measuresPhi(id) ? "phi" : "eta", m_rpcIdHelper->channel(id));
354  } else if (isTgc(id)) {
355  return std::format("{:} {:} channel {:2d}",toStringGasGap(id), measuresPhi(id) ? "phi" : "eta", m_tgcIdHelper->channel(id));
356  } else if (isCsc(id)) {
357  return std::format("{:} {:} channel {:2d}",toStringGasGap(id), measuresPhi(id) ? "phi" : "eta", m_cscIdHelper->channel(id));
358  } else if (isMM(id)) {
359  return std::format("{:} channel {:4d}",toStringGasGap(id), m_mmIdHelper->channel(id));
360  }
361  using sTgcType = sTgcIdHelper::sTgcChannelTypes;
362  const int channelType = m_stgcIdHelper->channelType(id);
363  return std::format("{:} {:} channel {:3d}",toStringGasGap(id),
364  channelType == sTgcType::Strip ? "eta" : channelType == sTgcType::Wire ? "phi" : "pad" ,
365  m_stgcIdHelper->channel(id));
366  }

◆ toStringChamber()

std::string Muon::MuonIdHelperSvc::toStringChamber ( const Identifier id) const
overridevirtual

print all fields up to chamber to string

Definition at line 380 of file MuonIdHelperSvc.cxx.

380  {
381  if (!id.is_valid()) {
382  return " Invalid Identifier";
383  }
384  if (isRpc(id)) {
385  return std::format("{:} dbR {:1}", toStringStation(id), m_rpcIdHelper->doubletR(id));
386  }
387  return toStringStation(id);
388  }

◆ toStringDetEl()

std::string Muon::MuonIdHelperSvc::toStringDetEl ( const Identifier id) const
overridevirtual

print all fields up to detector element to string

Definition at line 390 of file MuonIdHelperSvc.cxx.

390  {
391 
392  if (!id.is_valid()) return " Invalid Identifier";
393  if (isMdt(id)) {
394  return std::format("{:} ml {:1d}", toStringChamber(id), m_mdtIdHelper->multilayer(id));
395  } else if (isRpc(id)) {
396  return std::format("{:} dbZ {:21} dbPhi {:1d}", toStringChamber(id), m_rpcIdHelper->doubletZ(id), m_rpcIdHelper->doubletPhi(id));
397  } else if (isTgc(id)) {
398  return toStringChamber(id);
399  }
400  int ml{0};
401  if (isCsc(id)) {
402  ml = m_cscIdHelper->chamberLayer(id);
403  } else if (isMM(id)) {
404  ml = m_mmIdHelper->multilayer(id);
405  } else {
406  ml = m_stgcIdHelper->multilayer(id);
407  }
408  return std::format("{:} chlay {:1d}",toStringChamber(id), ml);
409  }

◆ toStringGasGap()

std::string Muon::MuonIdHelperSvc::toStringGasGap ( const Identifier id) const
overridevirtual

print all fields up to gas gap to string

Definition at line 411 of file MuonIdHelperSvc.cxx.

411  {
412  if (!id.is_valid()) return " Invalid Identifier";
413  if (isMdt(id)) {
414  return std::format("{:} lay {:1d} tube {:1d}", toStringDetEl(id),m_mdtIdHelper->tubeLayer(id), m_mdtIdHelper->tube(id));
415  } else if (isRpc(id) || isTgc(id)) {
416  return std::format("{:} gap {:1d}", toStringDetEl(id), gasGap(id));
417  }
418  return std::format("{:} lay {:1d}", toStringDetEl(id), gasGap(id));
419  }

◆ toStringStation()

std::string Muon::MuonIdHelperSvc::toStringStation ( const Identifier id) const
overridevirtual

print all fields up to stationName to string

Definition at line 376 of file MuonIdHelperSvc.cxx.

376  {
377  return std::format("{:} {:} eta {:2d} phi {:2d}", toStringTech(id),stationNameString(id),
378  stationEta(id), stationPhi(id));
379  }

◆ toStringTech()

std::string Muon::MuonIdHelperSvc::toStringTech ( const Identifier id) const
overridevirtual

print all fields up to technology to string

Definition at line 368 of file MuonIdHelperSvc.cxx.

368  {
370  }

Member Data Documentation

◆ m_BIS_stat

int Muon::MuonIdHelperSvc::m_BIS_stat {-1}
private

Definition at line 215 of file MuonIdHelperSvc.h.

◆ m_cscIdHelper

const CscIdHelper* Muon::MuonIdHelperSvc::m_cscIdHelper {nullptr}
private

Definition at line 185 of file MuonIdHelperSvc.h.

◆ m_detStore

ServiceHandle<StoreGateSvc> Muon::MuonIdHelperSvc::m_detStore {this, "DetectorStore", "DetectorStore"}
private

Definition at line 199 of file MuonIdHelperSvc.h.

◆ m_hasCSC

Gaudi::Property<bool> Muon::MuonIdHelperSvc::m_hasCSC {this, "HasCSC", true, "Specify whether current detector layout contains CSC chambers"}
private

Definition at line 195 of file MuonIdHelperSvc.h.

◆ m_hasMDT

Gaudi::Property<bool> Muon::MuonIdHelperSvc::m_hasMDT {this, "HasMDT", true, "Specify whether the current detector layour contains MDT chambers"}
private

Definition at line 192 of file MuonIdHelperSvc.h.

◆ m_hasMM

Gaudi::Property<bool> Muon::MuonIdHelperSvc::m_hasMM {this, "HasMM", true, "Specify whether current detector layout contains MicroMegas chambers"}
private

Definition at line 197 of file MuonIdHelperSvc.h.

◆ m_hasRPC

Gaudi::Property<bool> Muon::MuonIdHelperSvc::m_hasRPC {this, "HasRPC", true, "Specify whether the current detector layour contains RPC chambers"}
private

Definition at line 193 of file MuonIdHelperSvc.h.

◆ m_hasSTGC

Gaudi::Property<bool> Muon::MuonIdHelperSvc::m_hasSTGC {this, "HasSTGC", true, "Specify whether current detector layout contains STGC chambers"}
private

Definition at line 196 of file MuonIdHelperSvc.h.

◆ m_hasTGC

Gaudi::Property<bool> Muon::MuonIdHelperSvc::m_hasTGC {this, "HasTGC", true, "Specify whether the current detector layour contains TGC chambers"}
private

Definition at line 194 of file MuonIdHelperSvc.h.

◆ m_mdtIdHelper

const MdtIdHelper* Muon::MuonIdHelperSvc::m_mdtIdHelper {nullptr}
private

Definition at line 186 of file MuonIdHelperSvc.h.

◆ m_mmIdHelper

const MmIdHelper* Muon::MuonIdHelperSvc::m_mmIdHelper {nullptr}
private

Definition at line 187 of file MuonIdHelperSvc.h.

◆ m_primaryHelper

const MuonIdHelper* Muon::MuonIdHelperSvc::m_primaryHelper {nullptr}
private

Definition at line 190 of file MuonIdHelperSvc.h.

◆ m_rpcIdHelper

const RpcIdHelper* Muon::MuonIdHelperSvc::m_rpcIdHelper {nullptr}
private

Sub detector specific IdHelpers.

Definition at line 183 of file MuonIdHelperSvc.h.

◆ m_smdt_stat

std::unordered_set<Identifier> Muon::MuonIdHelperSvc::m_smdt_stat {}
private

Definition at line 216 of file MuonIdHelperSvc.h.

◆ m_stationNameData

std::vector<StationNameData> Muon::MuonIdHelperSvc::m_stationNameData {}
private

Definition at line 212 of file MuonIdHelperSvc.h.

◆ m_stgcIdHelper

const sTgcIdHelper* Muon::MuonIdHelperSvc::m_stgcIdHelper {nullptr}
private

Definition at line 188 of file MuonIdHelperSvc.h.

◆ m_technologies

std::vector<TechIdx> Muon::MuonIdHelperSvc::m_technologies {}
private

Definition at line 213 of file MuonIdHelperSvc.h.

◆ m_techPerStation

std::array<std::set<TechIdx>, static_cast<int>StIdx::StIndexMax)> Muon::MuonIdHelperSvc::m_techPerStation {}
private

Array holding which technologies are there per station.

Definition at line 218 of file MuonIdHelperSvc.h.

◆ m_tgcIdHelper

const TgcIdHelper* Muon::MuonIdHelperSvc::m_tgcIdHelper {nullptr}
private

Definition at line 184 of file MuonIdHelperSvc.h.


The documentation for this class was generated from the following files:
MdtIdHelper::isBMG
bool isBMG(const Identifier &id) const
is this a BMG chamber
Definition: MdtIdHelper.cxx:734
MuonIdHelper::is_muon
bool is_muon(const Identifier &id) const
Definition: MuonIdHelper.cxx:779
BIS
@ BIS
Definition: RegSelEnums.h:11
Muon::MuonStationIndex::chName
static const std::string & chName(ChIndex index)
convert ChIndex into a string
Definition: MuonStationIndex.cxx:157
MdtIdHelper::multilayer
int multilayer(const Identifier &id) const
Access to components of the ID.
Definition: MdtIdHelper.cxx:722
Muon::MuonIdHelperSvc::m_mmIdHelper
const MmIdHelper * m_mmIdHelper
Definition: MuonIdHelperSvc.h:187
TGC
@ TGC
Definition: RegSelEnums.h:33
Muon::MuonIdHelperSvc::isTgc
virtual bool isTgc(const Identifier &id) const override
returns whether this is a TGC Identifier or not
Definition: MuonIdHelperSvc.cxx:220
MuonIdHelper::stationNameIndex
int stationNameIndex(const std::string &name) const
Definition: MuonIdHelper.cxx:842
sTgcIdHelper::multilayer
int multilayer(const Identifier &id) const
Definition: sTgcIdHelper.cxx:1017
test_pyathena.eta
eta
Definition: test_pyathena.py:10
Muon::MuonStationIndex::toStationIndex
static StIndex toStationIndex(ChIndex index)
convert ChIndex into StIndex
Definition: MuonStationIndex.cxx:43
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
STGC
@ STGC
Definition: RegSelEnums.h:39
MuonIdHelper::stationRegion
int stationRegion(const Identifier &id) const
Definition: MuonIdHelper.cxx:711
CSS
@ CSS
Definition: ParabolaCscClusterFitter.h:25
BIL
@ BIL
Definition: RegSelEnums.h:10
Muon::MuonIdHelperSvc::m_hasSTGC
Gaudi::Property< bool > m_hasSTGC
Definition: MuonIdHelperSvc.h:196
MdtIdHelper::stationEtaMin
static int stationEtaMin(bool barrel)
Access to min and max of level ranges.
Definition: MdtIdHelper.cxx:740
MuonIdHelper::is_rpc
bool is_rpc(const Identifier &id) const
Definition: MuonIdHelper.cxx:788
Muon::MuonIdHelperSvc::m_hasMDT
Gaudi::Property< bool > m_hasMDT
Definition: MuonIdHelperSvc.h:192
vtune_athena.format
format
Definition: vtune_athena.py:14
Muon::MuonIdHelperSvc::m_rpcIdHelper
const RpcIdHelper * m_rpcIdHelper
Sub detector specific IdHelpers.
Definition: MuonIdHelperSvc.h:183
TgcIdHelper::gasGap
int gasGap(const Identifier &id) const override
get the hashes
Definition: TgcIdHelper.cxx:642
Muon::MuonIdHelperSvc::stationName
virtual int stationName(const Identifier &id) const override
Return stationName for all technologies.
Definition: MuonIdHelperSvc.cxx:540
RpcIdHelper::elementID
Identifier elementID(int stationName, int stationEta, int stationPhi, int doubletR) const
Definition: RpcIdHelper.cxx:801
Muon::MuonIdHelperSvc::toString
virtual std::string toString(const Identifier &id) const override
print all fields to string
Definition: MuonIdHelperSvc.cxx:346
MuonIdHelper::is_mdt
bool is_mdt(const Identifier &id) const
Definition: MuonIdHelper.cxx:782
RpcIdHelper::doubletZ
int doubletZ(const Identifier &id) const
Definition: RpcIdHelper.cxx:1061
index
Definition: index.py:1
sTgcIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int channelType, int channel) const
Definition: sTgcIdHelper.cxx:886
Muon::MuonIdHelperSvc::isCsc
virtual bool isCsc(const Identifier &id) const override
returns whether this is a CSC Identifier or not
Definition: MuonIdHelperSvc.cxx:213
MuonIdHelper::detectorElement_hash_max
size_type detectorElement_hash_max() const
Definition: MuonIdHelper.h:186
Muon::MuonIdHelperSvc::m_primaryHelper
const MuonIdHelper * m_primaryHelper
Definition: MuonIdHelperSvc.h:190
Muon::MuonIdHelperSvc::m_hasRPC
Gaudi::Property< bool > m_hasRPC
Definition: MuonIdHelperSvc.h:193
xAOD::L2MuonParameters::BEE
@ BEE
BEE measurement point.
Definition: TrigMuonDefs.h:24
sTgcIdHelper::measuresPhi
bool measuresPhi(const Identifier &id) const override
returns measuresPhi
Definition: sTgcIdHelper.cxx:1025
Muon::MuonIdHelperSvc::chamberIndex
virtual MuonStationIndex::ChIndex chamberIndex(const Identifier &id) const override
calculate chamber index from Identifier
Definition: MuonIdHelperSvc.cxx:272
RpcIdHelper::measuresPhi
bool measuresPhi(const Identifier &id) const override
Definition: RpcIdHelper.cxx:1067
Muon::MuonIdHelperSvc::stationNameString
virtual std::string stationNameString(const Identifier &id) const override
Return the station name string for all technologies.
Definition: MuonIdHelperSvc.cxx:617
Muon::MuonIdHelperSvc::isEndcap
virtual bool isEndcap(const Identifier &id) const override
returns whether this is an endcap Identifier or not
Definition: MuonIdHelperSvc.cxx:268
MM
@ MM
Definition: RegSelEnums.h:38
MuonIdHelper::is_csc
bool is_csc(const Identifier &id) const
Definition: MuonIdHelper.cxx:785
MdtIdHelper::tubeLayer
int tubeLayer(const Identifier &id) const
Definition: MdtIdHelper.cxx:724
Muon::MuonIdHelperSvc::isSmallChamber
virtual bool isSmallChamber(const Identifier &id) const override
returns whether this is a small chamber, always returns true for TGCs
Definition: MuonIdHelperSvc.cxx:270
MuonIdHelper::technologyString
const std::string & technologyString(const int &index) const
Definition: MuonIdHelper.cxx:861
Muon::MuonIdHelperSvc::m_BIS_stat
int m_BIS_stat
Definition: MuonIdHelperSvc.h:215
MuonIdHelper::module_end
const_id_iterator module_end() const
Definition: MuonIdHelper.cxx:756
Muon::MuonIdHelperSvc::m_detStore
ServiceHandle< StoreGateSvc > m_detStore
Definition: MuonIdHelperSvc.h:199
Muon::MuonIdHelperSvc::m_stgcIdHelper
const sTgcIdHelper * m_stgcIdHelper
Definition: MuonIdHelperSvc.h:188
MuonIdHelper::stationName
int stationName(const Identifier &id) const
Definition: MuonIdHelper.cxx:800
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
isValid
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
Definition: AtlasPID.h:620
RpcIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int doubletR, int doubletZ, int doubletPhi, int gasGap, int measuresPhi, int strip) const
Definition: RpcIdHelper.cxx:939
sTgcIdHelper::sTgcChannelTypes
sTgcChannelTypes
Definition: sTgcIdHelper.h:190
BOL
@ BOL
Definition: RegSelEnums.h:14
MuonIdHelper::stationNameIndexMax
int stationNameIndexMax() const
Definition: MuonIdHelper.cxx:820
find_tgc_unfilled_channelids.mapping
mapping
Definition: find_tgc_unfilled_channelids.py:17
TgcIdHelper::measuresPhi
bool measuresPhi(const Identifier &id) const override
Definition: TgcIdHelper.cxx:647
Muon::MuonIdHelperSvc::m_stationNameData
std::vector< StationNameData > m_stationNameData
Definition: MuonIdHelperSvc.h:212
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
DetType::Barrel
@ Barrel
Definition: DetType.h:14
CscIdHelper::channel
int channel(const Identifier &id) const override
Definition: CscIdHelper.cxx:778
MuonIdHelper::is_tgc
bool is_tgc(const Identifier &id) const
Definition: MuonIdHelper.cxx:791
MmIdHelper::multilayer
int multilayer(const Identifier &id) const
Definition: MmIdHelper.cxx:796
Muon::MuonIdHelperSvc::m_hasMM
Gaudi::Property< bool > m_hasMM
Definition: MuonIdHelperSvc.h:197
MuonIdHelper::isSmall
bool isSmall(const Identifier &id) const
Definition: MuonIdHelper.cxx:831
RpcIdHelper::gasGap
int gasGap(const Identifier &id) const override
get the hashes
Definition: RpcIdHelper.cxx:1065
Muon::MuonIdHelperSvc::isMM
virtual bool isMM(const Identifier &id) const override
returns whether this is a MM Identifier or not
Definition: MuonIdHelperSvc.cxx:210
TgcIdHelper::channel
int channel(const Identifier &id) const override
Definition: TgcIdHelper.cxx:649
Muon::MuonIdHelperSvc::stationPhi
virtual int stationPhi(const Identifier &id) const override
Return stationPhi for all technologies.
Definition: MuonIdHelperSvc.cxx:498
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
Muon::MuonIdHelperSvc::StIdx
MuonStationIndex::StIndex StIdx
Definition: MuonIdHelperSvc.h:203
CscIdHelper::wireLayer
int wireLayer(const Identifier &id) const
Definition: CscIdHelper.cxx:772
MuonIdHelper::is_stgc
bool is_stgc(const Identifier &id) const
Definition: MuonIdHelper.cxx:794
Muon::MuonIdHelperSvc::m_mdtIdHelper
const MdtIdHelper * m_mdtIdHelper
Definition: MuonIdHelperSvc.h:186
Muon::MuonIdHelperSvc::issTgc
virtual bool issTgc(const Identifier &id) const override
returns whether this is a sTGC Identifier or not
Definition: MuonIdHelperSvc.cxx:224
Muon::MuonIdHelperSvc::toStringGasGap
virtual std::string toStringGasGap(const Identifier &id) const override
print all fields up to gas gap to string
Definition: MuonIdHelperSvc.cxx:411
MuonIdHelper
Definition: MuonIdHelper.h:80
sTgcIdHelper::channel
int channel(const Identifier &id) const override
Definition: sTgcIdHelper.cxx:1027
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Muon::MuonIdHelperSvc::PhiIdx
MuonStationIndex::PhiIndex PhiIdx
Definition: MuonIdHelperSvc.h:204
Ringer::EM
@ EM
Definition: CaloRingsDefs.h:19
Muon::MuonIdHelperSvc::m_hasCSC
Gaudi::Property< bool > m_hasCSC
Definition: MuonIdHelperSvc.h:195
RpcIdHelper::doubletR
int doubletR(const Identifier &id) const
Definition: RpcIdHelper.cxx:1059
lumiFormat.i
int i
Definition: lumiFormat.py:85
MdtIdHelper::stationEtaMax
static int stationEtaMax(bool barrel)
Definition: MdtIdHelper.cxx:748
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
MdtIdHelper::channel
int channel(const Identifier &id) const override
Definition: MdtIdHelper.cxx:736
Muon::MuonIdHelperSvc::isMdt
virtual bool isMdt(const Identifier &id) const override
returns whether this is a MDT Identifier or not
Definition: MuonIdHelperSvc.cxx:207
TgcIdHelper::get_module_hash
virtual int get_module_hash(const Identifier &id, IdentifierHash &hash_id) const override
Definition: TgcIdHelper.cxx:234
MuonIdHelper::get_module_hash
virtual int get_module_hash(const Identifier &id, IdentifierHash &hash_id) const
Definition: MuonIdHelper.cxx:99
sTgcIdHelper::gasGap
int gasGap(const Identifier &id) const override
get the hashes
Definition: sTgcIdHelper.cxx:1020
MdtIdHelper::tube
int tube(const Identifier &id) const
Definition: MdtIdHelper.cxx:726
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MuonIdHelper::get_detectorElement_hash
virtual int get_detectorElement_hash(const Identifier &id, IdentifierHash &hash_id) const
Definition: MuonIdHelper.cxx:120
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
Muon::MuonStationIndex::toLayerIndex
static LayerIndex toLayerIndex(ChIndex index)
convert ChIndex into LayerIndex
Definition: MuonStationIndex.cxx:56
MuonIdHelper::is_mm
bool is_mm(const Identifier &id) const
Definition: MuonIdHelper.cxx:797
Muon::MuonIdHelperSvc::hasCSC
bool hasCSC() const override
Definition: MuonIdHelperSvc.cxx:613
Muon::MuonIdHelperSvc::m_tgcIdHelper
const TgcIdHelper * m_tgcIdHelper
Definition: MuonIdHelperSvc.h:184
MuonIdHelper::technologyNameIndexMax
int technologyNameIndexMax() const
Definition: MuonIdHelper.cxx:822
Muon::MuonIdHelperSvc::hasTGC
bool hasTGC() const override
Definition: MuonIdHelperSvc.cxx:611
Muon::MuonIdHelperSvc::isRpc
virtual bool isRpc(const Identifier &id) const override
returns whether this is a RPC Identifier or not
Definition: MuonIdHelperSvc.cxx:216
Muon::MuonIdHelperSvc::m_techPerStation
std::array< std::set< TechIdx >, static_cast< int >StIdx::StIndexMax)> m_techPerStation
Array holding which technologies are there per station.
Definition: MuonIdHelperSvc.h:218
TgcIdHelper::elementID
Identifier elementID(int stationName, int stationEta, int stationPhi) const
Definition: TgcIdHelper.cxx:556
MuonIdHelper::stationPhi
int stationPhi(const Identifier &id) const
Definition: MuonIdHelper.cxx:810
Muon::MuonStationIndex::DetectorRegionIndex
DetectorRegionIndex
enum to classify the different layers in the muon spectrometer
Definition: MuonStationIndex.h:47
Muon::MuonIdHelperSvc::m_hasTGC
Gaudi::Property< bool > m_hasTGC
Definition: MuonIdHelperSvc.h:194
RpcIdHelper::channel
int channel(const Identifier &id) const override
Definition: RpcIdHelper.cxx:1071
MuonIdHelper::stationNameString
const std::string & stationNameString(const int &index) const
Definition: MuonIdHelper.cxx:854
AtlasDetectorID::print_to_string
std::string print_to_string(Identifier id, const IdContext *context=0) const
or provide the printout in string form
Definition: AtlasDetectorID.cxx:655
Muon::MuonIdHelperSvc::stationEta
virtual int stationEta(const Identifier &id) const override
Return stationEta for all technologies.
Definition: MuonIdHelperSvc.cxx:519
MmIdHelper::elementID
Identifier elementID(int stationName, int stationEta, int stationPhi) const
Definition: MmIdHelper.cxx:706
Muon::MuonIdHelperSvc::detElementHash
virtual IdentifierHash detElementHash(const Identifier &id) const override
Returns the detector element hash associated to an Identifier.
Definition: MuonIdHelperSvc.cxx:653
Muon::MuonIdHelperSvc::toStringTech
virtual std::string toStringTech(const Identifier &id) const override
print all fields up to technology to string
Definition: MuonIdHelperSvc.cxx:368
RPC
@ RPC
Definition: RegSelEnums.h:32
CscIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int chamberLayer, int wireLayer, int measuresPhi, int strip) const
Definition: CscIdHelper.cxx:706
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:227
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
MdtIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int tubeLayer, int tube) const
Definition: MdtIdHelper.cxx:659
Muon::MuonIdHelperSvc::stationIndex
virtual MuonStationIndex::StIndex stationIndex(const Identifier &id) const override
calculate station index from Identifier
Definition: MuonIdHelperSvc.cxx:280
Muon::MuonIdHelperSvc::chamberNameString
virtual std::string chamberNameString(const Identifier &id) const override
print chamber name to string
Definition: MuonIdHelperSvc.cxx:372
Muon::MuonIdHelperSvc::measuresPhi
virtual bool measuresPhi(const Identifier &id) const override
returns whether channel measures phi or not
Definition: MuonIdHelperSvc.cxx:250
MuonIdHelper::stationEta
int stationEta(const Identifier &id) const
Definition: MuonIdHelper.cxx:805
Muon::MuonIdHelperSvc::isMuon
virtual bool isMuon(const Identifier &id) const override
returns whether this is a Muon Identifier or not
Definition: MuonIdHelperSvc.cxx:204
Muon::MuonIdHelperSvc::technologyIndex
virtual MuonStationIndex::TechnologyIndex technologyIndex(const Identifier &id) const override
calculate layer index from Identifier
Definition: MuonIdHelperSvc.cxx:337
Muon::MuonIdHelperSvc::issMdt
virtual bool issMdt(const Identifier &id) const override
returns whether this is a sMDT Identifier or not
Definition: MuonIdHelperSvc.cxx:233
Muon::MuonIdHelperSvc::toStringDetEl
virtual std::string toStringDetEl(const Identifier &id) const override
print all fields up to detector element to string
Definition: MuonIdHelperSvc.cxx:390
MuonIdHelper::module_hash_max
size_type module_hash_max() const
the maximum hash value
Definition: MuonIdHelper.cxx:748
MdtIdHelper::isBME
bool isBME(const Identifier &id) const
is this a BME chamber
Definition: MdtIdHelper.cxx:732
MuonIdHelper::isEndcap
bool isEndcap(const Identifier &id) const
Definition: MuonIdHelper.cxx:827
sTgcIdHelper::elementID
Identifier elementID(int stationName, int stationEta, int stationPhi) const
Definition: sTgcIdHelper.cxx:856
Muon::MuonIdHelperSvc::hasMDT
bool hasMDT() const override
Definition: MuonIdHelperSvc.cxx:612
MdtIdHelper::elementID
Identifier elementID(int stationName, int stationEta, int stationPhi) const
Definition: MdtIdHelper.cxx:630
DeMoScan.index
string index
Definition: DeMoScan.py:364
Muon::MuonIdHelperSvc::TechIdx
MuonStationIndex::TechnologyIndex TechIdx
Definition: MuonIdHelperSvc.h:201
MmIdHelper::channel
int channel(const Identifier &id) const override
Definition: MmIdHelper.cxx:800
h
MmIdHelper::gasGap
int gasGap(const Identifier &id) const override
get the hashes
Definition: MmIdHelper.cxx:798
BML
@ BML
Definition: RegSelEnums.h:12
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
Muon::MuonIdHelperSvc::m_smdt_stat
std::unordered_set< Identifier > m_smdt_stat
Definition: MuonIdHelperSvc.h:216
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
BMS
@ BMS
Definition: RegSelEnums.h:13
DEBUG
#define DEBUG
Definition: page_access.h:11
Muon::MuonIdHelperSvc::m_cscIdHelper
const CscIdHelper * m_cscIdHelper
Definition: MuonIdHelperSvc.h:185
Muon::MuonIdHelperSvc::moduleHash
virtual IdentifierHash moduleHash(const Identifier &id) const override
Returns the module hash associated to an Identifier.
Definition: MuonIdHelperSvc.cxx:643
Muon::MuonIdHelperSvc::hasSTGC
bool hasSTGC() const override
Definition: MuonIdHelperSvc.cxx:614
Muon::MuonStationIndex::stName
static const std::string & stName(StIndex index)
convert StIndex into a string
Definition: MuonStationIndex.cxx:141
Muon::MuonIdHelperSvc::toStringStation
virtual std::string toStringStation(const Identifier &id) const override
print all fields up to stationName to string
Definition: MuonIdHelperSvc.cxx:376
TgcIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int gasGap, int isStrip, int channel) const
Definition: TgcIdHelper.cxx:583
Muon::MuonIdHelperSvc::hasRPC
bool hasRPC() const override
Definition: MuonIdHelperSvc.cxx:610
CSC
@ CSC
Definition: RegSelEnums.h:34
CscIdHelper::measuresPhi
bool measuresPhi(const Identifier &id) const override
Definition: CscIdHelper.cxx:774
Muon::MuonIdHelperSvc::toStringChamber
virtual std::string toStringChamber(const Identifier &id) const override
print all fields up to chamber to string
Definition: MuonIdHelperSvc.cxx:380
CSL
@ CSL
Definition: ParabolaCscClusterFitter.h:25
MuonIdHelper::module_begin
const_id_iterator module_begin() const
Iterators over full set of ids.
Definition: MuonIdHelper.cxx:754
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
Muon::MuonIdHelperSvc::m_technologies
std::vector< TechIdx > m_technologies
Definition: MuonIdHelperSvc.h:213
Muon::MuonIdHelperSvc::hasMM
bool hasMM() const override
Definition: MuonIdHelperSvc.cxx:615
BOS
@ BOS
Definition: RegSelEnums.h:15
MmIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int channel) const
Definition: MmIdHelper.cxx:736
sTgcIdHelper::channelType
int channelType(const Identifier &id) const
Definition: sTgcIdHelper.cxx:1022
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
CscIdHelper::chamberLayer
int chamberLayer(const Identifier &id) const
Definition: CscIdHelper.cxx:770
MDT
@ MDT
Definition: RegSelEnums.h:31
Muon::MuonIdHelperSvc::gasGap
virtual int gasGap(const Identifier &id) const override
returns gas gap: gasGap for RPC + TGC, wireLayer for CSC, tube for MDT
Definition: MuonIdHelperSvc.cxx:184
RpcIdHelper::doubletPhi
int doubletPhi(const Identifier &id) const
Definition: RpcIdHelper.cxx:1063
MuonIdHelper::BAD_NAME
static const std::string BAD_NAME
Definition: MuonIdHelper.h:224
Identifier
Definition: IdentifierFieldParser.cxx:14
Muon::MuonStationIndex::technologyName
static const std::string & technologyName(TechnologyIndex index)
convert LayerIndex into a string
Definition: MuonStationIndex.cxx:209