ATLAS Offline Software
Loading...
Searching...
No Matches
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
15class EMBDetDescr;
18
30
31class 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 (const 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
153
154
155CLASS_DEF(EMBDetectorManager, 123812929, 1)
156
157
158
159#endif
Cached unique_ptr with atomic update.
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
This is a collection of numbers used to create the cell shapes.
Descriptor for regions of the electromagnetic barrel calorimeter.
Definition EMBDetDescr.h:27
A manager class providing access to readout geometry information for the electromagnetic barrel calor...
const EMBAccordionDetails * getAccordionDetails() const
Get accordion details class.
EMBDetectorManager & operator=(const EMBDetectorManager &right)
unsigned int getNumDetectorRegions() const
Gets the number of detectors in the set of detector regions.
const EMBPresamplerHVManager & getPresamplerHVManager() const
Get the HV Manager (Presampler)
EMBDetectorManager::DetectorRegionConstIterator beginDetectorRegion() const
Iterate over detector regions.
const EMBPresamplerHVManager & m_presamplerHVManager
const EMBHVManager & getHVManager() const
Get the HV Manager.
EMBDetRegionArray m_DetRegionsRandom
A vector of Region pointers which exists in order to provide iterative access to any EMBDetectorRegio...
std::vector< const EMBDetectorRegion * > m_DetRegionsIterative
A vector of Region pointers which exists in order to provide iterative access to any EMBDetectorRegio...
virtual ~EMBDetectorManager() override
Destructor.
void addTreeTop(const PVLink &treeTop)
Add a Tree Top.
virtual unsigned int getNumTreeTops() const override
Gets the total number of tree tops.
const EMBHVManager & m_hvManager
std::vector< constEMBDetectorRegion * >::const_iterator DetectorRegionConstIterator
EMBDetectorManager::DetectorRegionConstIterator endDetectorRegion() const
Iterate over detector regions.
EMBDetectorManager(const EMBDetectorManager &right)
const EMBBasicReadoutNumbers * getBasicReadoutNumbers() const
Collection of useful numerical data for the description of the barrel cells.
EMBDetectorRegion const * EMBDetRegionArray[6][4][2]
void addDetectorRegion(const EMBDetectorRegion *region)
Add a new Detector Region.
const EMBDetectorRegion * getDetectorRegion(unsigned int endcap, unsigned int sampling, unsigned int region) const
Random Access to detector regions.
std::unique_ptr< const EMBBasicReadoutNumbers > m_basicReadoutNumbers
virtual PVConstLink getTreeTop(unsigned int i) const override
Gets the ith tree top.
CxxUtils::CachedUniquePtr< EMBAccordionDetails > m_accordionDetails
std::vector< PVLink > m_treeTop
This is the set of tree tops managed by this detector node.
EMBDetectorManager(const EMBHVManager &hvManager, const EMBPresamplerHVManager &presamplerHVManager)
Constructor.
This class provides direct access to information on the HV electrodes within the barrels.
This class provides direct access to information on the HV electrodes within the barrels.
CachedUniquePtrT< const T > CachedUniquePtr