ATLAS Offline Software
Loading...
Searching...
No Matches
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
15#include <set>
16#include <string>
17#include <mutex>
18
20{
21 public:
23 typedef std::set<Prb> PrbSet;
24
26 TileBchStatus(const PrbSet& prbSet);
27
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
49 // cppcheck-suppress returnByReference; not actually returning member
51 // cppcheck-suppress returnByReference; not actually returning member
53 // cppcheck-suppress returnByReference; not actually returning member
55 // cppcheck-suppress returnByReference; not actually returning member
57 // cppcheck-suppress returnByReference; not actually returning member
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:
76 //=== reference sets
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:
103 mutable std::mutex m_mutex;
104 };
105
106 TileBchStatus (const PrbSet& s, bool) : m_prbSet (s) {}
107
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//_________________________________________________________
118inline const TileBchStatus::PrbSet&
120{
121 return m_prbSet;
122}
123
124//
125//_________________________________________________________
126inline bool
128{
129 return (m_prbSet.find(prb) != m_prbSet.end());
130}
131
132//
133//_________________________________________________________
134inline bool
136{
137 return (m_prbSet.size() == 0);
138}
139
140//
141//_________________________________________________________
142inline bool
144{
145 return (!isGood());
146}
147
148//
149//_________________________________________________________
150inline bool
152{
153 return m_prbSet.size() ? (s_refBad.test (m_prbSet)) : false;
154}
155
156//
157//_________________________________________________________
158inline bool
160{
161 return m_prbSet.size() ? (s_refNoisy.test (m_prbSet)) : false;
162}
163
164//
165//_________________________________________________________
166inline bool
168{
169 return m_prbSet.size() ? contains(TileBchPrbs::IgnoredInDsp) : false;
170}
171
172//
173//_________________________________________________________
174inline bool
176{
177 return m_prbSet.size() ? contains(TileBchPrbs::IgnoredInHlt) : false;
178}
179
180//
181//_________________________________________________________
182inline bool
184{
185 return m_prbSet.size() ? (s_refNoGainL1.test (m_prbSet)) : false;
186}
187
188//
189//_________________________________________________________
190inline bool
192{
193 return m_prbSet.size() ? contains(TileBchPrbs::TrigHalfGain) : false;
194}
195
196//
197//_________________________________________________________
198inline bool
200{
201 return m_prbSet.size() ? (s_refBadTiming.test (m_prbSet)) : false;
202}
203
204//
205//_________________________________________________________
206inline bool
208{
209 return m_prbSet.size() ? (s_refTimingDmuBcOffset.test (m_prbSet)) : false;
210}
211
212//
213//_________________________________________________________
214inline bool
219
220//
221//_________________________________________________________
222inline bool
227
228//
229//_________________________________________________________
230inline bool
232{
233 return m_prbSet.size() ? (s_refWrongBCID.test (m_prbSet)) : false;
234}
235
236#endif
Define macros for attributes used to control the static checker.
@ OnlineTimingDmuBcOffsetNeg
Definition TileBchPrbs.h:93
@ TimingDmuBcOffsetPos
Definition TileBchPrbs.h:72
@ TimingDmuBcOffsetNeg
Definition TileBchPrbs.h:73
@ OnlineTimingDmuBcOffsetPos
Definition TileBchPrbs.h:92
bool operator==(const TileBchStatus &other) const
TileBchStatus & operator+=(const TileBchStatus &rhs)
static void initClassifierDefinitions()
PrbSet testFor(const PrbSet &prbSet) const
bool isTimingDmuBcOffsetPos() const
bool isGood() const
static TileBchStatus getDefinitionNoisy()
static void defineTimingDmuBcOffset(const TileBchStatus &status)
bool operator!=(const TileBchStatus &other) const
static void defineNoGainL1(const TileBchStatus &status)
bool isTimingDmuBcOffset() const
static TileBchStatus getDefinitionWrongBCID()
std::set< Prb > PrbSet
TileBchStatus(const PrbSet &s, bool)
bool isNoGainL1() const
bool contains(const Prb &prb) const
static void defineBadTiming(const TileBchStatus &status)
bool isHalfGainL1() const
static TileBchStatus getDefinitionNoGainL1()
bool isAffected() const
std::string getString() const
bool isIgnoredInHlt() const
static TileBchStatus getDefinitionBadTiming()
TileBchStatus & operator-=(const TileBchStatus &rhs)
static TileBchStatus getDefinitionBad()
bool isBadTiming() const
bool isIgnoredInDsp() const
static TileBchStatus getDefinitionTimingDmuBcOffset()
static void defineNoisy(const TileBchStatus &status)
bool isWrongBCID() const
bool isTimingDmuBcOffsetNeg() const
static LockedPrbSet s_refBad ATLAS_THREAD_SAFE
static void defineBad(const TileBchStatus &status)
bool isNoisy() const
const PrbSet & getPrbs() const
bool isBad() const
static void defineWrongBCID(const TileBchStatus &status)
TileBchPrbs::Prb Prb
void set(const PrbSet &s)
bool test(const PrbSet &s) const