ATLAS Offline Software
IMETMaker.h
Go to the documentation of this file.
1 
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"
24 #include "xAODJet/JetContainer.h"
25 #include "xAODPFlow/PFOContainer.h"
26 
27 
28 class IMETMaker : virtual public asg::IAsgTool {
30 
31 public:
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,
39  xAOD::Type::ObjectType metType,
40  xAOD::MissingETContainer* metCont,
41  const xAOD::IParticleContainer* collection,
44  // Default method that uses standard overlap removal policy
46  const xAOD::IParticleContainer* collection,
49  // Full implementation with option flags
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,
65  xAOD::MissingETContainer* metCont,
66  const xAOD::JetContainer* jets,
67  const xAOD::MissingETContainer* metCoreCont,
69  bool doJetJVT) = 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,
74  xAOD::MissingETContainer* metCont,
75  const xAOD::JetContainer* jets,
76  const xAOD::MissingETContainer* metCoreCont,
78  bool doJetJVT) = 0;
79  // Full version receiving MET pointers
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) = 0;
90 
91  // Convenience methods that creates MET terms internally
92  virtual StatusCode rebuildTrackMET(const std::string& metJetKey,
93  const std::string& metSoftKey,
94  xAOD::MissingETContainer* metCont,
95  const xAOD::JetContainer* jets,
96  const xAOD::MissingETContainer* metCoreCont,
98  bool doJetJVT) = 0;
99  // Full version receiving MET pointers
101  const xAOD::JetContainer* jets,
103  xAOD::MissingET* metSoftTrk,
104  const xAOD::MissingET* coreSoftTrk,
105  bool doJetJVT) = 0;
106 
107 
109  // Additional utility commands
111 
114  xAOD::PFOContainer *OR_cpfos,
115  xAOD::PFOContainer *OR_npfos,
116  bool retainMuon = false,
117  const xAOD::IParticleContainer* muonCollection=0) = 0;//,
118  //MissingETBase::UsageHandler::Policy p); //jetOR
119 
122  const xAOD::PFOContainer **OR_pfos,
123  bool retainMuon,
124  const xAOD::IParticleContainer* muonCollection=0) = 0;
125 
128  bool retainMuon = false,
129  const xAOD::IParticleContainer* muonCollection=0,
131 
134  xAOD::MissingETContainer* metCont) = 0;
135 };
136 
137 #endif
IMETMaker::rebuildTrackMET
virtual StatusCode rebuildTrackMET(xAOD::MissingET *metJet, const xAOD::JetContainer *jets, xAOD::MissingETAssociationHelper &helper, xAOD::MissingET *metSoftTrk, const xAOD::MissingET *coreSoftTrk, bool doJetJVT)=0
IMETMaker::retrieveOverlapRemovedConstituents
virtual StatusCode retrieveOverlapRemovedConstituents(const xAOD::PFOContainer *pfo, xAOD::MissingETAssociationHelper &metHelper, const xAOD::PFOContainer **OR_pfos, bool retainMuon, const xAOD::IParticleContainer *muonCollection=0)=0
MissingETBase::UsageHandler::PhysicsObject
@ PhysicsObject
Physics object based.
Definition: MissingETCompositionBase.h:187
IMETMaker::retrieveOverlapRemovedConstituents
virtual StatusCode retrieveOverlapRemovedConstituents(const xAOD::PFOContainer *cpfo, const xAOD::PFOContainer *npfo, xAOD::MissingETAssociationHelper &metHelper, xAOD::PFOContainer *OR_cpfos, xAOD::PFOContainer *OR_npfos, bool retainMuon=false, const xAOD::IParticleContainer *muonCollection=0)=0
IMETMaker::rebuildJetMET
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)=0
ObjectType
ObjectType
Definition: BaseObject.h:11
IMETMaker::markInvisible
virtual StatusCode markInvisible(const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, xAOD::MissingETContainer *metCont)=0
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
PFOContainer.h
IMETMaker::rebuildMET
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)=0
runBeamSpotCalibration.helper
helper
Definition: runBeamSpotCalibration.py:112
IMETMaker::retrieveOverlapRemovedConstituents
virtual const xAOD::PFOContainer * retrieveOverlapRemovedConstituents(const xAOD::PFOContainer *signals, xAOD::MissingETAssociationHelper &helper, bool retainMuon=false, const xAOD::IParticleContainer *muonCollection=0, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::ParticleFlow)=0
IMETMaker
Definition: IMETMaker.h:28
met
Definition: IMETSignificance.h:24
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IParticleContainer.h
IMETMaker::rebuildMET
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)=0
xAOD::MissingET_v1
Principal data object for Missing ET.
Definition: MissingET_v1.h:25
IMETMaker::rebuildJetMET
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)=0
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
IAsgTool.h
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
python.L1.Config.LegacyTopoMergerMap.signals
signals
Definition: LegacyTopoMergerMap.py:13
MissingETBase::UsageHandler::Policy
Policy
Policies on usage checks.
Definition: MissingETCompositionBase.h:182
xAOD::MissingETContainer_v1
Container for xAOD::MissingET_v1 objects.
Definition: MissingETContainer_v1.h:21
xAOD::MissingETAssociationHelper
Definition: MissingETAssociationHelper.h:26
MissingETBase::UsageHandler::ParticleFlow
@ ParticleFlow
Particle Flow Object based.
Definition: MissingETCompositionBase.h:188
JetContainer.h
IMETMaker::rebuildTrackMET
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)=0
IMETMaker::rebuildMET
virtual StatusCode rebuildMET(xAOD::MissingET *met, const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, MissingETBase::UsageHandler::Policy objScale=MissingETBase::UsageHandler::PhysicsObject)=0
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
MissingETAssociationMap.h
MissingETContainer.h
IMETMaker::rebuildJetMET
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)=0