ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArGeoModel
LArHV
LArHV
EMBPresamplerHVManager.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef LARHV_EMBPRESAMPLERHVMANAGER_H
6
#define LARHV_EMBPRESAMPLERHVMANAGER_H
7
8
#include "
LArHV/EMBPresamplerHVModule.h
"
9
#include "
Identifier/HWIdentifier.h
"
10
#include <memory>
11
#include <functional>
12
13
#if !(defined(SIMULATIONBASE) || defined(GENERATIONBASE))
14
class
LArHVIdMapping
;
15
#endif
16
17
class
CondAttrListCollection
;
18
class
EMBPresamplerHVDescriptor
;
19
class
EMBPresamplerHVModule
;
20
struct
EMBPresamplerHVPayload
;
21
35
36
class
EMBPresamplerHVManager
37
{
38
public
:
39
class
EMBPresamplerHVData
40
{
41
public
:
42
static
constexpr
double
INVALID
= -99999;
43
class
Payload
;
44
EMBPresamplerHVData
();
45
EMBPresamplerHVData
(std::unique_ptr<Payload> payload);
46
EMBPresamplerHVData
&
operator=
(
EMBPresamplerHVData
&& other)
noexcept
;
47
~EMBPresamplerHVData
();
48
bool
hvOn
(
const
EMBPresamplerHVModule
& module,
const
int
& iGap)
const
;
49
double
voltage
(
const
EMBPresamplerHVModule
& module,
const
int
& iGap)
const
;
50
double
current
(
const
EMBPresamplerHVModule
& module,
const
int
& iGap)
const
;
51
int
hvLineNo
(
const
EMBPresamplerHVModule
& module,
const
int
& iGap)
const
;
52
private
:
53
static
int
index
(
const
EMBPresamplerHVModule
& module) ;
54
std::unique_ptr<Payload>
m_payload
;
55
};
56
57
EMBPresamplerHVManager
();
58
~EMBPresamplerHVManager
();
59
60
const
EMBPresamplerHVDescriptor
*
getDescriptor
()
const
;
61
62
unsigned
int
beginPhiIndex
()
const
;
63
unsigned
int
endPhiIndex
()
const
;
64
65
unsigned
int
beginEtaIndex
()
const
;
66
unsigned
int
endEtaIndex
()
const
;
67
68
// Returns a high voltage module
69
const
EMBPresamplerHVModule
&
getHVModule
(
unsigned
int
iSide
70
,
unsigned
int
iEta
71
,
unsigned
int
iPhi)
const
;
72
73
// Begin/end side index (0=negative and 1= positive)
74
static
unsigned
int
beginSideIndex
() ;
75
static
unsigned
int
endSideIndex
() ;
76
77
#if !(defined(SIMULATIONBASE) || defined(GENERATIONBASE))
78
EMBPresamplerHVData
getData
(
const
LArHVIdMapping
& hvIdMapping,
79
const
std::vector<const CondAttrListCollection*>& attrLists)
const
;
80
// Get hvLine for a module
81
int
hvLineNo
(
const
EMBPresamplerHVModule
& module
82
,
int
gap
83
,
const
LArHVIdMapping
* hvIdMapping
84
,
HWIdentifier
*hvlId =
nullptr
)
const
;
85
#endif
86
87
private
:
88
using
idfunc_t
= std::function<std::vector<HWIdentifier>(
HWIdentifier
)>;
89
EMBPresamplerHVData
getData
(
const
idfunc_t
& idfunc,
90
const
std::vector<const CondAttrListCollection*>& attrLists)
const
;
91
92
// Illegal operations
93
EMBPresamplerHVManager
(
const
EMBPresamplerHVManager
& right) =
delete
;
94
EMBPresamplerHVManager
&
operator=
(
const
EMBPresamplerHVManager
& right) =
delete
;
95
96
friend
class
ImaginaryFriend
;
97
class
Clockwork
;
98
std::unique_ptr<const Clockwork>
m_c
;
99
};
100
101
#endif
EMBPresamplerHVModule.h
HWIdentifier.h
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number.
Definition
CondAttrListCollection.h:51
EMBPresamplerHVDescriptor
Definition
EMBPresamplerHVDescriptor.h:12
EMBPresamplerHVManager::Clockwork
Definition
EMBPresamplerHVManager.cxx:37
EMBPresamplerHVManager::EMBPresamplerHVData::Payload
Definition
EMBPresamplerHVManager.cxx:71
EMBPresamplerHVManager::EMBPresamplerHVData
Definition
EMBPresamplerHVManager.h:40
EMBPresamplerHVManager::EMBPresamplerHVData::voltage
double voltage(const EMBPresamplerHVModule &module, const int &iGap) const
Definition
EMBPresamplerHVManager.cxx:108
EMBPresamplerHVManager::EMBPresamplerHVData::m_payload
std::unique_ptr< Payload > m_payload
Definition
EMBPresamplerHVManager.h:54
EMBPresamplerHVManager::EMBPresamplerHVData::~EMBPresamplerHVData
~EMBPresamplerHVData()
EMBPresamplerHVManager::EMBPresamplerHVData::hvOn
bool hvOn(const EMBPresamplerHVModule &module, const int &iGap) const
Definition
EMBPresamplerHVManager.cxx:101
EMBPresamplerHVManager::EMBPresamplerHVData::current
double current(const EMBPresamplerHVModule &module, const int &iGap) const
Definition
EMBPresamplerHVManager.cxx:115
EMBPresamplerHVManager::EMBPresamplerHVData::operator=
EMBPresamplerHVData & operator=(EMBPresamplerHVData &&other) noexcept
Definition
EMBPresamplerHVManager.cxx:88
EMBPresamplerHVManager::EMBPresamplerHVData::hvLineNo
int hvLineNo(const EMBPresamplerHVModule &module, const int &iGap) const
Definition
EMBPresamplerHVManager.cxx:122
EMBPresamplerHVManager::EMBPresamplerHVData::EMBPresamplerHVData
EMBPresamplerHVData()
EMBPresamplerHVManager::EMBPresamplerHVData::INVALID
static constexpr double INVALID
Definition
EMBPresamplerHVManager.h:42
EMBPresamplerHVManager::getHVModule
const EMBPresamplerHVModule & getHVModule(unsigned int iSide, unsigned int iEta, unsigned int iPhi) const
Definition
EMBPresamplerHVManager.cxx:172
EMBPresamplerHVManager::operator=
EMBPresamplerHVManager & operator=(const EMBPresamplerHVManager &right)=delete
EMBPresamplerHVManager::EMBPresamplerHVManager
EMBPresamplerHVManager()
Definition
EMBPresamplerHVManager.cxx:139
EMBPresamplerHVManager::m_c
std::unique_ptr< const Clockwork > m_c
Definition
EMBPresamplerHVManager.h:98
EMBPresamplerHVManager::getDescriptor
const EMBPresamplerHVDescriptor * getDescriptor() const
Definition
EMBPresamplerHVManager.cxx:147
EMBPresamplerHVManager::getData
EMBPresamplerHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
Definition
EMBPresamplerHVManager.cxx:276
EMBPresamplerHVManager::~EMBPresamplerHVManager
~EMBPresamplerHVManager()
EMBPresamplerHVManager::beginSideIndex
static unsigned int beginSideIndex()
Definition
EMBPresamplerHVManager.cxx:177
EMBPresamplerHVManager::EMBPresamplerHVManager
EMBPresamplerHVManager(const EMBPresamplerHVManager &right)=delete
EMBPresamplerHVManager::endPhiIndex
unsigned int endPhiIndex() const
Definition
EMBPresamplerHVManager.cxx:157
EMBPresamplerHVManager::beginPhiIndex
unsigned int beginPhiIndex() const
Definition
EMBPresamplerHVManager.cxx:152
EMBPresamplerHVManager::endSideIndex
static unsigned int endSideIndex()
Definition
EMBPresamplerHVManager.cxx:182
EMBPresamplerHVManager::idfunc_t
std::function< std::vector< HWIdentifier >(HWIdentifier)> idfunc_t
Definition
EMBPresamplerHVManager.h:88
EMBPresamplerHVManager::endEtaIndex
unsigned int endEtaIndex() const
Definition
EMBPresamplerHVManager.cxx:167
EMBPresamplerHVManager::beginEtaIndex
unsigned int beginEtaIndex() const
Definition
EMBPresamplerHVManager.cxx:162
EMBPresamplerHVManager::ImaginaryFriend
friend class ImaginaryFriend
Definition
EMBPresamplerHVManager.h:96
EMBPresamplerHVManager::hvLineNo
int hvLineNo(const EMBPresamplerHVModule &module, int gap, const LArHVIdMapping *hvIdMapping, HWIdentifier *hvlId=nullptr) const
Definition
EMBPresamplerHVManager.cxx:285
EMBPresamplerHVModule
Describes one HV Module within the EMB Presampler.
Definition
EMBPresamplerHVModule.h:22
HWIdentifier
Definition
HWIdentifier.h:13
LArHVIdMapping
Definition
LArHVIdMapping.h:21
index
Definition
index.py:1
EMBPresamplerHVPayload
Definition
EMBPresamplerHVPayload.h:8
Generated on
for ATLAS Offline Software by
1.17.0