ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigMonitoring
TrigMinBiasMonitoring
src
FwdZDCMonitoringAlg.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
FwdZDCMonitoringAlg.h
"
6
#include "
ZdcUtils/ZdcEventInfo.h
"
7
8
9
FwdZDCMonitoringAlg::FwdZDCMonitoringAlg
(
const
std::string &name, ISvcLocator *pSvcLocator)
10
:
AthMonitorAlgorithm
(name, pSvcLocator) {}
11
12
FwdZDCMonitoringAlg::~FwdZDCMonitoringAlg
() {}
13
14
StatusCode
FwdZDCMonitoringAlg::initialize
()
15
{
16
ATH_CHECK
(
m_zdcModuleContainerKey
.initialize());
17
ATH_CHECK
(
m_zdcModuleCalibEnergyKey
.initialize());
18
ATH_CHECK
(
m_EventInfoKey
.initialize() );
19
ATH_CHECK
(
m_eventInfoDecorKey
.initialize() );
20
return
AthMonitorAlgorithm::initialize
();
21
}
22
23
StatusCode
FwdZDCMonitoringAlg::fillHistograms
(
const
EventContext &context)
const
24
{
25
const
auto
&trigDecTool =
getTrigDecisionTool
();
26
27
SG::ReadHandle<xAOD::EventInfo>
eventInfo (
m_EventInfoKey
, context);
28
// access ZDC modules
29
SG::ReadHandle<xAOD::ZdcModuleContainer>
zdcModules(
m_zdcModuleContainerKey
, context);
30
// access ZDC aux data
31
SG::ReadDecorHandle<xAOD::ZdcModuleContainer, float>
zdcModuleCalibEnergyHandle(
m_zdcModuleCalibEnergyKey
, context);
32
33
if
(!zdcModules.
isValid
())
34
{
35
ATH_MSG_DEBUG
(
"evtStore() does not contain Zdc Collection with name "
<<
m_zdcModuleContainerKey
<<
", is the Zdc present in this sample?"
);
36
return
StatusCode::SUCCESS;
37
}
38
if
(eventInfo->isEventFlagBitSet(
xAOD::EventInfo::ForwardDet
,
ZdcEventInfo::DECODINGERROR
)){
39
ATH_MSG_WARNING
(
"Error in LUCROD decoding, cannot write monitoring histograms. Skipping this event"
);
40
return
StatusCode::SUCCESS;
41
}
42
for
(
const
auto
&trig :
m_triggerList
)
43
{
44
if
(!trigDecTool->isPassed(trig,
TrigDefs::Physics
))
45
{
46
continue
;
47
}
48
49
ATH_MSG_DEBUG
(
"Chain "
<< trig <<
" is passed: YES"
);
50
51
auto
TrigCounts =
Monitored::Scalar<std::string>
(
"TrigCounts"
, trig);
52
fill
(
"ZDCall"
, TrigCounts);
53
54
// declare the quantities which should be monitored
55
auto
e_A =
Monitored::Scalar<float>
(
"e_A"
, 0.0);
// ZDC ADC on Side A
56
auto
e_C =
Monitored::Scalar<float>
(
"e_C"
, 0.0);
// ZDC ADC on Side C
57
auto
moduleEnergy =
Monitored::Scalar<float>
(
"moduleEnergy"
, 0.0);
58
auto
moduleNum =
Monitored::Scalar<float>
(
"moduleNum"
, 0.0);
59
60
// read single modules
61
for
(
const
auto
zdcModule : *zdcModules)
62
{
63
if
(zdcModule->zdcType() == 0)
64
{
// type = 0 are big modules, type = 1 the pixels
65
// Side A
66
if
(zdcModule->zdcSide() > 0)
67
{
68
moduleEnergy = zdcModuleCalibEnergyHandle(*zdcModule);
69
moduleNum = zdcModule->zdcModule();
70
e_A += zdcModuleCalibEnergyHandle(*zdcModule);
71
fill
(trig +
"_expert"
, moduleEnergy, moduleNum);
72
fill
(
"ZDCall"
, moduleEnergy, moduleNum);
73
}
74
// Side C
75
if
(zdcModule->zdcSide() < 0)
76
{
77
moduleEnergy = zdcModuleCalibEnergyHandle(*zdcModule);
78
moduleNum = zdcModule->zdcModule() + 4.;
79
e_C += zdcModuleCalibEnergyHandle(*zdcModule);
80
fill
(trig +
"_expert"
, moduleEnergy, moduleNum);
81
fill
(
"ZDCall"
, moduleEnergy, moduleNum);
82
}
83
}
84
}
85
fill
(trig +
"_expert"
, e_A, e_C);
86
fill
(
"ZDCall"
, e_A, e_C);
87
}
88
return
StatusCode::SUCCESS;
89
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
FwdZDCMonitoringAlg.h
ZdcEventInfo.h
Define enumerations for event-level ZDC data.
AthMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition
AthMonitorAlgorithm.cxx:22
AthMonitorAlgorithm::getTrigDecisionTool
const ToolHandle< Trig::TrigDecisionTool > & getTrigDecisionTool() const
Get the trigger decision tool member.
Definition
AthMonitorAlgorithm.cxx:203
AthMonitorAlgorithm::AthMonitorAlgorithm
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition
AthMonitorAlgorithm.cxx:8
AthMonitorAlgorithm::m_EventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
Key for retrieving EventInfo from StoreGate.
Definition
AthMonitorAlgorithm.h:367
FwdZDCMonitoringAlg::m_zdcModuleContainerKey
SG::ReadHandleKey< xAOD::ZdcModuleContainer > m_zdcModuleContainerKey
Definition
FwdZDCMonitoringAlg.h:34
FwdZDCMonitoringAlg::initialize
virtual StatusCode initialize() override
initialize
Definition
FwdZDCMonitoringAlg.cxx:14
FwdZDCMonitoringAlg::m_triggerList
Gaudi::Property< std::vector< std::string > > m_triggerList
Definition
FwdZDCMonitoringAlg.h:32
FwdZDCMonitoringAlg::FwdZDCMonitoringAlg
FwdZDCMonitoringAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition
FwdZDCMonitoringAlg.cxx:9
FwdZDCMonitoringAlg::fillHistograms
virtual StatusCode fillHistograms(const EventContext &context) const override
adds event to the monitoring histograms
Definition
FwdZDCMonitoringAlg.cxx:23
FwdZDCMonitoringAlg::m_eventInfoDecorKey
SG::ReadDecorHandleKey< xAOD::EventInfo > m_eventInfoDecorKey
Definition
FwdZDCMonitoringAlg.h:39
FwdZDCMonitoringAlg::~FwdZDCMonitoringAlg
virtual ~FwdZDCMonitoringAlg()
Definition
FwdZDCMonitoringAlg.cxx:12
FwdZDCMonitoringAlg::m_zdcModuleCalibEnergyKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_zdcModuleCalibEnergyKey
Definition
FwdZDCMonitoringAlg.h:37
Monitored::Scalar
Declare a monitored scalar variable.
Definition
MonitoredScalar.h:34
SG::ReadDecorHandle
Handle class for reading a decoration on an object.
Definition
StoreGate/StoreGate/ReadDecorHandle.h:94
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::ForwardDet
@ ForwardDet
The forward detectors.
Definition
EventInfo_v1.h:338
AthMonitorAlgorithm::fill
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable > > &&variables) const
Fills a vector of variables to a group by reference.
Definition
AthMonitorAlgorithm.cxx:99
TrigDefs::Physics
static const unsigned int Physics
Definition
TrigEvent/TrigDecisionInterface/TrigDecisionInterface/Conditions.h:43
ZdcEventInfo::DECODINGERROR
@ DECODINGERROR
Definition
ZdcEventInfo.h:19
Generated on
for ATLAS Offline Software by
1.17.0