ATLAS Offline Software
MuonIdHelper.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef DETECTORDESCRIPTION_MUONIDHELPER_H
6 #define DETECTORDESCRIPTION_MUONIDHELPER_H
7 
11 #include "Identifier/MultiRange.h"
12 #include "AthenaKernel/CLASS_DEF.h"
13 #include <set>
14 #include <map>
15 #include <string>
16 #include <vector>
17 
18 class IdDictDictionary;
19 
20 
21 // ******************************************************************************
22 // class MuonIdHelper
23 // ******************************************************************************
24 //
25 // Description
26 // -----------
27 // This is a base class for the Muon Identifier and Range factory classes.
28 // ATLAS note ATL-MUON-2001-014 provides a complete description of the
29 // hierarchical identifier scheme. MuonIdHelper provides an interface to the
30 // common station "prefix" of the identifier, as described below.
31 //
32 // Field Value Notes
33 // ==============================================================================
34 // StationName [0..n] maps to "BIL", "EMS", "T1F", etc.
35 // there can be holes in the list of indices
36 // StationEta integer increases with eta (0 at eta=0)
37 // StationPhi non-zero integer increases with phi
38 // Technology [0..5] maps to "MDT", "CSC", "RPC", "TGC", "STGC", "MM"
39 // ==============================================================================
40 //
41 // Inheritance
42 // -----------
43 // Inherits from DetectorDescription/AtlasDetectorID.
44 // It is inherited by the following technology-specific concrete classes.
45 //
46 // MdtIdHelper factory of MDT-specific Identifiers and Ranges
47 // CscIdHelper factory of CSC-specific Identifiers and Ranges
48 // RpcIdHelper factory of RPC-specific Identifiers and Ranges
49 // TgcIdHelper factory of TGC-specific Identifiers and Ranges
50 
51 // for nSW
52 // sTgcIdHelper factory of sTGC-specific Identifiers and Ranges
53 // MmIdHelper factory of MicroMegas-specific Identifiers and Ranges
54 
55 //
56 // Methods for External Use
57 // ------------------------
58 // int stationNameIndex(const std::string name) (returns stationName index)
59 // int technologyIndex(const std::string name) (returns technology index)
60 // std::string stationNameString(const int index) (returns stationName string)
61 // std::string technologyString(const int index) (returns technology string)
62 //
63 // Author
64 // ------
65 // Steven Goldfarb <Steven.Goldfarb@cern.ch>
66 //
67 // Compact Id implementation by
68 // Ketevi A. Assamagan <ketevi@bnl.gov>
69 // CERN, February 20th, 2003
70 //
71 
72 // for nSW
73 // Nektarios Chr. Benekos <nectarios.benekos@cern.ch>
74 // CERN, Feb. 2013
75 // ******************************************************************************
76 
77 class MuonIdHelper : public AtlasDetectorID {
78 public:
79  // Constructor
80 
81  MuonIdHelper(const std::string& logName, const std::string& group);
82 
83  // Destructor
84 
85  virtual ~MuonIdHelper() = default;
86 
87  // Build identifier
88 
89  Identifier muon() const;
90 
91  // Test for technology type
92 
93  bool is_muon(const Identifier& id) const;
94  bool is_mdt(const Identifier& id) const;
95  bool is_csc(const Identifier& id) const;
96  bool is_rpc(const Identifier& id) const;
97  bool is_tgc(const Identifier& id) const;
98 
99  // for nSW
100  bool is_stgc(const Identifier& id) const;
101  bool is_mm(const Identifier& id) const;
102 
103  // Extract station parts
104 
105  int stationName(const Identifier& id) const;
106  int stationEta(const Identifier& id) const;
107  int stationPhi(const Identifier& id) const;
108  int technology(const Identifier& id) const;
109 
110  // Methods used by Moore
111 
112  int stationRegion(const Identifier& id) const;
113 
114  bool isBarrel(const Identifier& id) const;
115  bool isEndcap(const Identifier& id) const;
116  bool isForward(const Identifier& id) const;
117  bool isSmall(const Identifier& id) const;
118  bool isBarrel(const int& stationNameIndex) const;
119  bool isEndcap(const int& stationNameIndex) const;
120  bool isForward(const int& stationNameIndex) const;
121  bool isSmall(const int& stationNameIndex) const;
122 
123  // Access to name and technology maps
124 
125  int stationNameIndex(const std::string& name) const;
126  int technologyIndex(const std::string& name) const;
127  const std::string& stationNameString(const int& index) const;
128  const std::string& technologyString(const int& index) const;
129  int nStationNames() const;
130 
131 
132  // Check whether helper is fully initialized
133  bool isInitialized() const;
134 
136 
137 public:
140  typedef std::vector<Identifier>::const_iterator const_id_iterator;
141 
143  virtual int initialize_from_dictionary(const IdDictMgr& dict_mgr) override;
144 
152  IdContext module_context() const;
156  IdContext channel_context() const;
157 
159  virtual int gasGap(const Identifier& id) const = 0;
160  virtual int channel(const Identifier& id) const = 0;
161  virtual bool measuresPhi(const Identifier& id) const = 0;
162  virtual int get_module_hash(const Identifier& id, IdentifierHash& hash_id) const;
163  virtual int get_detectorElement_hash(const Identifier& id, IdentifierHash& hash_id) const;
164  virtual int get_channel_hash(const Identifier& id, IdentifierHash& hash_id) const;
165 
167  virtual int get_id(const IdentifierHash& hash_id, Identifier& id, const IdContext* context = 0) const override;
168 
170  virtual int get_hash(const Identifier& id, IdentifierHash& hash_id, const IdContext* context = 0) const override;
171 
173  int get_expanded_id(const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
174 
177  int get_id(const ExpandedIdentifier& old_id, Identifier& new_id) const;
179  const MultiRange& multiRange() const;
180 
182  size_type module_hash_max() const;
184  size_type channel_hash_max() const;
185 
187  const std::vector<Identifier>& idVector() const;
188 
194 
200 
206 
209  int get_prev_in_phi(const IdentifierHash& id, IdentifierHash& prev) const;
210  int get_next_in_phi(const IdentifierHash& id, IdentifierHash& next) const;
211  int get_prev_in_eta(const IdentifierHash& id, IdentifierHash& prev) const;
212  int get_next_in_eta(const IdentifierHash& id, IdentifierHash& next) const;
213 
215  void test_module_packing() const;
216  void test_id(const Identifier& id, const IdContext& context) const;
217 
218  int stationNameIndexMax() const;
219  int technologyNameIndexMax() const;
220 
221  static const std::string BAD_NAME;
222 
223 protected:
224  static constexpr int NOT_VALID_HASH = 64000;
225 
226  typedef std::vector<Identifier> id_vec;
227  typedef id_vec::const_iterator id_vec_it;
228  typedef std::vector<unsigned short> hash_vec;
229  typedef hash_vec::const_iterator hash_vec_it;
230 
231  int initLevelsFromDict();
232  int init_hashes();
233  virtual int init_detectorElement_hashes();
234  int init_channel_hashes();
235  int init_neighbors();
236 
237  // Create expanded id from compact id (return == 0 for OK)
238  int get_expanded_id_calc(const Identifier& compact_id, ExpandedIdentifier& id, const IdContext* context) const;
239 
240  // Create compact id from expanded or hash id (return == 0 for OK)
241  int get_compact_id(const ExpandedIdentifier& id, Identifier& compact_id, const IdContext* context) const;
242  // Create hash from compact
243  virtual int get_hash_calc(const Identifier& compact_id, IdentifierHash& hash_id, const IdContext* context) const;
244 
249  virtual bool isStNameInTech(const std::string& stationName) const = 0;
250 
251  std::set<int> m_stationInTech{};
252 
255  size_t m_GROUP_INDEX{6500};
263  const IdDictDictionary* m_dict{nullptr};
264 
269 
274 
279 
284 
290 
292 
293 protected:
294  // Check values down to station level
295 
296  bool validStation(int stationName, int technology) const;
297  bool validStation(int stationName) const;
298  bool validTechnology(int technology) const;
299 
300  // Append station ID fields
301 
302  void addStationID(Identifier& id, int stationName, int stationEta, int stationPhi, int technology) const;
303 
304  static void addStationID(ExpandedIdentifier& id, int stationName, int stationEta, int stationPhi, int technology) ;
305 
306  inline void resetAndSet(const IdDictFieldImplementation & dict, const int new_val, Identifier& id ) const {
307  dict.reset(id);
308  dict.pack(new_val,id);
309  }
310 private:
311  // Copy constructor - do not use!
312  MuonIdHelper(const MuonIdHelper& other) = delete;
314 
315  // vectors for stationNames and technologies
316 
318  std::map<std::string, int> m_stationNameToIdxMap;
320  std::map<int, std::string> m_stationIdxToNameMap;
321 
322  int m_stationIndexMax{-INT_MAX};
324  std::map<std::string, int> m_technologyNameToIdxMap;
326  std::map<int, std::string> m_technologyIdxToNameMap;
327  int m_technologyIndexMax{-INT_MAX};
328 
329  // little helpers to speed things up
330  std::set<int> m_isBarrel;
331  std::set<int> m_isSmall;
332  std::set<int> m_isForward;
333 
334  // Constants
335 
337 
338 protected:
339  bool m_init{false};
340 };
341 
342 // For backwards compatibility
343 
345 
346 // Access to the ID
347 
348 #endif // DETECTORDESCRIPTION_MUONIDHELPER_H
MuonIdHelper::is_muon
bool is_muon(const Identifier &id) const
Definition: MuonIdHelper.cxx:789
MuonIdHelper::get_prev_in_phi
int get_prev_in_phi(const IdentifierHash &id, IdentifierHash &prev) const
Access to hashes for neighbors in phi and eta (return == 0 for neighbor found)
Definition: MuonIdHelper.cxx:488
MuonIdHelper::m_next_eta_module_vec
hash_vec m_next_eta_module_vec
Definition: MuonIdHelper.h:283
MuonIdHelper::measuresPhi
virtual bool measuresPhi(const Identifier &id) const =0
MuonIdHelper::validStation
bool validStation(int stationName, int technology) const
Definition: MuonIdHelper.cxx:777
MuonIdHelper::stationNameIndex
int stationNameIndex(const std::string &name) const
Definition: MuonIdHelper.cxx:852
MuonIdHelper::detectorElement_context
IdContext detectorElement_context() const
id for detector element
Definition: MuonIdHelper.cxx:746
MuonIdHelper::m_technologyIdxToNameMap
std::map< int, std::string > m_technologyIdxToNameMap
Mapping int -> string.
Definition: MuonIdHelper.h:326
MuonIdHelper::m_prev_eta_module_vec
hash_vec m_prev_eta_module_vec
Definition: MuonIdHelper.h:282
MuonIdHelper::initLevelsFromDict
int initLevelsFromDict()
Definition: MuonIdHelper.cxx:249
MuonIdHelper::test_id
void test_id(const Identifier &id, const IdContext &context) const
Definition: MuonIdHelper.cxx:687
MuonIdHelper::stationRegion
int stationRegion(const Identifier &id) const
Definition: MuonIdHelper.cxx:719
MuonIdHelper::m_init
bool m_init
Definition: MuonIdHelper.h:339
MuonIdHelper::detectorElement_begin
const_id_iterator detectorElement_begin() const
Iterators over full set of ids.
Definition: MuonIdHelper.cxx:768
MuonIdHelper::m_isSmall
std::set< int > m_isSmall
Definition: MuonIdHelper.h:331
MuonIdHelper::is_rpc
bool is_rpc(const Identifier &id) const
Definition: MuonIdHelper.cxx:798
MuonIdHelper::get_id
virtual int get_id(const IdentifierHash &hash_id, Identifier &id, const IdContext *context=0) const override
Create compact id from hash id (return == 0 for OK)
Definition: MuonIdHelper.cxx:74
MuonIdHelper::technologyIndex
int technologyIndex(const std::string &name) const
Definition: MuonIdHelper.cxx:858
MuonIdHelper::StationEtaIndex
@ StationEtaIndex
Definition: MuonIdHelper.h:336
MuonIdHelper::m_next_phi_module_vec
hash_vec m_next_phi_module_vec
Definition: MuonIdHelper.h:281
MuonIdHelper::m_stationInTech
std::set< int > m_stationInTech
Definition: MuonIdHelper.h:251
MuonIdHelper::multiRange
const MultiRange & multiRange() const
multirange
Definition: MuonIdHelper.cxx:756
MuonIdHelper::channel_context
IdContext channel_context() const
id for channel
Definition: MuonIdHelper.cxx:751
MuonIdHelper::is_mdt
bool is_mdt(const Identifier &id) const
Definition: MuonIdHelper.cxx:792
index
Definition: index.py:1
MuonIdHelper::detectorElement_hash_max
size_type detectorElement_hash_max() const
Definition: MuonIdHelper.h:183
MuonIdHelper::m_detectorElement_hash_max
size_type m_detectorElement_hash_max
Definition: MuonIdHelper.h:277
MuonIdHelper::channel_end
const_id_iterator channel_end() const
Definition: MuonIdHelper.cxx:774
MuonIdHelper::m_sta_impl
IdDictFieldImplementation m_sta_impl
Definition: MuonIdHelper.h:286
MuonIdHelper::m_channel_hash_max
size_type m_channel_hash_max
Definition: MuonIdHelper.h:272
MuonIdHelper::m_technologyNameToIdxMap
std::map< std::string, int > m_technologyNameToIdxMap
Mapping string -> int.
Definition: MuonIdHelper.h:324
MuonIdHelper::MuonIndices
MuonIndices
Definition: MuonIdHelper.h:336
ExpandedIdentifier
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:102
MuonIdHelper::MuonIdHelper
MuonIdHelper(const MuonIdHelper &other)=delete
MuonIdHelper::is_csc
bool is_csc(const Identifier &id) const
Definition: MuonIdHelper.cxx:795
IdDictFieldImplementation::pack
void pack(int value, Identifier &id) const
Definition: IdDictFieldImplementation.h:173
MuonIdHelper::technologyString
const std::string & technologyString(const int &index) const
Definition: MuonIdHelper.cxx:871
MuonIdHelper::module_end
const_id_iterator module_end() const
Definition: MuonIdHelper.cxx:766
MuonIdHelper::id_vec
std::vector< Identifier > id_vec
Definition: MuonIdHelper.h:226
MuonIdHelper::m_prev_phi_module_vec
hash_vec m_prev_phi_module_vec
Definition: MuonIdHelper.h:280
MuonIdHelper::stationName
int stationName(const Identifier &id) const
Definition: MuonIdHelper.cxx:810
MuonIdHelper::muon
Identifier muon() const
Definition: MuonIdHelper.cxx:734
MuonIdHelper::detectorElement_end
const_id_iterator detectorElement_end() const
Definition: MuonIdHelper.cxx:770
MuonIdHelper::m_phi_impl
IdDictFieldImplementation m_phi_impl
Definition: MuonIdHelper.h:288
MuonIdHelper::isStNameInTech
virtual bool isStNameInTech(const std::string &stationName) const =0
The valid element checks converted the identifier to a stationName string in order to assess whether ...
MuonIdHelper::m_muon_detectorElement_range
MultiRange m_muon_detectorElement_range
Definition: MuonIdHelper.h:275
MuonIdHelper::m_full_channel_range
MultiRange m_full_channel_range
Definition: MuonIdHelper.h:271
MuonIdHelper::stationNameIndexMax
int stationNameIndexMax() const
Definition: MuonIdHelper.cxx:830
MuonIdHelper::initialize_from_dictionary
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr) override
Initialization from the identifier dictionary.
Definition: MuonIdHelper.cxx:20
MuonIdHelper::StationPhiIndex
@ StationPhiIndex
Definition: MuonIdHelper.h:336
MuonIdHelper::is_tgc
bool is_tgc(const Identifier &id) const
Definition: MuonIdHelper.cxx:801
MuonIdHelper::isSmall
bool isSmall(const Identifier &id) const
Definition: MuonIdHelper.cxx:841
IdDictFieldImplementation::reset
void reset(Identifier &id) const
Definition: IdDictFieldImplementation.h:183
MuonIdHelper::m_stationIdxToNameMap
std::map< int, std::string > m_stationIdxToNameMap
Mapping int -> string.
Definition: MuonIdHelper.h:320
AtlasDetectorID::size_type
Identifier::size_type size_type
Definition: AtlasDetectorID.h:385
MuonIdHelper::is_stgc
bool is_stgc(const Identifier &id) const
Definition: MuonIdHelper.cxx:804
MuonIdHelper::m_technologyIndexMax
int m_technologyIndexMax
Definition: MuonIdHelper.h:327
MuonIdHelper::m_stationIndexMax
int m_stationIndexMax
Definition: MuonIdHelper.h:322
AtlasDetectorID.h
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
IdDictMgr
Definition: IdDictMgr.h:14
MuonIdHelper::m_stationNameToIdxMap
std::map< std::string, int > m_stationNameToIdxMap
Mapping string -> int.
Definition: MuonIdHelper.h:318
MuonIdHelper::m_MUON_INDEX
size_type m_MUON_INDEX
Definition: MuonIdHelper.h:254
MuonIdHelper::hash_vec
std::vector< unsigned short > hash_vec
Definition: MuonIdHelper.h:228
MuonIdHelper
Definition: MuonIdHelper.h:77
MuonIdHelper::addStationID
void addStationID(Identifier &id, int stationName, int stationEta, int stationPhi, int technology) const
Definition: MuonIdHelper.cxx:708
fillPileUpNoiseLumi.next
next
Definition: fillPileUpNoiseLumi.py:52
MultiRange::const_identifier_factory
Definition: MultiRange.h:52
MuonIdHelper::m_module_vec
id_vec m_module_vec
Definition: MuonIdHelper.h:268
MuonIdHelper::gasGap
virtual int gasGap(const Identifier &id) const =0
get the hashes
MuonIdHelper::hash_vec_it
hash_vec::const_iterator hash_vec_it
Definition: MuonIdHelper.h:229
MuonIdHelper::get_prev_in_eta
int get_prev_in_eta(const IdentifierHash &id, IdentifierHash &prev) const
Definition: MuonIdHelper.cxx:508
MuonIdHelper::operator=
MuonIdHelper & operator=(const MuonIdHelper &right)
MuonIdHelper::get_module_hash
virtual int get_module_hash(const Identifier &id, IdentifierHash &hash_id) const
Definition: MuonIdHelper.cxx:103
MuonIdHelper::m_full_detectorElement_range
MultiRange m_full_detectorElement_range
Definition: MuonIdHelper.h:276
MuonIdHelper::const_expanded_id_iterator
MultiRange::const_identifier_factory const_expanded_id_iterator
Definition: MuonIdHelper.h:139
MuonIdHelper::isForward
bool isForward(const Identifier &id) const
Definition: MuonIdHelper.cxx:839
MuonIdHelper::id_vec_it
id_vec::const_iterator id_vec_it
Definition: MuonIdHelper.h:227
AtlasDetectorID::group
const std::string & group() const
Group name for this helper.
Definition: AtlasDetectorID.cxx:32
MuonIdHelper::get_detectorElement_hash
virtual int get_detectorElement_hash(const Identifier &id, IdentifierHash &hash_id) const
Definition: MuonIdHelper.cxx:124
MuonIdHelper::m_full_module_range
MultiRange m_full_module_range
Definition: MuonIdHelper.h:266
MuonIdHelper::MuonIdHelper
MuonIdHelper(const std::string &logName, const std::string &group)
Definition: MuonIdHelper.cxx:14
MuonIdHelper::get_expanded_id
int get_expanded_id(const Identifier &id, ExpandedIdentifier &exp_id, const IdContext *context) const
Create expanded id from compact id (return == 0 for OK)
Definition: MuonIdHelper.cxx:164
MuonIdHelper::is_mm
bool is_mm(const Identifier &id) const
Definition: MuonIdHelper.cxx:807
MuonIdHelper::get_hash_calc
virtual int get_hash_calc(const Identifier &compact_id, IdentifierHash &hash_id, const IdContext *context) const
Definition: MuonIdHelper.cxx:225
MuonIdHelper::technologyNameIndexMax
int technologyNameIndexMax() const
Definition: MuonIdHelper.cxx:832
MuonIdHelper::m_eta_impl
IdDictFieldImplementation m_eta_impl
Definition: MuonIdHelper.h:287
MuonIdHelper::init_hashes
int init_hashes()
Definition: MuonIdHelper.cxx:356
MuonIdHelper::m_NAME_INDEX
size_type m_NAME_INDEX
Definition: MuonIdHelper.h:256
MuonIdHelper::m_muon_impl
IdDictFieldImplementation m_muon_impl
Definition: MuonIdHelper.h:285
MuonIdHelper::m_GROUP_INDEX
size_t m_GROUP_INDEX
Definition: MuonIdHelper.h:255
MuonIdHelper::nStationNames
int nStationNames() const
Definition: MuonIdHelper.cxx:878
MuonIdHelper::get_next_in_phi
int get_next_in_phi(const IdentifierHash &id, IdentifierHash &next) const
Definition: MuonIdHelper.cxx:498
MuonIdHelper::stationPhi
int stationPhi(const Identifier &id) const
Definition: MuonIdHelper.cxx:820
MuonIdHelper::TechnologyIndex
@ TechnologyIndex
Definition: MuonIdHelper.h:336
MuonIdHelper::stationNameString
const std::string & stationNameString(const int &index) const
Definition: MuonIdHelper.cxx:864
MuonIdHelper::m_muon_channel_range
MultiRange m_muon_channel_range
Definition: MuonIdHelper.h:270
MuonIdHelper::get_channel_hash
virtual int get_channel_hash(const Identifier &id, IdentifierHash &hash_id) const
Definition: MuonIdHelper.cxx:143
MuonIdHelper::init_neighbors
int init_neighbors()
Definition: MuonIdHelper.cxx:528
MuonIdHelper::m_MODULE_INDEX
size_type m_MODULE_INDEX
Definition: MuonIdHelper.h:260
MultiRange
A MultiRange combines several Ranges.
Definition: MultiRange.h:17
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
IdentifierHash.h
MuonIdHelper::m_detectorElement_vec
id_vec m_detectorElement_vec
Definition: MuonIdHelper.h:278
MuonIdHelper::isBarrel
bool isBarrel(const Identifier &id) const
Definition: MuonIdHelper.cxx:835
MuonIdHelper::stationEta
int stationEta(const Identifier &id) const
Definition: MuonIdHelper.cxx:815
MultiRange.h
MuonIdHelper::m_isBarrel
std::set< int > m_isBarrel
Definition: MuonIdHelper.h:330
MuonIdHelper::module_hash_max
size_type module_hash_max() const
the maximum hash value
Definition: MuonIdHelper.cxx:758
IdDictDictionary
Definition: IdDictDictionary.h:30
MuonIdHelper::m_ETA_INDEX
size_type m_ETA_INDEX
Definition: MuonIdHelper.h:257
MuonIdHelper::m_module_hash_max
size_type m_module_hash_max
Definition: MuonIdHelper.h:267
IdDictFieldImplementation.h
MuonIdHelper::isEndcap
bool isEndcap(const Identifier &id) const
Definition: MuonIdHelper.cxx:837
MuonIdHelper::StationNameIndex
@ StationNameIndex
Definition: MuonIdHelper.h:336
MuonIdHelper::init_detectorElement_hashes
virtual int init_detectorElement_hashes()
Definition: MuonIdHelper.cxx:402
MuonIdHelper::m_station_region_index
size_type m_station_region_index
Definition: MuonIdHelper.h:253
MuonIdHelper::m_TECHNOLOGY_INDEX
size_type m_TECHNOLOGY_INDEX
Definition: MuonIdHelper.h:259
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
MuonIdHelper::test_module_packing
void test_module_packing() const
Tests of packing.
Definition: MuonIdHelper.cxx:656
MuonIdHelper::get_hash
virtual int get_hash(const Identifier &id, IdentifierHash &hash_id, const IdContext *context=0) const override
Create hash id from compact id (return == 0 for OK)
Definition: MuonIdHelper.cxx:148
MuonIdHelper::technology
int technology(const Identifier &id) const
Definition: MuonIdHelper.cxx:825
MuonIdHelper::size_type
Identifier::size_type size_type
Definition: MuonIdHelper.h:138
MuonIdHelper::get_expanded_id_calc
int get_expanded_id_calc(const Identifier &compact_id, ExpandedIdentifier &id, const IdContext *context) const
Definition: MuonIdHelper.cxx:181
MuonIdHelper::channel_begin
const_id_iterator channel_begin() const
Iterators over full set of ids.
Definition: MuonIdHelper.cxx:772
MuonIdHelper::module_context
IdContext module_context() const
id for module
Definition: MuonIdHelper.cxx:741
MuonIdHelper::resetAndSet
void resetAndSet(const IdDictFieldImplementation &dict, const int new_val, Identifier &id) const
Definition: MuonIdHelper.h:306
MuonIdHelper::m_DETECTORELEMENT_INDEX
size_type m_DETECTORELEMENT_INDEX
Definition: MuonIdHelper.h:261
MuonIdHelper::const_id_iterator
std::vector< Identifier >::const_iterator const_id_iterator
Definition: MuonIdHelper.h:140
MuonIdHelper::m_tec_impl
IdDictFieldImplementation m_tec_impl
Definition: MuonIdHelper.h:289
MuonIdHelper::get_next_in_eta
int get_next_in_eta(const IdentifierHash &id, IdentifierHash &next) const
Definition: MuonIdHelper.cxx:518
MuonIdHelper::m_channel_vec
id_vec m_channel_vec
Definition: MuonIdHelper.h:273
MuonIdHelper::init_channel_hashes
int init_channel_hashes()
Definition: MuonIdHelper.cxx:448
MuonIdHelper::idVector
const std::vector< Identifier > & idVector() const
the id's
Definition: MuonIdHelper.cxx:762
MuonID
MuonIdHelper MuonID
Definition: MuonIdHelper.h:344
MuonIdHelper::NOT_VALID_HASH
static constexpr int NOT_VALID_HASH
Definition: MuonIdHelper.h:224
MuonIdHelper::~MuonIdHelper
virtual ~MuonIdHelper()=default
Identifier::size_type
unsigned long long size_type
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:29
MuonIdHelper::module_begin
const_id_iterator module_begin() const
Iterators over full set of ids.
Definition: MuonIdHelper.cxx:764
IdDictFieldImplementation
IdDictFieldImplementation is used to capture the specification of a single field of an Identifier.
Definition: IdDictFieldImplementation.h:58
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
MuonIdHelper::m_muon_range
MultiRange m_muon_range
Definition: MuonIdHelper.h:265
MuonIdHelper::m_isForward
std::set< int > m_isForward
Definition: MuonIdHelper.h:332
MuonIdHelper::get_compact_id
int get_compact_id(const ExpandedIdentifier &id, Identifier &compact_id, const IdContext *context) const
Definition: MuonIdHelper.cxx:208
MuonIdHelper::channel
virtual int channel(const Identifier &id) const =0
IdContext
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
Definition: IdContext.h:26
CLASS_DEF.h
macros to associate a CLID to a type
MuonIdHelper::m_PHI_INDEX
size_type m_PHI_INDEX
Definition: MuonIdHelper.h:258
MuonIdHelper::validTechnology
bool validTechnology(int technology) const
Definition: MuonIdHelper.cxx:779
MuonIdHelper::technology_context
IdContext technology_context() const
access to IdContext's which define which levels or fields are contained in the Muon id
Definition: MuonIdHelper.cxx:736
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:52
MuonIdHelper::isInitialized
bool isInitialized() const
Definition: MuonIdHelper.cxx:880
MuonIdHelper::m_CHANNEL_INDEX
size_type m_CHANNEL_INDEX
Definition: MuonIdHelper.h:262
MuonIdHelper::BAD_NAME
static const std::string BAD_NAME
Definition: MuonIdHelper.h:221
MuonIdHelper::channel_hash_max
size_type channel_hash_max() const
Definition: MuonIdHelper.cxx:760
Identifier
Definition: IdentifierFieldParser.cxx:14
MuonIdHelper::m_dict
const IdDictDictionary * m_dict
Definition: MuonIdHelper.h:263