ATLAS Offline Software
CaloLVL1_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 
5 #ifndef CALOLVL1_ID_H
6 #define CALOLVL1_ID_H
7 
11 #include "Identifier/MultiRange.h"
13 
15 
16 #include "boost/range/iterator_range.hpp"
17 #include <vector>
18 #include <algorithm>
19 
20 
63 class IdentifierHash;
64 
66 {
67 public:
68 
70 
71 
72  CaloLVL1_ID(void);
73 
74  virtual ~CaloLVL1_ID();
75 
78  int eta, int phi ) const ;
80  int eta, int phi, bool checks ) const ;
81 
83  Identifier tower_id (const Identifier regionId,
84  int eta, int phi ) const ;
85  Identifier tower_id (const Identifier regionId,
86  int eta, int phi, bool checks ) const ;
87 
89  Identifier tower_id (const Identifier layerId) const;
90 
92  Identifier region_id ( int pos_neg_z, int sampling, int region ) const;
93  Identifier region_id ( int pos_neg_z, int sampling, int region, bool checks) const;
94 
96  Identifier region_id ( const Identifier tower_or_layerId ) const;
97 
98 
100  Identifier layer_id ( int pos_neg_z, int sampling, int region,
101  int eta, int phi, int layer ) const;
102  Identifier layer_id ( int pos_neg_z, int sampling, int region,
103  int eta, int phi, int layer,
104  bool checks) const;
105 
107  Identifier layer_id ( const Identifier towerId, int layer ) const;
108  Identifier layer_id ( const Identifier towerId, int layer, bool checks ) const;
109 
110 
113  IdContext region_context (void) const;
114 
117  IdContext tower_context (void) const;
118 
121  IdContext layer_context (void) const;
122 
124  virtual int get_id (const IdentifierHash& hash_id, Identifier& id, const IdContext* context = 0 ) const;
125 
127  virtual int get_hash (const Identifier& id, IdentifierHash& hash_id, const IdContext* context = 0 ) const;
128 
130  Identifier region_id (IdentifierHash region_hash_id) const;
131 
133  Identifier tower_id (IdentifierHash tower_hash_id) const;
134 
136  IdentifierHash tower_hash (Identifier towerId) const;
139 
141  virtual int initialize_from_dictionary (const IdDictMgr& dict_mgr);
142 
144  size_type tower_hash_max (void) const;
146  size_type layer_hash_max (void) const;
148  size_type region_hash_max (void) const;
149 
150 
152  typedef std::vector<Identifier>::const_iterator id_iterator;
154  typedef boost::iterator_range<id_iterator> id_range;
155 
156 
158  id_iterator region_begin () const;
160  id_iterator region_end () const;
162  id_range region_range () const;
163 
165  id_iterator tower_begin () const;
167  id_iterator tower_end () const;
169  id_range tower_range () const;
170 
172  id_iterator layer_begin () const;
174  id_iterator layer_end () const;
176  id_range layer_range () const;
177 
180  bool is_tile (const Identifier id) const;
184  bool is_emb (const Identifier id) const;
187  bool is_barrel_end (const Identifier id) const;
190  bool is_emec (const Identifier id) const;
193  bool is_hec (const Identifier id) const;
196  bool is_fcal (const Identifier id) const;
197 
210  int pos_neg_z (const Identifier id)const;
211 
225  int sampling (const Identifier id)const;
226 
239  int region (const Identifier id)const;
240 
256  int eta (const Identifier id)const;
257 
273  int phi (const Identifier id)const;
274 
288  int layer (const Identifier id)const;
289 
290 
293  int eta_min(const Identifier regId) const;
296  int eta_max(const Identifier regId) const;
299  int phi_max(const Identifier regId) const;
302  int layer_max(const Identifier regId) const;
303 
306  int get_prev_in_phi(const IdentifierHash& id, IdentifierHash& prev) const;
309  int get_next_in_phi(const IdentifierHash& id, IdentifierHash& next) const;
312  int get_prev_in_eta(const IdentifierHash& id, IdentifierHash& prev) const;
315  int get_next_in_eta(const IdentifierHash& id, IdentifierHash& next) const;
316 
317 private:
318 
319 
320  enum {NOT_VALID_HASH = 64000};
321 
322 
324  int get_expanded_id (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
325 
326 
327  void tower_id_checks (int pos_neg_z, int sampling, int region,
328  int eta, int phi ) const;
329  void tower_id_checks (const Identifier regionId,
330  int eta, int phi ) const;
331  void region_id_checks ( int pos_neg_z, int sampling, int region ) const;
332 
333  void layer_id_checks ( int pos_neg_z, int sampling, int region,
334  int eta, int phi, int layer ) const;
335  void layer_id_checks ( const Identifier towerId,
336  int layer ) const;
337 
338 
339  int initLevelsFromDict(void) ;
340 
341  int init_hashes(void) ;
342 
343  int init_neighbors(void) ;
344 
345 
354 
356 
363  std::vector<Identifier> m_tower_vec;
364  std::vector<Identifier> m_layer_vec;
365  std::vector<Identifier> m_region_vec;
366  std::vector<unsigned short> m_prev_phi_vec;
367  std::vector<unsigned short> m_next_phi_vec;
368  std::vector<unsigned short> m_prev_eta_vec;
369  std::vector<unsigned short> m_next_eta_vec;
370 
376  class HashCalc
377  {
378  public:
380  m_hash(0),
381  m_etamin(0),
382  m_nphi(0) {}
386  };
387  std::vector<HashCalc> m_hash_calcs;
388 
389 
390 
398 
400 
401 };
402 
403 //using the macros below we can assign an identifier (and a version)
404 //This is required and checked at compile time when you try to record/retrieve
405 CLASS_DEF( CaloLVL1_ID , 108133391 , 1 )
406 
407 
408 //----------------------------------------------------------------------------
409 inline Identifier CaloLVL1_ID::tower_id ( int pos_neg_z, int sampling, int region,
410  int eta, int phi, bool checks ) const
411 {
412  Identifier result(0);
413  // Pack fields independently
414  m_calo_impl.pack (calo_field_value(), result);
415  m_lvl1_impl.pack (pos_neg_z, result);
416  m_sampling_impl.pack (sampling, result);
417  m_region_impl.pack (region, result);
418  m_eta_impl.pack (eta, result);
419  m_phi_impl.pack (phi, result);
420 
421  // Do checks
422  if(checks) {
423  tower_id_checks( pos_neg_z, sampling, region, eta, phi );
424  }
425 
426  return result;
427 }
428 
429 inline Identifier CaloLVL1_ID::tower_id ( int pos_neg_z, int sampling, int region,
430  int eta, int phi ) const
431 {
433 }
434 
435 
436 //----------------------------------------------------------------------------
438  int eta, int phi, bool checks ) const
439 {
440  Identifier result(regionId);
441 
442  // Reset the fields and then set the values
447 
448  // Do checks
449  if(checks) {
450  tower_id_checks( regionId, eta, phi );
451  }
452 
453  return result;
454 }
455 
457  int eta, int phi ) const
458 {
459  return tower_id (regionId, eta, phi, do_checks());
460 }
461 
462 
463 //----------------------------------------------------------------------------
464 inline Identifier CaloLVL1_ID::region_id ( const Identifier tower_or_layerId ) const
465 {
466  Identifier result(tower_or_layerId);
467  // reset eta, phi, layer
471  return (result);
472 }
473 
474 //----------------------------------------------------------------------------
475 inline Identifier CaloLVL1_ID::tower_id ( const Identifier layerId ) const
476 {
477  Identifier result(layerId);
478  // reset layer
480  return (result);
481 }
482 
483 //----------------------------------------------------------------------------
484 inline Identifier CaloLVL1_ID::region_id (int pos_neg_z, int sampling, int region,
485  bool checks)const
486 {
487  Identifier result(0);
488  // Pack fields independently
493 
494  // Do checks
495  if(checks) {
497  }
498 
499  return result;
500 }
501 
502 inline Identifier CaloLVL1_ID::region_id (int pos_neg_z, int sampling, int region)const
503 {
505 }
506 
507 //----------------------------------------------------------------------------
508 inline Identifier CaloLVL1_ID::layer_id ( int pos_neg_z, int sampling, int region,
509  int eta, int phi, int layer,
510  bool checks) const
511 {
512  Identifier result(0);
513  // Pack fields independently
521 
522  // Do checks
523  if(checks) {
525  }
526 
527  return result;
528 }
529 
530 inline Identifier CaloLVL1_ID::layer_id ( int pos_neg_z, int sampling, int region,
531  int eta, int phi, int layer ) const
532 {
534 }
535 
536 //----------------------------------------------------------------------------
538  int layer, bool checks ) const
539 {
540  Identifier result(towerId);
541 
542  // Reset the fields and then set the values
545  // Do checks
546  if(checks) {
547  layer_id_checks( towerId, layer );
548  }
549 
550  return result;
551 }
552 
554  int layer ) const
555 {
556  return layer_id (towerId, layer, do_checks());
557 }
558 
559 //----------------------------------------------------------------------------
561 {
562  return m_tower_hash_max;
563 }
564 
565 //----------------------------------------------------------------------------
567 {
568  return m_layer_hash_max;
569 }
570 
571 //----------------------------------------------------------------------------
573 {
574  return m_region_hash_max;
575 }
576 
577 
578 //----------------------------------------------------------------------------
580 {
581  return(m_region_vec.begin());
582 }
583 
584 //----------------------------------------------------------------------------
586 {
587  return(m_region_vec.end());
588 }
589 
590 //----------------------------------------------------------------------------
592 {
593  return id_range (region_begin(), region_end());
594 }
595 
596 //----------------------------------------------------------------------------
598 {
599  return(m_tower_vec.begin());
600 }
601 
602 //----------------------------------------------------------------------------
604 {
605  return(m_tower_vec.end());
606 }
607 
608 //----------------------------------------------------------------------------
610 {
611  return id_range (tower_begin(), tower_end());
612 }
613 
614 //----------------------------------------------------------------------------
615 
617 {
618  return(m_layer_vec.begin());
619 }
620 
621 //----------------------------------------------------------------------------
623 {
624  return(m_layer_vec.end());
625 }
626 
627 
628 //----------------------------------------------------------------------------
630 {
631  return id_range (layer_begin(), layer_end());
632 }
633 
634 //----------------------------------------------------------------------------
635 inline int CaloLVL1_ID::pos_neg_z(const Identifier id) const
636 {
637  return (m_lvl1_impl.unpack(id));
638 }
639 
640 //----------------------------------------------------------------------------
641 inline int CaloLVL1_ID::sampling(const Identifier id) const
642 {
643  return (m_sampling_impl.unpack(id));
644 }
645 
646 //----------------------------------------------------------------------------
647 inline int CaloLVL1_ID::region(const Identifier id) const
648 {
649  return (m_region_impl.unpack(id));
650 }
651 
652 //----------------------------------------------------------------------------
653 inline int CaloLVL1_ID::eta(const Identifier id) const
654 {
655  return (m_eta_impl.unpack(id));
656 }
657 
658 //----------------------------------------------------------------------------
659 inline int CaloLVL1_ID::phi(const Identifier id) const
660 {
661  return (m_phi_impl.unpack(id));
662 }
663 
664 //----------------------------------------------------------------------------
665 inline int CaloLVL1_ID::layer(const Identifier id) const
666 {
667  return (m_layer_impl.unpack(id));
668 }
669 
670 
671 //----------------------------------------------------------------------------
672 inline bool CaloLVL1_ID::is_tile (const Identifier id) const
673 {
674  // Must first check if this is a normal tile id
675  if (AtlasDetectorID::is_tile(id)) {
676  return (true);
677  }
678  else {
679  return (is_lvl1_trig_towers(id) && region(id) == 0 && sampling(id) == 1 && eta(id) < 15);
680  }
681 }
682 
683 //----------------------------------------------------------------------------
684 inline bool CaloLVL1_ID::is_emb (const Identifier id) const
685 {
686  return (is_lvl1_trig_towers(id) && region(id) == 0 && sampling(id) == 0 && eta(id) < 14);
687 }
688 
689 //----------------------------------------------------------------------------
690 inline bool CaloLVL1_ID::is_barrel_end (const Identifier id) const
691 {
692  return (is_lvl1_trig_towers(id) && region(id) == 0 && sampling(id) == 0 && eta(id) == 14);
693 }
694 
695 //----------------------------------------------------------------------------
696 inline bool CaloLVL1_ID::is_emec (const Identifier id) const
697 {
698  return (is_lvl1_trig_towers(id) && sampling(id) == 0 &&
699  ((region(id) == 0 && eta(id) > 14) || region(id) == 1 || region(id) == 2 ));
700 }
701 
702 //----------------------------------------------------------------------------
703 inline bool CaloLVL1_ID::is_hec (const Identifier id) const
704 {
705  return (is_lvl1_trig_towers(id) && sampling(id) == 1 &&
706  ((region(id) == 0 && eta(id) > 14) || region(id) == 1 || region(id) == 2 ));
707 }
708 
709 //----------------------------------------------------------------------------
710 inline bool CaloLVL1_ID::is_fcal (const Identifier id) const
711 {
712  return (is_lvl1_trig_towers(id) && region(id) == 3 );
713 }
714 
715 //----------------------------------------------------------------------------
716 inline Identifier CaloLVL1_ID::region_id (IdentifierHash region_hash_id) const
717 {
718  return(m_region_vec[region_hash_id]);
719 }
720 
721 //----------------------------------------------------------------------------
722 inline Identifier CaloLVL1_ID::tower_id (IdentifierHash tower_hash_id) const
723 {
724  return(m_tower_vec[tower_hash_id]);
725 }
726 
727 //----------------------------------------------------------------------------
729 {
730  const HashCalc& hc = m_hash_calcs[m_pnz_reg_impl.unpack(towerId)];
731  return (hc.m_hash + (eta(towerId)-hc.m_etamin)*hc.m_nphi + phi(towerId));
732 }
733 
734 //----------------------------------------------------------------------------
736 {
737  std::vector<Identifier>::const_iterator it = std::lower_bound(m_tower_vec.begin(),m_tower_vec.end(),towerId);
738  if ( it != m_tower_vec.end() ){
739  return (it - m_tower_vec.begin());
740  }
741  return (0);
742 }
743 
744 
745 
746 #endif // CALOLVL1_ID_H
747 
748 
749 
750 
751 
752 
753 
754 
755 
756 
757 
758 
759 
760 
761 
762 
763 
764 
765 
766 
767 
768 
769 
770 
CaloLVL1_ID::layer_hash_max
size_type layer_hash_max(void) const
layer hash table max size
Definition: CaloLVL1_ID.h:566
CaloLVL1_ID::get_next_in_eta
int get_next_in_eta(const IdentifierHash &id, IdentifierHash &next) const
access to hashes for neighbours in eta – towers only (no extended) return == 0 for neighbours found
Definition: CaloLVL1_ID.cxx:574
CaloLVL1_ID::id_range
boost::iterator_range< id_iterator > id_range
Type for range over identifiers.
Definition: CaloLVL1_ID.h:154
CaloLVL1_ID::m_next_phi_vec
std::vector< unsigned short > m_next_phi_vec
Definition: CaloLVL1_ID.h:367
CaloLVL1_ID::HashCalc::m_nphi
size_type m_nphi
Definition: CaloLVL1_ID.h:385
CaloLVL1_ID::tower_context
IdContext tower_context(void) const
access to IdContext's which define which levels of fields are contained in the id
Definition: CaloLVL1_ID.cxx:54
CaloLVL1_ID::layer_max
int layer_max(const Identifier regId) const
max value of phi index (-999 == failure)
Definition: CaloLVL1_ID.cxx:516
CaloLVL1_ID::region_range
id_range region_range() const
range over regions
Definition: CaloLVL1_ID.h:591
get_generator_info.result
result
Definition: get_generator_info.py:21
CaloLVL1_ID::m_PHI_INDEX
size_type m_PHI_INDEX
Definition: CaloLVL1_ID.h:352
CaloLVL1_ID::get_expanded_id
int get_expanded_id(const Identifier &id, ExpandedIdentifier &exp_id, const IdContext *context) const
create expanded Identifier from Identifier (return == 0 for OK)
Definition: CaloLVL1_ID.cxx:586
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
CaloLVL1_ID::layer_id_checks
void layer_id_checks(int pos_neg_z, int sampling, int region, int eta, int phi, int layer) const
Definition: CaloLVL1_ID.cxx:656
CaloLVL1_ID::is_fcal
bool is_fcal(const Identifier id) const
Test wether given tower or layer is part of the FCAL.
Definition: CaloLVL1_ID.h:710
CaloLVL1_ID::m_prev_eta_vec
std::vector< unsigned short > m_prev_eta_vec
Definition: CaloLVL1_ID.h:368
CaloLVL1_ID::m_REGION_INDEX
size_type m_REGION_INDEX
Definition: CaloLVL1_ID.h:350
CaloLVL1_ID::region_context
IdContext region_context(void) const
access to IdContext's which define which levels of fields are contained in the id
Definition: CaloLVL1_ID.cxx:47
CaloLVL1_ID::m_sampling_impl
IdDictFieldImplementation m_sampling_impl
Definition: CaloLVL1_ID.h:393
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
CaloLVL1_ID::phi_max
int phi_max(const Identifier regId) const
min value of phi index (-999 == failure)
Definition: CaloLVL1_ID.cxx:495
CaloLVL1_ID::m_phi_impl
IdDictFieldImplementation m_phi_impl
Definition: CaloLVL1_ID.h:396
AtlasDetectorID::calo_field_value
int calo_field_value() const
Definition: AtlasDetectorID.h:623
CaloLVL1_ID::m_region_impl
IdDictFieldImplementation m_region_impl
Definition: CaloLVL1_ID.h:394
CaloLVL1_ID::initialize_from_dictionary
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr)
initialization from the identifier dictionary
Definition: CaloLVL1_ID.cxx:193
skel.it
it
Definition: skel.GENtoEVGEN.py:396
CaloLVL1_ID::is_emec
bool is_emec(const Identifier id) const
Test wether given tower or layer is part of the EM end-cap.
Definition: CaloLVL1_ID.h:696
CaloLVL1_ID::size_type
Identifier::size_type size_type
Definition: CaloLVL1_ID.h:69
CaloLVL1_ID::m_region_vec
std::vector< Identifier > m_region_vec
Definition: CaloLVL1_ID.h:365
ExpandedIdentifier
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:102
IdDictFieldImplementation::pack
void pack(int value, Identifier &id) const
Definition: IdDictFieldImplementation.h:173
CaloLVL1_ID::region
int region(const Identifier id) const
return region according to :
Definition: CaloLVL1_ID.h:647
CaloLVL1_ID::m_dict
const IdDictDictionary * m_dict
Definition: CaloLVL1_ID.h:355
CaloLVL1_ID::is_barrel_end
bool is_barrel_end(const Identifier id) const
Test wether given tower or layer is part of the EM barrel END.
Definition: CaloLVL1_ID.h:690
CaloLVL1_ID::init_hashes
int init_hashes(void)
Definition: CaloLVL1_ID.cxx:939
CaloLVL1_ID::m_layer_impl
IdDictFieldImplementation m_layer_impl
Definition: CaloLVL1_ID.h:397
CaloLVL1_ID::region_id
Identifier region_id(int pos_neg_z, int sampling, int region) const
build a region (of towers) identifier
Definition: CaloLVL1_ID.h:502
CaloLVL1_ID::layer_end
id_iterator layer_end() const
end iterators over layers
Definition: CaloLVL1_ID.h:622
IdDictFieldImplementation::unpack
int unpack(Identifier id) const
Identifier manipulation methods.
Definition: IdDictFieldImplementation.h:147
CaloLVL1_ID::layer_context
IdContext layer_context(void) const
access to IdContext's which define which levels of fields are contained in the id
Definition: CaloLVL1_ID.cxx:61
CaloLVL1_ID::tower_end
id_iterator tower_end() const
end iterator over towers
Definition: CaloLVL1_ID.h:603
CaloLVL1_ID::layer
int layer(const Identifier id) const
return layer according to :
Definition: CaloLVL1_ID.h:665
AtlasDetectorID::is_lvl1_trig_towers
bool is_lvl1_trig_towers(Identifier id) const
Definition: AtlasDetectorID.h:713
CaloLVL1_ID::is_hec
bool is_hec(const Identifier id) const
Test wether given tower or layer is part of the HEC.
Definition: CaloLVL1_ID.h:703
IdDictFieldImplementation::reset
void reset(Identifier &id) const
Definition: IdDictFieldImplementation.h:183
CaloLVL1_ID::region_end
id_iterator region_end() const
end iterator over regions
Definition: CaloLVL1_ID.h:585
CaloLVL1_ID::get_prev_in_eta
int get_prev_in_eta(const IdentifierHash &id, IdentifierHash &prev) const
access to hashes for neighbours in eta – towers only (no extended) return == 0 for neighbours found
Definition: CaloLVL1_ID.cxx:562
CaloLVL1_ID::m_full_layer_range
MultiRange m_full_layer_range
Definition: CaloLVL1_ID.h:359
CaloLVL1_ID::layer_id
Identifier layer_id(int pos_neg_z, int sampling, int region, int eta, int phi, int layer) const
build a layer identifier
Definition: CaloLVL1_ID.h:530
CaloLVL1_ID::phi
int phi(const Identifier id) const
return phi according to :
Definition: CaloLVL1_ID.h:659
CaloLVL1_ID::eta_max
int eta_max(const Identifier regId) const
max value of eta index (-999 == failure)
Definition: CaloLVL1_ID.cxx:474
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
CaloLVL1_ID::m_next_eta_vec
std::vector< unsigned short > m_next_eta_vec
Definition: CaloLVL1_ID.h:369
CaloLVL1_ID::m_eta_impl
IdDictFieldImplementation m_eta_impl
Definition: CaloLVL1_ID.h:395
CaloLVL1_ID::~CaloLVL1_ID
virtual ~CaloLVL1_ID()
CaloLVL1_ID::HashCalc::HashCalc
HashCalc()
Definition: CaloLVL1_ID.h:379
CaloLVL1_ID::m_LAYER_INDEX
size_type m_LAYER_INDEX
Definition: CaloLVL1_ID.h:353
CaloLVL1_ID::region_begin
id_iterator region_begin() const
begin iterator over regions
Definition: CaloLVL1_ID.h:579
fillPileUpNoiseLumi.next
next
Definition: fillPileUpNoiseLumi.py:52
CaloLVL1_ID::m_hash_calcs
std::vector< HashCalc > m_hash_calcs
Definition: CaloLVL1_ID.h:387
CaloLVL1_ID::HashCalc
small class holding the starting hash value, the min eta and the number of phi bins of each region
Definition: CaloLVL1_ID.h:377
CaloLVL1_ID::init_neighbors
int init_neighbors(void)
Definition: CaloLVL1_ID.cxx:1147
CaloLVL1_ID::m_prev_phi_vec
std::vector< unsigned short > m_prev_phi_vec
Definition: CaloLVL1_ID.h:366
CaloLVL1_ID::m_tower_vec
std::vector< Identifier > m_tower_vec
Definition: CaloLVL1_ID.h:363
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
CaloLVL1_ID::eta_min
int eta_min(const Identifier regId) const
min value of eta index (-999 == failure)
Definition: CaloLVL1_ID.cxx:448
CaloLVL1_ID::get_next_in_phi
int get_next_in_phi(const IdentifierHash &id, IdentifierHash &next) const
access to hashes for neighbours in phi – towers only (no extended) return == 0 for neighbours found
Definition: CaloLVL1_ID.cxx:550
CaloLVL1_ID::HashCalc::m_etamin
size_type m_etamin
Definition: CaloLVL1_ID.h:384
CaloLVL1_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: CaloLVL1_ID.cxx:144
AtlasDetectorID::is_tile
bool is_tile(Identifier id) const
Definition: AtlasDetectorID.h:695
CaloLVL1_ID::is_emb
bool is_emb(const Identifier id) const
Test wether given tower or layer is part of the EM barrel.
Definition: CaloLVL1_ID.h:684
CaloLVL1_ID::region_hash_max
size_type region_hash_max(void) const
region hash table max size
Definition: CaloLVL1_ID.h:572
CaloLVL1_ID::m_DETZSIDE_INDEX
size_type m_DETZSIDE_INDEX
Definition: CaloLVL1_ID.h:348
CaloLVL1_ID::m_lvl1_impl
IdDictFieldImplementation m_lvl1_impl
Definition: CaloLVL1_ID.h:392
CaloLVL1_ID::m_SAMPLING_INDEX
size_type m_SAMPLING_INDEX
Definition: CaloLVL1_ID.h:349
CaloLVL1_ID
Helper class for offline TT identifiers.
Definition: CaloLVL1_ID.h:66
MultiRange
A MultiRange combines several Ranges.
Definition: MultiRange.h:17
CaloLVL1_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: CaloLVL1_ID.cxx:69
CaloLVL1_ID::m_region_hash_max
size_type m_region_hash_max
Definition: CaloLVL1_ID.h:362
IdentifierHash.h
CaloLVL1_ID::m_pnz_reg_impl
IdDictFieldImplementation m_pnz_reg_impl
Definition: CaloLVL1_ID.h:399
CaloLVL1_ID::get_prev_in_phi
int get_prev_in_phi(const IdentifierHash &id, IdentifierHash &prev) const
access to hashes for neighbours in phi – towers only (no extended) return == 0 for neighbours found
Definition: CaloLVL1_ID.cxx:538
CaloLVL1_ID::tower_hash_binary_search
IdentifierHash tower_hash_binary_search(Identifier towerId) const
create hash id from tower id – method NOT optimised, please use tower_hash() above
Definition: CaloLVL1_ID.h:735
CaloLVL1_ID::eta
int eta(const Identifier id) const
return eta according to :
Definition: CaloLVL1_ID.h:653
MultiRange.h
CaloLVL1_ID::m_ETA_INDEX
size_type m_ETA_INDEX
Definition: CaloLVL1_ID.h:351
CaloLVL1_ID::m_lvl1_region_index
size_type m_lvl1_region_index
Definition: CaloLVL1_ID.h:346
CaloLVL1_ID::m_full_region_range
MultiRange m_full_region_range
Definition: CaloLVL1_ID.h:357
IdDictDictionary
Definition: IdDictDictionary.h:30
IdDictFieldImplementation.h
CaloLVL1_ID::region_id_checks
void region_id_checks(int pos_neg_z, int sampling, int region) const
Definition: CaloLVL1_ID.cxx:643
CaloLVL1_ID::pos_neg_z
int pos_neg_z(const Identifier id) const
return pos_neg_z according to :
Definition: CaloLVL1_ID.h:635
CaloLVL1_ID::m_layer_vec
std::vector< Identifier > m_layer_vec
Definition: CaloLVL1_ID.h:364
CaloLVL1_ID::tower_id_checks
void tower_id_checks(int pos_neg_z, int sampling, int region, int eta, int phi) const
Definition: CaloLVL1_ID.cxx:606
CaloLVL1_ID::NOT_VALID_HASH
@ NOT_VALID_HASH
Definition: CaloLVL1_ID.h:320
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
CaloLVL1_ID::tower_hash_max
size_type tower_hash_max(void) const
tower hash table max size
Definition: CaloLVL1_ID.h:560
CaloLVL1_ID::tower_begin
id_iterator tower_begin() const
begin iterator over towers
Definition: CaloLVL1_ID.h:597
CaloLVL1_ID::sampling
int sampling(const Identifier id) const
return sampling according to :
Definition: CaloLVL1_ID.h:641
CaloLVL1_ID::m_calo_impl
IdDictFieldImplementation m_calo_impl
Definition: CaloLVL1_ID.h:391
CaloLVL1_ID::HashCalc::m_hash
IdentifierHash m_hash
Definition: CaloLVL1_ID.h:383
CaloLVL1_ID::m_CALO_INDEX
size_type m_CALO_INDEX
Definition: CaloLVL1_ID.h:347
CaloLVL1_ID::tower_range
id_range tower_range() const
range over towers
Definition: CaloLVL1_ID.h:609
CaloLVL1_ID::id_iterator
std::vector< Identifier >::const_iterator id_iterator
Type for iterators over identifiers.
Definition: CaloLVL1_ID.h:152
CaloLVL1_ID::initLevelsFromDict
int initLevelsFromDict(void)
Definition: CaloLVL1_ID.cxx:693
CaloLVL1_ID::tower_hash
IdentifierHash tower_hash(Identifier towerId) const
create hash id from tower id
Definition: CaloLVL1_ID.h:728
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
CaloLVL1_ID::m_layer_hash_max
size_type m_layer_hash_max
Definition: CaloLVL1_ID.h:361
CaloLVL1_ID::CaloLVL1_ID
CaloLVL1_ID(void)
Definition: CaloLVL1_ID.cxx:24
CaloLVL1_ID::m_full_tower_range
MultiRange m_full_tower_range
Definition: CaloLVL1_ID.h:358
CaloID_Exception.h
CaloLVL1_ID::tower_id
Identifier tower_id(int pos_neg_z, int sampling, int region, int eta, int phi) const
build a tower identifier
Definition: CaloLVL1_ID.h:429
CaloLVL1_ID::is_tile
bool is_tile(const Identifier id) const
Test wether given tower or layer is part of the Tile Calorimeter.
Definition: CaloLVL1_ID.h:672
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
CaloLVL1_ID::layer_range
id_range layer_range() const
range over layers
Definition: CaloLVL1_ID.h:629
IdContext
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
Definition: IdContext.h:26
CaloLVL1_ID::layer_begin
id_iterator layer_begin() const
begin iterators over layers
Definition: CaloLVL1_ID.h:616
CLASS_DEF.h
macros to associate a CLID to a type
CaloLVL1_ID::m_tower_hash_max
size_type m_tower_hash_max
Definition: CaloLVL1_ID.h:360
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:57
Identifier
Definition: IdentifierFieldParser.cxx:14