ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
TrigT1CaloCalibConditions
src
L1CaloRunParametersContainer.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
#include "
TrigT1CaloCalibConditions/L1CaloRunParametersContainer.h
"
5
6
#include <algorithm>
7
#include <memory>
8
9
#include "CoralBase/AttributeListSpecification.h"
10
#include "
AthenaPoolUtilities/CondAttrListCollection.h
"
11
#include "
AthenaPoolUtilities/AthenaAttributeList.h
"
12
13
#include "
TrigT1CaloCalibConditions/L1CaloRunParameters.h
"
14
15
L1CaloRunParametersContainer::L1CaloRunParametersContainer
()
16
:
AbstractL1CaloPersistentCondition
(
"CondAttrListCollection"
)
17
{
18
this->
addSpecification
(
erunType
,
"runType"
,
"string"
);
19
this->
addSpecification
(
erunActionName
,
"runActionName"
,
"string"
);
20
this->
addSpecification
(
erunActionVersion
,
"runActionVersion"
,
"unsigned int"
);
21
this->
addSpecification
(
ereadoutConfig
,
"readoutConfig"
,
"string"
);
22
this->
addSpecification
(
ereadoutConfigID
,
"readoutConfigID"
,
"unsigned int"
);
23
this->
addSpecification
(
ettcConfiguration
,
"ttcConfiguration"
,
"string"
);
24
this->
addSpecification
(
ettcConfigurationID
,
"ttcConfigurationID"
,
"unsigned int"
);
25
this->
addSpecification
(
etriggerMenu
,
"triggerMenu"
,
"string"
);
26
this->
addSpecification
(
ecalibration
,
"calibration"
,
"string"
);
27
this->
addSpecification
(
econditions
,
"conditions"
,
"string"
);
28
}
29
30
L1CaloRunParametersContainer::L1CaloRunParametersContainer
(
const
std::string& folderKey)
31
:
L1CaloRunParametersContainer
()
// delegating constructor
32
{
33
// cppcheck-suppress useInitializationList
34
m_coolFolderKey
= folderKey;
35
}
36
37
38
DataObject*
L1CaloRunParametersContainer::makePersistent
()
const
39
{
40
using
std::make_unique;
41
42
if
(
m_coolFolderKey
.empty())
return
nullptr
;
43
44
auto
* attrSpecification = this->
createAttributeListSpecification
();
45
if
(!attrSpecification || !attrSpecification->size())
return
nullptr
;
46
47
auto
attrListCollection = make_unique<CondAttrListCollection>(
true
);
48
for
(
const
auto
& item :
m_runParameterss
) {
49
AthenaAttributeList
attrList(*attrSpecification);
50
attrList[
specificationName
(
erunType
)].setValue(item.runType());
51
attrList[
specificationName
(
erunActionName
)].setValue(item.runActionName());
52
attrList[
specificationName
(
erunActionVersion
)].setValue(item.runActionVersion());
53
attrList[
specificationName
(
ereadoutConfig
)].setValue(item.readoutConfig());
54
attrList[
specificationName
(
ereadoutConfigID
)].setValue(item.readoutConfigID());
55
attrList[
specificationName
(
ettcConfiguration
)].setValue(item.ttcConfiguration());
56
attrList[
specificationName
(
ettcConfigurationID
)].setValue(item.ttcConfigurationID());
57
attrList[
specificationName
(
etriggerMenu
)].setValue(item.triggerMenu());
58
attrList[
specificationName
(
ecalibration
)].setValue(item.calibration());
59
attrList[
specificationName
(
econditions
)].setValue(item.conditions());
60
61
attrListCollection->add(item.channelId(), attrList);
62
}
63
return
static_cast<
DataObject*
>
(attrListCollection.release());
64
}
65
66
void
L1CaloRunParametersContainer::makeTransient
(
const
std::map<std::string, const CondAttrListCollection*>& condAttrListCollectionMap)
67
{
68
clear
();
69
70
auto
it = condAttrListCollectionMap.find(
m_coolFolderKey
);
71
if
(it == std::end(condAttrListCollectionMap))
return
;
72
73
auto
attrListCollection = it->second;
74
for
(
const
auto
& item : *attrListCollection) {
75
auto
chanNum = item.first;
76
const
auto
& attrList = item.second;
77
78
const
auto
& runType = attrList[
specificationName
(
erunType
)].data<std::string>();
79
const
auto
& runActionName = attrList[
specificationName
(
erunActionName
)].data<std::string>();
80
auto
runActionVersion = attrList[
specificationName
(
erunActionVersion
)].data<
unsigned
int
>();
81
const
auto
& readoutConfig = attrList[
specificationName
(
ereadoutConfig
)].data<std::string>();
82
auto
readoutConfigID = attrList[
specificationName
(
ereadoutConfigID
)].data<
unsigned
int
>();
83
const
auto
& ttcConfiguration = attrList[
specificationName
(
ettcConfiguration
)].data<std::string>();
84
auto
ttcConfigurationID = attrList[
specificationName
(
ettcConfigurationID
)].data<
unsigned
int
>();
85
const
auto
& triggerMenu = attrList[
specificationName
(
etriggerMenu
)].data<std::string>();
86
const
auto
& calibration = attrList[
specificationName
(
ecalibration
)].data<std::string>();
87
const
auto
& conditions = attrList[
specificationName
(
econditions
)].data<std::string>();
88
89
addRunParameters
(
L1CaloRunParameters
(chanNum, runType, runActionName, runActionVersion, readoutConfig, readoutConfigID, ttcConfiguration, ttcConfigurationID, triggerMenu, calibration, conditions));
90
}
91
}
92
93
const
L1CaloRunParameters
*
L1CaloRunParametersContainer::runParameters
(
unsigned
int
channelId)
const
94
{
95
auto
it = std::lower_bound(std::begin(
m_runParameterss
),
96
std::end(
m_runParameterss
),
97
channelId,
98
[](
const
L1CaloRunParameters
& el,
unsigned
int
val) ->
bool
{
99
return
el.channelId() < val;
100
});
101
if
(it == std::end(
m_runParameterss
))
return
nullptr
;
102
return
&(*it);
103
}
104
105
void
L1CaloRunParametersContainer::addRunParameters
(
const
L1CaloRunParameters
&
runParameters
)
106
{
107
// insert into the correct position mainting the sorted vector
108
m_runParameterss
.insert(std::lower_bound(std::begin(
m_runParameterss
),
109
std::end(
m_runParameterss
),
110
runParameters
.channelId(),
111
[](
const
L1CaloRunParameters
& el,
unsigned
int
va) ->
bool
{
112
return el.channelId() < va;
113
}),
114
runParameters
);
115
}
116
117
void
L1CaloRunParametersContainer::dump
()
const
{
118
L1CaloRunParametersContainer::const_iterator
it = this->
begin
();
119
for
(;it!=this->
end
();++it) {
120
std::cout <<
" * item: "
<< *it <<std::endl;
121
}
122
}
AthenaAttributeList.h
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
L1CaloRunParametersContainer.h
L1CaloRunParameters.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
L1CaloRunParametersContainer::begin
const_iterator begin() const
Definition
L1CaloRunParametersContainer.h:49
L1CaloRunParametersContainer::addRunParameters
void addRunParameters(const L1CaloRunParameters &runParameters)
Definition
L1CaloRunParametersContainer.cxx:105
L1CaloRunParametersContainer::m_coolFolderKey
std::string m_coolFolderKey
Definition
L1CaloRunParametersContainer.h:59
L1CaloRunParametersContainer::makeTransient
virtual void makeTransient(const std::map< std::string, const CondAttrListCollection * > &)
Definition
L1CaloRunParametersContainer.cxx:66
L1CaloRunParametersContainer::const_iterator
std::vector< L1CaloRunParameters >::const_iterator const_iterator
Definition
L1CaloRunParametersContainer.h:48
L1CaloRunParametersContainer::runParameters
const L1CaloRunParameters * runParameters(unsigned int channelId) const
Definition
L1CaloRunParametersContainer.cxx:93
L1CaloRunParametersContainer::m_runParameterss
std::vector< L1CaloRunParameters > m_runParameterss
Definition
L1CaloRunParametersContainer.h:58
L1CaloRunParametersContainer::ettcConfigurationID
@ ettcConfigurationID
Definition
L1CaloRunParametersContainer.h:28
L1CaloRunParametersContainer::ereadoutConfigID
@ ereadoutConfigID
Definition
L1CaloRunParametersContainer.h:28
L1CaloRunParametersContainer::ettcConfiguration
@ ettcConfiguration
Definition
L1CaloRunParametersContainer.h:28
L1CaloRunParametersContainer::ereadoutConfig
@ ereadoutConfig
Definition
L1CaloRunParametersContainer.h:28
L1CaloRunParametersContainer::etriggerMenu
@ etriggerMenu
Definition
L1CaloRunParametersContainer.h:28
L1CaloRunParametersContainer::ecalibration
@ ecalibration
Definition
L1CaloRunParametersContainer.h:28
L1CaloRunParametersContainer::erunActionName
@ erunActionName
Definition
L1CaloRunParametersContainer.h:28
L1CaloRunParametersContainer::erunActionVersion
@ erunActionVersion
Definition
L1CaloRunParametersContainer.h:28
L1CaloRunParametersContainer::erunType
@ erunType
Definition
L1CaloRunParametersContainer.h:28
L1CaloRunParametersContainer::econditions
@ econditions
Definition
L1CaloRunParametersContainer.h:28
L1CaloRunParametersContainer::dump
void dump() const
Definition
L1CaloRunParametersContainer.cxx:117
L1CaloRunParametersContainer::L1CaloRunParametersContainer
L1CaloRunParametersContainer()
Definition
L1CaloRunParametersContainer.cxx:15
L1CaloRunParametersContainer::clear
virtual void clear()
Definition
L1CaloRunParametersContainer.h:40
L1CaloRunParametersContainer::end
const_iterator end() const
Definition
L1CaloRunParametersContainer.h:50
L1CaloRunParametersContainer::makePersistent
virtual DataObject * makePersistent() const
Definition
L1CaloRunParametersContainer.cxx:38
L1CaloRunParameters
Folder <-> Object mapping for /TRIGGER/L1Calo/V1/Conditions/RunParameters .
Definition
L1CaloRunParameters.h:18
Generated on
for ATLAS Offline Software by
1.17.0