METNet tool class used to create a missing transverse momentum estimate using a pre-trained neural network. The tool inherits from the same interface as METMaker and so it should be largely interchangable. However, it does not use every public method as METMaker, as it must ensure that the exact variables are constructed for the network's inputs. Uses an ONNX runtime environment for inference.
34 {
35
43
44
46
47 public:
48
49 METNet( const std::string& name );
50
51 virtual ~METNet() = default;
52
54
55
60 xAOD::MissingETAssociationHelper& helper,
62
63
65 const std::string& softTrkKey,
69 xAOD::MissingETAssociationHelper& helper,
70 bool doJetJVT = false) const override;
71
72
75
76
79 xAOD::MissingETAssociationHelper& helper,
81
82
85 xAOD::MissingETAssociationHelper& helper,
87 bool removeOverlap,
89
90
92 const std::string& softClusKey,
93 const std::string& softTrkKey,
97 xAOD::MissingETAssociationHelper& helper,
98 bool doJetJVT ) const override;
99
100
103 xAOD::MissingETAssociationHelper& helper,
108 bool doJetJVT,
109 bool tracksForHardJets = false,
110 std::vector<const xAOD::IParticle*>* softConst = 0 ) const override;
111
112
114 const std::string& softTrkKey,
118 xAOD::MissingETAssociationHelper& helper,
119 bool doJetJVT ) const override;
120
121
124 xAOD::MissingETAssociationHelper& helper,
127 bool doJetJVT ) const override;
128
129
131 xAOD::MissingETAssociationHelper& helper,
133
134 private:
135
136 Gaudi::Property<std::string> m_netLocation{this, "NetworkFile", "", "Location of NN file to use"};
137
138 SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this, "EventInfoKey", "EventInfo", "Event info key"};
139 SG::ReadHandleKey<xAOD::VertexContainer> m_pvContainerKey{this, "PVContainerKey", "PrimaryVertices", "Primary vertex container"};
140 SG::ReadHandleKey<xAOD::JetContainer> m_jetContainerKey{this, "JetContainer", "", "Name of input jet container"};
141
142 std::unique_ptr<const METNetHandler> m_metNetHandler;
143
144 ToolHandle<IMETMaker> m_metmaker_loose{this, "METMakerLoose", "", "METMaker for Loose WP. Do not configure manually except for expert usage." };
145 ToolHandle<IMETMaker> m_metmaker_tight{this, "METMakerTight", "", "METMaker for Tight WP. Do not configure manually except for expert usage." };
146 ToolHandle<IMETMaker> m_metmaker_tghtr{this, "METMakerTighter", "", "METMaker for Tighter WP. Do not configure manually except for expert usage." };
147 ToolHandle<IMETMaker> m_metmaker_tenac{this, "METMakerTenacious", "", "METMaker for Tenacious WP. Do not configure manually except for expert usage." };
148
150 StatusCode addMETTerm(
const std::string& WP_name,
xAOD::MissingET* met, std::vector<std::string>& name_vec, std::vector<float>& val_vec )
const;
151 StatusCode addInputValue(
const std::string& var_name,
float value,std::vector<std::string>& name_vec, std::vector<float>& val_vec )
const;
153
154 };
155
156}
virtual StatusCode rebuildTrackMET(const std::string &metJetKey, const std::string &metSoftKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT) const =0
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=MissingETBase::UsageHandler::PhysicsObject) const =0
virtual StatusCode rebuildJetMET(const std::string &metJetKey, const std::string &metSoftKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT) const =0
virtual StatusCode markInvisible(const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, xAOD::MissingETContainer *metCont) const =0
virtual StatusCode evaluateNNMET(const std::string &, xAOD::MissingETContainer *) const
::StatusCode StatusCode
StatusCode definition for legacy code.
Policy
Policies on usage checks.
ObjectType
Type of objects that have a representation in the xAOD EDM.
MissingET_v1 MissingET
Version control by type defintion.
MissingETContainer_v1 MissingETContainer
JetContainer_v1 JetContainer
Definition of the current "jet container version".
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.