ATLAS Offline Software
Loading...
Searching...
No Matches
EMECDetectorRegion.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef LARREADOUTGEOMETRY_EMECDETECTORREGION_H
6#define LARREADOUTGEOMETRY_EMECDETECTORREGION_H
11#include "GeoModelKernel/GeoVDetectorElement.h"
12#include "GeoModelKernel/GeoDefinitions.h"
13#include "GaudiKernel/SystemOfUnits.h"
14
15#include "CLHEP/Geometry/Point3D.h"
16
28
30
31class EMECDetectorRegion : public GeoVDetectorElement
32{
33
34 public:
35 typedef enum {NEG=0,POS=1} DetectorSide;
36 typedef enum {OUTER=0,INNER=1} RadialPos;
37
38
42 EMECDetectorRegion(const GeoVFullPhysVol *physVol
43 , const EMECDetDescr *emecDescriptor
44 , DetectorSide endcap
45 , double projectivityDisplacement = 4*Gaudi::Units::cm);
46
51
55 EMECCellConstLink getEMECCell (unsigned int ieta, unsigned int iphi) const;
56
60 const EMECDetDescr * getDescriptor () const;
61
65 unsigned int getSamplingIndex () const;
66
70 unsigned int getRegionIndex () const;
71
75 unsigned int getRadialIndex () const;
76
80 unsigned int beginPhiIndex () const;
81
85 unsigned int endPhiIndex () const;
86
90 unsigned int beginEtaIndex () const;
91
95 unsigned int endEtaIndex () const;
96
103 HepGeom::Point3D<double> getRefPlanePos () const;
104
110 HepGeom::Point3D<double> getFocalPointPos () const;
111
115 const Amg::Transform3D& getAbsoluteTransform (const GeoAlignmentStore* alignStore=nullptr) const;
116
120 const Amg::Transform3D& getDefAbsoluteTransform (const GeoAlignmentStore* alignStore=nullptr) const;
121
129
136
137
138
139
144
145 double getProjectivityDisplacement() const;
146
147 private:
148
151 GeoIntrusivePtr<const EMECDetDescr> m_descriptor{};
154
155};
156
157
158
160{
161
162 return m_descriptor;
163
164}
165
166inline unsigned int EMECDetectorRegion::getSamplingIndex () const
167{
168
169 return m_descriptor->getSamplingIndex();
170
171}
172
173inline unsigned int EMECDetectorRegion::getRegionIndex () const
174{
175
176 return m_descriptor->getRegionIndex();
177
178}
179
180inline unsigned int EMECDetectorRegion::getRadialIndex () const
181{
182
183 return m_descriptor->getRadialIndex();
184
185}
186
187inline unsigned int EMECDetectorRegion::beginPhiIndex () const
188{
189
190 return m_descriptor->getPhiBinning().getFirstDivisionNumber();
191
192}
193
194inline unsigned int EMECDetectorRegion::endPhiIndex () const
195{
196
197 return m_descriptor->getPhiBinning().getFirstDivisionNumber() + m_descriptor->getPhiBinning().getNumDivisions();
198
199}
200
201inline unsigned int EMECDetectorRegion::beginEtaIndex () const
202{
203
204 return m_descriptor->getEtaBinning().getFirstDivisionNumber();
205
206}
207
208inline unsigned int EMECDetectorRegion::endEtaIndex () const
209{
210
211 return m_descriptor->getEtaBinning().getFirstDivisionNumber() + m_descriptor->getEtaBinning().getNumDivisions();
212
213}
214
215
222
227
228
229
230#endif
Descriptor for regions of the electromagnetic endcap calorimeter.
~EMECDetectorRegion()
Destructor.
Amg::Vector3D getFocalPointPosAmg() const
Returns the position of the focal point of the EMEC.
EMECCellConstLink getEMECCell(unsigned int ieta, unsigned int iphi) const
Access to Cells.
unsigned int beginPhiIndex() const
returns the first phi index in the region.
double getProjectivityDisplacement() const
HepGeom::Point3D< double > getRefPlanePos() const
Returns the position of the center of the reference plane of the EMEC (back of front tranverse bars).
EMECDetectorRegion::DetectorSide m_endcapIndex
unsigned int endEtaIndex() const
returns the end eta index in the region.
EMECDetectorRegion & operator=(const EMECDetectorRegion &right)
const Amg::Transform3D & getDefAbsoluteTransform(const GeoAlignmentStore *alignStore=nullptr) const
Returns the absolute transform of this element.
const Amg::Transform3D & getAbsoluteTransform(const GeoAlignmentStore *alignStore=nullptr) const
Returns the absolute transform of this element.
unsigned int getRadialIndex() const
Returns the Radial (Outer Wheel=0,InnerWheel=1) Index.
unsigned int endPhiIndex() const
returns the end phi index in the region.
EMECDetectorRegion(const GeoVFullPhysVol *physVol, const EMECDetDescr *emecDescriptor, DetectorSide endcap, double projectivityDisplacement=4 *Gaudi::Units::cm)
Constructor.
GeoIntrusivePtr< const EMECDetDescr > m_descriptor
unsigned int getRegionIndex() const
Returns the Region Index.
EMECDetectorRegion::DetectorSide getEndcapIndex() const
The endcap index.
EMECDetectorRegion(const EMECDetectorRegion &right)
const EMECDetDescr * getDescriptor() const
Returns the Descriptor for this region.
HepGeom::Point3D< double > getFocalPointPos() const
Returns the position of the focal point of the EMEC.
unsigned int getSamplingIndex() const
Returns the Sampling Layer Index.
unsigned int beginEtaIndex() const
returns the first eta index in the region.
Amg::Vector3D getRefPlanePosAmg() const
Returns the position of the center of the reference plane of the EMEC (back of front tranverse bars).
Ensure that the extensions for the Vector3D are properly loaded.
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D