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