ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
TileCalorimeter
TileCalib
TileCalibBlobObjs
TileCalibBlobObjs
TileBchStatus.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef TILECALIBBLOBOBJS_TILEBCHSTATUS_H
6
#define TILECALIBBLOBOBJS_TILEBCHSTATUS_H
7
12
13
#include "
TileCalibBlobObjs/TileBchPrbs.h
"
14
#include "
CxxUtils/checker_macros.h
"
15
#include <set>
16
#include <string>
17
#include <mutex>
18
19
class
TileBchStatus
20
{
21
public
:
22
typedef
TileBchPrbs::Prb
Prb
;
23
typedef
std::set<Prb>
PrbSet
;
24
25
TileBchStatus
();
26
TileBchStatus
(
const
PrbSet
& prbSet);
27
28
TileBchStatus
&
operator+=
(
const
TileBchStatus
& rhs);
29
TileBchStatus
&
operator+=
(
const
TileBchPrbs::Prb
& prb);
30
TileBchStatus
&
operator-=
(
const
TileBchStatus
& rhs);
31
TileBchStatus
&
operator-=
(
const
TileBchPrbs::Prb
& prb);
32
bool
operator==
(
const
TileBchStatus
&other)
const
;
33
bool
operator!=
(
const
TileBchStatus
&other)
const
;
34
35
const
PrbSet
&
getPrbs
()
const
;
36
PrbSet
testFor
(
const
PrbSet
& prbSet)
const
;
37
bool
contains
(
const
Prb
& prb)
const
;
38
std::string
getString
()
const
;
39
40
static
void
initClassifierDefinitions
();
41
static
void
defineBad
(
const
TileBchStatus
& status);
42
static
void
defineNoisy
(
const
TileBchStatus
& status);
43
static
void
defineNoGainL1
(
const
TileBchStatus
& status);
44
static
void
defineBadTiming
(
const
TileBchStatus
& status);
45
static
void
defineTimingDmuBcOffset
(
const
TileBchStatus
& status);
46
static
void
defineWrongBCID
(
const
TileBchStatus
& status);
47
// cppcheck-suppress returnByReference; not actually returning member
48
static
TileBchStatus
getDefinitionBad
();
49
// cppcheck-suppress returnByReference; not actually returning member
50
static
TileBchStatus
getDefinitionNoisy
();
51
// cppcheck-suppress returnByReference; not actually returning member
52
static
TileBchStatus
getDefinitionNoGainL1
();
53
// cppcheck-suppress returnByReference; not actually returning member
54
static
TileBchStatus
getDefinitionBadTiming
();
55
// cppcheck-suppress returnByReference; not actually returning member
56
static
TileBchStatus
getDefinitionTimingDmuBcOffset
();
57
// cppcheck-suppress returnByReference; not actually returning member
58
static
TileBchStatus
getDefinitionWrongBCID
();
59
60
bool
isGood
()
const
;
61
bool
isBad
()
const
;
62
bool
isAffected
()
const
;
63
bool
isNoisy
()
const
;
64
bool
isIgnoredInDsp
()
const
;
65
bool
isIgnoredInHlt
()
const
;
66
bool
isNoGainL1
()
const
;
67
bool
isHalfGainL1
()
const
;
68
bool
isBadTiming
()
const
;
69
bool
isTimingDmuBcOffset
()
const
;
70
bool
isTimingDmuBcOffsetPos
()
const
;
71
bool
isTimingDmuBcOffsetNeg
()
const
;
72
bool
isWrongBCID
()
const
;
73
74
private
:
75
PrbSet
m_prbSet
;
76
//=== reference sets
77
struct
LockedPrbSet
78
{
79
size_t
size
()
const
80
{
81
std::lock_guard
lock
(
m_mutex
);
82
return
m_set
.size();
83
}
84
void
set
(
const
PrbSet
& s)
85
{
86
std::lock_guard
lock
(
m_mutex
);
87
m_set
= s;
88
}
89
void
set
(
PrbSet
&& s)
90
{
91
std::lock_guard
lock
(
m_mutex
);
92
m_set
= std::move(s);
93
}
94
operator
TileBchStatus
()
const
95
{
96
std::lock_guard
lock
(
m_mutex
);
97
return
TileBchStatus
(
m_set
,
true
);
98
}
99
bool
test
(
const
PrbSet
& s)
const
;
100
101
private
:
102
PrbSet
m_set
;
103
mutable
std::mutex
m_mutex
;
104
};
105
106
TileBchStatus
(
const
PrbSet
& s,
bool
) :
m_prbSet
(s) {}
107
108
static
LockedPrbSet
s_refBad
ATLAS_THREAD_SAFE
;
109
static
LockedPrbSet
s_refNoisy
ATLAS_THREAD_SAFE
;
110
static
LockedPrbSet
s_refNoGainL1
ATLAS_THREAD_SAFE
;
111
static
LockedPrbSet
s_refBadTiming
ATLAS_THREAD_SAFE
;
112
static
LockedPrbSet
s_refWrongBCID
ATLAS_THREAD_SAFE
;
113
static
LockedPrbSet
s_refTimingDmuBcOffset
ATLAS_THREAD_SAFE
;
114
};
115
116
//
117
//_________________________________________________________
118
inline
const
TileBchStatus::PrbSet
&
119
TileBchStatus::getPrbs
()
const
120
{
121
return
m_prbSet
;
122
}
123
124
//
125
//_________________________________________________________
126
inline
bool
127
TileBchStatus::contains
(
const
Prb
& prb)
const
128
{
129
return
(
m_prbSet
.find(prb) !=
m_prbSet
.end());
130
}
131
132
//
133
//_________________________________________________________
134
inline
bool
135
TileBchStatus::isGood
()
const
136
{
137
return
(
m_prbSet
.size() == 0);
138
}
139
140
//
141
//_________________________________________________________
142
inline
bool
143
TileBchStatus::isAffected
()
const
144
{
145
return
(!
isGood
());
146
}
147
148
//
149
//_________________________________________________________
150
inline
bool
151
TileBchStatus::isBad
()
const
152
{
153
return
m_prbSet
.size() ? (s_refBad.test (
m_prbSet
)) :
false
;
154
}
155
156
//
157
//_________________________________________________________
158
inline
bool
159
TileBchStatus::isNoisy
()
const
160
{
161
return
m_prbSet
.size() ? (s_refNoisy.test (
m_prbSet
)) :
false
;
162
}
163
164
//
165
//_________________________________________________________
166
inline
bool
167
TileBchStatus::isIgnoredInDsp
()
const
168
{
169
return
m_prbSet
.size() ?
contains
(
TileBchPrbs::IgnoredInDsp
) :
false
;
170
}
171
172
//
173
//_________________________________________________________
174
inline
bool
175
TileBchStatus::isIgnoredInHlt
()
const
176
{
177
return
m_prbSet
.size() ?
contains
(
TileBchPrbs::IgnoredInHlt
) :
false
;
178
}
179
180
//
181
//_________________________________________________________
182
inline
bool
183
TileBchStatus::isNoGainL1
()
const
184
{
185
return
m_prbSet
.size() ? (s_refNoGainL1.test (
m_prbSet
)) :
false
;
186
}
187
188
//
189
//_________________________________________________________
190
inline
bool
191
TileBchStatus::isHalfGainL1
()
const
192
{
193
return
m_prbSet
.size() ?
contains
(
TileBchPrbs::TrigHalfGain
) :
false
;
194
}
195
196
//
197
//_________________________________________________________
198
inline
bool
199
TileBchStatus::isBadTiming
()
const
200
{
201
return
m_prbSet
.size() ? (s_refBadTiming.test (
m_prbSet
)) :
false
;
202
}
203
204
//
205
//_________________________________________________________
206
inline
bool
207
TileBchStatus::isTimingDmuBcOffset
()
const
208
{
209
return
m_prbSet
.size() ? (s_refTimingDmuBcOffset.test (
m_prbSet
)) :
false
;
210
}
211
212
//
213
//_________________________________________________________
214
inline
bool
215
TileBchStatus::isTimingDmuBcOffsetPos
()
const
216
{
217
return
m_prbSet
.size() ? (
contains
(
TileBchPrbs::TimingDmuBcOffsetPos
) ||
contains
(
TileBchPrbs::OnlineTimingDmuBcOffsetPos
)):
false
;
218
}
219
220
//
221
//_________________________________________________________
222
inline
bool
223
TileBchStatus::isTimingDmuBcOffsetNeg
()
const
224
{
225
return
m_prbSet
.size() ? (
contains
(
TileBchPrbs::TimingDmuBcOffsetNeg
) ||
contains
(
TileBchPrbs::OnlineTimingDmuBcOffsetNeg
)):
false
;
226
}
227
228
//
229
//_________________________________________________________
230
inline
bool
231
TileBchStatus::isWrongBCID
()
const
232
{
233
return
m_prbSet
.size() ? (s_refWrongBCID.test (
m_prbSet
)) :
false
;
234
}
235
236
#endif
lock
virtual void lock()=0
Interface to allow an object to lock itself when made const in SG.
TileBchPrbs.h
checker_macros.h
Define macros for attributes used to control the static checker.
TileBchPrbs::Prb
Prb
Definition
TileBchPrbs.h:24
TileBchPrbs::OnlineTimingDmuBcOffsetNeg
@ OnlineTimingDmuBcOffsetNeg
Definition
TileBchPrbs.h:93
TileBchPrbs::TimingDmuBcOffsetPos
@ TimingDmuBcOffsetPos
Definition
TileBchPrbs.h:72
TileBchPrbs::IgnoredInHlt
@ IgnoredInHlt
Definition
TileBchPrbs.h:88
TileBchPrbs::TimingDmuBcOffsetNeg
@ TimingDmuBcOffsetNeg
Definition
TileBchPrbs.h:73
TileBchPrbs::TrigHalfGain
@ TrigHalfGain
Definition
TileBchPrbs.h:81
TileBchPrbs::IgnoredInDsp
@ IgnoredInDsp
Definition
TileBchPrbs.h:87
TileBchPrbs::OnlineTimingDmuBcOffsetPos
@ OnlineTimingDmuBcOffsetPos
Definition
TileBchPrbs.h:92
TileBchStatus::operator==
bool operator==(const TileBchStatus &other) const
Definition
TileBchStatus.cxx:75
TileBchStatus::operator+=
TileBchStatus & operator+=(const TileBchStatus &rhs)
Definition
TileBchStatus.cxx:34
TileBchStatus::initClassifierDefinitions
static void initClassifierDefinitions()
Definition
TileBchStatus.cxx:91
TileBchStatus::testFor
PrbSet testFor(const PrbSet &prbSet) const
Definition
TileBchStatus.cxx:253
TileBchStatus::isTimingDmuBcOffsetPos
bool isTimingDmuBcOffsetPos() const
Definition
TileBchStatus.h:215
TileBchStatus::isGood
bool isGood() const
Definition
TileBchStatus.h:135
TileBchStatus::TileBchStatus
TileBchStatus()
Definition
TileBchStatus.cxx:18
TileBchStatus::getDefinitionNoisy
static TileBchStatus getDefinitionNoisy()
Definition
TileBchStatus.cxx:213
TileBchStatus::defineTimingDmuBcOffset
static void defineTimingDmuBcOffset(const TileBchStatus &status)
Definition
TileBchStatus.cxx:189
TileBchStatus::operator!=
bool operator!=(const TileBchStatus &other) const
Definition
TileBchStatus.cxx:83
TileBchStatus::defineNoGainL1
static void defineNoGainL1(const TileBchStatus &status)
Definition
TileBchStatus.cxx:173
TileBchStatus::isTimingDmuBcOffset
bool isTimingDmuBcOffset() const
Definition
TileBchStatus.h:207
TileBchStatus::getDefinitionWrongBCID
static TileBchStatus getDefinitionWrongBCID()
Definition
TileBchStatus.cxx:245
TileBchStatus::PrbSet
std::set< Prb > PrbSet
Definition
TileBchStatus.h:23
TileBchStatus::TileBchStatus
TileBchStatus(const PrbSet &s, bool)
Definition
TileBchStatus.h:106
TileBchStatus::isNoGainL1
bool isNoGainL1() const
Definition
TileBchStatus.h:183
TileBchStatus::contains
bool contains(const Prb &prb) const
Definition
TileBchStatus.h:127
TileBchStatus::defineBadTiming
static void defineBadTiming(const TileBchStatus &status)
Definition
TileBchStatus.cxx:181
TileBchStatus::isHalfGainL1
bool isHalfGainL1() const
Definition
TileBchStatus.h:191
TileBchStatus::getDefinitionNoGainL1
static TileBchStatus getDefinitionNoGainL1()
Definition
TileBchStatus.cxx:221
TileBchStatus::isAffected
bool isAffected() const
Definition
TileBchStatus.h:143
TileBchStatus::m_prbSet
PrbSet m_prbSet
Definition
TileBchStatus.h:75
TileBchStatus::getString
std::string getString() const
Definition
TileBchStatus.cxx:264
TileBchStatus::isIgnoredInHlt
bool isIgnoredInHlt() const
Definition
TileBchStatus.h:175
TileBchStatus::getDefinitionBadTiming
static TileBchStatus getDefinitionBadTiming()
Definition
TileBchStatus.cxx:229
TileBchStatus::operator-=
TileBchStatus & operator-=(const TileBchStatus &rhs)
Definition
TileBchStatus.cxx:54
TileBchStatus::getDefinitionBad
static TileBchStatus getDefinitionBad()
Definition
TileBchStatus.cxx:205
TileBchStatus::isBadTiming
bool isBadTiming() const
Definition
TileBchStatus.h:199
TileBchStatus::isIgnoredInDsp
bool isIgnoredInDsp() const
Definition
TileBchStatus.h:167
TileBchStatus::getDefinitionTimingDmuBcOffset
static TileBchStatus getDefinitionTimingDmuBcOffset()
Definition
TileBchStatus.cxx:237
TileBchStatus::defineNoisy
static void defineNoisy(const TileBchStatus &status)
Definition
TileBchStatus.cxx:165
TileBchStatus::isWrongBCID
bool isWrongBCID() const
Definition
TileBchStatus.h:231
TileBchStatus::isTimingDmuBcOffsetNeg
bool isTimingDmuBcOffsetNeg() const
Definition
TileBchStatus.h:223
TileBchStatus::ATLAS_THREAD_SAFE
static LockedPrbSet s_refBad ATLAS_THREAD_SAFE
Definition
TileBchStatus.h:108
TileBchStatus::defineBad
static void defineBad(const TileBchStatus &status)
Definition
TileBchStatus.cxx:157
TileBchStatus::isNoisy
bool isNoisy() const
Definition
TileBchStatus.h:159
TileBchStatus::getPrbs
const PrbSet & getPrbs() const
Definition
TileBchStatus.h:119
TileBchStatus::isBad
bool isBad() const
Definition
TileBchStatus.h:151
TileBchStatus::defineWrongBCID
static void defineWrongBCID(const TileBchStatus &status)
Definition
TileBchStatus.cxx:197
TileBchStatus::Prb
TileBchPrbs::Prb Prb
Definition
TileBchStatus.h:22
TileBchStatus::LockedPrbSet
Definition
TileBchStatus.h:78
TileBchStatus::LockedPrbSet::set
void set(PrbSet &&s)
Definition
TileBchStatus.h:89
TileBchStatus::LockedPrbSet::set
void set(const PrbSet &s)
Definition
TileBchStatus.h:84
TileBchStatus::LockedPrbSet::m_mutex
std::mutex m_mutex
Definition
TileBchStatus.h:103
TileBchStatus::LockedPrbSet::m_set
PrbSet m_set
Definition
TileBchStatus.h:102
TileBchStatus::LockedPrbSet::test
bool test(const PrbSet &s) const
Definition
TileBchStatus.cxx:275
TileBchStatus::LockedPrbSet::size
size_t size() const
Definition
TileBchStatus.h:79
Generated on
for ATLAS Offline Software by
1.17.0