ATLAS Offline Software
EMBDetectorRegion.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef LARREADOUTGEOMETRY_EMBDETECTORREGION_H
6 #define LARREADOUTGEOMETRY_EMBDETECTORREGION_H
9 #include "GeoModelKernel/GeoVDetectorElement.h"
10 #include "GeoModelKernel/GeoDefinitions.h"
12 
25 class GeoAlignmentStore;
26 
27 class EMBDetectorRegion : public GeoVDetectorElement
28 {
29 
30  public:
31 
32  typedef enum {NEG=0,POS=1} DetectorSide;
33 
34 
38  EMBDetectorRegion (const GeoVFullPhysVol *physVol, const EMBDetDescr *embDescriptor, DetectorSide endcap);
39 
44 
48  EMBCellConstLink getEMBCell (unsigned int ieta, unsigned int iphi) const;
49 
53  const EMBDetDescr * getDescriptor () const;
54 
58  unsigned int getSamplingIndex () const;
59 
63  unsigned int getRegionIndex () const;
64 
68  unsigned int beginPhiIndex () const;
69 
73  unsigned int endPhiIndex () const;
74 
78  unsigned int beginEtaIndex () const;
79 
83  unsigned int endEtaIndex () const;
84 
88  const Amg::Transform3D& getAbsoluteTransform (const GeoAlignmentStore* alignStore=nullptr) const;
89 
93  const Amg::Transform3D& getDefAbsoluteTransform (const GeoAlignmentStore* alignStore=nullptr) const;
94 
99 
100  private:
101 
104  GeoIntrusivePtr<const EMBDetDescr> m_descriptor{};
106 };
107 
108 
109 
110 
111 
113 {
114 
115  return m_descriptor;
116 
117 }
118 
119 inline unsigned int EMBDetectorRegion::getSamplingIndex () const
120 {
121 
122  return m_descriptor->getSamplingIndex();
123 
124 }
125 
126 inline unsigned int EMBDetectorRegion::getRegionIndex () const
127 {
128 
129  return m_descriptor->getRegionIndex();
130 
131 }
132 
133 inline unsigned int EMBDetectorRegion::beginPhiIndex () const
134 {
135 
136  return m_descriptor->getPhiBinning().getFirstDivisionNumber();
137 
138 }
139 
140 inline unsigned int EMBDetectorRegion::endPhiIndex () const
141 {
142 
143  return m_descriptor->getPhiBinning().getFirstDivisionNumber() + m_descriptor->getPhiBinning().getNumDivisions();
144 
145 }
146 
147 inline unsigned int EMBDetectorRegion::beginEtaIndex () const
148 {
149 
150  return m_descriptor->getEtaBinning().getFirstDivisionNumber();
151 
152 }
153 
154 inline unsigned int EMBDetectorRegion::endEtaIndex () const
155 {
156 
157  return m_descriptor->getEtaBinning().getFirstDivisionNumber() + m_descriptor->getEtaBinning().getNumDivisions();
158 
159 }
160 
161 
162 
164 {
165 
166  return m_endcapIndex;
167 
168 }
169 
170 
171 
172 
173 
174 #endif
EMBDetectorRegion::getDescriptor
const EMBDetDescr * getDescriptor() const
Returns the Descriptor for this region.
Definition: EMBDetectorRegion.h:112
EMBDetDescr
Descriptor for regions of the electromagnetic barrel calorimeter.
Definition: EMBDetDescr.h:27
GeoAlignmentStore
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoAlignmentStore.h:24
EMBDetectorRegion::beginEtaIndex
unsigned int beginEtaIndex() const
Returns the first eta index in the region.
Definition: EMBDetectorRegion.h:147
EMBDetectorRegion::getDefAbsoluteTransform
const Amg::Transform3D & getDefAbsoluteTransform(const GeoAlignmentStore *alignStore=nullptr) const
Returns the absolute transform of this element.
Definition: EMBDetectorRegion.cxx:35
EMBDetectorRegion::m_descriptor
GeoIntrusivePtr< const EMBDetDescr > m_descriptor
Definition: EMBDetectorRegion.h:104
EMBDetectorRegion::getSamplingIndex
unsigned int getSamplingIndex() const
Returns the Sampling Layer Index.
Definition: EMBDetectorRegion.h:119
EMBDetectorRegion::operator=
EMBDetectorRegion & operator=(const EMBDetectorRegion &right)
EMBDetDescr.h
EMBDetectorRegion::NEG
@ NEG
Definition: EMBDetectorRegion.h:32
EMBDetectorRegion::endPhiIndex
unsigned int endPhiIndex() const
Returns the end phi index in the region.
Definition: EMBDetectorRegion.h:140
EMBDetectorRegion::beginPhiIndex
unsigned int beginPhiIndex() const
Returns the first phi index in the region.
Definition: EMBDetectorRegion.h:133
EMBDetectorRegion::EMBDetectorRegion
EMBDetectorRegion(const GeoVFullPhysVol *physVol, const EMBDetDescr *embDescriptor, DetectorSide endcap)
Constructor.
Definition: EMBDetectorRegion.cxx:11
GeoPrimitives.h
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
EMBDetectorRegion::getAbsoluteTransform
const Amg::Transform3D & getAbsoluteTransform(const GeoAlignmentStore *alignStore=nullptr) const
Returns the absolute transform of this element.
Definition: EMBDetectorRegion.cxx:27
EMBDetectorRegion::endEtaIndex
unsigned int endEtaIndex() const
Returns the end eta index in the region.
Definition: EMBDetectorRegion.h:154
EMBDetectorRegion::EMBDetectorRegion
EMBDetectorRegion(const EMBDetectorRegion &right)
EMBDetectorRegion::DetectorSide
DetectorSide
Definition: EMBDetectorRegion.h:32
EMBDetectorRegion::getEndcapIndex
EMBDetectorRegion::DetectorSide getEndcapIndex() const
The endcap index.
Definition: EMBDetectorRegion.h:163
EMBDetectorRegion::getEMBCell
EMBCellConstLink getEMBCell(unsigned int ieta, unsigned int iphi) const
Access to Cells.
Definition: EMBDetectorRegion.cxx:22
EMBDetectorRegion::getRegionIndex
unsigned int getRegionIndex() const
Returns the Region Index.
Definition: EMBDetectorRegion.h:126
EMBDetectorRegion::~EMBDetectorRegion
~EMBDetectorRegion()
Destructor
EMBDetectorRegion::POS
@ POS
Definition: EMBDetectorRegion.h:32
EMBDetectorRegion
Definition: EMBDetectorRegion.h:28
EMBDetectorRegion::m_endcapIndex
EMBDetectorRegion::DetectorSide m_endcapIndex
Definition: EMBDetectorRegion.h:105