ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
DataQuality
DataQualityTools
src
DQTDataFlowMonAlg.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// ********************************************************************
6
//
7
// NAME: DQTDataFlowMonAlg.cxx
8
// PACKAGE: DataQualityTools
9
//
10
// AUTHORS: Peter Onyisi (ponyisi@cern.ch)
11
//
12
//
13
// ********************************************************************
14
15
#include "
DataQualityTools/DQTDataFlowMonAlg.h
"
16
#include "
AthenaMonitoringKernel/Monitored.h
"
17
18
DQTDataFlowMonAlg::DQTDataFlowMonAlg
(
const
std::string& name,
19
ISvcLocator* pSvcLocator )
20
:
AthMonitorAlgorithm
(name, pSvcLocator)
21
{
22
}
23
24
StatusCode
25
DQTDataFlowMonAlg::initialize
()
26
{
27
ATH_CHECK
(
AthMonitorAlgorithm::initialize
());
28
ATH_CHECK
(
m_TileStatusKey
.initialize());
29
ATH_CHECK
(
m_atlasReadyFilter
.retrieve(
/*not isMC*/
));
30
return
StatusCode::SUCCESS;
31
}
32
33
StatusCode
34
DQTDataFlowMonAlg::fillHistograms
(
const
EventContext& ctx )
const
35
{
36
ATH_MSG_DEBUG
(
"in fillHistograms()"
);
37
38
using namespace
Monitored
;
39
40
auto
environment
=
Scalar
(
"environment"
, (
int
)
m_environment
);
41
const
auto
& group =
getGroup
(
"default"
);
42
fill
(group,
environment
);
43
44
if
(
m_environment
!=
Environment_t::tier0Raw
) {
45
SG::ReadHandle<xAOD::EventInfo>
evtinfo {
GetEventInfo
(ctx) };
46
if
(! evtinfo.
isValid
()) {
47
ATH_MSG_ERROR
(
"Could not retrieve EventInfo"
);
48
return
StatusCode::FAILURE;
49
}
else
{
50
if
(evtinfo->eventType(
xAOD::EventInfo::IS_SIMULATION
)) {
51
auto
weight =
Scalar<double>
(
"mcweight"
, evtinfo->eventType(
xAOD::EventInfo::IS_SIMULATION
) ? evtinfo->mcEventWeight() : 1);
52
auto
lb
=
Scalar
(
"LB"
, evtinfo->lumiBlock());
53
fill
(group, weight,
lb
);
54
}
else
{
55
//Monitor AtlasReady flag .. for real-data only
56
bool
atlasReady=
m_atlasReadyFilter
->accept(ctx);
57
auto
isReady=
Scalar<short>
(
"atlasready"
,atlasReady);
58
fill
(group,isReady);
59
}
60
std::vector<int> detstatevec(
xAOD::EventInfo::nDets
+1);
61
std::vector<int> detstatevec_idx(
xAOD::EventInfo::nDets
+1);
62
std::iota(detstatevec_idx.begin(), detstatevec_idx.end(), 0);
63
64
auto
detstates =
Collection
(
"detstates"
, detstatevec);
65
auto
detstates_idx =
Collection
(
"detstates_idx"
, detstatevec_idx);
66
xAOD::EventInfo::EventFlagErrorState
worststate =
xAOD::EventInfo::NotSet
;
67
for
(
int
i = 0; i <
xAOD::EventInfo::nDets
; i++) {
68
xAOD::EventInfo::EventFlagErrorState
detstate = evtinfo->errorState((
xAOD::EventInfo::EventFlagSubDet
) i);
69
detstatevec[i] = detstate;
70
if
(detstate > worststate) worststate = detstate;
71
}
72
detstatevec[
xAOD::EventInfo::nDets
] = worststate;
73
fill
(group, detstates, detstates_idx);
74
75
76
77
}
78
}
79
80
return
StatusCode::SUCCESS;
81
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
DQTDataFlowMonAlg.h
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
AthMonitorAlgorithm::getGroup
const ToolHandle< GenericMonitoringTool > & getGroup(const std::string &name) const
Get a specific monitoring tool from the tool handle array.
Definition
AthMonitorAlgorithm.cxx:168
AthMonitorAlgorithm::environment
Environment_t environment() const
Accessor functions for the environment.
Definition
AthMonitorAlgorithm.h:208
AthMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition
AthMonitorAlgorithm.cxx:22
AthMonitorAlgorithm::Environment_t::tier0Raw
@ tier0Raw
Definition
AthMonitorAlgorithm.h:179
AthMonitorAlgorithm::GetEventInfo
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.).
Definition
AthMonitorAlgorithm.cxx:111
AthMonitorAlgorithm::AthMonitorAlgorithm
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition
AthMonitorAlgorithm.cxx:8
AthMonitorAlgorithm::m_environment
AthMonitorAlgorithm::Environment_t m_environment
Instance of the Environment_t enum.
Definition
AthMonitorAlgorithm.h:355
DQTDataFlowMonAlg::m_TileStatusKey
SG::ReadDecorHandleKey< xAOD::EventInfo > m_TileStatusKey
Definition
DQTDataFlowMonAlg.h:35
DQTDataFlowMonAlg::m_atlasReadyFilter
ToolHandle< IDQFilterTool > m_atlasReadyFilter
Definition
DQTDataFlowMonAlg.h:32
DQTDataFlowMonAlg::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition
DQTDataFlowMonAlg.cxx:34
DQTDataFlowMonAlg::DQTDataFlowMonAlg
DQTDataFlowMonAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition
DQTDataFlowMonAlg.cxx:18
DQTDataFlowMonAlg::initialize
virtual StatusCode initialize() override
initialize
Definition
DQTDataFlowMonAlg.cxx:25
Monitored::Scalar
Declare a monitored scalar variable.
Definition
MonitoredScalar.h:34
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
xAOD::EventInfo_v1::EventFlagSubDet
EventFlagSubDet
Sub-detector types for which we store event-level flags.
Definition
EventInfo_v1.h:331
xAOD::EventInfo_v1::nDets
@ nDets
Number of sub-detector type in this enumeration.
Definition
EventInfo_v1.h:342
xAOD::EventInfo_v1::EventFlagErrorState
EventFlagErrorState
States that a given sub-detector could be in.
Definition
EventInfo_v1.h:346
xAOD::EventInfo_v1::NotSet
@ NotSet
The flag was not set to anything.
Definition
EventInfo_v1.h:347
xAOD::EventInfo_v1::IS_SIMULATION
@ IS_SIMULATION
true: simulation, false: data
Definition
EventInfo_v1.h:151
lb
int lb
Definition
globals.cxx:23
Monitored
Generic monitoring tool for athena components.
Definition
GenericMonitoringTool.h:28
Monitored::Collection
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
Definition
MonitoredCollection.h:38
fill
void fill(H5::Group &out_file, size_t iterations)
Definition
test-half-precision.cxx:64
Generated on
for ATLAS Offline Software by
1.17.0