ATLAS Offline Software
EMBDetectorManager.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "GaudiKernel/MsgStream.h"
6 #include "GaudiKernel/Bootstrap.h"
7 
11 
12 
16 
18 #include "LArHV/LArHVManager.h"
19 
21 
22 public:
23 
24  inline bool operator () (const EMBDetectorRegion * a, const EMBDetectorRegion * b) const {
25  return a->getSamplingIndex() < b->getSamplingIndex();
26  }
27 
28 };
29 
31  , const EMBPresamplerHVManager& presamplerHVManager)
32  : m_basicReadoutNumbers (std::make_unique<EMBBasicReadoutNumbers>())
33  , m_hvManager(hvManager)
34  , m_presamplerHVManager(presamplerHVManager)
35 {
36  setName("LArEMB");
37 
38 
39  for (unsigned int r=0;r<2;r++) {
40  for (unsigned int s=0;s<4;s++) {
41  for (unsigned int e=0;e<2;e++) {
42  m_DetRegionsRandom[r][s][e]=nullptr;
43  }
44  }
45  }
46 }
47 
48 
50  for (unsigned int i=0;i<getNumDetectorRegions();i++) delete m_DetRegionsIterative[i];
51 }
52 
53 
54 
56 {
57  return m_DetRegionsIterative.begin();
58 }
59 
61 {
62  return m_DetRegionsIterative.end();
63 }
64 
65 const EMBDetectorRegion * EMBDetectorManager::getDetectorRegion (unsigned int endcap, unsigned int sampling, unsigned int region) const
66 {
67  return m_DetRegionsRandom[region][sampling][endcap];
68 }
69 
71 {
72  return m_DetRegionsIterative.size();
73 }
74 
75 PVConstLink EMBDetectorManager::getTreeTop (unsigned int i) const
76 {
77  return m_treeTop[i];
78 }
79 
81 {
82  return m_treeTop.size();
83 }
84 
86 {
87  m_DetRegionsIterative.push_back(region);
88  m_DetRegionsRandom[region->getRegionIndex()][region->getSamplingIndex()][region->getEndcapIndex()] = region;
89 
90 
91 
93  std::sort(m_DetRegionsIterative.begin(),m_DetRegionsIterative.end(), order);
94 
95 }
96 
97 void EMBDetectorManager::addTreeTop (PVLink treeTop)
98 {
99  m_treeTop.push_back(treeTop);
100 }
101 
103 {
104  return m_hvManager;
105 }
106 
107 
109 {
110  return m_presamplerHVManager;
111 }
EMBDetectorManager::getTreeTop
virtual PVConstLink getTreeTop(unsigned int i) const override
Gets the ith tree top.
Definition: EMBDetectorManager.cxx:75
beamspotman.r
def r
Definition: beamspotman.py:676
LArHVManager.h
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
OrderBySampling
Definition: EMBDetectorManager.cxx:20
EMBDetectorRegion.h
EMBBasicReadoutNumbers.h
make_unique
std::unique_ptr< T > make_unique(Args &&... args)
Definition: SkimmingToolEXOT5.cxx:23
EMBDetectorManager::m_hvManager
const EMBHVManager & m_hvManager
Definition: EMBDetectorManager.h:135
EMBDetectorManager::getNumTreeTops
virtual unsigned int getNumTreeTops() const override
Gets the total number of tree tops.
Definition: EMBDetectorManager.cxx:80
EMBDetectorRegion::getSamplingIndex
unsigned int getSamplingIndex() const
Returns the Sampling Layer Index.
Definition: EMBDetectorRegion.h:119
EMBDetDescr.h
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
OrderBySampling::operator()
bool operator()(const EMBDetectorRegion *a, const EMBDetectorRegion *b) const
Definition: EMBDetectorManager.cxx:24
IRDBAccessSvc.h
Definition of the abstract IRDBAccessSvc interface.
lumiFormat.i
int i
Definition: lumiFormat.py:92
mc.order
order
Configure Herwig7.
Definition: mc.Herwig7_Dijet.py:12
EMBDetectorManager::addDetectorRegion
void addDetectorRegion(const EMBDetectorRegion *region)
Add a new Detector Region.
Definition: EMBDetectorManager.cxx:85
EMBDetectorManager::addTreeTop
void addTreeTop(PVLink treeTop)
Add a Tree Top.
Definition: EMBDetectorManager.cxx:97
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
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
EMBDetectorRegion::getEndcapIndex
EMBDetectorRegion::DetectorSide getEndcapIndex() const
The endcap index.
Definition: EMBDetectorRegion.h:163
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
EMBDetectorRegion::getRegionIndex
unsigned int getRegionIndex() const
Returns the Region Index.
Definition: EMBDetectorRegion.h:126
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
a
TList * a
Definition: liststreamerinfos.cxx:10
IRDBRecord.h
Definition of the abstract IRDBRecord interface.
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::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
IRDBRecordset.h
Definition of the abstract IRDBRecordset interface.
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
EMBDetectorManager.h