ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
L1Topo
L1TopoInterfaces
Root
ParameterSpace.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
// ParameterSpace.cxx
5
// TopoCore
6
// Created by Joerg Stelzer on 11/18/12.
7
8
#include "
L1TopoInterfaces/ParameterSpace.h
"
9
#include "
L1TopoCommon/Exception.h
"
10
#include <iostream>
11
12
using namespace
std
;
13
using namespace
TCS
;
14
15
16
ParameterSpace
&
17
ParameterSpace::addParameter
(std::string_view name,
TCS::parType_t
value) {
18
return
addParameter
(
Parameter
(name, value));
19
}
20
21
22
ParameterSpace
&
23
ParameterSpace::addParameter
(std::string_view name,
TCS::parType_t
value,
unsigned
int
selection
) {
24
return
addParameter
(
Parameter
(name, value,
selection
));
25
}
26
27
28
// adds a new Parameter, throws TCS::Exception if parameter exists isDefault flag will be set to true
29
ParameterSpace
&
30
ParameterSpace::addParameter
(
const
TCS::Parameter
& p) {
31
if
(
contains
(p.name(), p.selection()) ) {
32
TCS_EXCEPTION
(
"ParameterSpace: parameter '"
<< p.name() <<
"|"
<< p.selection() <<
33
"' exists already in parameter space of '"
<<
algName
() <<
"' and can't be added"
);
34
}
35
m_parameters
.push_back(p);
36
m_parameters
.back().setIsDefault(
true
);
37
return
*
this
;
38
}
39
40
41
ParameterSpace
&
42
ParameterSpace::setParameter
(std::string_view name,
TCS::parType_t
value,
unsigned
int
selection
) {
43
return
setParameter
(
Parameter
(name, value,
selection
));
44
}
45
46
47
// sets a parameter value, throws TCS::Exception if parameter doesn't exist
48
// sets isDefault flag to false
49
ParameterSpace
&
50
ParameterSpace::setParameter
(
const
Parameter
& p) {
51
52
bool
foundParameter =
false
;
53
54
//cout << "Setting parameter " << p.name() << "[" << p.selection() << "] for algorithm " << algName() << endl;
55
56
for
(
TCS::Parameter
& pa :
m_parameters
) {
57
foundParameter =
58
( !pa.isExtended() && pa.name()==p.name() ) ||
59
( pa.isExtended() && pa.name()==p.name() && pa.selection()==p.selection() );
60
61
if
(! foundParameter)
continue
;
62
63
if
( pa.isExtended() ) {
64
pa.setValue(p.value());
65
pa.setPosition(p.position());
66
pa.setSelection(p.selection());
67
pa.setIsExtended(
true
);
// for parameters to print correctly
68
}
else
{
69
pa.setValue(p.value());
70
pa.setIsExtended(
false
);
71
}
72
pa.setIsDefault(
false
);
73
break
;
74
}
75
76
if
( ! foundParameter ) {
77
cout <<
"Parameter '"
<< p.name() <<
"' not found for algorithm "
<<
algName
()
78
<<
" and can't be set. Available parameters are"
<< endl;
79
80
for
(
TCS::Parameter
& pa :
m_parameters
) {
81
cout <<
" "
<< pa.name() <<
" "
<< (pa.isExtended()?
"array"
:
"single"
) << endl;
82
}
83
TCS_EXCEPTION
(
"Parameter '"
<< p.name() <<
"' not found for algorithm "
<<
algName
() <<
" and can't be set."
);
84
}
85
return
*
this
;
86
}
87
88
89
90
91
92
bool
93
ParameterSpace::contains
(std::string_view parameterName,
unsigned
int
selection
)
const
{
94
for
(
const
Parameter
& pa:
m_parameters
)
95
if
( (pa.name() == parameterName) && (pa.selection() ==
selection
) )
return
true
;
96
return
false
;
97
}
98
99
100
101
const
Parameter
&
102
ParameterSpace::parameter
(std::string_view parameterName)
const
{
103
for
(
const
Parameter
& pa :
m_parameters
) {
104
if
( pa.isExtended() )
continue
;
105
if
( pa.name() == parameterName )
106
return
pa;
107
}
108
TCS_EXCEPTION
(
"Single parameter "
<< parameterName <<
" not found for algorithm "
<<
algName
());
109
}
110
111
112
const
Parameter
&
113
ParameterSpace::parameter
(std::string_view parameterName,
unsigned
int
selection
)
const
{
114
for
(
const
Parameter
& pa :
m_parameters
) {
115
if
( ! pa.isExtended() )
continue
;
116
if
( (pa.name() == parameterName) && (pa.selection() ==
selection
) )
117
return
pa;
118
}
119
TCS_EXCEPTION
(
"Array parameter "
<< parameterName <<
"["
<<
selection
<<
"] not found for algorithm "
<<
algName
());
120
}
121
122
123
namespace
TCS
{
124
125
126
std::ostream &
127
operator<<
(std::ostream &o,
const
TCS::ParameterSpace
& ps) {
128
if
( ps.isInitialized()) {
129
o <<
" parameters: "
<< ps().size();
130
for
(
const
TCS::Parameter
& parameter : ps) {
131
o << endl <<
" "
<< parameter;
132
}
133
}
134
return
o;
135
}
136
137
138
}
ParameterSpace.h
Exception.h
TCS_EXCEPTION
#define TCS_EXCEPTION(MSG)
Definition
Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Exception.h:15
TCS::ParameterSpace
Definition
ParameterSpace.h:22
TCS::ParameterSpace::parameter
const Parameter & parameter(std::string_view parameterName) const
Definition
ParameterSpace.cxx:102
TCS::ParameterSpace::m_parameters
data_t m_parameters
Definition
ParameterSpace.h:81
TCS::ParameterSpace::contains
bool contains(std::string_view parameterName, unsigned int selection) const
Definition
ParameterSpace.cxx:93
TCS::ParameterSpace::setParameter
ParameterSpace & setParameter(const Parameter &p)
Definition
ParameterSpace.cxx:50
TCS::ParameterSpace::algName
const std::string & algName() const
Definition
ParameterSpace.h:40
TCS::ParameterSpace::addParameter
ParameterSpace & addParameter(const Parameter &p)
Definition
ParameterSpace.cxx:30
TCS::Parameter
Definition
Parameter.h:25
selection
const std::string selection
Definition
fbtTestBasics.cxx:75
TCS
Definition
AnomalyDetectionBDT.h:18
TCS::operator<<
std::ostream & operator<<(std::ostream &os, const TCS::Bin &bin)
Definition
AnomalyDetectionBDT.cxx:50
TCS::parType_t
uint32_t parType_t
Definition
Parameter.h:23
std
STL namespace.
Generated on
for ATLAS Offline Software by
1.17.0