ATLAS Offline Software
HECHVModule.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "LArHV/HECHVModule.h"
6 #include "LArHV/HECHVManager.h"
8 #include "LArHV/HECHVSubgap.h"
9 
11 public:
12  Clockwork(const HECHVManager* managerPtr
13  , const HECHVModule* modulePtr
14  , unsigned int side
15  , unsigned int phi
16  , unsigned int sampling)
17  : manager(managerPtr)
18  , iSide(side)
19  , iPhi(phi)
20  , iSampling(sampling)
21  {
22  for(unsigned iSubgap=0; iSubgap<4; ++iSubgap) {
23  subgaps[iSubgap] = new HECHVSubgap(modulePtr,iSubgap);
24  }
25  }
27  {
28  for(unsigned iSubgap=0; iSubgap<4; ++iSubgap) {
29  delete subgaps[iSubgap];
30  }
31  }
32 
34  unsigned int iSide;
35  unsigned int iPhi;
36  unsigned int iSampling;
37 
38  const HECHVSubgap* subgaps[4]{};
39 };
40 
42  , unsigned int iSide
43  , unsigned int iPhi
44  , unsigned int iSampling)
45  :m_c(new Clockwork(manager,this,iSide,iPhi,iSampling))
46 {
47 }
48 
49 unsigned int HECHVModule::getSideIndex() const
50 {
51  return m_c->iSide;
52 }
53 
54 unsigned int HECHVModule::getSamplingIndex() const
55 {
56  return m_c->iSampling;
57 }
58 
59 unsigned int HECHVModule::getPhiIndex() const
60 {
61  return m_c->iPhi;
62 }
63 
65 {
66  return 4;
67 }
68 
69 const HECHVSubgap& HECHVModule::getSubgap(unsigned int iElectrode) const
70 {
71  return *(m_c->subgaps[iElectrode]);
72 }
73 
75 {
76  delete m_c;
77 }
78 
79 double HECHVModule::getPhiMin() const
80 {
81  return m_c->manager->getDescriptor().getPhiBinning().binLower(m_c->iPhi);
82 }
83 
84 double HECHVModule::getPhiMax() const
85 {
86  return m_c->manager->getDescriptor().getPhiBinning().binUpper(m_c->iPhi);
87 }
88 
90 {
91  return *(m_c->manager);
92 }
93 
HECHVModule::Clockwork::subgaps
const HECHVSubgap * subgaps[4]
Definition: HECHVModule.cxx:38
HECHVModule
Describes one HV Module within the HEC.
Definition: HECHVModule.h:21
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
HECHVModule::Clockwork::iPhi
unsigned int iPhi
Definition: HECHVModule.cxx:35
CSV_InDetExporter.new
new
Definition: CSV_InDetExporter.py:145
HECHVDescriptor.h
HECHVModule::getManager
const HECHVManager & getManager() const
Definition: HECHVModule.cxx:89
HECHVModule::Clockwork::iSide
unsigned int iSide
Definition: HECHVModule.cxx:34
HECHVManager.h
TRT::Hit::side
@ side
Definition: HitInfo.h:83
HECHVModule::getSamplingIndex
unsigned int getSamplingIndex() const
Definition: HECHVModule.cxx:54
HECHVModule::Clockwork
Definition: HECHVModule.cxx:10
HECHVModule::getSubgap
const HECHVSubgap & getSubgap(unsigned int iElectrode) const
Definition: HECHVModule.cxx:69
HECHVManager::getDescriptor
const HECHVDescriptor & getDescriptor() const
Definition: HECHVManager.cxx:159
HECHVModule::HECHVModule
HECHVModule(const HECHVManager *manager, unsigned int iSide, unsigned int iPhi, unsigned int iSampling)
Definition: HECHVModule.cxx:41
HECHVSubgap.h
HECHVModule::~HECHVModule
~HECHVModule()
Definition: HECHVModule.cxx:74
HECHVModule::getPhiIndex
unsigned int getPhiIndex() const
Definition: HECHVModule.cxx:59
HECHVModule::getSideIndex
unsigned int getSideIndex() const
Definition: HECHVModule.cxx:49
HECHVModule::getNumSubgaps
static unsigned int getNumSubgaps()
Definition: HECHVModule.cxx:64
HECHVModule::Clockwork::manager
const HECHVManager * manager
Definition: HECHVModule.cxx:33
HECHVModule::Clockwork::~Clockwork
~Clockwork()
Definition: HECHVModule.cxx:26
HECHVModule::getPhiMax
double getPhiMax() const
Definition: HECHVModule.cxx:84
Trk::iPhi
@ iPhi
Definition: ParamDefs.h:53
HECHVManager
This class provides direct access to information on the HV electrodes within the barrels....
Definition: HECHVManager.h:36
HECHVModule::m_c
Clockwork * m_c
Definition: HECHVModule.h:47
HECHVModule::getPhiMin
double getPhiMin() const
Definition: HECHVModule.cxx:79
HECHVModule.h
HECHVModule::Clockwork::iSampling
unsigned int iSampling
Definition: HECHVModule.cxx:36
HECHVDescriptor::getPhiBinning
const CellBinning & getPhiBinning() const
Definition: HECHVDescriptor.h:16
python.Logging.manager
manager
Definition: PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/Logging.py:92
HECHVSubgap
Definition: HECHVSubgap.h:15
HECHVModule::Clockwork::Clockwork
Clockwork(const HECHVManager *managerPtr, const HECHVModule *modulePtr, unsigned int side, unsigned int phi, unsigned int sampling)
Definition: HECHVModule.cxx:12