ATLAS Offline Software
PixelID.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 INDETIDENTIFIER_PIXELID_H
6 #define INDETIDENTIFIER_PIXELID_H
7 
20 #include "Identifier/Identifier.h"
23 #include "Identifier/MultiRange.h"
24 #include "Identifier/IdHelper.h"
26 #include "AthenaKernel/CLASS_DEF.h"
27 
28 #include <string>
29 #include <cassert>
30 #include <algorithm>
31 
32 
33 class IdDictDictionary;
34 
66 class PixelID: public AtlasDetectorID
67 {
68 public:
70 
72  typedef std::vector<Identifier>::const_iterator const_id_iterator;
75 
77 
78  PixelID();
80 
82  virtual AtlasDetectorID::HelperType helper() const override{
84  }
85 
87 
90  int layer_disk,
91  int phi_module,
92  int eta_module) const;
94  int layer_disk,
95  int phi_module,
96  int eta_module,
97  bool checks) const;
98 
101  Identifier wafer_id(const Identifier& pixel_id) const;
102 
105 
108  int layer_disk,
109  int phi_module,
110  int eta_module,
111  int phi_index,
112  int eta_index) const;
114  int layer_disk,
115  int phi_module,
116  int eta_module,
117  int phi_index,
118  int eta_index,
119  bool checks) const;
120  Identifier pixel_id(const Identifier& id,
121  int phi_index,
122  int eta_index) const;
124 
126 
127  size_type wafer_hash_max(void) const;
128  size_type pixel_hash_max(void) const;
130 
132 
133  const_id_iterator wafer_begin(void) const;
135  const_id_iterator wafer_end(void) const;
141 
142 
144 
147 
149  bool is_barrel(const Identifier& id) const;
150 
152  bool is_dbm(const Identifier& id) const; //DBM
153 
155  bool is_blayer(const Identifier& id) const;
156 
158  int barrel_ec(const Identifier& id) const;
159  int layer_disk(const Identifier& id) const;
160  int phi_module(const Identifier& id) const;
161  int eta_module(const Identifier& id) const;
162  int phi_index(const Identifier& id) const;
163  int eta_index(const Identifier& id) const;
164 
166  int layer_disk_max(const Identifier& id) const;
167  int phi_module_max(const Identifier& id) const;
168  int eta_module_max(const Identifier& id) const;
169  int eta_module_min(const Identifier& id) const;
170  int phi_index_max(const Identifier& id) const;
171  int eta_index_max(const Identifier& id) const;
173 
175 
176  int get_prev_in_phi(const IdentifierHash& id, IdentifierHash& prev) const;
179  int get_next_in_phi(const IdentifierHash& id, IdentifierHash& next) const;
181  int get_prev_in_eta(const IdentifierHash& id, IdentifierHash& prev) const;
183  int get_next_in_eta(const IdentifierHash& id, IdentifierHash& next) const;
184 
186  bool is_phi_module_max(const Identifier& id) const;
188  bool is_eta_module_min(const Identifier& id) const;
190  bool is_eta_module_max(const Identifier& id) const;
192 
193 
195 
196  IdContext wafer_context(void) const;
197  IdContext pixel_context(void) const;
199 
201 
202  virtual int get_id(const IdentifierHash& hash_id,
204  Identifier& id,
205  const IdContext* context = 0) const override final;
206 
208  virtual int get_hash(const Identifier& id,
209  IdentifierHash& hash_id,
210  const IdContext* context = 0) const override final;
212 
216 
221 
226 
228  int base_bit(void) const;
229 
233 
236  Identifier::diff_type offset) const;
237 
239 
244 
247  ExpandedIdentifier& exp_id,
248  const IdContext* context = 0) const;
249 
251  virtual int initialize_from_dictionary(const IdDictMgr& dict_mgr) override;
252 
254  void test_wafer_packing(void) const;
256 
257 protected:
258  enum {
259  NOT_VALID_HASH = 64000,
262  };
263 
264  typedef std::vector<Identifier> id_vec;
265  typedef id_vec::const_iterator id_vec_it;
266  typedef std::vector<unsigned short> hash_vec;
267  typedef hash_vec::const_iterator hash_vec_it;
268 
269  void wafer_id_checks(int barrel_ec,
270  int layer_disk,
271  int phi_module,
272  int eta_module) const;
273  void pixel_id_checks(int barrel_ec,
274  int layer_disk,
275  int phi_module,
276  int eta_module,
277  int phi_index,
278  int eta_index) const;
279 
280  int initLevelsFromDict(void);
281 
282  int init_hashes(void);
283 
284  int init_neighbors(void);
285 
288 
311 
325 
327 };
328 
329 
330 
332 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>>
334 
335 //using the macros below we can assign an identifier (and a version)
336 //This is required and checked at compile time when you try to record/retrieve
337 CLASS_DEF(PixelID, 2516, 1)
338 
339 //----------------------------------------------------------------------------
340 inline Identifier
341 PixelID::wafer_id(int barrel_ec,
342  int layer_disk,
343  int phi_module,
344  int eta_module,
345  bool checks) const {
346  // Build identifier
347  Identifier result = m_baseIdentifier;
348 
349  // Pack fields independently
350  m_bec_impl.pack(barrel_ec, result);
351  m_lay_disk_impl.pack(layer_disk, result);
352  m_phi_mod_impl.pack(phi_module, result);
353  m_eta_mod_impl.pack(eta_module, result);
354 
355  // Do checks
356  if (checks) {
357  wafer_id_checks(barrel_ec, layer_disk, phi_module, eta_module);
358  }
359 
360  return result;
361 }
362 
363 inline Identifier
364 PixelID::wafer_id(int barrel_ec,
365  int layer_disk,
366  int phi_module,
367  int eta_module) const {
369 }
370 
371 //----------------------------------------------------------------------------
372 inline Identifier
373 PixelID::wafer_id(const Identifier& pixel_id) const {
375 
378  return(result);
379 }
380 
381 //----------------------------------------------------------------------------
382 inline Identifier PixelID::wafer_id(IdentifierHash wafer_hash) const {
383  return(m_wafer_vec[wafer_hash]);
384 }
385 
386 //----------------------------------------------------------------------------
388  id_vec_it it = std::lower_bound(m_wafer_vec.begin(),
389  m_wafer_vec.end(),
390  wafer_id);
391 
392  // Require that wafer_id matches the one in vector
393  if (it != m_wafer_vec.end() && wafer_id == (*it)) {
394  return(it - m_wafer_vec.begin());
395  }
397  return(result); // return hash in invalid state
398 }
399 
400 //----------------------------------------------------------------------------
401 inline Identifier
402 PixelID::pixel_id(int barrel_ec,
403  int layer_disk,
404  int phi_module,
405  int eta_module,
406  int phi_index,
407  int eta_index,
408  bool checks) const {
409  // Build identifier
411 
418 
419  if (checks) {
421  layer_disk,
422  phi_module,
423  eta_module,
424  phi_index,
425  eta_index);
426  }
427 
428  return result;
429 }
430 
431 inline Identifier
432 PixelID::pixel_id(int barrel_ec,
433  int layer_disk,
434  int phi_module,
435  int eta_module,
436  int phi_index,
437  int eta_index) const {
440 }
441 
444 //----------------------------------------------------------------------------
445 inline Identifier
447  bool checks) const {
449 
451  id[m_LAYER_DISK_INDEX],
452  id[m_PHI_MODULE_INDEX],
453  id[m_ETA_MODULE_INDEX],
454  id[m_PHI_INDEX_INDEX],
455  id[m_ETA_INDEX_INDEX]);
456 
457  if (checks) {
459  id[m_LAYER_DISK_INDEX],
460  id[m_PHI_MODULE_INDEX],
461  id[m_ETA_MODULE_INDEX],
462  id[m_PHI_INDEX_INDEX],
463  id[m_ETA_INDEX_INDEX]);
464  }
465 
466  return(result);
467 }
468 
469 inline Identifier
471  return pixel_id(id, do_checks());
472 }
473 
474 //----------------------------------------------------------------------------
475 inline Identifier
477  int phi_index,
478  int eta_index) const {
480 
485  return(result);
486 }
487 
488 //----------------------------------------------------------------------------
489 inline Identifier
491  // a pixel channel id has bit 31 set, and low 8 bits > 0.
492  // This could also have been shifted up by 32 bits.
493 
494  // first test to see if this is a 32-bit value promoted to 64-bit
495  // (low word != 0, high word == 0).
496  if ((val << 32) && !(val >> 32)) {
497  // test to see if this is a genuine 64-bit pixel channel id;
498  // these would not have the low 8-bits nonzero.
499  // (This will break if pixel channel id's fill more than 56 bits!)
500  Identifier32::value_type valshort = static_cast<Identifier32::value_type>(val);
501  if (is_shortened_pixel_id(valshort)) {
502  return pixel_id_from_shortened(valshort);
503  }
504  } else if (!(val << 32) && (val >> 32)) {
505  // low word 0, high word != 0
506  Identifier32::value_type valshort = static_cast<Identifier32::value_type>(val >> 32);
507  if (is_shortened_pixel_id(valshort)) {
508  return pixel_id_from_shortened(valshort);
509  }
510  }
511  return Identifier(val); // genuine 64-bit pixel channel id
512 }
513 
514 //----------------------------------------------------------------------------
515 inline bool
517  return (val >> 31) && (val & 0xff);
518 }
519 
520 //----------------------------------------------------------------------------
521 inline bool
523  return is_shortened_pixel_id(id.get_compact());
524 }
525 
526 //----------------------------------------------------------------------------
527 inline bool
529  Identifier::value_type val = id.get_compact();
530  Identifier32::value_type valshort;
531  // first test if value is contained in one half or the other
532  if ((val << 32) && !(val >> 32)) {
533  // low word contains value, high word empty
534  valshort = static_cast<Identifier32::value_type>(val);
535  } else if (!(val << 32) && (val >> 32)) {
536  // high word contains value, low word empty
537  valshort = static_cast<Identifier32::value_type>(val >> 32);
538  } else {
539  return false;
540  }
541  return is_shortened_pixel_id(valshort);
542 }
543 
544 //----------------------------------------------------------------------------
545 inline Identifier
547  int bec_val[4] = {
548  -2, 0, 2, -999
549  }; // CHECK decodings
550  int bec = bec_val[(val >> 29) & 0x03];
551 
552  if (bec < -2) return Identifier();
553 
554  return pixel_id(bec,
555  /* lay_disk */ ((val >> 27) & 0x03),
556  /* phi_mod */ ((val >> 21) & 0x3f),
557  /* eta_mod */ (((val >> 17) & 0x0f) + m_ETA_MODULE_OFFSET),
558  /* phi_index */ ((val >> 8) & 0x1ff),
559  /* eta_index */ ((val) & 0xff) - 1);
560 }
561 
562 //----------------------------------------------------------------------------
565  Identifier::diff_type tval = static_cast<Identifier::diff_type>(target.get_compact() >> base_bit());
566  Identifier::diff_type bval = static_cast<Identifier::diff_type>(base.get_compact() >> base_bit());
567  return(tval - bval);
568 }
569 
570 //----------------------------------------------------------------------------
571 inline Identifier
574  Identifier::value_type bval = base.get_compact() >> base_bit();
575  return Identifier((bval + offset) << base_bit());
576 }
577 
578 //----------------------------------------------------------------------------
579 inline int
580 PixelID::base_bit(void) const {
581  int base = static_cast<int>(m_eta_index_impl.shift()); // lowest field base
582 
583  return (base > 32) ? 32 : base;
584  // max base is 32 so we can still read old strip id's and differences
585  // from non-SLHC releases.
586 }
587 
588 //----------------------------------------------------------------------------
589 inline IdContext
592 
593  return(IdContext(id, 0, m_ETA_MODULE_INDEX));
594 }
595 
596 //----------------------------------------------------------------------------
597 inline IdContext
599  // For pixel only, the prefix is the first two levels
601 }
602 
603 //----------------------------------------------------------------------------
604 inline bool
605 PixelID::is_barrel(const Identifier& id) const {
606  // Normal unshifted id
607  return(m_barrel_field.match(m_bec_impl.unpack(id)));
608 }
609 
610 //----------------------------------------------------------------------------
611 inline bool
612 PixelID::is_dbm(const Identifier& id) const {
613  // Normal unshifted id
614  return(m_dbm_field.match(m_bec_impl.unpack(id)));
615 }
616 
617 //----------------------------------------------------------------------------
618 inline int
619 PixelID::barrel_ec(const Identifier& id) const {
620  // Normal unshifted id
621  return(m_bec_impl.unpack(id));
622 }
623 
624 //----------------------------------------------------------------------------
625 inline int
626 PixelID::layer_disk(const Identifier& id) const {
627  // Normal unshifted id
628  return(m_lay_disk_impl.unpack(id));
629 }
630 
631 //----------------------------------------------------------------------------
632 inline bool
633 PixelID::is_blayer(const Identifier& id) const {
634  // Check if it is pixel id
635  if (is_barrel(id)) {
636  return(0 == layer_disk(id));
637  } else {
638  return(false);
639  }
640 }
641 
642 //----------------------------------------------------------------------------
643 inline int
644 PixelID::phi_module(const Identifier& id) const {
645  // Normal unshifted id
646  return(m_phi_mod_impl.unpack(id));
647 }
648 
649 //----------------------------------------------------------------------------
650 inline int
651 PixelID::eta_module(const Identifier& id) const {
652  // Normal unshifted id
653  return(m_eta_mod_impl.unpack(id));
654 }
655 
656 //----------------------------------------------------------------------------
657 inline int
658 PixelID::phi_index(const Identifier& id) const {
659  return(m_phi_index_impl.unpack(id));
660 }
661 
662 //----------------------------------------------------------------------------
663 inline int
664 PixelID::eta_index(const Identifier& id) const {
665  return(m_eta_index_impl.unpack(id));
666 }
667 
668 #endif // INDETIDENTIFIER_PIXELID_H
base
std::string base
Definition: hcg.cxx:78
PixelID::m_bec_impl
IdDictFieldImplementation m_bec_impl
Definition: PixelID.h:314
Identifier32
Definition: Identifier32.h:25
PixelID::get_hash
virtual int get_hash(const Identifier &id, IdentifierHash &hash_id, const IdContext *context=0) const override final
Create hash id from compact id (return == 0 for OK)
Definition: PixelID.cxx:975
PixelID::m_wafer_hash_max
size_type m_wafer_hash_max
Definition: PixelID.h:303
PixelID::m_INDET_INDEX
size_type m_INDET_INDEX
Definition: PixelID.h:290
PixelID::phi_index
int phi_index(const Identifier &id) const
Definition: PixelID.h:658
PixelID::const_id_iterator
std::vector< Identifier >::const_iterator const_id_iterator
Definition: PixelID.h:72
get_generator_info.result
result
Definition: get_generator_info.py:21
PixelID::wafer_end
const_id_iterator wafer_end(void) const
Definition: PixelID.cxx:920
PixelID::pixel_context
IdContext pixel_context(void) const
Definition: PixelID.h:598
PixelID::is_eta_module_min
bool is_eta_module_min(const Identifier &id) const
For the barrel.
Definition: PixelID.cxx:115
Identifier::MAX_BIT
@ MAX_BIT
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:33
AtlasDetectorID::HelperType::Pixel
@ Pixel
ParticleGun_SamplingFraction.bec
int bec
Definition: ParticleGun_SamplingFraction.py:89
PixelID::m_pixel_id
Identifier m_pixel_id
Definition: PixelID.h:299
PixelID::m_eta_mod_shift_impl
IdDictFieldImplementation m_eta_mod_shift_impl
Definition: PixelID.h:321
PixelID::m_bec_shift_impl
IdDictFieldImplementation m_bec_shift_impl
Definition: PixelID.h:318
PixelID::PixelID
PixelID()
Definition: PixelID.cxx:22
PixelID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: PixelID.h:619
PixelID::hash_vec_it
hash_vec::const_iterator hash_vec_it
Definition: PixelID.h:267
PixelID::initialize_from_dictionary
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr) override
Initialization from the identifier dictionary.
Definition: PixelID.cxx:186
PixelID::m_indet_impl
IdDictFieldImplementation m_indet_impl
Definition: PixelID.h:312
PixelID::m_dbm_field
Range::field m_dbm_field
Definition: PixelID.h:326
PixelID::init_hashes
int init_hashes(void)
Definition: PixelID.cxx:391
PixelID::m_next_eta_wafer_vec
hash_vec m_next_eta_wafer_vec
Definition: PixelID.h:310
PixelID::m_BARREL_EC_INDEX
size_type m_BARREL_EC_INDEX
Definition: PixelID.h:292
skel.it
it
Definition: skel.GENtoEVGEN.py:396
PixelID::m_phi_index_impl
IdDictFieldImplementation m_phi_index_impl
Definition: PixelID.h:322
PixelID::wafer_begin
const_id_iterator wafer_begin(void) const
Iterators over full set of ids. Wafer iterator is sorted.
Definition: PixelID.cxx:916
PixelID::m_ETA_INDEX_INDEX
size_type m_ETA_INDEX_INDEX
Definition: PixelID.h:297
PixelID::m_phi_mod_shift_impl
IdDictFieldImplementation m_phi_mod_shift_impl
Definition: PixelID.h:320
PixelID::m_full_pixel_range
MultiRange m_full_pixel_range
Definition: PixelID.h:302
ExpandedIdentifier
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:102
PixelID::m_eta_mod_impl
IdDictFieldImplementation m_eta_mod_impl
Definition: PixelID.h:317
IdDictFieldImplementation::pack
void pack(int value, Identifier &id) const
Definition: IdDictFieldImplementation.h:174
PixelID::m_ETA_MODULE_OFFSET
int m_ETA_MODULE_OFFSET
Definition: PixelID.h:298
PixelID::m_ETA_MODULE_INDEX
size_type m_ETA_MODULE_INDEX
Definition: PixelID.h:295
IdHelper.h
PixelID::calc_offset
Identifier::diff_type calc_offset(const Identifier &base, const Identifier &target) const
Calculate a channel offset between the two identifiers.
Definition: PixelID.h:564
PixelID::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: PixelID.cxx:457
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
PixelID::m_baseExpandedIdentifier
ExpandedIdentifier m_baseExpandedIdentifier
Definition: PixelID.h:287
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:148
PixelID::m_wafer_vec
id_vec m_wafer_vec
Definition: PixelID.h:306
PixelID::is_shortened_pixel_id
bool is_shortened_pixel_id(Identifier32::value_type val) const
Test if this is a valid shortened pixel channel id.
Definition: PixelID.h:516
PixelID::eta_module_max
int eta_module_max(const Identifier &id) const
Definition: PixelID.cxx:80
PixelID::is_blayer
bool is_blayer(const Identifier &id) const
Test for b-layer - WARNING: id MUST be pixel id, otherwise answer is not accurate....
Definition: PixelID.h:633
PixelID::pixel_hash_max
size_type pixel_hash_max(void) const
Definition: PixelID.cxx:912
PixelID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
Definition: PixelID.h:364
protected
#define protected
Definition: DetDescrConditionsDict_dict_fixes.cxx:14
AtlasDetectorID::HelperType
HelperType
enum class for eventual final derived types of this class
Definition: AtlasDetectorID.h:60
PixelID::base_bit
int base_bit(void) const
Return the lowest bit position used in the channel id.
Definition: PixelID.h:580
PixelID::m_PIXEL_INDEX
size_type m_PIXEL_INDEX
Definition: PixelID.h:291
IdDictFieldImplementation::reset
void reset(Identifier &id) const
Definition: IdDictFieldImplementation.h:184
PixelID::m_bec_eta_mod_impl
IdDictFieldImplementation m_bec_eta_mod_impl
Definition: PixelID.h:324
AtlasDetectorID::size_type
Identifier::size_type size_type
Definition: AtlasDetectorID.h:384
PixelID::initLevelsFromDict
int initLevelsFromDict(void)
Definition: PixelID.cxx:646
IdentifierField::match
bool match(element_type value) const
The basic match operation.
Definition: IdentifierField.cxx:70
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
PixelID::is_barrel
bool is_barrel(const Identifier &id) const
Test for barrel - WARNING: id MUST be pixel id, otherwise answer is not accurate. Use SiliconID for g...
Definition: PixelID.h:605
IdDictFieldImplementation::shift
size_type shift() const
Definition: IdDictFieldImplementation.h:227
PixelID::wafer_hash
IdentifierHash wafer_hash(Identifier wafer_id) const
wafer hash from id
Definition: PixelID.h:387
PixelID::m_pixel_hash_max
size_type m_pixel_hash_max
Definition: PixelID.h:304
PixelID::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: PixelID.cxx:470
PixelID::m_baseIdentifier
Identifier m_baseIdentifier
Definition: PixelID.h:286
PixelID::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: PixelID.cxx:933
PixelID::phi_index_max
int phi_index_max(const Identifier &id) const
Definition: PixelID.cxx:144
fillPileUpNoiseLumi.next
next
Definition: fillPileUpNoiseLumi.py:52
MultiRange::const_identifier_factory
Definition: MultiRange.h:52
PixelID::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: PixelID.h:572
PixelID::eta_index_max
int eta_index_max(const Identifier &id) const
Definition: PixelID.cxx:163
PixelID::pixel_begin
const_expanded_id_iterator pixel_begin(void) const
For pixel ids, only expanded id iterators are available.
Definition: PixelID.cxx:924
PixelID::m_full_wafer_range
MultiRange m_full_wafer_range
Definition: PixelID.h:301
PixelID::pixel_id_checks
void pixel_id_checks(int barrel_ec, int layer_disk, int phi_module, int eta_module, int phi_index, int eta_index) const
Definition: PixelID.cxx:45
PixelID::eta_index
int eta_index(const Identifier &id) const
Definition: PixelID.h:664
createCablingJSON.eta_index
int eta_index
Definition: createCablingJSON.py:9
PixelID::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: PixelID.cxx:496
Identifier::ALL_BITS
@ ALL_BITS
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:34
PixelID::phi_module_max
int phi_module_max(const Identifier &id) const
Definition: PixelID.cxx:124
PixelID::init_neighbors
int init_neighbors(void)
Definition: PixelID.cxx:508
PixelID::layer_disk
int layer_disk(const Identifier &id) const
Definition: PixelID.h:626
PixelID::test_wafer_packing
void test_wafer_packing(void) const
Tests of packing.
Definition: PixelID.cxx:1005
PixelID::eta_module
int eta_module(const Identifier &id) const
Definition: PixelID.h:651
PixelID::m_next_phi_wafer_vec
hash_vec m_next_phi_wafer_vec
Definition: PixelID.h:308
MultiRange
A MultiRange combines several Ranges.
Definition: MultiRange.h:17
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:220
IdentifierHash.h
PixelID::m_prev_phi_wafer_vec
hash_vec m_prev_phi_wafer_vec
Definition: PixelID.h:307
PixelID::wafer_hash_max
size_type wafer_hash_max(void) const
Definition: PixelID.cxx:907
MultiRange.h
PixelID::layer_disk_max
int layer_disk_max(const Identifier &id) const
Max/Min values for each field (error returns -999)
Definition: PixelID.cxx:62
IdDictDictionary
Definition: IdDictDefs.h:97
PixelID::get_id
virtual int get_id(const IdentifierHash &hash_id, Identifier &id, const IdContext *context=0) const override final
Create compact id from hash id (return == 0 for OK)
Definition: PixelID.cxx:950
IdDictFieldImplementation.h
PixelID::is_eta_module_max
bool is_eta_module_max(const Identifier &id) const
For the barrel.
Definition: PixelID.cxx:120
PixelID::const_expanded_id_iterator
MultiRange::const_identifier_factory const_expanded_id_iterator
Definition: PixelID.h:73
PixelID::is_dbm
bool is_dbm(const Identifier &id) const
Test for dbm - WARNING: id MUST be pixel id, otherwise answer is not accurate. Use SiliconID for gene...
Definition: PixelID.h:612
PixelID::m_pixel_region_index
size_type m_pixel_region_index
Definition: PixelID.h:289
PixelID::eta_module_min
int eta_module_min(const Identifier &id) const
Definition: PixelID.cxx:97
PixelID::NOT_VALID_HASH
@ NOT_VALID_HASH
Definition: PixelID.h:259
PixelID::id_vec
std::vector< Identifier > id_vec
Definition: PixelID.h:264
PixelID::wafer_context
IdContext wafer_context(void) const
Definition: PixelID.h:590
PixelID::wafer_id_checks
void wafer_id_checks(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
Definition: PixelID.cxx:29
PixelID::helper
virtual AtlasDetectorID::HelperType helper() const override
THis is a PixelID helper.
Definition: PixelID.h:82
copySelective.target
string target
Definition: copySelective.py:37
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
PixelID::pixel_id
Identifier pixel_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int phi_index, int eta_index) const
For an individual pixel.
Definition: PixelID.h:432
PixelID::m_eta_index_impl
IdDictFieldImplementation m_eta_index_impl
Definition: PixelID.h:323
PixelID::m_phi_mod_impl
IdDictFieldImplementation m_phi_mod_impl
Definition: PixelID.h:316
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
PixelID::m_barrel_field
Range::field m_barrel_field
Definition: PixelID.h:305
PixelID::is_phi_module_max
bool is_phi_module_max(const Identifier &id) const
To check for when phi wrap around may be needed.
Definition: PixelID.cxx:181
IdentifierField
This is the individual specification for the range of one ExpandedIdentifier IdentifierField.
Definition: IdentifierField.h:21
PixelID::m_lay_disk_shift_impl
IdDictFieldImplementation m_lay_disk_shift_impl
Definition: PixelID.h:319
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
PixelID::m_prev_eta_wafer_vec
hash_vec m_prev_eta_wafer_vec
Definition: PixelID.h:309
PixelID::m_LAYER_DISK_INDEX
size_type m_LAYER_DISK_INDEX
Definition: PixelID.h:293
Identifier::value_type
unsigned long long value_type
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:27
PixelID::BITS32
@ BITS32
Definition: PixelID.h:261
PixelID::size_type
Identifier::size_type size_type
Definition: PixelID.h:71
PixelID::MAX_BIT
@ MAX_BIT
Definition: PixelID.h:260
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
PixelID::m_PHI_MODULE_INDEX
size_type m_PHI_MODULE_INDEX
Definition: PixelID.h:294
PixelID::phi_module
int phi_module(const Identifier &id) const
Definition: PixelID.h:644
PixelID::pixel_end
const_expanded_id_iterator pixel_end(void) const
Definition: PixelID.cxx:928
PixelID
Definition: PixelID.h:67
value_type
Definition: EDM_MasterSearch.h:11
PixelID::m_lay_disk_impl
IdDictFieldImplementation m_lay_disk_impl
Definition: PixelID.h:315
AtlasDetectorID::do_checks
virtual bool do_checks(void) const override
Checks are performed by default in debug compilation and NOT in optimized compilation.
Definition: AtlasDetectorID.cxx:728
PixelID::m_dict
const IdDictDictionary * m_dict
Definition: PixelID.h:300
Identifier32.h
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
PixelID::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: PixelID.cxx:483
PixelID::id_vec_it
id_vec::const_iterator id_vec_it
Definition: PixelID.h:265
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:57
PixelID::pixel_id_from_shortened
Identifier pixel_id_from_shortened(Identifier32::value_type val) const
Create a compact pixel id from a (fixed format) legacy pixel channel id.
Definition: PixelID.h:546
Identifier32::value_type
unsigned int value_type
Definition: Identifier32.h:28
PixelID::m_pixel_impl
IdDictFieldImplementation m_pixel_impl
Definition: PixelID.h:313
PixelID::hash_vec
std::vector< unsigned short > hash_vec
Definition: PixelID.h:266
PixelID::m_PHI_INDEX_INDEX
size_type m_PHI_INDEX_INDEX
Definition: PixelID.h:296
Identifier
Definition: IdentifierFieldParser.cxx:14