ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigMonitoring
TrigMinBiasMonitoring
src
TrigAFPSidHypoMonitoringAlg.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TrigAFPSidHypoMonitoringAlg.h
"
6
7
#include "
xAODForward/AFPTrackContainer.h
"
8
#include "
xAODForward/AFPTrack.h
"
9
#include "
TrigDecisionTool/TrigDecisionTool.h
"
10
#include <cmath>
11
12
TrigAFPSidHypoMonitoringAlg::TrigAFPSidHypoMonitoringAlg
(
const
std::string& name, ISvcLocator* pSvcLocator) :
13
AthMonitorAlgorithm
(name, pSvcLocator)
14
{
15
}
16
17
TrigAFPSidHypoMonitoringAlg::~TrigAFPSidHypoMonitoringAlg
()
18
{
19
}
20
21
StatusCode
TrigAFPSidHypoMonitoringAlg::initialize
()
22
{
23
ATH_CHECK
(
AthMonitorAlgorithm::initialize
());
24
25
ATH_CHECK
(
m_AFPtrackKey
.initialize());
26
ATH_CHECK
(
m_AFPtrackOffKey
.initialize());
27
return
StatusCode::SUCCESS;
28
}
29
30
StatusCode
TrigAFPSidHypoMonitoringAlg::finalize
()
31
{
32
return
StatusCode::SUCCESS;
33
}
34
35
StatusCode
TrigAFPSidHypoMonitoringAlg::fillHistograms
(
const
EventContext& context)
const
36
{
37
38
SG::ReadHandle<xAOD::AFPTrackContainer>
tracksAFP(
m_AFPtrackKey
, context);
39
40
SG::ReadHandle<xAOD::AFPTrackContainer>
tracksAFPoff(
m_AFPtrackOffKey
, context);
41
42
ATH_MSG_DEBUG
(
"AFP track size online/offline:"
<<tracksAFP.
get
()->size()<<
"/"
<<tracksAFPoff.
get
()->size());
43
44
auto
xDiff =
Monitored::Scalar
(
"xDiff"
,-999.);
45
auto
yDiff =
Monitored::Scalar
(
"yDiff"
,-999.);
46
47
// Match online track to offline
48
for
(
const
auto
* track: *tracksAFP){
49
float
dRmin = 9e9;
50
for
(
const
auto
* off_track: *tracksAFPoff){
51
52
float
dx = track->xLocal()-off_track->xLocal();
53
float
dy = track->yLocal()-off_track->yLocal();
54
float
dR = std::hypot(dx, dy);
55
56
if
(dR<dRmin){
57
dRmin = dR;
58
xDiff = dx;
59
yDiff = dy;
60
}
61
}
// End of loop over offline tracks
62
63
fill
(
"AFPCoarse"
, xDiff, yDiff);
64
65
}
// End of loop over online tracks
66
67
// in future should be split into many smaller methods called from here
68
std::vector<std::string> passedAFPChains = {
"all"
};
// also includes ALL events counter
69
for
(
const
auto
& chainName:
m_chains
) {
70
if
(
getTrigDecisionTool
()->isPassed(chainName) ){
71
passedAFPChains.emplace_back(chainName);
72
}
73
74
}
75
if
( passedAFPChains.size() > 1) passedAFPChains.emplace_back(
"AFP"
);
76
auto
whichTrigger =
Monitored::Collection
(
"TrigCounts"
, passedAFPChains);
77
fill
(
"AFPCoarse"
, whichTrigger);
78
79
return
StatusCode::SUCCESS;
80
}
81
AFPTrackContainer.h
AFPTrack.h
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
TrigAFPSidHypoMonitoringAlg.h
TrigDecisionTool.h
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
Monitored::Scalar
Declare a monitored scalar variable.
Definition
MonitoredScalar.h:34
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::ReadHandle::get
const_pointer_type get() const
Dereference the pointer, but don't cache anything.
TrigAFPSidHypoMonitoringAlg::initialize
virtual StatusCode initialize() override
initialize
Definition
TrigAFPSidHypoMonitoringAlg.cxx:21
TrigAFPSidHypoMonitoringAlg::m_AFPtrackOffKey
SG::ReadHandleKey< xAOD::AFPTrackContainer > m_AFPtrackOffKey
Definition
TrigAFPSidHypoMonitoringAlg.h:34
TrigAFPSidHypoMonitoringAlg::m_chains
Gaudi::Property< std::vector< std::string > > m_chains
Definition
TrigAFPSidHypoMonitoringAlg.h:31
TrigAFPSidHypoMonitoringAlg::fillHistograms
virtual StatusCode fillHistograms(const EventContext &context) const override
adds event to the monitoring histograms
Definition
TrigAFPSidHypoMonitoringAlg.cxx:35
TrigAFPSidHypoMonitoringAlg::TrigAFPSidHypoMonitoringAlg
TrigAFPSidHypoMonitoringAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition
TrigAFPSidHypoMonitoringAlg.cxx:12
TrigAFPSidHypoMonitoringAlg::~TrigAFPSidHypoMonitoringAlg
virtual ~TrigAFPSidHypoMonitoringAlg() override
Definition
TrigAFPSidHypoMonitoringAlg.cxx:17
TrigAFPSidHypoMonitoringAlg::finalize
virtual StatusCode finalize() override
Definition
TrigAFPSidHypoMonitoringAlg.cxx:30
TrigAFPSidHypoMonitoringAlg::m_AFPtrackKey
SG::ReadHandleKey< xAOD::AFPTrackContainer > m_AFPtrackKey
Definition
TrigAFPSidHypoMonitoringAlg.h:33
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
Monitored::Collection
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
Definition
MonitoredCollection.h:38
Generated on
for ATLAS Offline Software by
1.17.0