ATLAS Offline Software
Loading...
Searching...
No Matches
IMETMaker.h
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5*/
6
7// IMETMaker.h
8// Header file for interface IMETMaker
9//
10// This is the tool that rebuilds MET at analysis level
11//
12// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
13//
14// Author: TJ Khoo
16
17#ifndef METINTERFACE_IMETMAKER_H
18#define METINTERFACE_IMETMAKER_H
19
20#include "AsgTools/IAsgTool.h"
26
27
28class IMETMaker : virtual public asg::IAsgTool {
30
31public:
32
34 // Ele/Gamma/Mu/Tau MET term rebuilding
36
37 // Convenience method that creates a MET term internally
38 virtual StatusCode rebuildMET(const std::string& metKey,
41 const xAOD::IParticleContainer* collection,
44 // Default method that uses standard overlap removal policy
45 virtual StatusCode rebuildMET(xAOD::MissingET* met,
46 const xAOD::IParticleContainer* collection,
49 // Full implementation with option flags
50 virtual StatusCode rebuildMET(xAOD::MissingET* met,
51 const xAOD::IParticleContainer* collection,
54 bool removeOverlap,
56
58 // Jet/soft MET term rebuilding
60
61 // Convenience methods that creates MET terms internally
62 // Version with single soft term
63 virtual StatusCode rebuildJetMET(const std::string& metJetKey,
64 const std::string& metSoftKey,
66 const xAOD::JetContainer* jets,
67 const xAOD::MissingETContainer* metCoreCont,
69 bool doJetJVT) const = 0;
70 // Version with two soft terms
71 virtual StatusCode rebuildJetMET(const std::string& metJetKey,
72 const std::string& softClusKey,
73 const std::string& softTrkKey,
75 const xAOD::JetContainer* jets,
76 const xAOD::MissingETContainer* metCoreCont,
78 bool doJetJVT) const = 0;
79 // Full version receiving MET pointers
80 virtual StatusCode rebuildJetMET(xAOD::MissingET* metJet,
81 const xAOD::JetContainer* jets,
83 xAOD::MissingET* metSoftClus,
84 const xAOD::MissingET* coreSoftClus,
85 xAOD::MissingET* metSoftTrk,
86 const xAOD::MissingET* coreSoftTrk,
87 bool doJetJVT,
88 bool tracksForHardJets=false,
89 std::vector<const xAOD::IParticle*>* softConst=0) const = 0;
90
91 // Convenience methods that creates MET terms internally
92 virtual StatusCode rebuildTrackMET(const std::string& metJetKey,
93 const std::string& metSoftKey,
95 const xAOD::JetContainer* jets,
96 const xAOD::MissingETContainer* metCoreCont,
98 bool doJetJVT) const = 0;
99 // Full version receiving MET pointers
100 virtual StatusCode rebuildTrackMET(xAOD::MissingET* metJet,
101 const xAOD::JetContainer* jets,
103 xAOD::MissingET* metSoftTrk,
104 const xAOD::MissingET* coreSoftTrk,
105 bool doJetJVT) const = 0;
106
107 virtual StatusCode markInvisible(const xAOD::IParticleContainer* collection,
109 xAOD::MissingETContainer* metCont) const = 0;
110
111 // NN-based implementations override this, it shouldn't be called with others.
112 // This does the actual running of the underlying neural net, adding a "term" (an xAOD::MissingET)
113 // containing the resulting MET vector to the given MissingETContainer.
114 // The string argument specifies the name given to this "term" for later lookup.
115 virtual StatusCode evaluateNNMET(const std::string& /*totalName*/, xAOD::MissingETContainer* /*metCont*/) const {
116 return StatusCode::FAILURE;
117 }
118};
119
120#endif
#define ASG_TOOL_INTERFACE(CLASSNAME)
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(xAOD::MissingET *metJet, const xAOD::JetContainer *jets, xAOD::MissingETAssociationHelper &helper, xAOD::MissingET *metSoftClus, const xAOD::MissingET *coreSoftClus, xAOD::MissingET *metSoftTrk, const xAOD::MissingET *coreSoftTrk, bool doJetJVT, bool tracksForHardJets=false, std::vector< const xAOD::IParticle * > *softConst=0) const =0
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 =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 rebuildMET(xAOD::MissingET *met, const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, MissingETBase::UsageHandler::Policy objScale=MissingETBase::UsageHandler::PhysicsObject) const =0
virtual StatusCode markInvisible(const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, xAOD::MissingETContainer *metCont) const =0
virtual StatusCode rebuildTrackMET(xAOD::MissingET *metJet, const xAOD::JetContainer *jets, xAOD::MissingETAssociationHelper &helper, xAOD::MissingET *metSoftTrk, const xAOD::MissingET *coreSoftTrk, bool doJetJVT) const =0
virtual StatusCode evaluateNNMET(const std::string &, xAOD::MissingETContainer *) const
Definition IMETMaker.h:115
virtual StatusCode rebuildMET(xAOD::MissingET *met, const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, MissingETBase::UsageHandler::Policy p, bool removeOverlap, MissingETBase::UsageHandler::Policy objScale=MissingETBase::UsageHandler::PhysicsObject) const =0
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
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.