ATLAS Offline Software
Loading...
Searching...
No Matches
L1CaloPprChanDefaultsContainer Class Reference

#include <L1CaloPprChanDefaultsContainer.h>

Inheritance diagram for L1CaloPprChanDefaultsContainer:
Collaboration diagram for L1CaloPprChanDefaultsContainer:

Public Types

using iterator = std::vector<L1CaloPprChanDefaults>::iterator
using const_iterator = std::vector<L1CaloPprChanDefaults>::const_iterator

Public Member Functions

 L1CaloPprChanDefaultsContainer ()
 L1CaloPprChanDefaultsContainer (const std::string &folderKey)
virtual ~L1CaloPprChanDefaultsContainer ()
virtual void makeTransient (const std::map< std::string, const CondAttrListCollection * > &)
virtual DataObject * makePersistent () const
virtual std::vector< std::string > coolInputKeys () const
virtual std::string coolOutputKey () const
virtual void clear ()
const L1CaloPprChanDefaultspprChanDefaults (unsigned int channelId) const
const L1CaloPprChanDefaultspprChanDefaults (const L1CaloCoolChannelId &channelId) const
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
void addPprChanDefaults (const L1CaloPprChanDefaults &pprChanDefaults)
virtual void makeTransient (const std::map< std::string, const AthenaAttributeList * > &condAttributeList)
std::string specificationName (int specId) const
std::string specificationType (int specId) const
void addSpecification (int specId, const std::string &specName, const std::string &specType)
coral::AttributeListSpecification * createAttributeListSpecification () const
virtual std::string conditionType () const

Private Types

enum  eAttrSpecification {
  eBcidDecision1 , eSatOverride1 , eBcidDecision2 , eSatOverride2 ,
  eBcidDecision3 , eSatOverride3 , ePeakFinderCond , eDecisionSource ,
  eBypassLutCp , eBypassLutJep , eInDataSample , eReadOut80Active ,
  eFirCoeff1 , eFirCoeff2 , eFirCoeff3 , eFirCoeff4 ,
  eFirCoeff5 , eSatHigh , eSatLow , eStartBit ,
  eEnergyLevelHigh , eEnergyLevelLow , eSatLevel , eSaturationValue ,
  eNumBcRaw , eNumBcBcid , ePedCorrEnable , eSat80High ,
  eSat80Low
}
typedef std::map< int, std::string > AttrSpecificationMap

Private Attributes

std::vector< L1CaloPprChanDefaultsm_pprChanDefaultss
std::string m_coolFolderKey = "/TRIGGER/L1Calo/V2/Configuration/PprChanDefaults"
AttrSpecificationMap m_attrSpecificationNameMap
AttrSpecificationMap m_attrSpecificationTypeMap
std::string m_strConditionType

Detailed Description

Definition at line 26 of file L1CaloPprChanDefaultsContainer.h.

Member Typedef Documentation

◆ AttrSpecificationMap

typedef std::map<int, std::string> AbstractL1CaloPersistentCondition::AttrSpecificationMap
privateinherited

Definition at line 50 of file AbstractL1CaloPersistentCondition.h.

◆ const_iterator

◆ iterator

Member Enumeration Documentation

◆ eAttrSpecification

Enumerator
eBcidDecision1 
eSatOverride1 
eBcidDecision2 
eSatOverride2 
eBcidDecision3 
eSatOverride3 
ePeakFinderCond 
eDecisionSource 
eBypassLutCp 
eBypassLutJep 
eInDataSample 
eReadOut80Active 
eFirCoeff1 
eFirCoeff2 
eFirCoeff3 
eFirCoeff4 
eFirCoeff5 
eSatHigh 
eSatLow 
eStartBit 
eEnergyLevelHigh 
eEnergyLevelLow 
eSatLevel 
eSaturationValue 
eNumBcRaw 
eNumBcBcid 
ePedCorrEnable 
eSat80High 
eSat80Low 

Definition at line 29 of file L1CaloPprChanDefaultsContainer.h.

Constructor & Destructor Documentation

