ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArGeoModel
LArHV
src
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
"
6
#include "
LArHV/EMBHVManager.h
"
7
#include "
LArHV/EMBHVDescriptor.h
"
8
#include "
LArHV/EMBHVElectrode.h
"
9
10
class
EMBHVModule::Clockwork
{
11
public
:
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
}
27
~Clockwork
() {
28
for
(
int
i=0; i<64; ++i) {
29
delete
electrodes
[i];
30
}
31
}
32
const
EMBHVManager
*
manager
;
33
unsigned
int
iSide
;
34
unsigned
int
iEta
;
35
unsigned
int
iPhi
;
36
unsigned
int
iSector
;
37
const
EMBHVElectrode
*
electrodes
[64]{};
38
};
39
40
EMBHVModule::EMBHVModule
(
const
EMBHVManager
* manager
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
49
unsigned
int
EMBHVModule::getEtaIndex
()
const
50
{
51
return
m_c
->iEta;
52
}
53
54
unsigned
int
EMBHVModule::getPhiIndex
()
const
55
{
56
return
m_c
->iPhi;
57
}
58
59
unsigned
int
EMBHVModule::getSectorIndex
()
const
60
{
61
return
m_c
->iSector;
62
}
63
64
EMBHVModule::~EMBHVModule
() =
default
;
65
66
const
EMBHVElectrode
&
EMBHVModule::getElectrode
(
unsigned
int
iElectrode)
const
67
{
68
return
*(
m_c
->electrodes[iElectrode]);
69
}
70
71
unsigned
int
EMBHVModule::getSideIndex
()
const
72
{
73
return
m_c
->iSide;
74
}
75
76
double
EMBHVModule::getEtaMin
()
const
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
86
double
EMBHVModule::getEtaMax
()
const
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
96
double
EMBHVModule::getPhiMin
()
const
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
103
double
EMBHVModule::getPhiMax
()
const
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
111
const
EMBHVManager
&
EMBHVModule::getManager
()
const
{
112
return
*(
m_c
->manager);
113
}
114
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
EMBHVDescriptor.h
EMBHVElectrode.h
EMBHVManager.h
EMBHVModule.h
EMBHVElectrode
Definition
EMBHVElectrode.h:15
EMBHVManager
This class provides direct access to information on the HV electrodes within the barrels.
Definition
EMBHVManager.h:36
EMBHVModule::Clockwork
Definition
EMBHVModule.cxx:10
EMBHVModule::Clockwork::Clockwork
Clockwork(const EMBHVManager *managerPtr, const EMBHVModule *modulePtr, unsigned int side, unsigned int eta, unsigned int phi, unsigned int sector)
Definition
EMBHVModule.cxx:12
EMBHVModule::Clockwork::iSector
unsigned int iSector
Definition
EMBHVModule.cxx:36
EMBHVModule::Clockwork::iEta
unsigned int iEta
Definition
EMBHVModule.cxx:34
EMBHVModule::Clockwork::manager
const EMBHVManager * manager
Definition
EMBHVModule.cxx:32
EMBHVModule::Clockwork::electrodes
const EMBHVElectrode * electrodes[64]
Definition
EMBHVModule.cxx:37
EMBHVModule::Clockwork::iSide
unsigned int iSide
Definition
EMBHVModule.cxx:33
EMBHVModule::Clockwork::~Clockwork
~Clockwork()
Definition
EMBHVModule.cxx:27
EMBHVModule::Clockwork::iPhi
unsigned int iPhi
Definition
EMBHVModule.cxx:35
EMBHVModule::m_c
std::unique_ptr< Clockwork > m_c
Definition
EMBHVModule.h:57
EMBHVModule::~EMBHVModule
~EMBHVModule()
EMBHVModule::getElectrode
const EMBHVElectrode & getElectrode(unsigned int iElectrode) const
Definition
EMBHVModule.cxx:66
EMBHVModule::EMBHVModule
EMBHVModule(const EMBHVManager *manager, unsigned int iSide, unsigned int iEta, unsigned int iPhi, unsigned int iSector)
Definition
EMBHVModule.cxx:40
EMBHVModule::getEtaMin
double getEtaMin() const
Definition
EMBHVModule.cxx:76
EMBHVModule::getPhiMax
double getPhiMax() const
Definition
EMBHVModule.cxx:103
EMBHVModule::getSectorIndex
unsigned int getSectorIndex() const
Definition
EMBHVModule.cxx:59
EMBHVModule::getManager
const EMBHVManager & getManager() const
Definition
EMBHVModule.cxx:111
EMBHVModule::getPhiIndex
unsigned int getPhiIndex() const
Definition
EMBHVModule.cxx:54
EMBHVModule::getSideIndex
unsigned int getSideIndex() const
Definition
EMBHVModule.cxx:71
EMBHVModule::getEtaMax
double getEtaMax() const
Definition
EMBHVModule.cxx:86
EMBHVModule::getPhiMin
double getPhiMin() const
Definition
EMBHVModule.cxx:96
EMBHVModule::getEtaIndex
unsigned int getEtaIndex() const
Definition
EMBHVModule.cxx:49
std
STL namespace.
Generated on
for ATLAS Offline Software by
1.17.0