ATLAS Offline Software
Loading...
Searching...
No Matches
EMBHVModule.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 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 }
32 Clockwork(const Clockwork &) = delete;
33 Clockwork & operator =(const Clockwork &) = delete;
35 unsigned int iSide;
36 unsigned int iEta;
37 unsigned int iPhi;
38 unsigned int iSector;
40};
41
43 , unsigned int iSide
44 , unsigned int iEta
45 , unsigned int iPhi
46 , unsigned int iSector)
47 : m_c (std::make_unique<Clockwork> (manager,this,iSide,iEta,iPhi,iSector))
48{
49}
50
51unsigned int EMBHVModule::getEtaIndex() const
52{
53 return m_c->iEta;
54}
55
56unsigned int EMBHVModule::getPhiIndex() const
57{
58 return m_c->iPhi;
59}
60
61unsigned int EMBHVModule::getSectorIndex() const
62{
63 return m_c->iSector;
64}
65
67
68const EMBHVElectrode& EMBHVModule::getElectrode(unsigned int iElectrode) const
69{
70 return *(m_c->electrodes[iElectrode]);
71}
72
73unsigned int EMBHVModule::getSideIndex() const
74{
75 return m_c->iSide;
76}
77
79{
80 if (m_c->iSide==0) {
81 return -m_c->manager->getDescriptor().getEtaBinning().binUpper(m_c->iEta);
82 }
83 else {
84 return m_c->manager->getDescriptor().getEtaBinning().binLower(m_c->iEta);
85 }
86}
87
89{
90 if (m_c->iSide==0) {
91 return -m_c->manager->getDescriptor().getEtaBinning().binLower(m_c->iEta);
92 }
93 else {
94 return m_c->manager->getDescriptor().getEtaBinning().binUpper(m_c->iEta);
95 }
96}
97
99{
100 return
101 m_c->manager->getDescriptor().getPhiBinning().binLower(m_c->iPhi)+
102 m_c->iSector*m_c->manager->getDescriptor().getPhiBinning().getDelta()/2.0;
103}
104
106{
107 return
108 m_c->manager->getDescriptor().getPhiBinning().binLower(m_c->iPhi)+
109 (m_c->iSector+1)*m_c->manager->getDescriptor().getPhiBinning().getDelta()/2.0;
110
111}
112
114 return *(m_c->manager);
115}
116
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)
Clockwork & operator=(const Clockwork &)=delete
Clockwork(const Clockwork &)=delete
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.