◆ L1CaloPprChanDefaultsContainer() [1/2]

L1CaloPprChanDefaultsContainer::L1CaloPprChanDefaultsContainer ( )

Definition at line 16 of file L1CaloPprChanDefaultsContainer.cxx.

17 : AbstractL1CaloPersistentCondition("CondAttrListCollection")
18{
19 this->addSpecification(eBcidDecision1, "CR12_BcidDecision1", "int");
20 this->addSpecification(eSatOverride1, "CR12_SatOverride1", "int");
21 this->addSpecification(eBcidDecision2, "CR13_BcidDecision2", "int");
22 this->addSpecification(eSatOverride2, "CR13_SatOverride2", "int");
23 this->addSpecification(eBcidDecision3, "CR14_BcidDecision3", "int");
24 this->addSpecification(eSatOverride3, "CR14_SatOverride3", "int");
25 this->addSpecification(ePeakFinderCond, "CR15_PeakFinderCond", "int");
26 this->addSpecification(eDecisionSource, "CR15_DecisionSource", "int");
27
28 this->addSpecification(eBypassLutCp, "CR00_BypassLutCp", "int");
29 this->addSpecification(eBypassLutJep, "CR00_BypassLutJep", "int");
30 this->addSpecification(eInDataSample, "CR00_InDataSample", "int");
31 this->addSpecification(eReadOut80Active, "CR00_ReadOut80Active", "int");
32 this->addSpecification(eFirCoeff1, "CR04_FirCoeff1", "int");
33 this->addSpecification(eFirCoeff2, "CR04_FirCoeff2", "int");
34 this->addSpecification(eFirCoeff3, "CR05_FirCoeff3", "int");
35 this->addSpecification(eFirCoeff4, "CR06_FirCoeff4", "int");
36 this->addSpecification(eFirCoeff5, "CR06_FirCoeff5", "int");
37 this->addSpecification(eSatHigh, "CR07_SatHigh", "int");
38 this->addSpecification(eSatLow, "CR08_SatLow", "int");
39 this->addSpecification(eSatLevel, "CR09_SatLevel", "int");
40 this->addSpecification(eEnergyLevelLow, "CR10_EnergyLevelLow", "int");
41 this->addSpecification(eEnergyLevelHigh, "CR11_EnergyLevelHigh", "int");
42 this->addSpecification(eStartBit, "CR15_StartBit", "int");
43 this->addSpecification(eSaturationValue, "CR33_SaturationValue", "int");
44 this->addSpecification(eNumBcRaw, "CR16_NumBcRaw", "int");
45 this->addSpecification(eNumBcBcid, "CR16_NumBcBcid", "int");
46 this->addSpecification(ePedCorrEnable, "CR43_PedCorrEnable", "int");
47 // this->addSpecification(eSat80High, "CR52_Sat80High", "int");
48 // this->addSpecification(eSat80Low, "CR53_Sat80Low", "int");
49}
AbstractL1CaloPersistentCondition(const std::string &condType)
void addSpecification(int specId, const std::string &specName, const std::string &specType)

◆ L1CaloPprChanDefaultsContainer() [2/2]

L1CaloPprChanDefaultsContainer::L1CaloPprChanDefaultsContainer ( const std::string & folderKey)

Definition at line 51 of file L1CaloPprChanDefaultsContainer.cxx.

52 : L1CaloPprChanDefaultsContainer() // delegating constructor
53{
54 // cppcheck-suppress useInitializationList
55 m_coolFolderKey = folderKey;
56}

◆ ~L1CaloPprChanDefaultsContainer()

virtual L1CaloPprChanDefaultsContainer::~L1CaloPprChanDefaultsContainer ( )
inlinevirtual

Definition at line 34 of file L1CaloPprChanDefaultsContainer.h.

34{}

Member Function Documentation

◆ addPprChanDefaults()

void L1CaloPprChanDefaultsContainer::addPprChanDefaults ( const L1CaloPprChanDefaults & pprChanDefaults)

