ATLAS Offline Software
EMECHVModule.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "LArHV/EMECHVModule.h"
6 #include "LArHV/EMECHVManager.h"
9 #include <iostream>
10 
12 public:
13  Clockwork(const EMECHVManager* managerPtr
14  , const EMECHVModule* modulePtr
15  , IOType iWheel
16  , unsigned int side
17  , unsigned int eta
18  , unsigned int phi
19  , unsigned int sector)
20  : manager(managerPtr)
21  , iSide(side)
22  , iEta(eta)
23  , iPhi(phi)
24  , iSector(sector)
25  {
26  unsigned nElectrodes = iWheel==OUTER ? 24 : 4;
27  electrodes.reserve(nElectrodes);
28  for(unsigned iElectrode=0; iElectrode<nElectrodes; ++iElectrode) {
29  electrodes.push_back(new EMECHVElectrode(modulePtr, iElectrode));
30  }
31  }
33  {
34  auto it=electrodes.begin();
35  auto itend=electrodes.end();
36  for(;it!=itend;++it) {
37  delete *it;
38  }
39  }
40 
42  unsigned int iSide;
43  unsigned int iEta;
44  unsigned int iPhi;
45  unsigned int iSector;
46  std::vector<const EMECHVElectrode*> electrodes;
47 };
48 
49 
51  , IOType iWheel
52  , unsigned int iSide
53  , unsigned int iEta
54  , unsigned int iPhi
55  , unsigned int iSector)
56  : m_c(new Clockwork(manager,this,iWheel,iSide,iEta,iPhi,iSector))
57 {
58 }
59 
60 unsigned int EMECHVModule::getEtaIndex() const
61 {
62  return m_c->iEta;
63 }
64 
65 unsigned int EMECHVModule::getPhiIndex() const
66 {
67  return m_c->iPhi;
68 }
69 
70 unsigned int EMECHVModule::getNumElectrodes() const
71 {
73  if (IO==OUTER) {
74  return 24;
75  }
76  else {
77  return 4;
78  }
79 }
80 
81 const EMECHVElectrode& EMECHVModule::getElectrode(unsigned int iElectrode) const
82 {
83  return *(m_c->electrodes[iElectrode]);
84 }
85 
87 {
88  delete m_c;
89 }
90 
91 unsigned int EMECHVModule::getSideIndex() const
92 {
93  return m_c->iSide;
94 }
95 
97 {
98  return m_c->manager->getWheelIndex();
99 }
100 
101 unsigned int EMECHVModule::getSectorIndex() const
102 {
103  return m_c->iSector;
104 }
105 
107 {
108  if (m_c->iSide==0) {
109  return -m_c->manager->getDescriptor().getEtaBinning().binUpper(m_c->iEta);
110  }
111  else {
112  return m_c->manager->getDescriptor().getEtaBinning().binLower(m_c->iEta);
113  }
114 }
115 
117 {
118  if (m_c->iSide==0) {
119  return -m_c->manager->getDescriptor().getEtaBinning().binLower(m_c->iEta);
120  }
121  else {
122  return m_c->manager->getDescriptor().getEtaBinning().binUpper(m_c->iEta);
123  }
124 }
125 
127 {
128  return
129  m_c->manager->getDescriptor().getPhiBinning().binLower(m_c->iPhi)+
131 }
132 
134 {
135  return
136  m_c->manager->getDescriptor().getPhiBinning().binLower(m_c->iPhi)+
138 }
139 
141 {
142  return *(m_c->manager);
143 }
EMECHVModule::Clockwork::iEta
unsigned int iEta
Definition: EMECHVModule.cxx:43
EMECHVElectrode.h
EMECHVModule::getWheelIndex
EMECHVModule::IOType getWheelIndex() const
Definition: EMECHVModule.cxx:96
EMECHVDescriptor.h
EMECHVModule::getEtaMin
double getEtaMin() const
Definition: EMECHVModule.cxx:106
EMECHVModule::getManager
const EMECHVManager & getManager() const
Definition: EMECHVModule.cxx:140
EMECHVModule::Clockwork::~Clockwork
~Clockwork()
Definition: EMECHVModule.cxx:32
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
EMECHVModule::getPhiIndex
unsigned int getPhiIndex() const
Definition: EMECHVModule.cxx:65
EMECHVModule::Clockwork::iSide
unsigned int iSide
Definition: EMECHVModule.cxx:42
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
EMECHVModule::m_c
Clockwork * m_c
Definition: EMECHVModule.h:60
EMECHVModule::getElectrode
const EMECHVElectrode & getElectrode(unsigned int iElectrode) const
Definition: EMECHVModule.cxx:81
CSV_InDetExporter.new
new
Definition: CSV_InDetExporter.py:145
skel.it
it
Definition: skel.GENtoEVGEN.py:423
EMECHVManager.h
EMECHVDescriptor::getPhiBinning
const CellBinning & getPhiBinning() const
Definition: EMECHVDescriptor.h:21
EMECHVModule::getPhiMin
double getPhiMin() const
Definition: EMECHVModule.cxx:126
EMECHVModule
Definition: EMECHVModule.h:20
EMECHVModule::Clockwork
Definition: EMECHVModule.cxx:11
EMECHVManager::getWheelIndex
EMECHVManager::IOType getWheelIndex() const
Definition: EMECHVManager.cxx:250
TRT::Hit::side
@ side
Definition: HitInfo.h:83
EMECHVModule::Clockwork::iPhi
unsigned int iPhi
Definition: EMECHVModule.cxx:44
EMECHVModule::Clockwork::electrodes
std::vector< const EMECHVElectrode * > electrodes
Definition: EMECHVModule.cxx:46
EMECHVModule::Clockwork::Clockwork
Clockwork(const EMECHVManager *managerPtr, const EMECHVModule *modulePtr, IOType iWheel, unsigned int side, unsigned int eta, unsigned int phi, unsigned int sector)
Definition: EMECHVModule.cxx:13
EMECHVModule::getEtaMax
double getEtaMax() const
Definition: EMECHVModule.cxx:116
EMECHVModule::getPhiMax
double getPhiMax() const
Definition: EMECHVModule.cxx:133
EMECHVModule::getEtaIndex
unsigned int getEtaIndex() const
Definition: EMECHVModule.cxx:60
EMECHVModule::getNumElectrodes
unsigned int getNumElectrodes() const
Definition: EMECHVModule.cxx:70
Trk::iPhi
@ iPhi
Definition: ParamDefs.h:53
EMECHVModule::OUTER
@ OUTER
Definition: EMECHVModule.h:22
EMECHVModule::Clockwork::iSector
unsigned int iSector
Definition: EMECHVModule.cxx:45
EMECHVModule::EMECHVModule
EMECHVModule(const EMECHVManager *manager, IOType iWheel, unsigned int iSide, unsigned int iEta, unsigned int iPhi, unsigned int iSector)
Definition: EMECHVModule.cxx:50
EMECHVModule::IOType
IOType
Definition: EMECHVModule.h:22
EMECHVManager::getDescriptor
const EMECHVDescriptor & getDescriptor() const
Definition: EMECHVManager.cxx:197
EMECHVDescriptor::getEtaBinning
const CellPartitioning & getEtaBinning() const
Definition: EMECHVDescriptor.h:16
python.Logging.manager
manager
Definition: PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/Logging.py:92
EMECHVElectrode
Definition: EMECHVElectrode.h:15
EMECHVManager
This class provides direct access to information on the HV electrodes within the EMEC....
Definition: EMECHVManager.h:36
EMECHVModule.h
EMECHVModule::~EMECHVModule
~EMECHVModule()
Definition: EMECHVModule.cxx:86
xAOD::iEta
setScale setgFexType iEta
Definition: gFexJetRoI_v1.cxx:74
EMECHVDescriptor::getSectorBinning
const CellBinning & getSectorBinning() const
Definition: EMECHVDescriptor.h:26
EMECHVModule::Clockwork::manager
const EMECHVManager * manager
Definition: EMECHVModule.cxx:41
EMECHVModule::getSideIndex
unsigned int getSideIndex() const
Definition: EMECHVModule.cxx:91
EMECHVModule::getSectorIndex
unsigned int getSectorIndex() const
Definition: EMECHVModule.cxx:101