ATLAS Offline Software
Loading...
Searching...
No Matches
HECDetectorRegion.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_HECDETECTORREGION_H
6#define LARREADOUTGEOMETRY_HECDETECTORREGION_H
7
12#include "GeoModelKernel/GeoVDetectorElement.h"
13#include "GeoModelKernel/GeoDefinitions.h"
14#include "GaudiKernel/SystemOfUnits.h"
15#include "CLHEP/Geometry/Point3D.h"
16
28
30
31
32class HECDetectorRegion : public GeoVDetectorElement
33{
34
35 public:
36 typedef enum {NEG=0,POS=1} DetectorSide;
37
38
39 public:
40
41
45 HECDetectorRegion (const GeoVFullPhysVol *physVol
46 , const HECDetDescr *hecDescriptor
47 , DetectorSide endcap
48 , double projectivityDisplacement = 4*Gaudi::Units::cm);
49
54
58 HECCellConstLink getHECCell (unsigned int ieta, unsigned int iphi) const;
59
63 const HECDetDescr * getDescriptor () const;
64
68 unsigned int getSamplingIndex () const;
69
73 unsigned int getRegionIndex () 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
98 const Amg::Transform3D& getAbsoluteTransform (const GeoAlignmentStore* alignStore=nullptr) const;
99
103 const Amg::Transform3D& getDefAbsoluteTransform (const GeoAlignmentStore* alignStore=nullptr) const;
104
111 HepGeom::Point3D<double> getRefPlanePos () const;
112
118 HepGeom::Point3D<double> getFocalPointPos () const;
119
127
134
135
140
141 double getProjectivityDisplacement() const;
142
143 private:
144
147 GeoIntrusivePtr<const HECDetDescr> m_descriptor{};
149
151};
152
153
154
155
156// Class HECDetectorRegion
157
158
159
161{
162
163 return m_descriptor;
164
165}
166
167inline unsigned int HECDetectorRegion::getSamplingIndex () const
168{
169
171
172}
173
174inline unsigned int HECDetectorRegion::getRegionIndex () const
175{
176
177 return getDescriptor()->getRegionIndex();
178
179}
180
181inline unsigned int HECDetectorRegion::beginPhiIndex () const
182{
183
184 return m_descriptor->getPhiBinning().getFirstDivisionNumber();
185
186}
187
188inline unsigned int HECDetectorRegion::endPhiIndex () const
189{
190
191 return m_descriptor->getPhiBinning().getFirstDivisionNumber() + m_descriptor->getPhiBinning().getNumDivisions();
192
193}
194
195inline unsigned int HECDetectorRegion::beginEtaIndex () const
196{
197
198 return m_descriptor->getEtaBinning().getFirstDivisionNumber();
199
200}
201
202inline unsigned int HECDetectorRegion::endEtaIndex () const
203{
204
205 return m_descriptor->getEtaBinning().getFirstDivisionNumber() + m_descriptor->getEtaBinning().getNumDivisions();
206
207}
208
209
210
217
222
223
224
225
226#endif
Ensure that the extensions for the Vector3D are properly loaded.
Descriptor for regions of the hadronic endcap calorimeter.
Definition HECDetDescr.h:30
unsigned int getSamplingIndex() const
The sampling index.
unsigned int getRegionIndex() const
The region Index.
HECDetectorRegion & operator=(const HECDetectorRegion &right)
unsigned int getRegionIndex() const
Returns the Region Index.
HECCellConstLink getHECCell(unsigned int ieta, unsigned int iphi) const
Retrieve a cell with eta index and phi index.
~HECDetectorRegion()
Destructor.
unsigned int beginPhiIndex() const
returns the first phi index in the region.
HepGeom::Point3D< double > getFocalPointPos() const
Returns the position of the focal point of the HEC.
HECDetectorRegion::DetectorSide m_endcapIndex
const Amg::Transform3D & getDefAbsoluteTransform(const GeoAlignmentStore *alignStore=nullptr) const
Returns the absolute transform of this element.
GeoIntrusivePtr< const HECDetDescr > m_descriptor
HECDetectorRegion(const HECDetectorRegion &right)
const Amg::Transform3D & getAbsoluteTransform(const GeoAlignmentStore *alignStore=nullptr) const
Returns the absolute transform of this element.
unsigned int getSamplingIndex() const
Returns the Sampling Layer Index (0-3).
const HECDetDescr * getDescriptor() const
Returns the Descriptor for this region.
unsigned int endEtaIndex() const
returns the end eta index in the region.
Amg::Vector3D getFocalPointPosAmg() const
Returns the position of the focal point of the HEC.
double getProjectivityDisplacement() const
unsigned int beginEtaIndex() const
returns the first eta index in the region.
HECDetectorRegion::DetectorSide getEndcapIndex() const
The endcap index.
unsigned int endPhiIndex() const
returns the end phi index in the region.
HECDetectorRegion(const GeoVFullPhysVol *physVol, const HECDetDescr *hecDescriptor, DetectorSide endcap, double projectivityDisplacement=4 *Gaudi::Units::cm)
Constructor.
HepGeom::Point3D< double > getRefPlanePos() const
Returns the position of the center of the reference plane of the HEC (front face of the HEC volume).
Amg::Vector3D getRefPlanePosAmg() const
Returns the position of the center of the reference plane of the HEC (front face of the HEC volume).
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D