ATLAS Offline Software
LArDSPConfig.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //Dear emacs, this is -*-c++-*-
6 
7 #ifndef LARCOOLCONDITIONS_LARDSPCONIFG_H
8 #define LARCOOLCONDITIONS_LARDSPCONIFG_H
9 
12 #include <vector>
13 #include <memory>
14 
15 class LArDSPConfig:
16  public LArCondFlatBase
17 {
18 
19 protected:
20  LArDSPConfig();
21 
22  public:
23 
24  enum {
25  //Encoding
26  //0R0P PPPP
31  };
32 
33 
34  LArDSPConfig(const AthenaAttributeList* attrList);
35  virtual ~LArDSPConfig();
36 
37  bool good() const { return m_isInitialized && m_nFebs>0; }
38 
39 
40  bool useMGRampInterceptByHash(const IdentifierHash& febHash) const;
41  bool useHGRampInterceptByHash(const IdentifierHash& febHash) const;
42  bool useLGRampInterceptByHash(const IdentifierHash& febHash) const;
43  bool useMGRampIntercept(const HWIdentifier FEBid) const {
45  };
46  bool useHGRampIntercept(const HWIdentifier FEBid) const {
48  };
49  bool useLGRampIntercept(const HWIdentifier FEBid) const {
51  };
52 
53  uint8_t peakSampleByHash(const IdentifierHash& febHash) const;
54  uint8_t peakSample(const HWIdentifier FEBid) const {
56  }
57 
58 protected:
60  const uint8_t* m_pBlob;
61  unsigned m_nFebs;
62 
63 };
64 
65 CLASS_DEF( LArDSPConfig , 131172224 , 1 )
66 
67 
69 
70 
71 public:
73 
74  //void initializeBlob(const nSamples);
75 
76  void set(const IdentifierHash febId,
77  const uint8_t peakSample,
78  const bool useMGRampIntercept);
79 
80  std::unique_ptr<AthenaAttributeList> attributeList() { return std::move(m_attrListNC); }
81 
82 private:
83  std::unique_ptr<AthenaAttributeList> m_attrListNC;
85  //uint8_t m_nSamples;
86 };
87 
88 
89 #endif
LArDSPConfig::useLGRampInterceptByHash
bool useLGRampInterceptByHash(const IdentifierHash &febHash) const
Definition: LArDSPConfig.cxx:41
LArDSPConfig::useHGRampInterceptByHash
bool useHGRampInterceptByHash(const IdentifierHash &febHash) const
Definition: LArDSPConfig.cxx:37
LArDSPConfigWrite::m_attrListNC
std::unique_ptr< AthenaAttributeList > m_attrListNC
Definition: LArDSPConfig.h:83
LArDSPConfig::LArDSPConfig
LArDSPConfig()
Definition: LArDSPConfig.cxx:9
LArDSPConfig::useMGRampIntercept
bool useMGRampIntercept(const HWIdentifier FEBid) const
Definition: LArDSPConfig.h:43
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:558
LArDSPConfig::~LArDSPConfig
virtual ~LArDSPConfig()
Definition: LArDSPConfig.cxx:14
LArDSPConfig::useMGRampInterceptByHash
bool useMGRampInterceptByHash(const IdentifierHash &febHash) const
Definition: LArDSPConfig.cxx:33
LArCondFlatBase
Definition: LArCondFlatBase.h:15
LArDSPConfig::good
bool good() const
Definition: LArDSPConfig.h:37
LArCondFlatBase::m_isInitialized
bool m_isInitialized
Definition: LArCondFlatBase.h:23
LArCondFlatBase::m_onlineHelper
const LArOnlineID * m_onlineHelper
Definition: LArCondFlatBase.h:24
HWIdentifier
Definition: HWIdentifier.h:13
LArDSPConfigWrite
Definition: LArDSPConfig.h:68
LArDSPConfigWrite::attributeList
std::unique_ptr< AthenaAttributeList > attributeList()
Definition: LArDSPConfig.h:80
LArDSPConfig
Definition: LArDSPConfig.h:17
LArCondFlatBase.h
AthenaAttributeList
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
Definition: PersistentDataModel/PersistentDataModel/AthenaAttributeList.h:45
LArDSPConfig::LGRAMPINTERCEPT_MASK
@ LGRAMPINTERCEPT_MASK
Definition: LArDSPConfig.h:30
LArDSPConfig::HGRAMPINTERCEPT_MASK
@ HGRAMPINTERCEPT_MASK
Definition: LArDSPConfig.h:28
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
LArDSPConfig::m_pBlob
const uint8_t * m_pBlob
Definition: LArDSPConfig.h:60
LArDSPConfig::m_attrList
const AthenaAttributeList * m_attrList
Definition: LArDSPConfig.h:59
LArDSPConfig::useLGRampIntercept
bool useLGRampIntercept(const HWIdentifier FEBid) const
Definition: LArDSPConfig.h:49
AthenaAttributeList.h
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
LArDSPConfig::peakSampleByHash
uint8_t peakSampleByHash(const IdentifierHash &febHash) const
Definition: LArDSPConfig.cxx:29
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:67
LArDSPConfigWrite::m_pBlob_nc
uint8_t * m_pBlob_nc
Definition: LArDSPConfig.h:84
LArDSPConfig::m_nFebs
unsigned m_nFebs
Definition: LArDSPConfig.h:61
LArDSPConfig::useHGRampIntercept
bool useHGRampIntercept(const HWIdentifier FEBid) const
Definition: LArDSPConfig.h:46
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
LArDSPConfig::peakSample
uint8_t peakSample(const HWIdentifier FEBid) const
Definition: LArDSPConfig.h:54
LArDSPConfig::PEAKSAMPLE_MASK
@ PEAKSAMPLE_MASK
Definition: LArDSPConfig.h:27
LArOnlineID_Base::feb_Hash
IdentifierHash feb_Hash(HWIdentifier febId) const
Create feb hash identifiers from feb identifiers.
Definition: LArOnlineID_Base.cxx:1516
LArDSPConfig::MGRAMPINTERCEPT_MASK
@ MGRAMPINTERCEPT_MASK
Definition: LArDSPConfig.h:29