ATLAS Offline Software
HGTD_ID.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // HGTD_ID.h, (c) ATLAS Detector software
8 
9 #ifndef HGTD_IDENTIFIER_HGTD_ID_H
10 #define HGTD_IDENTIFIER_HGTD_ID_H
11 
13 #include "Identifier/Identifier.h"
16 #include "Identifier/MultiRange.h"
17 #include "Identifier/IdHelper.h"
19 #include "AthenaKernel/CLASS_DEF.h"
20 
21 #include <string>
22 #include <assert.h>
23 #include <algorithm>
24 
25 class IdDictDictionary;
26 
46 class HGTD_ID : public AtlasDetectorID
47 {
48 public:
49 
51 
53  typedef std::vector<Identifier>::const_iterator const_id_iterator;
56 
58 
59  HGTD_ID(void);
60  ~HGTD_ID(void);
62 
64 
67  int layer,
68  int phi_module,
69  int eta_module ) const;
70 
73  Identifier wafer_id ( const Identifier& pixel_id ) const;
74 
77 
80  int layer,
81  int phi_module,
82  int eta_module,
83  int phi_index,
84  int eta_index) const;
85  Identifier pixel_id ( const Identifier& id,
86  int phi_index,
87  int eta_index) const;
89 
91 
92  size_type wafer_hash_max (void) const;
93  size_type pixel_hash_max (void) const;
95 
97 
98  const_id_iterator wafer_begin (void) const;
100  const_id_iterator wafer_end (void) const;
106 
109 
111  int endcap (const Identifier& id) const;
112  int layer (const Identifier& id) const;
113  int phi_module (const Identifier& id) const;
114  int eta_module (const Identifier& id) const;
115  int phi_index (const Identifier& id) const;
116  int eta_index (const Identifier& id) const;
117 
119  int layer_max (const Identifier& id) const;
120  int phi_module_max (const Identifier& id) const;
121  int eta_module_max (const Identifier& id) const;
122  int eta_module_min (const Identifier& id) const;
123  int phi_index_max (const Identifier& id) const;
124  int eta_index_max (const Identifier& id) const;
125 
127 
128  int get_prev_in_phi (const IdentifierHash& id, IdentifierHash& prev) const;
131  int get_next_in_phi (const IdentifierHash& id, IdentifierHash& next) const;
133  int get_prev_in_eta (const IdentifierHash& id, IdentifierHash& prev) const;
135  int get_next_in_eta (const IdentifierHash& id, IdentifierHash& next) const;
136 
138  bool is_phi_module_max(const Identifier& id) const;
140 
142 
143  IdContext wafer_context (void) const;
144  IdContext pixel_context (void) const;
146 
148 
149  virtual int get_id (const IdentifierHash& hash_id,
151  Identifier& id,
152  const IdContext* context = 0) const;
153 
155  virtual int get_hash (const Identifier& id,
156  IdentifierHash& hash_id,
157  const IdContext* context = 0) const;
159 
160  // TODO: see if these commented out methods ported from PixelID class are needed
161 
162  // /// Create a compact id from a value (e.g., from a persistent object).
163  // /// This repacks fields in case it's a special pixel channel id.
164  // Identifier pixel_id (Identifier::value_type val) const;
165 
166  // /// Test if this is a valid shortened pixel channel id.
167  // bool is_shortened_pixel_id(Identifier32::value_type val) const;
168  // bool is_shortened_pixel_id(const Identifier32& id) const;
169  // bool is_shortened_pixel_id(const Identifier& id) const;
170 
171  // /// Create a compact pixel id from a (fixed format) legacy
172  // /// pixel channel id. If compiled in 32-bit mode, this method
173  // /// does nothing.
174  // Identifier pixel_id_from_shortened(Identifier32::value_type val) const;
175 
177  int base_bit (void) const;
178 
181  const Identifier& target) const;
182 
186 
188 
192 
194  void get_expanded_id (const Identifier& id,
195  ExpandedIdentifier& exp_id,
196  const IdContext* context = 0) const;
197 
199  virtual int initialize_from_dictionary(const IdDictMgr& dict_mgr);
200 
202  void test_wafer_packing (void) const;
203 
204  // switch between identification schemes
206  void set_useNewIdentifierScheme(bool switchIntoNewIdentifier);
207  bool get_useNewIdentifierScheme() const;
208  std::string m_endcap_ID = "hgtd_endcap";
209  std::string m_layer_ID = "hgtd_layer";
210  std::string m_moduleInLayer_Or_Row = "hgtd_phi_module";
211  std::string m_moduleInRow = "hgtd_eta_module";
212  std::string m_padInModuleRow = "hgtd_phi_index";
213  std::string m_padInModuleColumn = "hgtd_eta_index";
215 
216 private:
217  enum {NOT_VALID_HASH = 64000,
220 
221  typedef std::vector<Identifier> id_vec;
222  typedef id_vec::const_iterator id_vec_it;
223  typedef std::vector<unsigned short> hash_vec;
224  typedef hash_vec::const_iterator hash_vec_it;
225 
226  void wafer_id_checks ( int endcap,
227  int layer,
228  int phi_module,
229  int eta_module ) const;
230  void pixel_id_checks ( int endcap,
231  int layer,
232  int phi_module,
233  int eta_module,
234  int phi_index,
235  int eta_index) const;
236 
237  int initLevelsFromDict(void);
238 
239  int init_hashes(void);
240 
241  int init_neighbors(void);
242 
252 
258 
260 
265 
274 
275 };
276 
277 //using the macros below we can assign an identifier (and a version)
278 //This is required and checked at compile time when you try to record/retrieve
279 CLASS_DEF(HGTD_ID, 79264207, 1)
280 
281 // Inline methods:
284 
285 //----------------------------------------------------------------------------
286 inline Identifier
287 HGTD_ID::wafer_id ( int endcap,
288  int layer,
289  int phi_module,
290  int eta_module ) const
291 {
292 
293  // Build identifier
295 
296  // Pack fields independently
297  m_indet_impl.pack (indet_field_value(), result);
298  m_hgtd_impl.pack (hgtd_field_value(), result);
299  m_ec_impl.pack (endcap, result);
300  m_layer_impl.pack (layer, result);
301  m_phi_mod_impl.pack (phi_module, result);
302  m_eta_mod_impl.pack (eta_module, result);
303 
304  // Do checks
305  if(m_do_checks) {
306  wafer_id_checks ( endcap, layer, phi_module, eta_module );
307  }
308 
309  return result;
310 }
311 
312 //----------------------------------------------------------------------------
313 inline Identifier
314 HGTD_ID::wafer_id ( const Identifier& pixel_id ) const
315 {
319  return (result);
320 }
321 
322 //----------------------------------------------------------------------------
323 inline Identifier
324 HGTD_ID::wafer_id ( IdentifierHash wafer_hash ) const
325 {
326  return (m_wafer_vec[wafer_hash]);
327 }
328 
329 //----------------------------------------------------------------------------
330 inline Identifier
331 HGTD_ID::pixel_id ( int endcap,
332  int layer,
333  int phi_module,
334  int eta_module,
335  int phi_index,
336  int eta_index) const
337 {
338 
339  // Build identifier
349 
350  if(m_do_checks) {
351 
353  layer,
354  phi_module,
355  eta_module,
356  phi_index,
357  eta_index);
358  }
359 
360  return result;
361 }
362 
365 //----------------------------------------------------------------------------
366 inline Identifier
368 {
371  id[m_LAYER_INDEX],
372  id[m_PHI_MODULE_INDEX],
373  id[m_ETA_MODULE_INDEX],
374  id[m_PHI_INDEX_INDEX],
375  id[m_ETA_INDEX_INDEX]);
376 
377  if(m_do_checks) {
379  id[m_LAYER_INDEX],
380  id[m_PHI_MODULE_INDEX],
381  id[m_ETA_MODULE_INDEX],
382  id[m_PHI_INDEX_INDEX],
383  id[m_ETA_INDEX_INDEX]);
384  }
385 
386  return (result);
387 }
388 
389 //----------------------------------------------------------------------------
390 inline Identifier
391 HGTD_ID::pixel_id ( const Identifier& wafer_id,
392  int phi_index,
393  int eta_index) const
394 {
400  return (result);
401 }
402 
403 //----------------------------------------------------------------------------
405 {
406  id_vec_it it = std::lower_bound(m_wafer_vec.begin(),
407  m_wafer_vec.end(),
408  wafer_id);
409  // Require that wafer_id matches the one in vector
410  if (it != m_wafer_vec.end() && wafer_id == (*it)) {
411  return (it - m_wafer_vec.begin());
412  }
414  return (result); // return hash in invalid state
415 }
416 
417 //----------------------------------------------------------------------------
420 {
421  Identifier::diff_type tval = static_cast<Identifier::diff_type>(target.get_compact() >> base_bit());
422  Identifier::diff_type bval = static_cast<Identifier::diff_type>(base.get_compact() >> base_bit());
423  return (tval - bval);
424 }
425 
426 //----------------------------------------------------------------------------
427 inline Identifier
430 {
431  Identifier::value_type bval = base.get_compact() >> base_bit();
432  return Identifier((bval + offset) << base_bit());
433 }
434 
435 //----------------------------------------------------------------------------
436 inline int
437 HGTD_ID::base_bit ( void ) const
438 {
439  // TODO: determine if anything needs to change here (implementation ported from PixelID)
440  // TODO: e.g. m_eta_index_impl is still lowest field base, but where does the 32 come from? 32 bits?
441  // TODO: also understand what's happening
442  int base = static_cast<int>(m_eta_index_impl.shift()); // lowest field base
443  return (base > 32) ? 32 : base;
444  // max base is 32 so we can still read old strip id's and differences
445  // from non-SLHC releases.
446 }
447 
448 //----------------------------------------------------------------------------
449 inline IdContext
451 {
453  return (IdContext(id, 0, m_ETA_MODULE_INDEX));
454 }
455 
456 //----------------------------------------------------------------------------
457 inline IdContext
459 {
460  // For pixel only, the prefix is the first two levels
462  id << indet_field_value() << hgtd_field_value();
464 }
465 
466 //----------------------------------------------------------------------------
467 inline int
468 HGTD_ID::endcap (const Identifier& id) const
469 {
470  return (m_ec_impl.unpack(id));
471 }
472 
473 //----------------------------------------------------------------------------
474 inline int
475 HGTD_ID::layer (const Identifier& id) const
476 {
477  return (m_layer_impl.unpack(id));
478 }
479 
480 //----------------------------------------------------------------------------
481 inline int
483 {
484  return (m_phi_mod_impl.unpack(id));
485 }
486 
487 //----------------------------------------------------------------------------
488 inline int
490 {
491  return (m_eta_mod_impl.unpack(id));
492 }
493 
494 //----------------------------------------------------------------------------
495 inline int
497 {
498  return (m_phi_index_impl.unpack(id));
499 }
500 
501 //----------------------------------------------------------------------------
502 inline int
504 {
505  return (m_eta_index_impl.unpack(id));
506 }
507 
508 #endif // HGTD_IDENTIFIER_HGTD_ID_H
base
std::string base
Definition: hcg.cxx:78
AtlasDetectorID::indet_field_value
int indet_field_value() const
Provide efficient access to individual field values, for subclass idhelpers.
Definition: AtlasDetectorID.h:611
HGTD_ID::m_phi_index_impl
IdDictFieldImplementation m_phi_index_impl
Definition: HGTD_ID.h:272
HGTD_ID::pixel_id_offset
Identifier pixel_id_offset(const Identifier &base, Identifier::diff_type offset) const
Create an identifier with a given base and channel offset.
Definition: HGTD_ID.h:428
HGTD_ID::m_full_wafer_range
MultiRange m_full_wafer_range
Definition: HGTD_ID.h:254
HGTD_ID::eta_module_min
int eta_module_min(const Identifier &id) const
Definition: HGTD_ID.cxx:141
get_generator_info.result
result
Definition: get_generator_info.py:21
HGTD_ID::wafer_hash
IdentifierHash wafer_hash(Identifier wafer_id) const
wafer hash from id
Definition: HGTD_ID.h:404
HGTD_ID::m_HGTD_INDEX
size_type m_HGTD_INDEX
Definition: HGTD_ID.h:245
Identifier::MAX_BIT
@ MAX_BIT
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:33
HGTD_ID::initialize_from_dictionary
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr)
Initialization from the identifier dictionary.
Definition: HGTD_ID.cxx:204
HGTD_ID::m_dict
const IdDictDictionary * m_dict
Definition: HGTD_ID.h:253
HGTD_ID::base_bit
int base_bit(void) const
Return the lowest bit position used in the channel id.
Definition: HGTD_ID.h:437
HGTD_ID::BITS32
@ BITS32
Definition: HGTD_ID.h:219
HGTD_ID::m_hgtd_impl
IdDictFieldImplementation m_hgtd_impl
Definition: HGTD_ID.h:267
HGTD_ID::get_prev_in_eta
int get_prev_in_eta(const IdentifierHash &id, IdentifierHash &prev) const
Previous wafer hash in eta (return == 0 for neighbor found)
Definition: HGTD_ID.cxx:414
HGTD_ID::get_useNewIdentifierScheme
bool get_useNewIdentifierScheme() const
Definition: HGTD_ID.cxx:596
HGTD_ID::endcap
int endcap(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: HGTD_ID.h:468
HGTD_ID::m_endcap_ID
std::string m_endcap_ID
Definition: HGTD_ID.h:208
skel.it
it
Definition: skel.GENtoEVGEN.py:396
HGTD_ID::eta_index
int eta_index(const Identifier &id) const
Definition: HGTD_ID.h:503
ExpandedIdentifier
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:102
IdDictFieldImplementation::pack
void pack(int value, Identifier &id) const
Definition: IdDictFieldImplementation.h:173
HGTD_ID::eta_module_max
int eta_module_max(const Identifier &id) const
Definition: HGTD_ID.cxx:122
HGTD_ID::pixel_context
IdContext pixel_context(void) const
Definition: HGTD_ID.h:458
HGTD_ID::~HGTD_ID
~HGTD_ID(void)
Definition: HGTD_ID.cxx:33
HGTD_ID::hash_vec_it
hash_vec::const_iterator hash_vec_it
Definition: HGTD_ID.h:224
HGTD_ID::m_prev_phi_wafer_vec
hash_vec m_prev_phi_wafer_vec
Definition: HGTD_ID.h:261
IdHelper.h
AtlasDetectorID::m_do_checks
bool m_do_checks
Flag for subclasses to know whether or not to perform checks.
Definition: AtlasDetectorID.h:362
HGTD_ID::hash_vec
std::vector< unsigned short > hash_vec
Definition: HGTD_ID.h:223
HGTD_ID::pixel_end
const_expanded_id_iterator pixel_end(void) const
Definition: HGTD_ID.cxx:858
HGTD_ID::wafer_id_checks
void wafer_id_checks(int endcap, int layer, int phi_module, int eta_module) const
Definition: HGTD_ID.cxx:37
HGTD_ID::layer
int layer(const Identifier &id) const
Definition: HGTD_ID.h:475
HGTD_ID::m_ec_impl
IdDictFieldImplementation m_ec_impl
Definition: HGTD_ID.h:268
Identifier::diff_type
long long diff_type
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:28
IdDictFieldImplementation::unpack
int unpack(Identifier id) const
Identifier manipulation methods.
Definition: IdDictFieldImplementation.h:147
HGTD_ID::wafer_begin
const_id_iterator wafer_begin(void) const
Iterators over full set of ids. Wafer iterator is sorted.
Definition: HGTD_ID.cxx:843
HGTD_ID::m_wafer_hash_max
size_type m_wafer_hash_max
Definition: HGTD_ID.h:256
HGTD_ID::m_next_phi_wafer_vec
hash_vec m_next_phi_wafer_vec
Definition: HGTD_ID.h:262
HGTD_ID::get_expanded_id
void get_expanded_id(const Identifier &id, ExpandedIdentifier &exp_id, const IdContext *context=0) const
Create expanded id from compact id (return == 0 for OK)
Definition: HGTD_ID.cxx:864
HGTD_ID::wafer_id
Identifier wafer_id(int endcap, int layer, int phi_module, int eta_module) const
For a single crystal.
Definition: HGTD_ID.h:287
IdDictFieldImplementation::reset
void reset(Identifier &id) const
Definition: IdDictFieldImplementation.h:183
HGTD_ID::get_id
virtual int get_id(const IdentifierHash &hash_id, Identifier &id, const IdContext *context=0) const
Create compact id from hash id (return == 0 for OK)
Definition: HGTD_ID.cxx:883
AtlasDetectorID::size_type
Identifier::size_type size_type
Definition: AtlasDetectorID.h:384
HGTD_ID::phi_index
int phi_index(const Identifier &id) const
Definition: HGTD_ID.h:496
HGTD_ID::m_padInModuleColumn
std::string m_padInModuleColumn
Definition: HGTD_ID.h:213
HGTD_ID::m_LAYER_INDEX
size_type m_LAYER_INDEX
Definition: HGTD_ID.h:247
HGTD_ID::m_ENDCAP_INDEX
size_type m_ENDCAP_INDEX
Definition: HGTD_ID.h:246
HGTD_ID::m_INDET_INDEX
size_type m_INDET_INDEX
Definition: HGTD_ID.h:244
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
HGTD_ID::m_eta_index_impl
IdDictFieldImplementation m_eta_index_impl
Definition: HGTD_ID.h:273
HGTD_ID::id_vec_it
id_vec::const_iterator id_vec_it
Definition: HGTD_ID.h:222
HGTD_ID::m_padInModuleRow
std::string m_padInModuleRow
Definition: HGTD_ID.h:212
HGTD_ID::pixel_id_checks
void pixel_id_checks(int endcap, int layer, int phi_module, int eta_module, int phi_index, int eta_index) const
Definition: HGTD_ID.cxx:59
IdDictFieldImplementation::shift
size_type shift() const
Definition: IdDictFieldImplementation.h:226
HGTD_ID::m_pixel_hash_max
size_type m_pixel_hash_max
Definition: HGTD_ID.h:257
fillPileUpNoiseLumi.next
next
Definition: fillPileUpNoiseLumi.py:52
AtlasDetectorID::hgtd_field_value
int hgtd_field_value() const
Definition: AtlasDetectorID.h:635
MultiRange::const_identifier_factory
Definition: MultiRange.h:52
HGTD_ID::m_moduleInRow
std::string m_moduleInRow
Definition: HGTD_ID.h:211
HGTD_ID::m_useNewIdentifierScheme
bool m_useNewIdentifierScheme
Definition: HGTD_ID.h:205
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
HGTD_ID::m_ETA_INDEX_INDEX
size_type m_ETA_INDEX_INDEX
Definition: HGTD_ID.h:251
HGTD_ID::m_PHI_MODULE_INDEX
size_type m_PHI_MODULE_INDEX
Definition: HGTD_ID.h:248
HGTD_ID::eta_index_max
int eta_index_max(const Identifier &id) const
Definition: HGTD_ID.cxx:179
HGTD_ID::get_hash
virtual int get_hash(const Identifier &id, IdentifierHash &hash_id, const IdContext *context=0) const
Create hash id from compact id (return == 0 for OK)
Definition: HGTD_ID.cxx:910
HGTD_ID::m_ETA_MODULE_INDEX
size_type m_ETA_MODULE_INDEX
Definition: HGTD_ID.h:249
HGTD_ID
Definition: HGTD_ID.h:47
HGTD_ID::m_prev_eta_wafer_vec
hash_vec m_prev_eta_wafer_vec
Definition: HGTD_ID.h:263
createCablingJSON.eta_index
int eta_index
Definition: createCablingJSON.py:14
HGTD_ID::test_wafer_packing
void test_wafer_packing(void) const
Tests of packing.
Definition: HGTD_ID.cxx:944
HGTD_ID::initLevelsFromDict
int initLevelsFromDict(void)
Definition: HGTD_ID.cxx:602
HGTD_ID::m_phi_mod_impl
IdDictFieldImplementation m_phi_mod_impl
Definition: HGTD_ID.h:270
HGTD_ID::get_next_in_phi
int get_next_in_phi(const IdentifierHash &id, IdentifierHash &next) const
Next wafer hash in phi (return == 0 for neighbor found)
Definition: HGTD_ID.cxx:402
HGTD_ID::m_wafer_vec
id_vec m_wafer_vec
Definition: HGTD_ID.h:259
Identifier::ALL_BITS
@ ALL_BITS
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:34
HGTD_ID::phi_module_max
int phi_module_max(const Identifier &id) const
Definition: HGTD_ID.cxx:103
HGTD_ID::m_next_eta_wafer_vec
hash_vec m_next_eta_wafer_vec
Definition: HGTD_ID.h:264
HGTD_ID::m_full_pixel_range
MultiRange m_full_pixel_range
Definition: HGTD_ID.h:255
HGTD_ID::m_indet_impl
IdDictFieldImplementation m_indet_impl
Definition: HGTD_ID.h:266
HGTD_ID::size_type
Identifier::size_type size_type
Definition: HGTD_ID.h:52
HGTD_ID::wafer_hash_max
size_type wafer_hash_max(void) const
Definition: HGTD_ID.cxx:832
HGTD_ID::init_hashes
int init_hashes(void)
Definition: HGTD_ID.cxx:317
HGTD_ID::pixel_hash_max
size_type pixel_hash_max(void) const
Definition: HGTD_ID.cxx:838
MultiRange
A MultiRange combines several Ranges.
Definition: MultiRange.h:17
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:227
IdentifierHash.h
HGTD_ID::pixel_begin
const_expanded_id_iterator pixel_begin(void) const
For pixel ids, only expanded id iterators are available.
Definition: HGTD_ID.cxx:853
HGTD_ID::m_layer_ID
std::string m_layer_ID
Definition: HGTD_ID.h:209
HGTD_ID::pixel_id
Identifier pixel_id(int endcap, int layer, int phi_module, int eta_module, int phi_index, int eta_index) const
For an individual pixel.
Definition: HGTD_ID.h:331
MultiRange.h
IdDictDictionary
Definition: IdDictDictionary.h:30
HGTD_ID::calc_offset
Identifier::diff_type calc_offset(const Identifier &base, const Identifier &target) const
Calculate a channel offset between the two identifiers.
Definition: HGTD_ID.h:419
IdDictFieldImplementation.h
HGTD_ID::wafer_end
const_id_iterator wafer_end(void) const
Definition: HGTD_ID.cxx:848
HGTD_ID::get_prev_in_phi
int get_prev_in_phi(const IdentifierHash &id, IdentifierHash &prev) const
Previous wafer hash in phi (return == 0 for neighbor found)
Definition: HGTD_ID.cxx:390
HGTD_ID::const_expanded_id_iterator
MultiRange::const_identifier_factory const_expanded_id_iterator
Definition: HGTD_ID.h:54
HGTD_ID::wafer_context
IdContext wafer_context(void) const
Definition: HGTD_ID.h:450
HGTD_ID::eta_module
int eta_module(const Identifier &id) const
Definition: HGTD_ID.h:489
HGTD_ID::const_id_iterator
std::vector< Identifier >::const_iterator const_id_iterator
Definition: HGTD_ID.h:53
copySelective.target
string target
Definition: copySelective.py:37
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:64
HGTD_ID::set_useNewIdentifierScheme
void set_useNewIdentifierScheme(bool switchIntoNewIdentifier)
Definition: HGTD_ID.cxx:591
HGTD_ID::phi_module
int phi_module(const Identifier &id) const
Definition: HGTD_ID.h:482
HGTD_ID::m_moduleInLayer_Or_Row
std::string m_moduleInLayer_Or_Row
Definition: HGTD_ID.h:210
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
HGTD_ID::is_phi_module_max
bool is_phi_module_max(const Identifier &id) const
To check for when phi wrap around may be needed.
Definition: HGTD_ID.cxx:198
Identifier::value_type
unsigned long long value_type
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:27
HGTD_ID::m_eta_mod_impl
IdDictFieldImplementation m_eta_mod_impl
Definition: HGTD_ID.h:271
Identifier::size_type
unsigned long long size_type
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:29
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
HGTD_ID::NOT_VALID_HASH
@ NOT_VALID_HASH
Definition: HGTD_ID.h:217
Identifier32.h
IdContext
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
Definition: IdContext.h:26
HGTD_ID::layer_max
int layer_max(const Identifier &id) const
Max/Min values for each field (error returns -999)
Definition: HGTD_ID.cxx:84
CLASS_DEF.h
macros to associate a CLID to a type
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:57
HGTD_ID::m_hgtd_region_index
size_type m_hgtd_region_index
Definition: HGTD_ID.h:243
HGTD_ID::phi_index_max
int phi_index_max(const Identifier &id) const
Definition: HGTD_ID.cxx:160
HGTD_ID::m_PHI_INDEX_INDEX
size_type m_PHI_INDEX_INDEX
Definition: HGTD_ID.h:250
HGTD_ID::id_vec
std::vector< Identifier > id_vec
Definition: HGTD_ID.h:221
HGTD_ID::MAX_BIT
@ MAX_BIT
Definition: HGTD_ID.h:218
HGTD_ID::init_neighbors
int init_neighbors(void)
Definition: HGTD_ID.cxx:438
HGTD_ID::get_next_in_eta
int get_next_in_eta(const IdentifierHash &id, IdentifierHash &next) const
Next wafer hash in eta (return == 0 for neighbor found)
Definition: HGTD_ID.cxx:426
HGTD_ID::HGTD_ID
HGTD_ID(void)
Definition: HGTD_ID.cxx:16
Identifier
Definition: IdentifierFieldParser.cxx:14
HGTD_ID::m_layer_impl
IdDictFieldImplementation m_layer_impl
Definition: HGTD_ID.h:269