ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigMonitoring
TrigTauMonitoring
src
TrigTauMonitorBoostedDiTauAlgorithm.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
#if __GNUC__ >= 16
6
// Suppress false-positive warning seen with gcc16.
7
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
8
#endif
9
10
#include "
TrigTauMonitorBoostedDiTauAlgorithm.h
"
11
#include "
TrigCompositeUtils/TrigCompositeUtils.h
"
12
#include "
TrigDecisionTool/TrigDecisionTool.h
"
13
14
15
TrigTauMonitorBoostedDiTauAlgorithm::TrigTauMonitorBoostedDiTauAlgorithm
(
const
std::string& name, ISvcLocator* pSvcLocator)
16
:
TrigTauMonitorBaseAlgorithm
(name, pSvcLocator)
17
{}
18
19
StatusCode
TrigTauMonitorBoostedDiTauAlgorithm::initialize
() {
20
ATH_CHECK
(
TrigTauMonitorBaseAlgorithm::initialize
() );
21
22
ATH_CHECK
(
m_hltBoostedDiTauJetKey
.initialize() );
23
24
return
StatusCode::SUCCESS;
25
}
26
27
StatusCode
TrigTauMonitorBoostedDiTauAlgorithm::processEvent
(
const
EventContext&
/*ctx*/
)
const
28
{
29
ATH_MSG_DEBUG
(
"Entry process event boosted"
);
30
for
(
const
std::string& trigger :
m_triggers
) {
31
const
TrigTauInfo
& info =
getTrigInfo
(trigger);
32
if
(!info.isHLTBoostedDiTau()) {
33
ATH_MSG_WARNING
(
"Chain \""
<< trigger <<
"\" is not a boosted di-tau trigger. Skipping..."
);
34
continue
;
35
}
36
37
// Online taus
38
std::vector<const xAOD::DiTauJet*> hlt_boosted_ditaus =
getOnlineBoostedDiTausAll
(trigger);
39
40
if
(
m_do_variable_plots
&& !hlt_boosted_ditaus.empty())
fillBoostedDiTauVars
(trigger, hlt_boosted_ditaus);
41
}
42
43
return
StatusCode::SUCCESS;
44
}
45
46
std::vector<const xAOD::DiTauJet*>
TrigTauMonitorBoostedDiTauAlgorithm::getOnlineBoostedDiTausAll
(
const
std::string& trigger)
const
47
{
48
std::vector<const xAOD::DiTauJet*> boosted_ditau_vec;
49
50
std::vector<TrigCompositeUtils::LinkInfo<xAOD::DiTauJetContainer>> features_boosted_ditau =
51
m_trigDecTool
->features<
xAOD::DiTauJetContainer
>(trigger,
TrigDefs::Physics
,
m_hltBoostedDiTauJetKey
.key());
52
53
for
(
const
auto
& fb_ditau : features_boosted_ditau) {
54
if
(!fb_ditau.link.isValid())
continue
;
55
56
const
xAOD::DiTauJet
* ditau = *(fb_ditau.link);
57
if
(!ditau)
continue
;
58
59
boosted_ditau_vec.push_back(ditau);
60
}
61
return
boosted_ditau_vec;
62
}
63
64
void
TrigTauMonitorBoostedDiTauAlgorithm::fillBoostedDiTauVars
(
const
std::string& trigger,
const
std::vector<const xAOD::DiTauJet*>& boosted_ditau_vec)
const
65
{
66
auto
monGroup =
getGroup
(trigger+
"_BoostedDiTauVars"
);
67
68
static
const
SG::ConstAccessor<float>
OmniScore(
"omni_score"
);
69
static
const
SG::ConstAccessor<float>
RTracksLead(
"R_tracks_lead"
);
70
static
const
SG::ConstAccessor<float>
RTracksSubl(
"R_tracks_subl"
);
71
static
const
SG::ConstAccessor<float>
FCoreLead(
"f_core_lead"
);
72
static
const
SG::ConstAccessor<float>
FCoreSubl(
"f_core_subl"
);
73
static
const
SG::ConstAccessor<int>
NTracks(
"n_track"
);
74
static
const
SG::ConstAccessor<int>
NTracksLead(
"n_tracks_lead"
);
75
static
const
SG::ConstAccessor<int>
NTracksSubl(
"n_tracks_subl"
);
76
77
const
auto
* ditau = boosted_ditau_vec.at(0);
78
79
auto
omni_score =
Monitored::Scalar<float>
(
"omni_score"
, OmniScore(*ditau));
80
auto
R_tracks_lead =
Monitored::Scalar<float>
(
"R_tracks_lead"
, RTracksLead(*ditau));
81
auto
R_tracks_subl =
Monitored::Scalar<float>
(
"R_tracks_subl"
, RTracksSubl(*ditau));
82
auto
f_core_lead =
Monitored::Scalar<float>
(
"f_core_lead"
, FCoreLead(*ditau));
83
auto
f_core_subl =
Monitored::Scalar<float>
(
"f_core_subl"
, FCoreSubl(*ditau));
84
auto
n_track =
Monitored::Scalar<int>
(
"n_track"
, NTracks(*ditau));
85
auto
n_tracks_lead =
Monitored::Scalar<int>
(
"n_tracks_lead"
, NTracksLead(*ditau));
86
auto
n_tracks_subl =
Monitored::Scalar<int>
(
"n_tracks_subl"
, NTracksSubl(*ditau));
87
auto
Pt =
Monitored::Scalar<float>
(
"Pt"
, 0.0);
88
auto
Eta =
Monitored::Scalar<float>
(
"Eta"
, 0.0);
89
auto
Phi =
Monitored::Scalar<float>
(
"Phi"
, 0.0);
90
auto
M =
Monitored::Scalar<float>
(
"M"
, 0.0);
91
92
TLorentzVector boosted_diTau4V;
93
boosted_diTau4V.SetPtEtaPhiM(0,0,0,0);
94
95
boosted_diTau4V = boosted_ditau_vec.at(0)->p4();
96
97
Pt = boosted_diTau4V.Pt()/Gaudi::Units::GeV;
98
Eta = boosted_diTau4V.Eta();
99
Phi = boosted_diTau4V.Phi();
100
M = boosted_diTau4V.M()/Gaudi::Units::GeV;
101
102
fill
(monGroup, omni_score, R_tracks_lead, R_tracks_subl, f_core_lead, f_core_subl, n_track, n_tracks_lead, n_tracks_subl, Pt, Eta, Phi, M);
103
}
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
TrigCompositeUtils.h
TrigDecisionTool.h
TrigTauMonitorBoostedDiTauAlgorithm.h
AthMonitorAlgorithm::getGroup
const ToolHandle< GenericMonitoringTool > & getGroup(std::string_view name) const
Get a specific monitoring tool from the tool handle array.
Definition
AthMonitorAlgorithm.cxx:168
AthMonitorAlgorithm::m_trigDecTool
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
Tool to tell whether a specific trigger is passed.
Definition
AthMonitorAlgorithm.h:348
Monitored::Scalar
Declare a monitored scalar variable.
Definition
MonitoredScalar.h:34
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition
ConstAccessor.h:55
TrigTauInfo
Definition
TrigTauInfo.h:15
TrigTauMonitorBaseAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition
TrigTauMonitorBaseAlgorithm.cxx:22
TrigTauMonitorBaseAlgorithm::TrigTauMonitorBaseAlgorithm
TrigTauMonitorBaseAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Definition
TrigTauMonitorBaseAlgorithm.cxx:17
TrigTauMonitorBaseAlgorithm::m_triggers
Gaudi::Property< std::vector< std::string > > m_triggers
Definition
TrigTauMonitorBaseAlgorithm.h:38
TrigTauMonitorBaseAlgorithm::getTrigInfo
const TrigTauInfo & getTrigInfo(const std::string &trigger) const
Definition
TrigTauMonitorBaseAlgorithm.h:51
TrigTauMonitorBaseAlgorithm::m_do_variable_plots
Gaudi::Property< bool > m_do_variable_plots
Definition
TrigTauMonitorBaseAlgorithm.h:47
TrigTauMonitorBoostedDiTauAlgorithm::getOnlineBoostedDiTausAll
std::vector< const xAOD::DiTauJet * > getOnlineBoostedDiTausAll(const std::string &trigger) const
Definition
TrigTauMonitorBoostedDiTauAlgorithm.cxx:46
TrigTauMonitorBoostedDiTauAlgorithm::m_hltBoostedDiTauJetKey
SG::ReadHandleKey< xAOD::DiTauJetContainer > m_hltBoostedDiTauJetKey
Definition
TrigTauMonitorBoostedDiTauAlgorithm.h:24
TrigTauMonitorBoostedDiTauAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition
TrigTauMonitorBoostedDiTauAlgorithm.cxx:19
TrigTauMonitorBoostedDiTauAlgorithm::fillBoostedDiTauVars
void fillBoostedDiTauVars(const std::string &trigger, const std::vector< const xAOD::DiTauJet * > &tau_vec) const
Definition
TrigTauMonitorBoostedDiTauAlgorithm.cxx:64
TrigTauMonitorBoostedDiTauAlgorithm::TrigTauMonitorBoostedDiTauAlgorithm
TrigTauMonitorBoostedDiTauAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Definition
TrigTauMonitorBoostedDiTauAlgorithm.cxx:15
TrigTauMonitorBoostedDiTauAlgorithm::processEvent
virtual StatusCode processEvent(const EventContext &ctx) const override
Definition
TrigTauMonitorBoostedDiTauAlgorithm.cxx:27
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
xAOD::DiTauJetContainer
DiTauJetContainer_v1 DiTauJetContainer
Definition of the current DiTauJet container version.
Definition
DiTauJetContainer.h:17
xAOD::DiTauJet
DiTauJet_v1 DiTauJet
Definition of the current version.
Definition
DiTauJet.h:17
Generated on
for ATLAS Offline Software by
1.17.0