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

#include <L1CaloPprLutContainer.h>

Inheritance diagram for L1CaloPprLutContainer:
Collaboration diagram for L1CaloPprLutContainer:

Public Types

enum  eCoolFolders { ePprLutChanCalib }
typedef std::map< unsignedint, L1CaloPprLut >::const_iterator const_iterator

Public Member Functions

 L1CaloPprLutContainer ()
 L1CaloPprLutContainer (const std::map< L1CaloPprLutContainer::eCoolFolders, std::string > &folderKeysMap)
virtual ~L1CaloPprLutContainer ()
virtual DataObject * makePersistent () const
virtual void makeTransient (const std::map< std::string, const CondAttrListCollection * > &condAttrListCollectionMap)
const L1CaloPprLutpprLut (unsigned int channelId) const
const L1CaloPprLutpprLut (const L1CaloCoolChannelId &channelId) const
void addPprLut (unsigned int channelId, const L1CaloPprLut &pprLut)
void addPprLut (const L1CaloCoolChannelId &channelId, const L1CaloPprLut &pprLut)
L1CaloPprLutMap::const_iterator begin () const
L1CaloPprLutMap::const_iterator end () const
virtual std::vector< std::string > coolInputKeys () const
virtual std::string coolOutputKey () const
virtual void clear ()
void dump () const
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 {
  eLutStrategy , eLutOffset , eLutSlope , eLutNoiseCut ,
  eLutParameters , ePedValue , ePedMean , eErrorCode
}
typedef std::map< int, std::string > AttrSpecificationMap

Private Member Functions

std::string coolFolderKey (L1CaloPprLutContainer::eCoolFolders efolder) const

Private Attributes

L1CaloPprLutMap m_mPprLutMap
std::map< L1CaloPprLutContainer::eCoolFolders, std::string > m_mCoolFoldersKeysMap
AttrSpecificationMap m_attrSpecificationNameMap
AttrSpecificationMap m_attrSpecificationTypeMap
std::string m_strConditionType

Detailed Description

Definition at line 26 of file L1CaloPprLutContainer.h.

Member Typedef Documentation

◆ AttrSpecificationMap

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

Definition at line 50 of file AbstractL1CaloPersistentCondition.h.

◆ const_iterator

Definition at line 36 of file L1CaloPprLutContainer.h.

Member Enumeration Documentation

◆ eAttrSpecification

◆ eCoolFolders

Enumerator
ePprLutChanCalib 

Definition at line 34 of file L1CaloPprLutContainer.h.

Constructor & Destructor Documentation

◆ L1CaloPprLutContainer() [1/2]

L1CaloPprLutContainer::L1CaloPprLutContainer ( )

Definition at line 16 of file L1CaloPprLutContainer.cxx.

16 :AbstractL1CaloPersistentCondition("CondAttrListCollection") {
17 // Define DB rows names and types in order to construct the AttributeListSpecification object
18 this->addSpecification(eLutStrategy, std::string("LutStrategy"), std::string("UInt16"));
19 this->addSpecification(eLutOffset, std::string("LutOffset"), std::string("UInt16"));
20 this->addSpecification(eLutSlope, std::string("LutSlope"), std::string("UInt16"));
21 this->addSpecification(eLutNoiseCut, std::string("LutNoiseCut"), std::string("UInt16"));
22 this->addSpecification(eLutParameters, std::string("LutParameters"), std::string("Blob64k"));
23 this->addSpecification(ePedValue, std::string("PedValue"), std::string("UInt32"));
24 this->addSpecification(ePedMean, std::string("PedMean"), std::string("Double"));
25 this->addSpecification(eErrorCode, std::string("ErrorCode"), std::string("UInt32"));
26
27 m_mCoolFoldersKeysMap[L1CaloPprLutContainer::ePprLutChanCalib] = std::string("/TRIGGER/L1Calo/V1/Calibration/Physics/PprChanCalib");
28}
AbstractL1CaloPersistentCondition(const std::string &condType)
void addSpecification(int specId, const std::string &specName, const std::string &specType)
std::map< L1CaloPprLutContainer::eCoolFolders, std::string > m_mCoolFoldersKeysMap

◆ L1CaloPprLutContainer() [2/2]

L1CaloPprLutContainer::L1CaloPprLutContainer ( const std::map< L1CaloPprLutContainer::eCoolFolders, std::string > & folderKeysMap)

Definition at line 30 of file L1CaloPprLutContainer.cxx.

