ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
TrigT1CaloCalibConditions
src
L1CaloPedestalContainer.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TrigT1CaloCalibConditions/L1CaloPedestalContainer.h
"
6
7
#include <string>
8
9
#include "CoralBase/AttributeListSpecification.h"
10
#include "
AthenaPoolUtilities/CondAttrListCollection.h
"
11
#include "
AthenaPoolUtilities/AthenaAttributeList.h
"
12
13
using
std::cout;
14
using
std::endl;
15
16
L1CaloPedestalContainer::L1CaloPedestalContainer
():
AbstractL1CaloPersistentCondition
(
"CondAttrListCollection"
) {
17
// Define DB rows names and types in order to construct the AttributeListSpecification object
18
this->
addSpecification
(
eMean
, std::string(
"Mean"
), std::string(
"double"
));
19
this->
addSpecification
(
eRMS
, std::string(
"RMS"
), std::string(
"double"
));
20
}
21
22
23
DataObject*
L1CaloPedestalContainer::makePersistent
()
const
{
24
25
// return null if DataVector<> is empty
26
if
(this->
size
()==0)
return
NULL;
27
28
// Create AttributeListSpecification according to the attributes to be recorded
29
// this is required to create the AttributeList objs
30
coral::AttributeListSpecification* attrSpecification = this->
createAttributeListSpecification
();
31
if
(!attrSpecification->size())
return
NULL;
32
33
34
CondAttrListCollection
* attrListCollection =
new
CondAttrListCollection
(
true
);
35
36
//loop on pedestals in the container to create AttributeList objs to fill the CondAttrListCollection with
37
L1CaloPedestalContainer::const_iterator
pos = this->
begin
();
38
L1CaloPedestalContainer::const_iterator
pos_end = this->
end
();
39
40
for
(;pos!=pos_end;++pos) {
41
const
L1CaloPedestal
* ped = (*pos);
42
43
AthenaAttributeList
attrList(*attrSpecification);
44
45
// Set value of each row for the current channel
46
attrList[ this->
specificationName
(
eMean
) ].setValue(ped->get_mean());
47
attrList[ this->
specificationName
(
eRMS
) ].setValue(ped->get_rms());
48
unsigned
int
iChanNumber = ped->channelId();
49
50
//std::ostringstream attrStream;
51
//attrList.toOutputStream(attrStream);
52
//cout << " ChanNum: " << iChanNumber << ", Attribute list: " << attrStream.str() << endl;
53
54
// add AttributeList corresponding to channel iChanNumber to the CondAttrListCollection
55
attrListCollection->
add
(iChanNumber, attrList);
56
}
57
return
attrListCollection;
58
}
59
60
void
L1CaloPedestalContainer::makeTransient
(
const
CondAttrListCollection
*& attrListCollection) {
61
62
//loop over CondAttrListCollection
63
CondAttrListCollection::const_iterator
it = attrListCollection->
begin
();
64
for
(;it!=attrListCollection->
end
();++it) {
65
66
const
coral::AttributeList& attrList = it->second;
67
68
// Get value of each row for the current channel
69
CondAttrListCollection::ChanNum
chanNum = it->first;
70
double
mean
= attrList[ this->
specificationName
(
eMean
) ].data<
double
>();
71
double
rms = attrList[ this->
specificationName
(
eRMS
) ].data<
double
>();
72
73
// Create transient L1CaloPedestal obj
74
L1CaloPedestal
* pedestal =
new
L1CaloPedestal
(chanNum,
mean
, rms);
75
76
// Add L1CaloPedestal to DataVector<L1CaloPedestal>
77
this->
push_back
(pedestal);
78
}
79
}
80
AthenaAttributeList.h
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
L1CaloPedestalContainer.h
AbstractL1CaloPersistentCondition::specificationName
std::string specificationName(int specId) const
Definition
AbstractL1CaloPersistentCondition.cxx:44
AbstractL1CaloPersistentCondition::AbstractL1CaloPersistentCondition
AbstractL1CaloPersistentCondition(const std::string &condType)
Definition
AbstractL1CaloPersistentCondition.h:45
AbstractL1CaloPersistentCondition::addSpecification
void addSpecification(int specId, const std::string &specName, const std::string &specType)
Definition
AbstractL1CaloPersistentCondition.cxx:26
AbstractL1CaloPersistentCondition::createAttributeListSpecification
coral::AttributeListSpecification * createAttributeListSpecification() const
Definition
AbstractL1CaloPersistentCondition.cxx:31
AthenaAttributeList
An AttributeList represents a logical row of attributes in a metadata table.
Definition
PersistentDataModel/PersistentDataModel/AthenaAttributeList.h:46
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number.
Definition
CondAttrListCollection.h:51
CondAttrListCollection::end
const_iterator end() const
Definition
CondAttrListCollection.h:314
CondAttrListCollection::add
bool add(ChanNum chanNum, const AttributeList &attributeList)
Adding in chan/attrList pairs.
Definition
CondAttrListCollection.h:451
CondAttrListCollection::begin
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
Definition
CondAttrListCollection.h:308
CondAttrListCollection::const_iterator
ChanAttrListMap::const_iterator const_iterator
Definition
CondAttrListCollection.h:62
CondAttrListCollection::ChanNum
unsigned int ChanNum
Definition
CondAttrListCollection.h:54
DataVector< L1CaloPedestal >::const_iterator
DataModel_detail::const_iterator< DataVector > const_iterator
Definition
DataVector.h:838
DataVector< L1CaloPedestal >::push_back
value_type push_back(value_type pElem)
DataVector< L1CaloPedestal >::end
const_iterator end() const noexcept
DataVector< L1CaloPedestal >::begin
const_iterator begin() const noexcept
DataVector< L1CaloPedestal >::size
size_type size() const noexcept
L1CaloPedestalContainer::eMean
@ eMean
Definition
L1CaloPedestalContainer.h:40
L1CaloPedestalContainer::eRMS
@ eRMS
Definition
L1CaloPedestalContainer.h:40
L1CaloPedestalContainer::L1CaloPedestalContainer
L1CaloPedestalContainer()
Definition
L1CaloPedestalContainer.cxx:16
L1CaloPedestalContainer::makeTransient
virtual void makeTransient(const CondAttrListCollection *&condAttrListCollection)
Definition
L1CaloPedestalContainer.cxx:60
L1CaloPedestalContainer::makePersistent
virtual DataObject * makePersistent() const
Definition
L1CaloPedestalContainer.cxx:23
L1CaloPedestal
L1CaloPedestal class.
Definition
L1CaloPedestal.h:17
mean
void mean(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")
Definition
dependence.cxx:254
Generated on
for ATLAS Offline Software by
1.17.0