ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
TrigT1CaloCalibConditions
src
L1CaloPprChanStrategyContainer.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/L1CaloPprChanStrategyContainer.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/L1CaloPprChanStrategy.h"
14
15
L1CaloPprChanStrategyContainer::L1CaloPprChanStrategyContainer
()
16
:
AbstractL1CaloPersistentCondition
(
"CondAttrListCollection"
)
17
{
18
this->
addSpecification
(
eStrategy
,
"Strategy"
,
"string"
);
19
this->
addSpecification
(
eCode
,
"Code"
,
"unsigned int"
);
20
this->
addSpecification
(
eTimingRegime
,
"TimingRegime"
,
"string"
);
21
this->
addSpecification
(
eDescription
,
"Description"
,
"string"
);
22
}
23
24
L1CaloPprChanStrategyContainer::L1CaloPprChanStrategyContainer
(
const
std::string& folderKey)
25
:
L1CaloPprChanStrategyContainer
()
// delegating constructor
26
{
27
// cppcheck-suppress useInitializationList
28
m_coolFolderKey
= folderKey;
29
}
30
31
32
DataObject*
L1CaloPprChanStrategyContainer::makePersistent
()
const
33
{
34
using
std::make_unique;
35
36
if
(
m_coolFolderKey
.empty())
return
nullptr
;
37
38
auto
* attrSpecification = this->
createAttributeListSpecification
();
39
if
(!attrSpecification || !attrSpecification->size())
return
nullptr
;
40
41
auto
attrListCollection = make_unique<CondAttrListCollection>(
true
);
42
for
(
const
auto
& item :
m_pprChanStrategys
) {
43
AthenaAttributeList
attrList(*attrSpecification);
44
attrList[
specificationName
(
eStrategy
)].setValue(item.strategy());
45
attrList[
specificationName
(
eCode
)].setValue(item.code());
46
attrList[
specificationName
(
eTimingRegime
)].setValue(item.timingRegime());
47
attrList[
specificationName
(
eDescription
)].setValue(item.description());
48
49
attrListCollection->add(item.channelId(), attrList);
50
}
51
return
static_cast<
DataObject*
>
(attrListCollection.release());
52
}
53
54
void
L1CaloPprChanStrategyContainer::makeTransient
(
const
std::map<std::string, const CondAttrListCollection*>& condAttrListCollectionMap)
55
{
56
clear
();
57
58
auto
it = condAttrListCollectionMap.find(
m_coolFolderKey
);
59
if
(it == std::end(condAttrListCollectionMap))
return
;
60
61
auto
attrListCollection = it->second;
62
for
(
const
auto
& item : *attrListCollection) {
63
auto
chanNum = item.first;
64
const
auto
& attrList = item.second;
65
66
const
auto
& strategy = attrList[
specificationName
(
eStrategy
)].data<std::string>();
67
auto
code = attrList[
specificationName
(
eCode
)].data<
unsigned
int
>();
68
const
auto
& timingRegime = attrList[
specificationName
(
eTimingRegime
)].data<std::string>();
69
const
auto
&
description
= attrList[
specificationName
(
eDescription
)].data<std::string>();
70
71
addPprChanStrategy
(
L1CaloPprChanStrategy
(chanNum, strategy, code, timingRegime,
description
));
72
}
73
}
74
75
const
L1CaloPprChanStrategy
*
L1CaloPprChanStrategyContainer::pprChanStrategy
(
unsigned
int
channelId)
const
76
{
77
auto
it = std::lower_bound(std::begin(
m_pprChanStrategys
),
78
std::end(
m_pprChanStrategys
),
79
channelId,
80
[](
const
L1CaloPprChanStrategy
& el,
unsigned
int
val) ->
bool
{
81
return
el.channelId() < val;
82
});
83
if
(it == std::end(
m_pprChanStrategys
))
return
nullptr
;
84
return
&(*it);
85
}
86
87
void
L1CaloPprChanStrategyContainer::addPprChanStrategy
(
const
L1CaloPprChanStrategy
&
pprChanStrategy
)
88
{
89
// insert into the correct position mainting the sorted vector
90
m_pprChanStrategys
.insert(std::lower_bound(std::begin(
m_pprChanStrategys
),
91
std::end(
m_pprChanStrategys
),
92
pprChanStrategy
.channelId(),
93
[](
const
L1CaloPprChanStrategy
& el,
unsigned
int
va) ->
bool
{
94
return el.channelId() < va;
95
}),
96
pprChanStrategy
);
97
}
98
99
void
L1CaloPprChanStrategyContainer::dump
()
const
{
100
L1CaloPprChanStrategyContainer::const_iterator
it = this->
begin
();
101
for
(;it!=this->
end
();++it) {
102
std::cout <<
" * item: "
<< *it <<std::endl;
103
}
104
}
AthenaAttributeList.h
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
L1CaloPprChanStrategyContainer.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
L1CaloPprChanStrategyContainer::m_coolFolderKey
std::string m_coolFolderKey
Definition
L1CaloPprChanStrategyContainer.h:58
L1CaloPprChanStrategyContainer::makePersistent
virtual DataObject * makePersistent() const
Definition
L1CaloPprChanStrategyContainer.cxx:32
L1CaloPprChanStrategyContainer::L1CaloPprChanStrategyContainer
L1CaloPprChanStrategyContainer()
Definition
L1CaloPprChanStrategyContainer.cxx:15
L1CaloPprChanStrategyContainer::addPprChanStrategy
void addPprChanStrategy(const L1CaloPprChanStrategy &pprChanStrategy)
Definition
L1CaloPprChanStrategyContainer.cxx:87
L1CaloPprChanStrategyContainer::begin
const_iterator begin() const
Definition
L1CaloPprChanStrategyContainer.h:48
L1CaloPprChanStrategyContainer::clear
virtual void clear()
Definition
L1CaloPprChanStrategyContainer.h:39
L1CaloPprChanStrategyContainer::const_iterator
std::vector< L1CaloPprChanStrategy >::const_iterator const_iterator
Definition
L1CaloPprChanStrategyContainer.h:47
L1CaloPprChanStrategyContainer::eTimingRegime
@ eTimingRegime
Definition
L1CaloPprChanStrategyContainer.h:27
L1CaloPprChanStrategyContainer::eStrategy
@ eStrategy
Definition
L1CaloPprChanStrategyContainer.h:27
L1CaloPprChanStrategyContainer::eDescription
@ eDescription
Definition
L1CaloPprChanStrategyContainer.h:27
L1CaloPprChanStrategyContainer::eCode
@ eCode
Definition
L1CaloPprChanStrategyContainer.h:27
L1CaloPprChanStrategyContainer::pprChanStrategy
const L1CaloPprChanStrategy * pprChanStrategy(unsigned int channelId) const
Definition
L1CaloPprChanStrategyContainer.cxx:75
L1CaloPprChanStrategyContainer::dump
void dump() const
Definition
L1CaloPprChanStrategyContainer.cxx:99
L1CaloPprChanStrategyContainer::m_pprChanStrategys
std::vector< L1CaloPprChanStrategy > m_pprChanStrategys
Definition
L1CaloPprChanStrategyContainer.h:57
L1CaloPprChanStrategyContainer::end
const_iterator end() const
Definition
L1CaloPprChanStrategyContainer.h:49
L1CaloPprChanStrategyContainer::makeTransient
virtual void makeTransient(const std::map< std::string, const CondAttrListCollection * > &)
Definition
L1CaloPprChanStrategyContainer.cxx:54
L1CaloPprChanStrategy
Folder <-> Object mapping for /TRIGGER/L1Calo/V2/Configuration/PprChanStrategy .
Definition
L1CaloPprChanStrategy.h:17
description
std::string description
glabal timer - how long have I taken so far?
Definition
hcg.cxx:93
Generated on
for ATLAS Offline Software by
1.17.0