30 :AbstractL1CaloPersistentCondition("CondAttrListCollection"),
31 m_mCoolFoldersKeysMap(folderKeysMap)
32{
33 // Define DB rows names and types in order to construct the AttributeListSpecification object
34 this->addSpecification(eLutStrategy, std::string("LutStrategy"), std::string("UInt16"));
35 this->addSpecification(eLutOffset, std::string("LutOffset"), std::string("UInt16"));
36 this->addSpecification(eLutSlope, std::string("LutSlope"), std::string("UInt16"));
37 this->addSpecification(eLutNoiseCut, std::string("LutNoiseCut"), std::string("UInt16"));
38 this->addSpecification(eLutParameters, std::string("LutParameters"), std::string("Blob64k"));
39 this->addSpecification(ePedValue, std::string("PedValue"), std::string("UInt32"));
40 this->addSpecification(ePedMean, std::string("PedMean"), std::string("Double"));
41 this->addSpecification(eErrorCode, std::string("ErrorCode"), std::string("UInt32"));
42}

◆ ~L1CaloPprLutContainer()

virtual L1CaloPprLutContainer::~L1CaloPprLutContainer ( )
inlinevirtual

Definition at line 40 of file L1CaloPprLutContainer.h.

40{};

Member Function Documentation

◆ addPprLut() [1/2]

void L1CaloPprLutContainer::addPprLut ( const L1CaloCoolChannelId & channelId,
const L1CaloPprLut & pprLut )

Definition at line 147 of file L1CaloPprLutContainer.cxx.

147 {
148 return this->addPprLut(channelId.id(), pprLut);
149}
const L1CaloPprLut * pprLut(unsigned int channelId) const
void addPprLut(unsigned int channelId, const L1CaloPprLut &pprLut)

◆ addPprLut() [2/2]

void L1CaloPprLutContainer::addPprLut ( unsigned int channelId,
const L1CaloPprLut & pprLut )

Definition at line 143 of file L1CaloPprLutContainer.cxx.

143 {
145}

◆ 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()

L1CaloPprLutMap::const_iterator L1CaloPprLutContainer::begin ( ) const
inline

Definition at line 55 of file L1CaloPprLutContainer.h.

55{ return m_mPprLutMap.begin(); };

◆ clear()

void L1CaloPprLutContainer::clear ( )
virtual

Reimplemented from AbstractL1CaloPersistentCondition.

Definition at line 158 of file L1CaloPprLutContainer.cxx.

158 {
159 m_mPprLutMap.clear();
160}

◆ conditionType()

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

◆ coolFolderKey()

std::string L1CaloPprLutContainer::coolFolderKey ( L1CaloPprLutContainer::eCoolFolders efolder) const
private

Definition at line 44 of file L1CaloPprLutContainer.cxx.

44 {
45
46 std::map<L1CaloPprLutContainer::eCoolFolders, std::string>::const_iterator it = m_mCoolFoldersKeysMap.find(efolder);
47 if(it!=m_mCoolFoldersKeysMap.end()) {
48 return it->second;
49 } else {
50 return std::string("");
51 }
52}

◆ coolInputKeys()

std::vector< std::string > L1CaloPprLutContainer::coolInputKeys ( ) const
virtual

Reimplemented from AbstractL1CaloPersistentCondition.

Definition at line 54 of file L1CaloPprLutContainer.cxx.

54 {
55 std::vector<std::string> v;
57 return v;
58}
std::string coolFolderKey(L1CaloPprLutContainer::eCoolFolders efolder) const

◆ coolOutputKey()

std::string L1CaloPprLutContainer::coolOutputKey ( ) const
virtual

Reimplemented from AbstractL1CaloPersistentCondition.

Definition at line 60 of file L1CaloPprLutContainer.cxx.

◆ 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}

◆ dump()

void L1CaloPprLutContainer::dump ( ) const

Definition at line 151 of file L1CaloPprLutContainer.cxx.

151 {
153 for(;it!=this->end();++it) {
154 std::cout << " * item: " <<it->first << " => "<<it->second <<std::endl;
155 }
156}
L1CaloPprLutMap::const_iterator end() const
L1CaloPprLutMap::const_iterator begin() const
std::map< unsignedint, L1CaloPprLut >::const_iterator const_iterator

◆ end()

L1CaloPprLutMap::const_iterator L1CaloPprLutContainer::end ( ) const
inline

Definition at line 56 of file L1CaloPprLutContainer.h.

56{ return m_mPprLutMap.end(); };

◆ makePersistent()

DataObject * L1CaloPprLutContainer::makePersistent ( ) const
virtual

Reimplemented from AbstractL1CaloPersistentCondition.

Definition at line 64 of file L1CaloPprLutContainer.cxx.

