ATLAS Offline Software
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 
27 class GeoAlignmentStore;
28 
29 
30 class 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 
165 inline unsigned int HECDetectorRegion::getSamplingIndex () const
166 {
167 
168  return getDescriptor()->getSamplingIndex();
169 
170 }
171 
172 inline unsigned int HECDetectorRegion::getRegionIndex () const
173 {
174 
175  return getDescriptor()->getRegionIndex();
176 
177 }
178 
179 inline unsigned int HECDetectorRegion::beginPhiIndex () const
180 {
181 
182  return m_descriptor->getPhiBinning().getFirstDivisionNumber();
183 
184 }
185 
186 inline unsigned int HECDetectorRegion::endPhiIndex () const
187 {
188 
189  return m_descriptor->getPhiBinning().getFirstDivisionNumber() + m_descriptor->getPhiBinning().getNumDivisions();
190 
191 }
192 
193 inline unsigned int HECDetectorRegion::beginEtaIndex () const
194 {
195 
196  return m_descriptor->getEtaBinning().getFirstDivisionNumber();
197 
198 }
199 
200 inline unsigned int HECDetectorRegion::endEtaIndex () const
201 {
202 
203  return m_descriptor->getEtaBinning().getFirstDivisionNumber() + m_descriptor->getEtaBinning().getNumDivisions();
204 
205 }
206 
207 
208 
210 {
211 
212  return m_endcapIndex;
213 
214 }
215 
217 {
219 }
220 
221 
222 
223 
224 #endif
GeoAlignmentStore
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoAlignmentStore.h:24
HECDetectorRegion::NEG
@ NEG
Definition: HECDetectorRegion.h:34
HECDetectorRegion::getFocalPointPosAmg
Amg::Vector3D getFocalPointPosAmg() const
Returns the position of the focal point of the HEC.
Definition: HECDetectorRegion.cxx:53
HECDetectorRegion::beginPhiIndex
unsigned int beginPhiIndex() const
returns the first phi index in the region.
Definition: HECDetectorRegion.h:179
HECDetectorRegion::POS
@ POS
Definition: HECDetectorRegion.h:34
HECDetDescr::getRegionIndex
unsigned int getRegionIndex() const
The region Index.
Definition: HECDetDescr.h:208
HECDetectorRegion::getRefPlanePosAmg
Amg::Vector3D getRefPlanePosAmg() const
Returns the position of the center of the reference plane of the HEC (front face of the HEC volume).
Definition: HECDetectorRegion.cxx:32
HECDetectorRegion::beginEtaIndex
unsigned int beginEtaIndex() const
returns the first eta index in the region.
Definition: HECDetectorRegion.h:193
HECDetectorRegion::m_endcapIndex
HECDetectorRegion::DetectorSide m_endcapIndex
Definition: HECDetectorRegion.h:146
HECDetectorRegion::getRegionIndex
unsigned int getRegionIndex() const
Returns the Region Index.
Definition: HECDetectorRegion.h:172
HECDetectorRegion::getRefPlanePos
HepGeom::Point3D< double > getRefPlanePos() const
Returns the position of the center of the reference plane of the HEC (front face of the HEC volume).
Definition: HECDetectorRegion.cxx:60
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
GeoPrimitives.h
HECDetectorRegion::getProjectivityDisplacement
double getProjectivityDisplacement() const
Definition: HECDetectorRegion.h:216
HECDetectorRegion::DetectorSide
DetectorSide
Definition: HECDetectorRegion.h:34
HECDetectorRegion::endEtaIndex
unsigned int endEtaIndex() const
returns the end eta index in the region.
Definition: HECDetectorRegion.h:200
HECDetDescr
Descriptor for regions of the hadronic endcap calorimeter.
Definition: HECDetDescr.h:30
HECDetectorRegion
Description of a region of homogenous granularity in the hadronic endcap calorimeter.
Definition: HECDetectorRegion.h:31
HECDetectorRegion::endPhiIndex
unsigned int endPhiIndex() const
returns the end phi index in the region.
Definition: HECDetectorRegion.h:186
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
HECDetectorRegion::HECDetectorRegion
HECDetectorRegion(const GeoVFullPhysVol *physVol, const HECDetDescr *hecDescriptor, DetectorSide endcap, double projectivityDisplacement=4 *Gaudi::Units::cm)
Constructor.
Definition: HECDetectorRegion.cxx:11
HECDetectorRegion::getEndcapIndex
HECDetectorRegion::DetectorSide getEndcapIndex() const
The endcap index.
Definition: HECDetectorRegion.h:209
HECDetectorRegion::getAbsoluteTransform
const Amg::Transform3D & getAbsoluteTransform(const GeoAlignmentStore *alignStore=nullptr) const
Returns the absolute transform of this element.
Definition: HECDetectorRegion.cxx:37
HECDetectorRegion::m_descriptor
GeoIntrusivePtr< const HECDetDescr > m_descriptor
Definition: HECDetectorRegion.h:145
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
HECDetDescr.h
HECDetDescr::getSamplingIndex
unsigned int getSamplingIndex() const
The sampling index.
Definition: HECDetDescr.h:201
HECDetectorRegion::getDefAbsoluteTransform
const Amg::Transform3D & getDefAbsoluteTransform(const GeoAlignmentStore *alignStore=nullptr) const
Returns the absolute transform of this element.
Definition: HECDetectorRegion.cxx:45
HECDetectorRegion::getHECCell
HECCellConstLink getHECCell(unsigned int ieta, unsigned int iphi) const
Retrieve a cell with eta index and phi index.
Definition: HECDetectorRegion.cxx:26
HECDetectorRegion::getDescriptor
const HECDetDescr * getDescriptor() const
Returns the Descriptor for this region.
Definition: HECDetectorRegion.h:158
HECDetectorRegion::HECDetectorRegion
HECDetectorRegion(const HECDetectorRegion &right)
HECDetectorRegion::getFocalPointPos
HepGeom::Point3D< double > getFocalPointPos() const
Returns the position of the focal point of the HEC.
Definition: HECDetectorRegion.cxx:76
HECDetectorRegion::getSamplingIndex
unsigned int getSamplingIndex() const
Returns the Sampling Layer Index (0-3)
Definition: HECDetectorRegion.h:165
HECDetectorRegion::m_projectivityDisplacement
double m_projectivityDisplacement
Definition: HECDetectorRegion.h:148
HECDetectorRegion::operator=
HECDetectorRegion & operator=(const HECDetectorRegion &right)
HECDetectorRegion::~HECDetectorRegion
~HECDetectorRegion()
Destructor.