ATLAS Offline Software
EMECDetectorRegion.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_EMECDETECTORREGION_H
6 #define LARREADOUTGEOMETRY_EMECDETECTORREGION_H
9 #include "GeoModelKernel/GeoVDetectorElement.h"
10 #include "GeoModelKernel/GeoDefinitions.h"
11 #include "GaudiKernel/SystemOfUnits.h"
13 #include "CLHEP/Geometry/Point3D.h"
14 
27 class GeoAlignmentStore;
28 
29 class EMECDetectorRegion : public GeoVDetectorElement
30 {
31 
32  public:
33  typedef enum {NEG=0,POS=1} DetectorSide;
34  typedef enum {OUTER=0,INNER=1} RadialPos;
35 
36 
40  EMECDetectorRegion(const GeoVFullPhysVol *physVol
41  , const EMECDetDescr *emecDescriptor
42  , DetectorSide endcap
43  , double projectivityDisplacement = 4*Gaudi::Units::cm);
44 
49 
53  EMECCellConstLink getEMECCell (unsigned int ieta, unsigned int iphi) const;
54 
58  const EMECDetDescr * getDescriptor () const;
59 
63  unsigned int getSamplingIndex () const;
64 
68  unsigned int getRegionIndex () const;
69 
73  unsigned int getRadialIndex () const;
74 
78  unsigned int beginPhiIndex () const;
79 
83  unsigned int endPhiIndex () const;
84 
88  unsigned int beginEtaIndex () const;
89 
93  unsigned int endEtaIndex () const;
94 
101  HepGeom::Point3D<double> getRefPlanePos () const;
102 
108  HepGeom::Point3D<double> getFocalPointPos () const;
109 
113  const Amg::Transform3D& getAbsoluteTransform (const GeoAlignmentStore* alignStore=nullptr) const;
114 
118  const Amg::Transform3D& getDefAbsoluteTransform (const GeoAlignmentStore* alignStore=nullptr) const;
119 
127 
134 
135 
136 
137 
142 
143  double getProjectivityDisplacement() const;
144 
145  private:
146 
149  GeoIntrusivePtr<const EMECDetDescr> m_descriptor{};
152 
153 };
154 
155 
156 
158 {
159 
160  return m_descriptor;
161 
162 }
163 
164 inline unsigned int EMECDetectorRegion::getSamplingIndex () const
165 {
166 
167  return m_descriptor->getSamplingIndex();
168 
169 }
170 
171 inline unsigned int EMECDetectorRegion::getRegionIndex () const
172 {
173 
174  return m_descriptor->getRegionIndex();
175 
176 }
177 
178 inline unsigned int EMECDetectorRegion::getRadialIndex () const
179 {
180 
181  return m_descriptor->getRadialIndex();
182 
183 }
184 
185 inline unsigned int EMECDetectorRegion::beginPhiIndex () const
186 {
187 
188  return m_descriptor->getPhiBinning().getFirstDivisionNumber();
189 
190 }
191 
192 inline unsigned int EMECDetectorRegion::endPhiIndex () const
193 {
194 
195  return m_descriptor->getPhiBinning().getFirstDivisionNumber() + m_descriptor->getPhiBinning().getNumDivisions();
196 
197 }
198 
199 inline unsigned int EMECDetectorRegion::beginEtaIndex () const
200 {
201 
202  return m_descriptor->getEtaBinning().getFirstDivisionNumber();
203 
204 }
205 
206 inline unsigned int EMECDetectorRegion::endEtaIndex () const
207 {
208 
209  return m_descriptor->getEtaBinning().getFirstDivisionNumber() + m_descriptor->getEtaBinning().getNumDivisions();
210 
211 }
212 
213 
215 {
216 
217  return m_endcapIndex;
218 
219 }
220 
222 {
224 }
225 
226 
227 
228 #endif
GeoAlignmentStore
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoAlignmentStore.h:24
EMECDetectorRegion::RadialPos
RadialPos
Definition: EMECDetectorRegion.h:34
EMECDetectorRegion::m_descriptor
GeoIntrusivePtr< const EMECDetDescr > m_descriptor
Definition: EMECDetectorRegion.h:149
EMECDetectorRegion::getEndcapIndex
EMECDetectorRegion::DetectorSide getEndcapIndex() const
The endcap index.
Definition: EMECDetectorRegion.h:214
EMECDetectorRegion::getRefPlanePos
HepGeom::Point3D< double > getRefPlanePos() const
Returns the position of the center of the reference plane of the EMEC (back of front tranverse bars).
Definition: EMECDetectorRegion.cxx:31
EMECDetectorRegion::DetectorSide
DetectorSide
Definition: EMECDetectorRegion.h:33
EMECDetectorRegion::POS
@ POS
Definition: EMECDetectorRegion.h:33
EMECDetectorRegion::beginPhiIndex
unsigned int beginPhiIndex() const
returns the first phi index in the region.
Definition: EMECDetectorRegion.h:185
EMECDetectorRegion::beginEtaIndex
unsigned int beginEtaIndex() const
returns the first eta index in the region.
Definition: EMECDetectorRegion.h:199
EMECDetectorRegion::operator=
EMECDetectorRegion & operator=(const EMECDetectorRegion &right)
EMECDetectorRegion::EMECDetectorRegion
EMECDetectorRegion(const GeoVFullPhysVol *physVol, const EMECDetDescr *emecDescriptor, DetectorSide endcap, double projectivityDisplacement=4 *Gaudi::Units::cm)
Constructor.
Definition: EMECDetectorRegion.cxx:12
EMECDetectorRegion
Definition: EMECDetectorRegion.h:30
EMECDetectorRegion::getProjectivityDisplacement
double getProjectivityDisplacement() const
Definition: EMECDetectorRegion.h:221
EMECDetectorRegion::getRefPlanePosAmg
Amg::Vector3D getRefPlanePosAmg() const
Returns the position of the center of the reference plane of the EMEC (back of front tranverse bars).
Definition: EMECDetectorRegion.cxx:68
EMECDetectorRegion::getAbsoluteTransform
const Amg::Transform3D & getAbsoluteTransform(const GeoAlignmentStore *alignStore=nullptr) const
Returns the absolute transform of this element.
Definition: EMECDetectorRegion.cxx:52
EMECDetDescr
Descriptor for regions of the electromagnetic endcap calorimeter.
Definition: EMECDetDescr.h:27
EMECDetectorRegion::getRadialIndex
unsigned int getRadialIndex() const
Returns the Radial (Outer Wheel=0,InnerWheel=1) Index.
Definition: EMECDetectorRegion.h:178
EMECDetectorRegion::getFocalPointPos
HepGeom::Point3D< double > getFocalPointPos() const
Returns the position of the focal point of the EMEC.
Definition: EMECDetectorRegion.cxx:44
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
GeoPrimitives.h
EMECDetectorRegion::INNER
@ INNER
Definition: EMECDetectorRegion.h:34
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
EMECDetectorRegion::getDescriptor
const EMECDetDescr * getDescriptor() const
Returns the Descriptor for this region.
Definition: EMECDetectorRegion.h:157
EMECDetectorRegion::OUTER
@ OUTER
Definition: EMECDetectorRegion.h:34
EMECDetectorRegion::endPhiIndex
unsigned int endPhiIndex() const
returns the end phi index in the region.
Definition: EMECDetectorRegion.h:192
EMECDetectorRegion::NEG
@ NEG
Definition: EMECDetectorRegion.h:33
EMECDetDescr.h
EMECDetectorRegion::getSamplingIndex
unsigned int getSamplingIndex() const
Returns the Sampling Layer Index.
Definition: EMECDetectorRegion.h:164
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
EMECDetectorRegion::getDefAbsoluteTransform
const Amg::Transform3D & getDefAbsoluteTransform(const GeoAlignmentStore *alignStore=nullptr) const
Returns the absolute transform of this element.
Definition: EMECDetectorRegion.cxx:60
EMECDetectorRegion::getEMECCell
EMECCellConstLink getEMECCell(unsigned int ieta, unsigned int iphi) const
Access to Cells.
Definition: EMECDetectorRegion.cxx:26
EMECDetectorRegion::m_projectivityDisplacement
double m_projectivityDisplacement
Definition: EMECDetectorRegion.h:151
EMECDetectorRegion::EMECDetectorRegion
EMECDetectorRegion(const EMECDetectorRegion &right)
EMECDetectorRegion::getRegionIndex
unsigned int getRegionIndex() const
Returns the Region Index.
Definition: EMECDetectorRegion.h:171
EMECDetectorRegion::m_endcapIndex
EMECDetectorRegion::DetectorSide m_endcapIndex
Definition: EMECDetectorRegion.h:150
EMECDetectorRegion::getFocalPointPosAmg
Amg::Vector3D getFocalPointPosAmg() const
Returns the position of the focal point of the EMEC.
Definition: EMECDetectorRegion.cxx:74
EMECDetectorRegion::endEtaIndex
unsigned int endEtaIndex() const
returns the end eta index in the region.
Definition: EMECDetectorRegion.h:206
EMECDetectorRegion::~EMECDetectorRegion
~EMECDetectorRegion()
Destructor