64 {
65 if(m_mPprLutMap.size()==0) return 0;
66
67 // Create AttributeListSpecification according to the attributes to be recorded
68 // this is required to create the AttributeList objs
69 coral::AttributeListSpecification* attrSpecification = this->createAttributeListSpecification();
70 if(!attrSpecification->size()) return NULL;
71
72 CondAttrListCollection* attrListCollection = new CondAttrListCollection(true);
73
74 L1CaloPprLutMap::const_iterator pos = m_mPprLutMap.begin();
75 for(;pos!=m_mPprLutMap.end();++pos) {
76 const unsigned int channelId = pos->first;
77 const L1CaloPprLut& p = pos->second;
78
79 AthenaAttributeList attrList(*attrSpecification);
80
81 // Set value of each row for the current channel
82 attrList[ this->specificationName(eLutStrategy) ].setValue(p.lutStrategy());
83 attrList[ this->specificationName(eLutOffset) ].setValue(p.lutOffset());
84 attrList[ this->specificationName(eLutSlope) ].setValue(p.lutSlope());
85 attrList[ this->specificationName(eLutNoiseCut) ].setValue(p.lutNoiseCut());
86 attrList[ this->specificationName(eLutParameters) ].setValue(p.lutParameters());
87 //attrList[ this->specificationName(ePedValue) ].setValue(p.pedValue());
88 //attrList[ this->specificationName(eErrorCode) ].setValue(p.errorCode().errorCode());
89
90 attrListCollection->add(channelId, attrList);
91 }
92
93 return attrListCollection;
94}
coral::AttributeListSpecification * createAttributeListSpecification() const
bool add(ChanNum chanNum, const AttributeList &attributeList)
Adding in chan/attrList pairs.

◆ 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 L1CaloPprLutContainer::makeTransient ( const std::map< std::string, const CondAttrListCollection * > & condAttrListCollectionMap)
virtual

Reimplemented from AbstractL1CaloPersistentCondition.

Definition at line 96 of file L1CaloPprLutContainer.cxx.

96 {
97
98 this->clear();
99
100 std::map<std::string, const CondAttrListCollection*>::const_iterator it_map;
101
102 it_map = condAttrListCollectionMap.find(this->coolFolderKey(L1CaloPprLutContainer::ePprLutChanCalib));
103 if(it_map!=condAttrListCollectionMap.end()) {
104
105 const CondAttrListCollection* attrListCollection = it_map->second;
106
107 //loop over CondAttrListCollection
108 CondAttrListCollection::const_iterator it = attrListCollection->begin();
109 for(;it!=attrListCollection->end();++it) {
110
111 const coral::AttributeList& attrList = it->second;
112
113 // Get value of each row for the current channel
115
116 unsigned short lutStrategy = attrList[ this->specificationName(eLutStrategy) ].data<unsigned short>();
117 unsigned short lutOffset = attrList[ this->specificationName(eLutOffset) ].data<unsigned short>();
118 unsigned short lutSlope = attrList[ this->specificationName(eLutSlope) ].data<unsigned short>();
119 unsigned short lutNoiseCut = attrList[ this->specificationName(eLutNoiseCut) ].data<unsigned short>();
120 coral::Blob lutParameters = attrList[ this->specificationName(eLutParameters) ].data<coral::Blob>();
121 unsigned int pedValue = attrList[ this->specificationName(ePedValue) ].data<unsigned int>();
122 double pedMean = attrList[ this->specificationName(ePedMean) ].data<double>();
123 ChanCalibErrorCode errorCode(attrList[ this->specificationName(eErrorCode) ].data<unsigned int>());
124
125 L1CaloPprLut l1caloPptLut(chanNum, lutStrategy, lutOffset, lutSlope, lutNoiseCut, lutParameters, pedValue, pedMean, errorCode);
126 m_mPprLutMap[chanNum] = l1caloPptLut;
127 }
128 } else {
129 std::cout<<"L1CaloPprLutContainer : Could not find requested CondAttrListCollection "<< this->coolFolderKey(L1CaloPprLutContainer::ePprLutChanCalib) << std::endl;
130 }
131}
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
const_iterator end() const
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
ChanAttrListMap::const_iterator const_iterator

◆ pprLut() [1/2]

const L1CaloPprLut * L1CaloPprLutContainer::pprLut ( const L1CaloCoolChannelId & channelId) const

Definition at line 139 of file L1CaloPprLutContainer.cxx.

139 {
140 return this->pprLut(channelId.id());
141}

◆ pprLut() [2/2]

const L1CaloPprLut * L1CaloPprLutContainer::pprLut ( unsigned int channelId) const

Definition at line 133 of file L1CaloPprLutContainer.cxx.

133 {
134 L1CaloPprLutMap::const_iterator pos = m_mPprLutMap.find(channelId);
135 if(pos==m_mPprLutMap.end()) return 0;
136 else return &(pos->second);
137}

◆ 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_mCoolFoldersKeysMap

std::map<L1CaloPprLutContainer::eCoolFolders, std::string> L1CaloPprLutContainer::m_mCoolFoldersKeysMap
private

Definition at line 69 of file L1CaloPprLutContainer.h.

◆ m_mPprLutMap

L1CaloPprLutMap L1CaloPprLutContainer::m_mPprLutMap
private

Definition at line 68 of file L1CaloPprLutContainer.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: