ATLAS Offline Software
Loading...
Searching...
No Matches
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))
14class LArHVIdMapping;
15#endif
16
19class CellBinning;
20
34
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))
73 const std::vector<const CondAttrListCollection*>& attrLists) const;
74 // Get hvLine for a module
75 int hvLineNo(const EMECPresamplerHVModule& module
76 , const LArHVIdMapping* hvIdMapping, HWIdentifier *hvlineId=nullptr) const;
77#endif
78
79 private:
80 using idfunc_t = std::function<std::vector<HWIdentifier>(HWIdentifier)>;
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
This class is a collection of AttributeLists where each one is associated with a channel number.
EMECPresamplerHVData & operator=(EMECPresamplerHVData &&other) noexcept
bool hvOn(const EMECPresamplerHVModule &module, const int &iGap) const
double voltage(const EMECPresamplerHVModule &module, const int &iGap) const
double current(const EMECPresamplerHVModule &module, const int &iGap) const
int hvLineNo(const EMECPresamplerHVModule &module, const int &iGap) const
EMECPresamplerHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
const CellBinning * getPhiBinning() const
EMECPresamplerHVManager(const EMECPresamplerHVManager &right)=delete
int hvLineNo(const EMECPresamplerHVModule &module, const LArHVIdMapping *hvIdMapping, HWIdentifier *hvlineId=nullptr) const
std::unique_ptr< const Clockwork > m_c
const EMECPresamplerHVModule & getHVModule(unsigned int iSide, unsigned int iPhi) const
std::function< std::vector< HWIdentifier >(HWIdentifier)> idfunc_t
static unsigned int beginSideIndex()
EMECPresamplerHVManager & operator=(const EMECPresamplerHVManager &right)=delete
Describes one HV Module within the EMEc Presampler.
Definition index.py:1