ATLAS Offline Software
Loading...
Searching...
No Matches
EMBHVModule.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#include "LArHV/EMBHVModule.h"
9
11public:
12 Clockwork(const EMBHVManager* managerPtr
13 , const EMBHVModule* modulePtr
14 , unsigned int side
15 , unsigned int eta
16 , unsigned int phi
17 , unsigned int sector)
18 : manager(managerPtr)
19 , iSide(side)
20 , iEta(eta)
21 , iPhi(phi)
22 , iSector(sector) {
23 for(int i=0; i<64; ++i) {
24 electrodes[i] = new EMBHVElectrode(modulePtr,i);
25 }
26 }
28 for(int i=0; i<64; ++i) {
29 delete electrodes[i];
30 }
31 }
33 unsigned int iSide;
34 unsigned int iEta;
35 unsigned int iPhi;
36 unsigned int iSector;
38};
39
41 , unsigned int iSide
42 , unsigned int iEta
43 , unsigned int iPhi
44 , unsigned int iSector)
45 : m_c (std::make_unique<Clockwork> (manager,this,iSide,iEta,iPhi,iSector))
46{
47}
48
49unsigned int EMBHVModule::getEtaIndex() const
50{
51 return m_c->iEta;
52}
53
54unsigned int EMBHVModule::getPhiIndex() const
55{
56 return m_c->iPhi;
57}
58
59unsigned int EMBHVModule::getSectorIndex() const
60{
61 return m_c->iSector;
62}
63
65
66const EMBHVElectrode& EMBHVModule::getElectrode(unsigned int iElectrode) const
67{
68 return *(m_c->electrodes[iElectrode]);
69}
70
71unsigned int EMBHVModule::getSideIndex() const
72{
73 return m_c->iSide;
74}
75
77{
78 if (m_c->iSide==0) {
79 return -m_c->manager->getDescriptor().getEtaBinning().binUpper(m_c->iEta);
80 }
81 else {
82 return m_c->manager->getDescriptor().getEtaBinning().binLower(m_c->iEta);
83 }
84}
85
87{
88 if (m_c->iSide==0) {
89 return -m_c->manager->getDescriptor().getEtaBinning().binLower(m_c->iEta);
90 }
91 else {
92 return m_c->manager->getDescriptor().getEtaBinning().binUpper(m_c->iEta);
93 }
94}
95
97{
98 return
99 m_c->manager->getDescriptor().getPhiBinning().binLower(m_c->iPhi)+
100 m_c->iSector*m_c->manager->getDescriptor().getPhiBinning().getDelta()/2.0;
101}
102
104{
105 return
106 m_c->manager->getDescriptor().getPhiBinning().binLower(m_c->iPhi)+
107 (m_c->iSector+1)*m_c->manager->getDescriptor().getPhiBinning().getDelta()/2.0;
108
109}
110
112 return *(m_c->manager);
113}
114
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
This class provides direct access to information on the HV electrodes within the barrels.
Clockwork(const EMBHVManager *managerPtr, const EMBHVModule *modulePtr, unsigned int side, unsigned int eta, unsigned int phi, unsigned int sector)
const EMBHVManager * manager
const EMBHVElectrode * electrodes[64]
std::unique_ptr< Clockwork > m_c
Definition EMBHVModule.h:57
const EMBHVElectrode & getElectrode(unsigned int iElectrode) const
EMBHVModule(const EMBHVManager *manager, unsigned int iSide, unsigned int iEta, unsigned int iPhi, unsigned int iSector)
double getEtaMin() const
double getPhiMax() const
unsigned int getSectorIndex() const
const EMBHVManager & getManager() const
unsigned int getPhiIndex() const
unsigned int getSideIndex() const
double getEtaMax() const
double getPhiMin() const
unsigned int getEtaIndex() const
STL namespace.