ATLAS Offline Software
EMBDetectorManager.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_EMBDETECTORMANAGER_H
6 #define LARREADOUTGEOMETRY_EMBDETECTORMANAGER_H
8 #include <vector>
9 #include "GeoModelKernel/GeoVDetectorManager.h"
11 #include "LArHV/EMBHVManager.h"
14 
15 class EMBDetDescr;
16 class EMBDetectorRegion;
18 
31 class EMBDetectorManager : public GeoVDetectorManager
32 {
33 
34  public:
35  typedef std::vector<const EMBDetectorRegion *>::const_iterator DetectorRegionConstIterator;
36  typedef EMBDetectorRegion const * EMBDetRegionArray[6][4][2]; // x 2 endcaps
37 
38  public:
39 
43  EMBDetectorManager(const EMBHVManager& hvManager, const EMBPresamplerHVManager& presamplerHVManager);
44 
48  virtual ~EMBDetectorManager() override;
49 
54 
55 
60 
64  const EMBDetectorRegion * getDetectorRegion (unsigned int endcap, unsigned int sampling, unsigned int region) const;
65 
69  unsigned int getNumDetectorRegions () const;
70 
74  virtual PVConstLink getTreeTop (unsigned int i) const override;
75 
79  virtual unsigned int getNumTreeTops () const override;
80 
84  void addDetectorRegion (const EMBDetectorRegion *region);
85 
89  void addTreeTop (PVLink treeTop);
90 
95 
96 
101 
105  const EMBHVManager& getHVManager () const;
106 
111 
112 
113  private:
114 
120  std::vector<PVLink> m_treeTop;
126  std::vector<const EMBDetectorRegion *> m_DetRegionsIterative;
133  std::unique_ptr<const EMBBasicReadoutNumbers> m_basicReadoutNumbers;
137 };
138 
139 
141 {
142  if (!m_accordionDetails) {
143  m_accordionDetails.set (std::make_unique<EMBAccordionDetails>());
144  }
145  return m_accordionDetails.get();
146 }
147 
148 
150 {
151  return m_basicReadoutNumbers.get();
152 }
153 
154 
155 CLASS_DEF(EMBDetectorManager, 123812929, 1)
156 
157 
158 
159 #endif
EMBDetectorManager::getTreeTop
virtual PVConstLink getTreeTop(unsigned int i) const override
Gets the ith tree top.
Definition: EMBDetectorManager.cxx:75
EMBDetDescr
Descriptor for regions of the electromagnetic barrel calorimeter.
Definition: EMBDetDescr.h:27
EMBAccordionDetails
Definition: EMBAccordionDetails.h:9
EMBDetectorManager::m_hvManager
const EMBHVManager & m_hvManager
Definition: EMBDetectorManager.h:135
EMBPresamplerHVManager.h
EMBDetectorManager::getNumTreeTops
virtual unsigned int getNumTreeTops() const override
Gets the total number of tree tops.
Definition: EMBDetectorManager.cxx:80
CxxUtils::CachedUniquePtrT
Cached pointer with atomic update.
Definition: CachedUniquePtr.h:54
EMBDetectorManager::m_treeTop
std::vector< PVLink > m_treeTop
This is the set of tree tops managed by this detector node.
Definition: EMBDetectorManager.h:120
EMBDetectorManager::getHVManager
const EMBHVManager & getHVManager() const
Get the HV Manager.
Definition: EMBDetectorManager.cxx:102
EMBPresamplerHVManager
This class provides direct access to information on the HV electrodes within the barrels....
Definition: EMBPresamplerHVManager.h:37
EMBDetectorManager
A manager class providing access to readout geometry information for the electromagnetic barrel calor...
Definition: EMBDetectorManager.h:32
lumiFormat.i
int i
Definition: lumiFormat.py:92
CachedUniquePtr.h
Cached unique_ptr with atomic update.
EMBDetectorManager::addDetectorRegion
void addDetectorRegion(const EMBDetectorRegion *region)
Add a new Detector Region.
Definition: EMBDetectorManager.cxx:85
EMBDetectorManager::getAccordionDetails
const EMBAccordionDetails * getAccordionDetails() const
Get accordion details class.
Definition: EMBDetectorManager.h:140
EMBDetectorManager::addTreeTop
void addTreeTop(PVLink treeTop)
Add a Tree Top.
Definition: EMBDetectorManager.cxx:97
EMBDetectorManager::m_basicReadoutNumbers
std::unique_ptr< const EMBBasicReadoutNumbers > m_basicReadoutNumbers
Definition: EMBDetectorManager.h:133
EMBDetectorManager::EMBDetectorManager
EMBDetectorManager(const EMBHVManager &hvManager, const EMBPresamplerHVManager &presamplerHVManager)
Constructor.
Definition: EMBDetectorManager.cxx:30
EMBDetectorManager::beginDetectorRegion
EMBDetectorManager::DetectorRegionConstIterator beginDetectorRegion() const
Iterate over detector regions.
Definition: EMBDetectorManager.cxx:55
EMBDetectorManager::m_DetRegionsRandom
EMBDetRegionArray m_DetRegionsRandom
A vector of Region pointers which exists in order to provide iterative access to any EMBDetectorRegio...
Definition: EMBDetectorManager.h:132
EMBDetectorManager::~EMBDetectorManager
virtual ~EMBDetectorManager() override
Destructor.
Definition: EMBDetectorManager.cxx:49
EMBDetectorManager::EMBDetectorManager
EMBDetectorManager(const EMBDetectorManager &right)
EMBHVManager
This class provides direct access to information on the HV electrodes within the barrels....
Definition: EMBHVManager.h:36
EMBDetectorManager::getPresamplerHVManager
const EMBPresamplerHVManager & getPresamplerHVManager() const
Get the HV Manager (Presampler)
Definition: EMBDetectorManager.cxx:108
EMBDetectorManager::operator=
EMBDetectorManager & operator=(const EMBDetectorManager &right)
EMBDetectorManager::m_DetRegionsIterative
std::vector< const EMBDetectorRegion * > m_DetRegionsIterative
A vector of Region pointers which exists in order to provide iterative access to any EMBDetectorRegio...
Definition: EMBDetectorManager.h:126
EMBDetectorManager::m_presamplerHVManager
const EMBPresamplerHVManager & m_presamplerHVManager
Definition: EMBDetectorManager.h:136
EMBDetectorManager::EMBDetRegionArray
EMBDetectorRegion const * EMBDetRegionArray[6][4][2]
Definition: EMBDetectorManager.h:36
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
EMBDetectorManager::DetectorRegionConstIterator
std::vector< const EMBDetectorRegion * >::const_iterator DetectorRegionConstIterator
Definition: EMBDetectorManager.h:35
EMBBasicReadoutNumbers
This is a collection of numbers used to create the cell shapes.
Definition: EMBBasicReadoutNumbers.h:13
EMBDetectorManager::getDetectorRegion
const EMBDetectorRegion * getDetectorRegion(unsigned int endcap, unsigned int sampling, unsigned int region) const
Random Access to detector regions.
Definition: EMBDetectorManager.cxx:65
EMBDetectorManager::m_accordionDetails
CxxUtils::CachedUniquePtr< EMBAccordionDetails > m_accordionDetails
Definition: EMBDetectorManager.h:134
EMBAccordionDetails.h
EMBDetectorManager::getNumDetectorRegions
unsigned int getNumDetectorRegions() const
Gets the number of detectors in the set of detector regions.
Definition: EMBDetectorManager.cxx:70
EMBDetectorRegion
Definition: EMBDetectorRegion.h:28
EMBDetectorManager::endDetectorRegion
EMBDetectorManager::DetectorRegionConstIterator endDetectorRegion() const
Iterate over detector regions.
Definition: EMBDetectorManager.cxx:60
CLASS_DEF.h
macros to associate a CLID to a type
EMBDetectorManager::getBasicReadoutNumbers
const EMBBasicReadoutNumbers * getBasicReadoutNumbers() const
Collection of useful numerical data for the description of the barrel cells.
Definition: EMBDetectorManager.h:149
EMBHVManager.h