Definition at line 187 of file L1CaloPprChanDefaultsContainer.cxx.

188{
189 // insert into the correct position mainting the sorted vector
190 m_pprChanDefaultss.insert(std::lower_bound(std::begin(m_pprChanDefaultss),
191 std::end(m_pprChanDefaultss),
192 pprChanDefaults.channelId(),
193 [](const L1CaloPprChanDefaults& el, unsigned int va) -> bool {
194 return el.channelId() < va;
195 }),
197}
std::vector< L1CaloPprChanDefaults > m_pprChanDefaultss
const L1CaloPprChanDefaults * pprChanDefaults(unsigned int channelId) const

◆ addSpecification()

void AbstractL1CaloPersistentCondition::addSpecification ( int specId,
const std::string & specName,
const std::string & specType )
inherited

Definition at line 26 of file AbstractL1CaloPersistentCondition.cxx.

26 {
27 m_attrSpecificationNameMap[specId] = specName;
28 m_attrSpecificationTypeMap[specId] = specType;
29}

◆ begin() [1/2]

iterator L1CaloPprChanDefaultsContainer::begin ( )
inline

Definition at line 51 of file L1CaloPprChanDefaultsContainer.h.

51{ return m_pprChanDefaultss.begin(); }

◆ begin() [2/2]

const_iterator L1CaloPprChanDefaultsContainer::begin ( ) const
inline

Definition at line 55 of file L1CaloPprChanDefaultsContainer.h.

55{ return m_pprChanDefaultss.begin(); }

◆ clear()

virtual void L1CaloPprChanDefaultsContainer::clear ( )
inlinevirtual

Reimplemented from AbstractL1CaloPersistentCondition.

Definition at line 42 of file L1CaloPprChanDefaultsContainer.h.

42{ m_pprChanDefaultss.clear(); }

◆ conditionType()

virtual std::string AbstractL1CaloPersistentCondition::conditionType ( ) const
inlinevirtualinherited

◆ coolInputKeys()

virtual std::vector< std::string > L1CaloPprChanDefaultsContainer::coolInputKeys ( ) const
inlinevirtual

Reimplemented from AbstractL1CaloPersistentCondition.

Definition at line 40 of file L1CaloPprChanDefaultsContainer.h.

40{ return {m_coolFolderKey}; }

◆ coolOutputKey()

virtual std::string L1CaloPprChanDefaultsContainer::coolOutputKey ( ) const
inlinevirtual

Reimplemented from AbstractL1CaloPersistentCondition.

Definition at line 41 of file L1CaloPprChanDefaultsContainer.h.

41{ return m_coolFolderKey; }

◆ createAttributeListSpecification()

coral::AttributeListSpecification * AbstractL1CaloPersistentCondition::createAttributeListSpecification ( ) const
inherited

Definition at line 31 of file AbstractL1CaloPersistentCondition.cxx.

31 {
32
33 coral::AttributeListSpecification* attrSpecification = new coral::AttributeListSpecification();
34
35 AttrSpecificationMap::const_iterator it_name = m_attrSpecificationNameMap.begin();
36 AttrSpecificationMap::const_iterator it_type = m_attrSpecificationTypeMap.begin();
37
38 for(;it_name!=m_attrSpecificationNameMap.end();++it_name,++it_type) {
39 attrSpecification->extend(it_name->second, it_type->second);
40 }
41 return attrSpecification;
42}

◆ end() [1/2]

iterator L1CaloPprChanDefaultsContainer::end ( )
inline

Definition at line 52 of file L1CaloPprChanDefaultsContainer.h.

52{ return m_pprChanDefaultss.end(); }

◆ end() [2/2]

const_iterator L1CaloPprChanDefaultsContainer::end ( ) const
inline

Definition at line 56 of file L1CaloPprChanDefaultsContainer.h.

56{ return m_pprChanDefaultss.end(); }

◆ makePersistent()

DataObject * L1CaloPprChanDefaultsContainer::makePersistent ( ) const
virtual

Reimplemented from AbstractL1CaloPersistentCondition.

Definition at line 59 of file L1CaloPprChanDefaultsContainer.cxx.

60{
61 using std::make_unique;
62
63 if(m_coolFolderKey.empty()) return nullptr;
64
65 auto* attrSpecification = this->createAttributeListSpecification();
66 if(!attrSpecification || !attrSpecification->size()) return nullptr;
67
68 auto attrListCollection = make_unique<CondAttrListCollection>(true);
69 for(const auto& item : m_pprChanDefaultss) {
70 AthenaAttributeList attrList(*attrSpecification);
71 attrList[specificationName(eBcidDecision1)].setValue(item.bcidDecision1());
72 attrList[specificationName(eSatOverride1)].setValue(item.satOverride1());
73 attrList[specificationName(eBcidDecision2)].setValue(item.bcidDecision2());
74 attrList[specificationName(eSatOverride2)].setValue(item.satOverride2());
75 attrList[specificationName(eBcidDecision3)].setValue(item.bcidDecision3());
76 attrList[specificationName(eSatOverride3)].setValue(item.satOverride3());
77 attrList[specificationName(ePeakFinderCond)].setValue(item.peakFinderCond());
78 attrList[specificationName(eDecisionSource)].setValue(item.decisionSource());
79 attrList[specificationName(eBypassLutCp)].setValue(item.bypassLutCp());
80 attrList[specificationName(eBypassLutJep)].setValue(item.bypassLutJep());
81 attrList[specificationName(eInDataSample)].setValue(item.inDataSample());
82 attrList[specificationName(eReadOut80Active)].setValue(item.readOut80Active());
83 try {
84 attrList[specificationName(eFirCoeff1)].setValue(item.firCoeff1());
85 attrList[specificationName(eFirCoeff2)].setValue(item.firCoeff2());
86 attrList[specificationName(eFirCoeff3)].setValue(item.firCoeff3());
87 attrList[specificationName(eFirCoeff4)].setValue(item.firCoeff4());
88 attrList[specificationName(eFirCoeff5)].setValue(item.firCoeff5());
89 } catch(...) {
90 // unfortunately the online database uses FIRCoeff and the offline database FirCoeff
91 attrList[specificationName(eFirCoeff1).replace(5, 3, "FIR")].setValue(item.firCoeff1());
92 attrList[specificationName(eFirCoeff2).replace(5, 3, "FIR")].setValue(item.firCoeff2());
93 attrList[specificationName(eFirCoeff3).replace(5, 3, "FIR")].setValue(item.firCoeff3());
94 attrList[specificationName(eFirCoeff4).replace(5, 3, "FIR")].setValue(item.firCoeff4());
95 attrList[specificationName(eFirCoeff5).replace(5, 3, "FIR")].setValue(item.firCoeff5());
96 }
97 attrList[specificationName(eSatHigh)].setValue(item.satHigh());
98 attrList[specificationName(eSatLow)].setValue(item.satLow());
99 attrList[specificationName(eStartBit)].setValue(item.startBit());
100 attrList[specificationName(eEnergyLevelHigh)].setValue(item.energyLevelHigh());
101 attrList[specificationName(eEnergyLevelLow)].setValue(item.energyLevelLow());
102 attrList[specificationName(eSatLevel)].setValue(item.satLevel());
103 attrList[specificationName(eSaturationValue)].setValue(item.saturationValue());
104 attrList[specificationName(eNumBcRaw)].setValue(item.numBcRaw());
105 attrList[specificationName(eNumBcBcid)].setValue(item.numBcBcid());
106 attrList[specificationName(ePedCorrEnable)].setValue(item.pedCorrEnable());
107 // attrList[specificationName(eSat80High)].setValue(item.sat80High());
108 // attrList[specificationName(eSat80Low)].setValue(item.sat80Low());
109
110 attrListCollection->add(item.channelId(), attrList);
111 }
112 return static_cast<DataObject*>(attrListCollection.release());
113}
coral::AttributeListSpecification * createAttributeListSpecification() const

◆ makeTransient() [1/2]

void AbstractL1CaloPersistentCondition::makeTransient ( const std::map< std::string, const AthenaAttributeList * > & condAttributeList)
virtual

Reimplemented from AbstractL1CaloPersistentCondition.

Definition at line 30 of file AbstractL1CaloPersistentCondition.cxx.

21 {
22 std::cout << "ERROR - The makeTransient(const map<std::string, const AthenaAttributeList*>) method you are calling is not implemented by the current class !" << std::endl;
23 return;
24}

◆ makeTransient() [2/2]

void L1CaloPprChanDefaultsContainer::makeTransient ( const std::map< std::string, const CondAttrListCollection * > & condAttrListCollectionMap)
virtual

Reimplemented from AbstractL1CaloPersistentCondition.

Definition at line 115 of file L1CaloPprChanDefaultsContainer.cxx.

116{
117 clear();
118
119 // In the case of overlay, we need multiple instances of L1CaloPprChanDefaultsContainer
120 // Take the last element in the map
121 if (condAttrListCollectionMap.empty()) return;
122 auto it = condAttrListCollectionMap.rbegin();
123
124 auto attrListCollection = it->second;
125 for(const auto& item : *attrListCollection) {
126 auto chanNum = item.first;
127 const auto& attrList = item.second;
128
129 auto bcidDecision1 = attrList[specificationName(eBcidDecision1)].data<int>();
130 auto satOverride1 = attrList[specificationName(eSatOverride1)].data<int>();
131 auto bcidDecision2 = attrList[specificationName(eBcidDecision2)].data<int>();
132 auto satOverride2 = attrList[specificationName(eSatOverride2)].data<int>();
133 auto bcidDecision3 = attrList[specificationName(eBcidDecision3)].data<int>();
134 auto satOverride3 = attrList[specificationName(eSatOverride3)].data<int>();
135 auto peakFinderCond = attrList[specificationName(ePeakFinderCond)].data<int>();
136 auto decisionSource = attrList[specificationName(eDecisionSource)].data<int>();
137
138 auto bypassLutCp = attrList[specificationName(eBypassLutCp)].data<int>();
139 auto bypassLutJep = attrList[specificationName(eBypassLutJep)].data<int>();
140 auto inDataSample = attrList[specificationName(eInDataSample)].data<int>();
141 auto readOut80Active = attrList[specificationName(eReadOut80Active)].data<int>();
142 auto satHigh = attrList[specificationName(eSatHigh)].data<int>();
143 auto satLow = attrList[specificationName(eSatLow)].data<int>();
144 auto startBit = attrList[specificationName(eStartBit)].data<int>();
145 auto energyLevelHigh = attrList[specificationName(eEnergyLevelHigh)].data<int>();
146 auto energyLevelLow = attrList[specificationName(eEnergyLevelLow)].data<int>();
147 auto satLevel = attrList[specificationName(eSatLevel)].data<int>();
148 auto saturationValue = attrList[specificationName(eSaturationValue)].data<int>();
149 auto numBcRaw = attrList[specificationName(eNumBcRaw)].data<int>();
150 auto numBcBcid = attrList[specificationName(eNumBcBcid)].data<int>();
151 auto pedCorrEnable = attrList[specificationName(ePedCorrEnable)].data<int>();
152 // auto sat80High = attrList[specificationName(eSat80High)].data<int>();
153 // auto sat80Low = attrList[specificationName(eSat80Low)].data<int>();
154
155 int firCoeff1, firCoeff2, firCoeff3, firCoeff4, firCoeff5;
156 try {
157 firCoeff1 = attrList[specificationName(eFirCoeff1)].data<int>();
158 firCoeff2 = attrList[specificationName(eFirCoeff2)].data<int>();
159 firCoeff3 = attrList[specificationName(eFirCoeff3)].data<int>();
160 firCoeff4 = attrList[specificationName(eFirCoeff4)].data<int>();
161 firCoeff5 = attrList[specificationName(eFirCoeff5)].data<int>();
162 } catch(...) {
163 // unfortunately the online database uses FIRCoeff and the offline database FirCoeff
164 firCoeff1 = attrList[specificationName(eFirCoeff1).replace(5, 3, "FIR")].data<int>();
165 firCoeff2 = attrList[specificationName(eFirCoeff2).replace(5, 3, "FIR")].data<int>();
166 firCoeff3 = attrList[specificationName(eFirCoeff3).replace(5, 3, "FIR")].data<int>();
167 firCoeff4 = attrList[specificationName(eFirCoeff4).replace(5, 3, "FIR")].data<int>();
168 firCoeff5 = attrList[specificationName(eFirCoeff5).replace(5, 3, "FIR")].data<int>();
169 }
170
171 addPprChanDefaults(L1CaloPprChanDefaults(chanNum, bcidDecision1, satOverride1, bcidDecision2, satOverride2, bcidDecision3, satOverride3, peakFinderCond, decisionSource, bypassLutCp, bypassLutJep, inDataSample, readOut80Active, firCoeff1, firCoeff2, firCoeff3, firCoeff4, firCoeff5, satHigh, satLow, startBit, energyLevelHigh, energyLevelLow, satLevel, saturationValue, numBcRaw, numBcBcid, pedCorrEnable /*, sat80High, sat80Low */ ));
172 }
173}
void addPprChanDefaults(const L1CaloPprChanDefaults &pprChanDefaults)

◆ pprChanDefaults() [1/2]

const L1CaloPprChanDefaults * L1CaloPprChanDefaultsContainer::pprChanDefaults ( const L1CaloCoolChannelId & channelId) const
inline

◆ pprChanDefaults() [2/2]

const L1CaloPprChanDefaults * L1CaloPprChanDefaultsContainer::pprChanDefaults ( unsigned int channelId) const

Definition at line 175 of file L1CaloPprChanDefaultsContainer.cxx.

176{
177 auto it = std::lower_bound(std::begin(m_pprChanDefaultss),
178 std::end(m_pprChanDefaultss),
179 channelId,
180 [](const L1CaloPprChanDefaults& el, unsigned int val) -> bool {
181 return el.channelId() < val;
182 });
183 if(it == std::end(m_pprChanDefaultss)) return nullptr;
184 return &(*it);
185}

◆ specificationName()

std::string AbstractL1CaloPersistentCondition::specificationName ( int specId) const
inherited

Definition at line 44 of file AbstractL1CaloPersistentCondition.cxx.

44 {
45 return m_attrSpecificationNameMap.find(specId)->second;
46}

◆ specificationType()

std::string AbstractL1CaloPersistentCondition::specificationType ( int specId) const
inherited

Definition at line 48 of file AbstractL1CaloPersistentCondition.cxx.

48 {
49 return m_attrSpecificationTypeMap.find(specId)->second;
50}

Member Data Documentation

◆ m_attrSpecificationNameMap

AttrSpecificationMap AbstractL1CaloPersistentCondition::m_attrSpecificationNameMap
privateinherited

Definition at line 51 of file AbstractL1CaloPersistentCondition.h.

◆ m_attrSpecificationTypeMap

AttrSpecificationMap AbstractL1CaloPersistentCondition::m_attrSpecificationTypeMap
privateinherited

Definition at line 52 of file AbstractL1CaloPersistentCondition.h.

◆ m_coolFolderKey

std::string L1CaloPprChanDefaultsContainer::m_coolFolderKey = "/TRIGGER/L1Calo/V2/Configuration/PprChanDefaults"
private

Definition at line 63 of file L1CaloPprChanDefaultsContainer.h.

◆ m_pprChanDefaultss

std::vector<L1CaloPprChanDefaults> L1CaloPprChanDefaultsContainer::m_pprChanDefaultss
private

Definition at line 62 of file L1CaloPprChanDefaultsContainer.h.

◆ m_strConditionType

std::string AbstractL1CaloPersistentCondition::m_strConditionType
privateinherited

Definition at line 53 of file AbstractL1CaloPersistentCondition.h.


The documentation for this class was generated from the following files: