ATLAS Offline Software
Loading...
Searching...
No Matches
HECDetectorRegion.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_HECDETECTORREGION_H
6#define LARREADOUTGEOMETRY_HECDETECTORREGION_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
29
30class HECDetectorRegion : public GeoVDetectorElement
31{
32
33 public:
34 typedef enum {NEG=0,POS=1} DetectorSide;
35
36
37 public:
38
39
43 HECDetectorRegion (const GeoVFullPhysVol *physVol
44 , const HECDetDescr *hecDescriptor
45 , DetectorSide endcap
46 , double projectivityDisplacement = 4*Gaudi::Units::cm);
47
52
56 HECCellConstLink getHECCell (unsigned int ieta, unsigned int iphi) const;
57
61 const HECDetDescr * getDescriptor () const;
62
66 unsigned int getSamplingIndex () const;
67
71 unsigned int getRegionIndex () const;
72
76 unsigned int beginPhiIndex () const;
77
81 unsigned int endPhiIndex () const;
82
86 unsigned int beginEtaIndex () const;
87
91 unsigned int endEtaIndex () const;
92
96 const Amg::Transform3D& getAbsoluteTransform (const GeoAlignmentStore* alignStore=nullptr) const;
97
101 const Amg::Transform3D& getDefAbsoluteTransform (const GeoAlignmentStore* alignStore=nullptr) const;
102
109 HepGeom::Point3D<double> getRefPlanePos () const;
110
116 HepGeom::Point3D<double> getFocalPointPos () const;
117
125
132
133
138
139 double getProjectivityDisplacement() const;
140
141 private:
142
145 GeoIntrusivePtr<const HECDetDescr> m_descriptor{};
147
149};
150
151
152
153
154// Class HECDetectorRegion
155
156
157
159{
160
161 return m_descriptor;
162
163}
164
165inline unsigned int HECDetectorRegion::getSamplingIndex () const
166{
167
169
170}
171
172inline unsigned int HECDetectorRegion::getRegionIndex () const
173{
174
175 return getDescriptor()->getRegionIndex();
176
177}
178
179inline unsigned int HECDetectorRegion::beginPhiIndex () const
180{
181
182 return m_descriptor->getPhiBinning().getFirstDivisionNumber();
183
184}
185
186inline unsigned int HECDetectorRegion::endPhiIndex () const
187{
188
189 return m_descriptor->getPhiBinning().getFirstDivisionNumber() + m_descriptor->getPhiBinning().getNumDivisions();
190
191}
192
193inline unsigned int HECDetectorRegion::beginEtaIndex () const
194{
195
196 return m_descriptor->getEtaBinning().getFirstDivisionNumber();
197
198}
199
200inline unsigned int HECDetectorRegion::endEtaIndex () const
201{
202
203 return m_descriptor->getEtaBinning().getFirstDivisionNumber() + m_descriptor->getEtaBinning().getNumDivisions();
204
205}
206
207
208
215
220
221
222
223
224#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