ATLAS Offline Software
Loading...
Searching...
No Matches
METNetSig.h
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5*/
6
7// METNetSig.h
8// Header file for class METNetSig
9// Author: Alberto Plebani <alberto.plebani@cern.ch>, based on earlier implementation by M. Leigh and Bill Balunas
11
12#ifndef METUTILITIES_MET_METNETSIG_H
13#define METUTILITIES_MET_METNETSIG_H
14
15// STL includes
16#include <string>
17
18// Asg tool includes
19#include "AsgTools/AsgTool.h"
23
24// EDM includes
27
28// METInterface includes
31
32// Network handler
33#include "METNetSigHandler.h"
34
35// Forward declarations
36class IMETMaker;
37class METNetSigHandler;
38
39namespace met {
40
47 class METNetSig final: public asg::AsgTool, virtual public IMETMaker {
48
49 // This macro defines the constructor with the interface declaration
51
52 public:
53
55 METNetSig( const std::string& name );
56
58 virtual ~METNetSig() override;
59
61 virtual StatusCode initialize() override;
62
64 virtual StatusCode rebuildMET( const std::string& metKey,
67 const xAOD::IParticleContainer* collection,
69 MissingETBase::UsageHandler::Policy objScale ) const override;
70
72 virtual StatusCode rebuildJetMET( const std::string& metJetKey,
73 const std::string& softTrkKey,
75 const xAOD::JetContainer* jets,
76 const xAOD::MissingETContainer* metCoreCont,
78 bool doJetJVT = false) const override;
79
81 virtual StatusCode evaluateNNMETSig( xAOD::MissingETContainer* metCont,
82 float& met_x, float& met_y, float& sigma_x, float& sigma_y ) const;
83
84
86 virtual StatusCode rebuildMET( xAOD::MissingET* met,
87 const xAOD::IParticleContainer* collection,
89 MissingETBase::UsageHandler::Policy objScale ) const override;
90
92 virtual StatusCode rebuildMET( xAOD::MissingET* met,
93 const xAOD::IParticleContainer* collection,
96 bool removeOverlap,
97 MissingETBase::UsageHandler::Policy objScale ) const override;
98
100 virtual StatusCode rebuildJetMET( const std::string& metJetKey,
101 const std::string& softClusKey,
102 const std::string& softTrkKey,
104 const xAOD::JetContainer* jets,
105 const xAOD::MissingETContainer* metCoreCont,
107 bool doJetJVT ) const override;
108
110 virtual StatusCode rebuildJetMET( xAOD::MissingET* metJet,
111 const xAOD::JetContainer* jets,
113 xAOD::MissingET* metSoftClus,
114 const xAOD::MissingET* coreSoftClus,
115 xAOD::MissingET* metSoftTrk,
116 const xAOD::MissingET* coreSoftTrk,
117 bool doJetJVT,
118 bool tracksForHardJets = false,
119 std::vector<const xAOD::IParticle*>* softConst = 0 ) const override;
120
122 virtual StatusCode rebuildTrackMET( const std::string& metJetKey,
123 const std::string& softTrkKey,
125 const xAOD::JetContainer* jets,
126 const xAOD::MissingETContainer* metCoreCont,
128 bool doJetJVT ) const override;
129
131 virtual StatusCode rebuildTrackMET( xAOD::MissingET* metJet,
132 const xAOD::JetContainer* jets,
134 xAOD::MissingET* metSoftTrk,
135 const xAOD::MissingET* coreSoftTrk,
136 bool doJetJVT ) const override;
137
139 virtual StatusCode markInvisible( const xAOD::IParticleContainer* collection,
141 xAOD::MissingETContainer* metCont ) const override;
142
143
144 private:
145
146 // Class properties
147 Gaudi::Property<std::string> m_netSigLocation{this, "NetworkLocation", "", "Location of NN file to use for METNetSig"};
148 SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this, "EventInfoKey", "EventInfo", "Event info key"};
149 SG::ReadHandleKey<xAOD::VertexContainer> m_pvContainerKey{this, "PVContainerKey", "PrimaryVertices", "Primary vertex container"};
150 SG::ReadHandleKey<xAOD::JetContainer> m_jetContainerKey{this, "JetContainer", "", "Name of input jet container"};
151
152 // Default constructor
154
155 std::unique_ptr<METNetSigHandler> m_metnetsighandler;
156 ToolHandle<IMETMaker> m_metmaker_loose{this, "METMakerLoose", "", "METMaker for Loose WP. Do not configure manually except for expert usage." };
157 ToolHandle<IMETMaker> m_metmaker_tight{this, "METMakerTight", "", "METMaker for Tight WP. Do not configure manually except for expert usage." };
158 ToolHandle<IMETMaker> m_metmaker_tghtr{this, "METMakerTighter", "", "METMaker for Tighter WP. Do not configure manually except for expert usage." };
159 ToolHandle<IMETMaker> m_metmaker_tenac{this, "METMakerTenacious", "", "METMaker for Tenacious WP. Do not configure manually except for expert usage." };
160
161 // Private methods
162 StatusCode addMETFinal( const std::string& WP_name, xAOD::MissingETContainer* met_container, std::vector<std::string>& name_vec, std::vector<float>& val_vec ) const;
163 StatusCode addMETTerm( const std::string& WP_name, xAOD::MissingET* met, std::vector<std::string>& name_vec, std::vector<float>& val_vec ) const;
164 StatusCode addInputValue( const std::string& var_name, float value,std::vector<std::string>& name_vec, std::vector<float>& val_vec ) const;
165
166 StatusCode copyMETContainer( xAOD::MissingETContainer* new_container, const xAOD::MissingETContainer* old_container) const;
167
168 };
169
170}
171
172#endif
#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
Gaudi::Property< std::string > m_netSigLocation
Definition METNetSig.h:147
SG::ReadHandleKey< xAOD::JetContainer > m_jetContainerKey
Definition METNetSig.h:150
ToolHandle< IMETMaker > m_metmaker_loose
Definition METNetSig.h:156
StatusCode addMETTerm(const std::string &WP_name, xAOD::MissingET *met, std::vector< std::string > &name_vec, std::vector< float > &val_vec) const
ToolHandle< IMETMaker > m_metmaker_tenac
Definition METNetSig.h:159
SG::ReadHandleKey< xAOD::VertexContainer > m_pvContainerKey
Definition METNetSig.h:149
virtual StatusCode initialize() override
Athena algtool's initialize.
Definition METNetSig.cxx:57
StatusCode copyMETContainer(xAOD::MissingETContainer *new_container, const xAOD::MissingETContainer *old_container) const
ToolHandle< IMETMaker > m_metmaker_tight
Definition METNetSig.h:157
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition METNetSig.h:148
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
Unsuported method inherited from METMaker. Please do not use.
virtual StatusCode rebuildJetMET(const std::string &metJetKey, const std::string &softTrkKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT=false) const override
Adds multiple jet definitions to seperate MET containers and creates the collection of input features...
virtual StatusCode evaluateNNMETSig(xAOD::MissingETContainer *metCont, float &met_x, float &met_y, float &sigma_x, float &sigma_y) const
Uses ONNX runtime to propagate the input features created in rebuildJetMET through the trained networ...
std::unique_ptr< METNetSigHandler > m_metnetsighandler
Definition METNetSig.h:155
virtual ~METNetSig() override
Destructor.
Definition METNetSig.cxx:53
virtual StatusCode markInvisible(const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, xAOD::MissingETContainer *metCont) const override
Unsuported method inherited from METMaker. Please do not use.
StatusCode addMETFinal(const std::string &WP_name, xAOD::MissingETContainer *met_container, std::vector< std::string > &name_vec, std::vector< float > &val_vec) const
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
Adds a collection of objects to the core MET container, must be done for photons, elections and muons...
ToolHandle< IMETMaker > m_metmaker_tghtr
Definition METNetSig.h:158
StatusCode addInputValue(const std::string &var_name, float value, std::vector< std::string > &name_vec, std::vector< float > &val_vec) const
METNetSig(const std::string &name)
Constructor.
Definition METNetSig.cxx:48
ObjectType
Type of objects that have a representation in the xAOD EDM.
Definition ObjectType.h:32
MissingET_v1 MissingET
Version control by type defintion.
JetContainer_v1 JetContainer
Definition of the current "jet container version".
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.