ATLAS Offline Software
EMECPresamplerHVManager.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_EMECPRESAMPLERHVMANAGER_H
6 #define LARHV_EMECPRESAMPLERHVMANAGER_H
7 
10 #include <memory>
11 #include <functional>
12 
13 #if !(defined(SIMULATIONBASE) || defined(GENERATIONBASE))
14 class LArHVIdMapping;
15 #endif
16 
19 class CellBinning;
20 
36 {
37  public:
39  {
40  public:
41  static constexpr double INVALID = -99999;
42  class Payload;
44  EMECPresamplerHVData (std::unique_ptr<Payload> payload);
47  bool hvOn (const EMECPresamplerHVModule& module, const int& iGap) const;
48  double voltage (const EMECPresamplerHVModule& module, const int& iGap) const;
49  double current (const EMECPresamplerHVModule& module, const int& iGap) const;
50  int hvLineNo (const EMECPresamplerHVModule& module, const int& iGap) const;
51  private:
52  static int index (const EMECPresamplerHVModule& module) ;
53  std::unique_ptr<Payload> m_payload;
54  };
55 
58 
59  const CellBinning *getPhiBinning() const;
60 
61  unsigned int beginPhiIndex() const;
62  unsigned int endPhiIndex() const;
63 
64  // Begin/end side index (0=negative and 1= positive)
65  static unsigned int beginSideIndex() ;
66  static unsigned int endSideIndex() ;
67 
68  // Get a link to the HV module:
69  const EMECPresamplerHVModule& getHVModule(unsigned int iSide, unsigned int iPhi) const;
70 
71 #if !(defined(SIMULATIONBASE) || defined(GENERATIONBASE))
72  EMECPresamplerHVData getData (const LArHVIdMapping& hvIdMapping,
73  const std::vector<const CondAttrListCollection*>& attrLists) const;
74  // Get hvLine for a module
76  , const LArHVIdMapping* hvIdMapping, HWIdentifier *hvlineId=nullptr) const;
77 #endif
78 
79  private:
80  using idfunc_t = std::function<std::vector<HWIdentifier>(HWIdentifier)>;
81  EMECPresamplerHVData getData (const idfunc_t& idfunc,
82  const std::vector<const CondAttrListCollection*>& attrLists) const;
83 
84  // Illegal operations
87 
88  class Clockwork;
89  std::unique_ptr<const Clockwork> m_c;
90 };
91 
92 
93 #endif
EMECPresamplerHVManager
This class provides direct access to information on the HV electrodes within the EMEC....
Definition: EMECPresamplerHVManager.h:36
EMECPresamplerHVManager::EMECPresamplerHVManager
EMECPresamplerHVManager()
Definition: EMECPresamplerHVManager.cxx:129
EMECPresamplerHVManager::EMECPresamplerHVData::Payload
Definition: EMECPresamplerHVManager.cxx:61
EMECPresamplerHVManager::EMECPresamplerHVData::current
double current(const EMECPresamplerHVModule &module, const int &iGap) const
Definition: EMECPresamplerHVManager.cxx:106
EMECPresamplerHVManager::EMECPresamplerHVData::voltage
double voltage(const EMECPresamplerHVModule &module, const int &iGap) const
Definition: EMECPresamplerHVManager.cxx:99
EMECPresamplerHVManager::endSideIndex
static unsigned int endSideIndex()
Definition: EMECPresamplerHVManager.cxx:162
EMECPresamplerHVManager::beginSideIndex
static unsigned int beginSideIndex()
Definition: EMECPresamplerHVManager.cxx:157
EMECPresamplerHVManager::getData
EMECPresamplerHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
Definition: EMECPresamplerHVManager.cxx:241
EMECPresamplerHVManager::~EMECPresamplerHVManager
~EMECPresamplerHVManager()
EMECPresamplerHVManager::EMECPresamplerHVManager
EMECPresamplerHVManager(const EMECPresamplerHVManager &right)=delete
HWIdentifier
Definition: HWIdentifier.h:13
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number....
Definition: CondAttrListCollection.h:52
EMECPresamplerHVManager::beginPhiIndex
unsigned int beginPhiIndex() const
Definition: EMECPresamplerHVManager.cxx:142
EMECPresamplerHVManager::getHVModule
const EMECPresamplerHVModule & getHVModule(unsigned int iSide, unsigned int iPhi) const
Definition: EMECPresamplerHVManager.cxx:152
EMECPresamplerHVModule.h
python.PyAthena.module
module
Definition: PyAthena.py:131
EMECPresamplerHVManager::EMECPresamplerHVData::hvOn
bool hvOn(const EMECPresamplerHVModule &module, const int &iGap) const
Definition: EMECPresamplerHVManager.cxx:92
EMECPresamplerHVManager::EMECPresamplerHVData::index
static int index(const EMECPresamplerHVModule &module)
Definition: EMECPresamplerHVManager.cxx:120
EMECPresamplerHVManager::EMECPresamplerHVData::EMECPresamplerHVData
EMECPresamplerHVData()
EMECPresamplerHVManager::EMECPresamplerHVData::INVALID
static constexpr double INVALID
Definition: EMECPresamplerHVManager.h:41
EMECPresamplerHVManager::EMECPresamplerHVData::~EMECPresamplerHVData
~EMECPresamplerHVData()
EMECPresamplerHVManager::EMECPresamplerHVData
Definition: EMECPresamplerHVManager.h:39
EMECPresamplerHVManager::getPhiBinning
const CellBinning * getPhiBinning() const
Definition: EMECPresamplerHVManager.cxx:137
HWIdentifier.h
EMECPresamplerHVManager::EMECPresamplerHVData::hvLineNo
int hvLineNo(const EMECPresamplerHVModule &module, const int &iGap) const
Definition: EMECPresamplerHVManager.cxx:113
PixelModuleFeMask_create_db.payload
string payload
Definition: PixelModuleFeMask_create_db.py:69
Trk::iPhi
@ iPhi
Definition: ParamDefs.h:47
EMECPresamplerHVPayload
Definition: EMECPresamplerHVPayload.h:8
EMECPresamplerHVManager::m_c
std::unique_ptr< const Clockwork > m_c
Definition: EMECPresamplerHVManager.h:88
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
LArHVIdMapping
Definition: LArHVIdMapping.h:21
EMECPresamplerHVManager::Clockwork
Definition: EMECPresamplerHVManager.cxx:35
EMECPresamplerHVManager::hvLineNo
int hvLineNo(const EMECPresamplerHVModule &module, const LArHVIdMapping *hvIdMapping, HWIdentifier *hvlineId=nullptr) const
Definition: EMECPresamplerHVManager.cxx:249
EMECPresamplerHVModule
Describes one HV Module within the EMEc Presampler.
Definition: EMECPresamplerHVModule.h:22
EMECPresamplerHVManager::operator=
EMECPresamplerHVManager & operator=(const EMECPresamplerHVManager &right)=delete
EMECPresamplerHVManager::EMECPresamplerHVData::operator=
EMECPresamplerHVData & operator=(EMECPresamplerHVData &&other) noexcept
Definition: EMECPresamplerHVManager.cxx:79
EMECPresamplerHVManager::endPhiIndex
unsigned int endPhiIndex() const
Definition: EMECPresamplerHVManager.cxx:147
EMECPresamplerHVManager::EMECPresamplerHVData::m_payload
std::unique_ptr< Payload > m_payload
Definition: EMECPresamplerHVManager.h:53
EMECPresamplerHVManager::idfunc_t
std::function< std::vector< HWIdentifier >(HWIdentifier)> idfunc_t
Definition: EMECPresamplerHVManager.h:80