ATLAS Offline Software
HECDetectorManager.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_HECDETECTORMANAGER_H
6 #define LARREADOUTGEOMETRY_HECDETECTORMANAGER_H
7 
10 #include "LArHV/HECHVManager.h"
11 #include "GeoModelKernel/GeoVDetectorManager.h"
12 
13 class HECDetDescr;
14 class HECDetectorRegion;
15 
27 class HECDetectorManager : public GeoVDetectorManager
28 {
29 
30  public:
31 
32  typedef std::vector<const HECLongBlock *>::const_iterator BlockConstIterator;
33  typedef std::vector<const HECDetectorRegion *>::const_iterator DetectorRegionConstIterator;
34  typedef HECDetectorRegion const * HECDetRegionArray[2][4][2];
35 
36 
37  public:
38 
39 
43  HECDetectorManager(const HECHVManager* hvManager=nullptr, bool isTestBeam=false);
44 
48  virtual ~HECDetectorManager() override;
49 
54 
59 
63  const HECDetectorRegion * getDetectorRegion (unsigned int endcap, unsigned int sampling, unsigned int region) const;
64 
68  unsigned int getNumDetectorRegions () const;
69 
73  virtual PVConstLink getTreeTop (unsigned int i) const override;
74 
78  virtual unsigned int getNumTreeTops () const override;
79 
84 
89 
93  const HECLongBlock * getBlock (unsigned int i) const;
94 
98  unsigned int getNumBlocks () const;
99 
103  void addDetectorRegion (const HECDetectorRegion *region);
104 
108  void addTreeTop (const PVLink& treeTop);
109 
110 
117  double getFocalToRef1 () const;
118 
125  double getFocalToRef2 () const;
126 
130  const HECHVManager& getHVManager() const;
131 
132 
133  private:
134 
137  std::vector<const HECLongBlock *> m_HecLongBlock;
138 
143  std::vector<PVLink> m_treeTop;
144 
145 
146 
153 
154 
155 
161  std::vector<const HECDetectorRegion *> m_DetRegionsIterative;
162 
165 
167 
169 
170 };
171 
172 
173 
174 
176 {
177 
178  return m_focalToRef1;
179 
180 }
181 
183 {
184 
185  return m_focalToRef2;
186 
187 }
188 
189 
190 CLASS_DEF(HECDetectorManager, 132338641, 1)
191 
192 
193 
194 #endif
HECDetectorManager::m_HVManager
const HECHVManager * m_HVManager
Definition: HECDetectorManager.h:166
HECDetectorManager::operator=
HECDetectorManager & operator=(const HECDetectorManager &right)
HECDetectorManager::m_DetRegionsRandom
HECDetRegionArray m_DetRegionsRandom
An array of Region pointers which exists in order to provide random access to any HECDetectorRegion h...
Definition: HECDetectorManager.h:152
HECDetectorManager::m_focalToRef2
double m_focalToRef2
Definition: HECDetectorManager.h:164
HECDetectorManager::~HECDetectorManager
virtual ~HECDetectorManager() override
Destructor.
Definition: HECDetectorManager.cxx:112
HECDetectorManager::getNumDetectorRegions
unsigned int getNumDetectorRegions() const
Gets the number of detectors in the set of detector regions.
Definition: HECDetectorManager.cxx:135
HECDetectorManager::addTreeTop
void addTreeTop(const PVLink &treeTop)
Add a Tree Top.
Definition: HECDetectorManager.cxx:176
HECHVManager.h
HECDetectorManager::getFocalToRef2
double getFocalToRef2() const
Definition: HECDetectorManager.h:182
HECLongBlock.h
HECDetectorManager::m_isTestBeam
bool m_isTestBeam
Definition: HECDetectorManager.h:168
HECDetectorManager::beginBlock
HECDetectorManager::BlockConstIterator beginBlock() const
Iterate over blocks.
Definition: HECDetectorManager.cxx:150
HECDetectorManager::HECDetectorManager
HECDetectorManager(const HECDetectorManager &right)
HECDetectorManager::HECDetRegionArray
HECDetectorRegion const * HECDetRegionArray[2][4][2]
Definition: HECDetectorManager.h:34
HECDetDescr
Descriptor for regions of the hadronic endcap calorimeter.
Definition: HECDetDescr.h:30
lumiFormat.i
int i
Definition: lumiFormat.py:85
HECDetectorRegion
Description of a region of homogenous granularity in the hadronic endcap calorimeter.
Definition: HECDetectorRegion.h:31
HECDetectorManager::endDetectorRegion
HECDetectorManager::DetectorRegionConstIterator endDetectorRegion() const
Iterate over detector regions.
Definition: HECDetectorManager.cxx:125
HECDetectorManager::m_HecLongBlock
std::vector< const HECLongBlock * > m_HecLongBlock
Definition: HECDetectorManager.h:137
HECDetectorManager::BlockConstIterator
std::vector< const HECLongBlock * >::const_iterator BlockConstIterator
Definition: HECDetectorManager.h:32
HECDetectorManager::beginDetectorRegion
HECDetectorManager::DetectorRegionConstIterator beginDetectorRegion() const
Iterate over detector regions.
Definition: HECDetectorManager.cxx:120
HECLongBlock
Definition: HECLongBlock.h:32
HECDetectorManager
A manager class providing access to readout geometry information for the hadronic endcap calorimeter.
Definition: HECDetectorManager.h:28
HECDetectorManager::getBlock
const HECLongBlock * getBlock(unsigned int i) const
Random Access to Blocks.
Definition: HECDetectorManager.cxx:160
HECDetectorManager::getNumBlocks
unsigned int getNumBlocks() const
Gets the number of blocks in the set of blocks.
Definition: HECDetectorManager.cxx:165
HECDetectorManager::getNumTreeTops
virtual unsigned int getNumTreeTops() const override
Gets the total number of tree tops.
Definition: HECDetectorManager.cxx:145
HECHVManager
This class provides direct access to information on the HV electrodes within the barrels....
Definition: HECHVManager.h:36
HECDetectorManager::HECDetectorManager
HECDetectorManager(const HECHVManager *hvManager=nullptr, bool isTestBeam=false)
Constructor.
Definition: HECDetectorManager.cxx:22
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:64
HECDetectorManager::getTreeTop
virtual PVConstLink getTreeTop(unsigned int i) const override
Gets the ith tree top.
Definition: HECDetectorManager.cxx:140
HECDetectorManager::DetectorRegionConstIterator
std::vector< const HECDetectorRegion * >::const_iterator DetectorRegionConstIterator
Definition: HECDetectorManager.h:33
HECDetectorManager::addDetectorRegion
void addDetectorRegion(const HECDetectorRegion *region)
Add a new HEC Detector Region.
Definition: HECDetectorManager.cxx:170
HECDetectorManager::endBlock
HECDetectorManager::BlockConstIterator endBlock() const
Iterate over blocks.
Definition: HECDetectorManager.cxx:155
HECDetectorManager::getHVManager
const HECHVManager & getHVManager() const
Get the HV Manager.
Definition: HECDetectorManager.cxx:181
HECDetectorManager::getDetectorRegion
const HECDetectorRegion * getDetectorRegion(unsigned int endcap, unsigned int sampling, unsigned int region) const
Random Access to detector regions.
Definition: HECDetectorManager.cxx:130
HECDetectorManager::m_DetRegionsIterative
std::vector< const HECDetectorRegion * > m_DetRegionsIterative
A vector of Region pointer which exists in order to provide iterative access to any HECDetectorRegion...
Definition: HECDetectorManager.h:161
HECDetectorManager::getFocalToRef1
double getFocalToRef1() const
Definition: HECDetectorManager.h:175
CLASS_DEF.h
macros to associate a CLID to a type
HECDetectorManager::m_focalToRef1
double m_focalToRef1
Definition: HECDetectorManager.h:163
HECDetectorManager::m_treeTop
std::vector< PVLink > m_treeTop
This is the set of tree tops managed by this detector node.
Definition: HECDetectorManager.h:143