ATLAS Offline Software
Loading...
Searching...
No Matches
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
26
28
29class 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
164inline unsigned int EMECDetectorRegion::getSamplingIndex () const
165{
166
167 return m_descriptor->getSamplingIndex();
168
169}
170
171inline unsigned int EMECDetectorRegion::getRegionIndex () const
172{
173
174 return m_descriptor->getRegionIndex();
175
176}
177
178inline unsigned int EMECDetectorRegion::getRadialIndex () const
179{
180
181 return m_descriptor->getRadialIndex();
182
183}
184
185inline unsigned int EMECDetectorRegion::beginPhiIndex () const
186{
187
188 return m_descriptor->getPhiBinning().getFirstDivisionNumber();
189
190}
191
192inline unsigned int EMECDetectorRegion::endPhiIndex () const
193{
194
195 return m_descriptor->getPhiBinning().getFirstDivisionNumber() + m_descriptor->getPhiBinning().getNumDivisions();
196
197}
198
199inline unsigned int EMECDetectorRegion::beginEtaIndex () const
200{
201
202 return m_descriptor->getEtaBinning().getFirstDivisionNumber();
203
204}
205
206inline unsigned int EMECDetectorRegion::endEtaIndex () const
207{
208
209 return m_descriptor->getEtaBinning().getFirstDivisionNumber() + m_descriptor->getEtaBinning().getNumDivisions();
210
211}
212
213
220
225
226
227
228#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