ATLAS Offline Software
Loading...
Searching...
No Matches
METMaker.h
Go to the documentation of this file.
2
3/*
4 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5*/
6
7// METMaker.h
8// Header file for class METMaker
9// Author: T.J.Khoo<khoo@cern.ch>
11#ifndef METUTILITIES_MET_METMAKER_H
12#define METUTILITIES_MET_METMAKER_H 1
13
14// STL includes
15#include <string>
16
17// FrameWork includes
19#include "AsgTools/ToolHandle.h"
20#include "AsgTools/AsgTool.h"
22
23// METInterface includes
25
26// EDM includes
29
30// Tracking Tool
32
33
34// Forward declaration
35
36namespace ADD_CMODE(met) {
37
38 // typedefs
40
41 class METMaker
42 : public asg::AsgTool,
43 virtual public IMETMaker
44
45 {
46 // This macro defines the constructor with the interface declaration
47 ASG_TOOL_CLASS(METMaker, IMETMaker)
48
49
50 // Public methods:
52 public:
53
54 // Copy constructor:
55
57 METMaker(const std::string& name);
58
60 virtual ~METMaker();
61
62 // Athena algtool's Hooks
63 virtual StatusCode initialize() override final;
64
65 virtual StatusCode rebuildMET(
66 const std::string& metKey,
69 const xAOD::IParticleContainer* collection,
71 MissingETBase::UsageHandler::Policy objScale) const override final;
72 //
73 virtual StatusCode rebuildMET(
75 const xAOD::IParticleContainer* collection,
77 MissingETBase::UsageHandler::Policy objScale) const override final;
78 //
79 virtual StatusCode rebuildMET(
81 const xAOD::IParticleContainer* collection,
84 bool removeOverlap,
85 MissingETBase::UsageHandler::Policy objScale) const override final;
86
87 virtual StatusCode rebuildJetMET(
88 const std::string& metJetKey,
89 const std::string& softClusKey,
90 const std::string& softTrkKey,
92 const xAOD::JetContainer* jets,
93 const xAOD::MissingETContainer* metCoreCont,
95 bool doJetJVT) const override final;
96
97 virtual StatusCode rebuildJetMET(
98 const std::string& metJetKey,
99 const std::string& metSoftKey,
101 const xAOD::JetContainer* jets,
102 const xAOD::MissingETContainer* metCoreCont,
104 bool doJetJVT) const override final;
105
106 virtual StatusCode rebuildJetMET(
107 xAOD::MissingET* metJet,
108 const xAOD::JetContainer* jets,
110 xAOD::MissingET* metSoftClus,
111 const xAOD::MissingET* coreSoftClus,
112 xAOD::MissingET* metSoftTrk,
113 const xAOD::MissingET* coreSoftTrk,
114 bool doJetJVT,
115 bool tracksForHardJets = false,
116 std::vector<const xAOD::IParticle*>* softConst = 0) const override final;
117
118 virtual StatusCode rebuildTrackMET(
119 const std::string& metJetKey,
120 const std::string& softTrkKey,
122 const xAOD::JetContainer* jets,
123 const xAOD::MissingETContainer* metCoreCont,
125 bool doJetJVT) const override final;
126
127 virtual StatusCode rebuildTrackMET(xAOD::MissingET* metJet,
128 const xAOD::JetContainer* jets,
130 xAOD::MissingET* metSoftTrk,
131 const xAOD::MissingET* coreSoftTrk,
132 bool doJetJVT) const override final;
133
134 virtual StatusCode markInvisible(
135 const xAOD::IParticleContainer* collection,
137 xAOD::MissingETContainer* metCont) const override final;
138
140 // Private data:
142 private:
143
144 bool acceptTrack(const xAOD::TrackParticle* trk, const xAOD::Vertex* vx) const;
145 const xAOD::Vertex* getPV() const;
146
147
149
150 // configurable accessors
151 std::unique_ptr<SG::ConstAccessor<char > > m_acc_jetRejectionDec;
152
153 // pT threshold for suppressing warnings of objects missing in association map
154 float m_missObjWarningPtThreshold;
155
156 bool m_jetCorrectPhi{};
157 double m_jetMinEfrac{};
158 double m_jetMinWeightedPt{};
159 std::string m_jetConstitScaleMom;
160 std::string m_jetRejectionDec;
161
162 double m_CenJetPtCut{}, m_FwdJetPtCut{} ; // jet pt cut for central/forward jets
163 double m_JvtCut{}, m_JvtPtMax{}; // JVT cut and pt region of jets to apply a JVT selection
164 double m_JetEtaMax{};
165 double m_JetEtaForw{};
166
167 std::string m_jetSelection;
168 std::string m_JvtWP;
169
170 // Extra configurables for custom WP
171 double m_customCenJetPtCut{},m_customFwdJetPtCut{};
172 double m_customJvtPtMax{};
173 std::string m_customJvtWP;
174
175 bool m_doPFlow{};
176 bool m_doSoftTruth{};
177 bool m_doConstJet{};
178
179 bool m_useGhostMuons{};
180 bool m_doRemoveMuonJets{};
181 bool m_doRemoveElecTrks{};
182 bool m_doRemoveElecTrksEM{};
183 bool m_doSetMuonJetEMScale{};
184 bool m_skipSystematicJetSelection{};
185
186 bool m_muEloss{};
187 bool m_orCaloTaggedMuon{};
188 bool m_greedyPhotons{};
189 bool m_veryGreedyPhotons{};
190
191 // muon overlap variables
192 int m_jetTrkNMuOlap{};
193 double m_jetWidthMuOlap{};
194 double m_jetPsEMuOlap{};
195 double m_jetEmfMuOlap{};
196 double m_jetTrkPtMuPt{};
197 double m_muIDPTJetPtRatioMuOlap{};
198
199 ToolHandle<InDet::IInDetTrackSelectionTool> m_trkseltool;
200 ToolHandle<IAsgSelectionTool> m_JvtTool;
201
202 SG::ReadHandleKey<xAOD::JetContainer> m_jetContainer{this, "JetContainer", "", "Name of input jet container (required if JVT decisions computed by internal tool)"};
203
205 METMaker();
206
207 };
208
209} //> end namespace ADD_CMODE(met)
210#endif //> !METUTILITIES_MET_METMAKER_H
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
ObjectType
Type of objects that have a representation in the xAOD EDM.
Definition ObjectType.h:32
MissingET_v1 MissingET
Version control by type defintion.
Definition MissingET.h:15
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.
MissingETContainer_v1 MissingETContainer
JetContainer_v1 JetContainer
Definition of the current "jet container version".
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.
void initialize()