ATLAS Offline Software
Loading...
Searching...
No Matches
JetTriggerDecoratorAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ASG_ANALYSIS_ALGORITHMS__JET_TRIGGER_DECORATOR_ALG_H
6#define ASG_ANALYSIS_ALGORITHMS__JET_TRIGGER_DECORATOR_ALG_H
7
10#include <AsgTools/ToolHandle.h>
21
22namespace CP
23{
27
29 {
30 public:
32
33 StatusCode initialize () override;
34 StatusCode execute (const EventContext& ctx) override;
35
36 private:
39
42 this, "jets", "", "the jet container to use"};
43
45 this, "L1Jets", "LVL1JetRoIs", "Legacy L1Calo jet RoI container"
46 };
47 // Phase-I L1Calo jFEX SR jet RoI container (data 2024+ / mc23e).
49 this, "L1JetsPhaseI", "L1_jFexSRJetRoI",
50 "Phase-I L1Calo jFEX SR jet RoI container"
51 };
53 this, "HLTJets", "HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_bJets",
54 "HLT jet container"
55 };
56
57 Gaudi::Property<std::string> m_trigger{
58 this, "trigger", {}, "trigger to match"
59 };
60 // To add missing HLT jets -- only for buggy triggers
61 // These extra jets are added because of bug in trigger navigation
62 // Will be removed once bug fixed at DAOD level
63 Gaudi::Property<std::vector<std::string>> m_triggerNavBug{
64 this, "triggerBugList", {}, "List of buggy triggers"
65 };
66 Gaudi::Property<float> m_l1dR{this, "l1dR_cut", 0.4,
67 "ΔR cone for L1 (jFEX) matching"};
68 Gaudi::Property<float> m_hltDR{this, "hltDR_cut", 0.4,
69 "ΔR cone for HLT matching"};
70
71 PublicToolHandle<Trig::TrigDecisionTool> m_trigDecisionTool{
72 this, "TrigDecisionTool", "Trig::TrigDecisionTool/TrigDecisionTool",
73 "trigger decision tool"};
74
75 ToolHandle<Trig::ITrigBtagEmulationTool> m_emulationTool
76 {this, "trigEmulationTool", "", "Jet trigger emulation tool, to be used for Run 2"};
77
78 Gaudi::Property<bool> m_usePhaseIL1{
79 this, "usePhaseIL1", false,
80 "If true, use Phase-I L1Calo jFEX SR jet RoI container for L1 matching."
81 };
82
83 Gaudi::Property<std::string> m_l1ThresholdType{
84 this, "l1ThresholdType", "jJ",
85 "L1 threshold type for jFEX bit→name lookup (Phase-I L1 only)."
86 };
87
88 ToolHandle<TrigConf::ITrigConfigTool> m_trigConfigTool{
89 this, "TrigConfigTool", "TrigConf::xAODConfigTool/xAODConfigTool",
90 "Trigger configuration tool (Phase-I L1 menu access)"
91 };
92
93 // Phase-I L1 bit→name table, built lazily; rebuilt on menu-name change.
95
97 struct JetLeg
98 {
99 int index = 0;
100 int threshold = 0;
101 std::string name;
102 };
103 std::vector<JetLeg> m_jetLegs;
104
106 bool m_isNavBugTrigger {false};
107
110
111
112 Gaudi::Property<bool> m_doL1Matching{this, "doL1Matching", false,
113 "do trigger L1 matching?" };
114 CP::SysWriteDecorHandle<float> m_L1Et_decor {this, "L1Et", "", "L1-matched Et"};
115 CP::SysWriteDecorHandle<float> m_L1Eta_decor {this, "L1Eta", "", "L1-matched eta"};
116 CP::SysWriteDecorHandle<float> m_L1Phi_decor {this, "L1Phi", "", "L1-matched phi"};
117 CP::SysWriteDecorHandle<float> m_L1DR_decor {this, "L1DR", "", "L1-matched DR"};
118 CP::SysWriteDecorHandle<std::vector<int>> m_L1Threshold_decor {this, "L1Threshold", "", "L1-matched thresholds"};
119
120 Gaudi::Property<bool> m_doHLTMatching{this, "doHLTMatching", false,
121 "do trigger HLT matching?" };
122 Gaudi::Property<bool> m_useEmulationTool{this, "useEmulationTool", false,
123 "use HLT jet trigger emulation tool" };
124 CP::SysWriteDecorHandle<float> m_HLTPt_decor {this, "HLTPt", "", "HLT-matched pt"};
125 CP::SysWriteDecorHandle<float> m_HLTEta_decor {this, "HLTEta", "", "HLT-matched eta"};
126 CP::SysWriteDecorHandle<float> m_HLTPhi_decor {this, "HLTPhi", "", "HLT-matched phi"};
128 "HLT-matched dR"};
129 CP::SysWriteDecorHandle<std::vector<int>> m_HLTThreshold_decor {this, "HLTThreshold", "", "HLT-matched thresholds"};
130
131 bool isSameJet(const xAOD::IParticle *jet1, const xAOD::IParticle *jet2) const;
132
133 };
134}
135
136#endif
an algorithm decorating jets with the kinematics, ΔR and thresholds of the L1 RoI and HLT jet matched...
SysListHandle m_systematicsList
the systematics list we run
ToolHandle< TrigConf::ITrigConfigTool > m_trigConfigTool
Gaudi::Property< bool > m_doHLTMatching
Gaudi::Property< float > m_l1dR
Gaudi::Property< bool > m_useEmulationTool
Gaudi::Property< bool > m_usePhaseIL1
CP::SysWriteDecorHandle< std::vector< int > > m_L1Threshold_decor
CP::SysWriteDecorHandle< float > m_HLTPt_decor
CP::SysWriteDecorHandle< float > m_HLTPhi_decor
CP::SysWriteDecorHandle< std::vector< int > > m_HLTThreshold_decor
ToolHandle< Trig::ITrigBtagEmulationTool > m_emulationTool
bool isSameJet(const xAOD::IParticle *jet1, const xAOD::IParticle *jet2) const
SG::ReadHandleKey< xAOD::jFexSRJetRoIContainer > m_L1JetsPhaseIInKey
Gaudi::Property< std::vector< std::string > > m_triggerNavBug
CP::SysWriteDecorHandle< float > m_L1Eta_decor
bool m_isNavBugTrigger
whether m_trigger is in m_triggerNavBug
Gaudi::Property< float > m_hltDR
CP::SysWriteDecorHandle< float > m_L1DR_decor
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecisionTool
CP::SysReadHandle< xAOD::JetContainer > m_jetsHandle
SG::ReadHandleKey< xAOD::JetContainer > m_HLTJetsInKey
CP::SysWriteDecorHandle< float > m_HLTEta_decor
Gaudi::Property< std::string > m_trigger
JfexThresholdTable m_jfexThresholdTable
CP::SysWriteDecorHandle< float > m_HLTDR_decor
CP::SysWriteDecorHandle< float > m_L1Et_decor
SG::ReadHandleKey< xAOD::JetRoIContainer > m_L1JetsInKey
Gaudi::Property< std::string > m_l1ThresholdType
bool m_warnedMissingChain
whether we already warned about m_trigger missing from the menu
Gaudi::Property< bool > m_doL1Matching
CP::SysWriteDecorHandle< float > m_L1Phi_decor
the Phase-I L1 jFEX threshold bit-to-name table, taken from the L1 menu, shared by the algorithms dec...
a class managing the property to configure the list of systematics to process
a data handle for reading systematics varied input data
a data handle for reading systematics varied input data
the (new) base class for EventLoop algorithms
AnaAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
constructor with parameters
virtual::StatusCode execute()
execute this algorithm
Property holding a SG store/key/clid from which a ReadHandle is made.
Class providing the definition of the 4-vector interface.
Select isolated Photons, Electrons and Muons.
Definition index.py:1
a "j" leg of the chain, parsed once in initialize()
int threshold
leg threshold (the gsc threshold for gsc legs)
std::string name
leg name (key of the Run 2 emulation results)