ATLAS Offline Software
Loading...
Searching...
No Matches
METMaker.h
Go to the documentation of this file.
1
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"
21
22// METInterface includes
24
25// EDM includes
28
29// Tracking Tool
31
32
33// Forward declaration
34
35namespace met {
36
37 // typedefs
38 typedef ElementLink<xAOD::IParticleContainer> obj_link_t;
39
41 : public asg::AsgTool,
42 virtual public IMETMaker
43
44 {
45 // This macro defines the constructor with the interface declaration
47
48
49 // Public methods:
51 public:
52
53 // Copy constructor:
54
56 METMaker(const std::string& name);
57
59 virtual ~METMaker();
60
61 // Athena algtool's Hooks
62 virtual StatusCode initialize() override final;
63
64 virtual StatusCode rebuildMET(
65 const std::string& metKey,
66 xAOD::Type::ObjectType metType,
67 xAOD::MissingETContainer* metCont,
68 const xAOD::IParticleContainer* collection,
70 MissingETBase::UsageHandler::Policy objScale) const override final;
71 //
72 virtual StatusCode rebuildMET(
74 const xAOD::IParticleContainer* collection,
76 MissingETBase::UsageHandler::Policy objScale) const override final;
77 //
78 virtual StatusCode rebuildMET(
80 const xAOD::IParticleContainer* collection,
82 MissingETBase::UsageHandler::Policy p,
83 bool removeOverlap,
84 MissingETBase::UsageHandler::Policy objScale) const override final;
85
86 virtual StatusCode rebuildJetMET(
87 const std::string& metJetKey,
88 const std::string& softClusKey,
89 const std::string& softTrkKey,
90 xAOD::MissingETContainer* metCont,
91 const xAOD::JetContainer* jets,
92 const xAOD::MissingETContainer* metCoreCont,
94 bool doJetJVT) const override final;
95
96 virtual StatusCode rebuildJetMET(
97 const std::string& metJetKey,
98 const std::string& metSoftKey,
99 xAOD::MissingETContainer* metCont,
100 const xAOD::JetContainer* jets,
101 const xAOD::MissingETContainer* metCoreCont,
103 bool doJetJVT) const override final;
104
105 virtual StatusCode rebuildJetMET(
106 xAOD::MissingET* metJet,
107 const xAOD::JetContainer* jets,
109 xAOD::MissingET* metSoftClus,
110 const xAOD::MissingET* coreSoftClus,
111 xAOD::MissingET* metSoftTrk,
112 const xAOD::MissingET* coreSoftTrk,
113 bool doJetJVT,
114 bool tracksForHardJets = false,
115 std::vector<const xAOD::IParticle*>* softConst = 0) const override final;
116
117 virtual StatusCode rebuildTrackMET(
118 const std::string& metJetKey,
119 const std::string& softTrkKey,
120 xAOD::MissingETContainer* metCont,
121 const xAOD::JetContainer* jets,
122 const xAOD::MissingETContainer* metCoreCont,
124 bool doJetJVT) const override final;
125
126 virtual StatusCode rebuildTrackMET(xAOD::MissingET* metJet,
127 const xAOD::JetContainer* jets,
129 xAOD::MissingET* metSoftTrk,
130 const xAOD::MissingET* coreSoftTrk,
131 bool doJetJVT) const override final;
132
133 virtual StatusCode markInvisible(
134 const xAOD::IParticleContainer* collection,
136 xAOD::MissingETContainer* metCont) const override final;
137
139 // Private data:
141 private:
142
145
146
147 SG::ReadHandleKey<xAOD::VertexContainer> m_PVkey;
148
149 // configurable accessors
150 std::unique_ptr<SG::AuxElement::ConstAccessor<char > > m_acc_jetRejectionDec;
151
152 // pT threshold for suppressing warnings of objects missing in association map
154
159 std::string m_jetRejectionDec;
160
161 double m_CenJetPtCut{}, m_FwdJetPtCut{} ; // jet pt cut for central/forward jets
162 double m_JvtCut{}, m_JvtPtMax{}; // JVT cut and pt region of jets to apply a JVT selection
163 double m_JetEtaMax{};
164 double m_JetEtaForw{};
165
166 std::string m_jetSelection;
167 std::string m_JvtWP;
168
169 // Extra configurables for custom WP
172 std::string m_customJvtWP;
173
174 bool m_doPFlow{};
177
184
185 bool m_muEloss{};
189
190 // muon overlap variables
197
198 ToolHandle<InDet::IInDetTrackSelectionTool> m_trkseltool;
199 ToolHandle<IAsgSelectionTool> m_JvtTool;
200
201 SG::ReadHandleKey<xAOD::JetContainer> m_jetContainer{this, "JetContainer", "", "Name of input jet container (required if JVT decisions computed by internal tool)"};
202
205
206 };
207
208} //> end namespace met
209#endif //> !METUTILITIES_MET_METMAKER_H
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Property holding a SG store/key/clid from which a ReadHandle is made.
ObjectType
Definition BaseObject.h:11
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
double m_JvtCut
Definition METMaker.h:162
bool m_skipSystematicJetSelection
Definition METMaker.h:183
bool m_greedyPhotons
Definition METMaker.h:187
double m_customFwdJetPtCut
Definition METMaker.h:170
double m_jetTrkPtMuPt
Definition METMaker.h:195
METMaker()
Default constructor:
std::string m_customJvtWP
Definition METMaker.h:172
ToolHandle< IAsgSelectionTool > m_JvtTool
Definition METMaker.h:199
bool m_doRemoveElecTrks
Definition METMaker.h:180
bool m_jetCorrectPhi
Definition METMaker.h:155
double m_customJvtPtMax
Definition METMaker.h:171
bool m_doRemoveMuonJets
Definition METMaker.h:179
float m_missObjWarningPtThreshold
Definition METMaker.h:153
std::string m_jetSelection
Definition METMaker.h:166
std::string m_jetRejectionDec
Definition METMaker.h:159
virtual StatusCode rebuildTrackMET(const std::string &metJetKey, const std::string &softTrkKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT) const override final
Definition METMaker.cxx:497
std::unique_ptr< SG::AuxElement::ConstAccessor< char > > m_acc_jetRejectionDec
Definition METMaker.h:150
double m_jetMinWeightedPt
Definition METMaker.h:157
bool m_doRemoveElecTrksEM
Definition METMaker.h:181
virtual StatusCode markInvisible(const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, xAOD::MissingETContainer *metCont) const override final
bool m_doSoftTruth
Definition METMaker.h:175
double m_jetMinEfrac
Definition METMaker.h:156
double m_muIDPTJetPtRatioMuOlap
Definition METMaker.h:196
int m_jetTrkNMuOlap
Definition METMaker.h:191
bool m_doSetMuonJetEMScale
Definition METMaker.h:182
SG::ReadHandleKey< xAOD::VertexContainer > m_PVkey
Definition METMaker.h:147
bool m_doConstJet
Definition METMaker.h:176
double m_jetWidthMuOlap
Definition METMaker.h:192
double m_customCenJetPtCut
Definition METMaker.h:170
bool acceptTrack(const xAOD::TrackParticle *trk, const xAOD::Vertex *vx) const
ToolHandle< InDet::IInDetTrackSelectionTool > m_trkseltool
Definition METMaker.h:198
bool m_orCaloTaggedMuon
Definition METMaker.h:186
double m_CenJetPtCut
Definition METMaker.h:161
METMaker(const std::string &name)
Constructor with parameters:
Definition METMaker.cxx:88
double m_JvtPtMax
Definition METMaker.h:162
SG::ReadHandleKey< xAOD::JetContainer > m_jetContainer
Definition METMaker.h:201
std::string m_jetConstitScaleMom
Definition METMaker.h:158
double m_JetEtaForw
Definition METMaker.h:164
double m_FwdJetPtCut
Definition METMaker.h:161
double m_jetPsEMuOlap
Definition METMaker.h:193
virtual StatusCode rebuildMET(const std::string &metKey, xAOD::Type::ObjectType metType, xAOD::MissingETContainer *metCont, const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, MissingETBase::UsageHandler::Policy objScale) const override final
Definition METMaker.cxx:222
double m_jetEmfMuOlap
Definition METMaker.h:194
std::string m_JvtWP
Definition METMaker.h:167
double m_JetEtaMax
Definition METMaker.h:163
virtual StatusCode initialize() override final
Dummy implementation of the initialisation function.
Definition METMaker.cxx:154
virtual ~METMaker()
Destructor:
bool m_useGhostMuons
Definition METMaker.h:178
const xAOD::Vertex * getPV() const
bool m_veryGreedyPhotons
Definition METMaker.h:188
virtual StatusCode rebuildJetMET(const std::string &metJetKey, const std::string &softClusKey, const std::string &softTrkKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT) const override final
Definition METMaker.cxx:534
STL class.
Class providing the definition of the 4-vector interface.
General namespace for MET EDM software.
Forward declaration.
ElementLink< xAOD::IParticleContainer > obj_link_t
STL namespace.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
MissingET_v1 MissingET
Version control by type defintion.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
JetContainer_v1 JetContainer
Definition of the current "jet container version".
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.
#define private