ATLAS Offline Software
METTrackFilterTool.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // METTrackFilterTool.h
8 // Header file for class METTrackFilterTool
9 //
10 // This is a scheduler for the MET Reconstruction, and sets up
11 // the sequence in which the individual terms are constructed.
12 //
13 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
14 //
15 // Author: P Loch, S Resconi, TJ Khoo
17 #ifndef METRECONSTRUCTION_METTRACKFILTERTOOL_H
18 #define METRECONSTRUCTION_METTRACKFILTERTOOL_H 1
19 
20 // STL includes
21 #include <string>
22 
23 // METReconstruction includes
25 
26 // Forward declaration
29 #include "xAODTracking/VertexFwd.h"
31 #include "xAODEgamma/ElectronFwd.h"
33 
34 #include "xAODMuon/Muon.h"
35 #include "xAODMuon/MuonContainer.h"
36 
37 // Tool interfaces
40 
43 
44 
45 namespace met{
46 
48  : public METRefinerTool
49  {
50  // This macro defines the constructor with the interface declaration
52 
53 
54 
55  // Public methods:
57  public:
58 
59  // Constructor with name (does this have to be a non-const
60  // std::string and not a const reference?)
61  METTrackFilterTool(const std::string& name);
63 
64  // AsgTool Hooks
67 
69  // Private data:
71  protected:
73  // Accept functions
74  // bool isPVTrack(const xAOD::TrackParticle* trk, const xAOD::Vertex* pv) const;
75  bool isGoodEoverP(const xAOD::TrackParticle* trk,
76  const std::vector<const xAOD::TrackParticle*>& trkList,
78 
79  private:
80  // Default constructor:
82 
84  xAOD::MissingET* const metTerm,
85  const xAOD::Vertex* const pv,
86  const std::vector<const xAOD::Electron*>& selElectrons,
87  const std::vector<const xAOD::Muon*>& selMuons,
88  const std::vector<const xAOD::TrackParticle*>& softTracks) const;
89 
90  static bool isElTrack(const xAOD::TrackParticle &trk, const std::vector<const xAOD::Electron*>& electrons, size_t &el_index ) ;
91  static bool isMuTrack(const xAOD::TrackParticle &trk, const std::vector<const xAOD::Muon*>& muons) ;
92 
93  ToolHandle<InDet::IInDetTrackSelectionTool> m_trkseltool{this,"TrackSelectorTool","",""};
94  ToolHandle<CP::ITrackVertexAssociationTool> m_trkToVertexTool{this,"TrackVxAssocTool","",""};
95  ToolHandle<xAOD::ITrackIsolationTool> m_trkIsolationTool{this,"TrackIsolationTool","",""};
96  ToolHandle<xAOD::ICaloTopoClusterIsolationTool> m_caloIsolationTool{this,"CaloIsolationTool","",""};
97 
98  static void selectElectrons(const xAOD::ElectronContainer &elCont, std::vector<const xAOD::Electron*>& electrons) ;
99  static void selectMuons(const xAOD::MuonContainer &muCont, std::vector<const xAOD::Muon*>& muons) ;
100 
102 
103  SG::ReadHandleKey<xAOD::ElectronContainer> m_el_inputkey{this,"InputElectronKey","Electrons",""};
104  SG::ReadHandleKey<xAOD::MuonContainer> m_mu_inputkey{this,"InputMuonKey","Muons",""};
105  SG::ReadHandleKey<xAOD::VertexContainer> m_pv_inputkey{this,"InputPVKey","PrimaryVertices",""};
106  SG::ReadHandleKey<xAOD::CaloClusterContainer> m_cl_inputkey{this,"InputClusterKey","CaloCalTopoClusters",""};
107 
108  bool m_doVxSep;
111 
113 
116  };
117 
118 }
119 
120 #endif //> !METRECONSTRUCTION_METTRACKFILTERTOOL_H
met::METTrackFilterTool::m_trkseltool
ToolHandle< InDet::IInDetTrackSelectionTool > m_trkseltool
Definition: METTrackFilterTool.h:93
xAOD::MissingETComponentMap_v1
Definition: MissingETComponentMap_v1.h:25
VertexContainerFwd.h
met::METTrackFilterTool::isMuTrack
static bool isMuTrack(const xAOD::TrackParticle &trk, const std::vector< const xAOD::Muon * > &muons)
Definition: METTrackFilterTool.cxx:382
met::METTrackFilterTool::METTrackFilterTool
METTrackFilterTool()
Muon.h
met::METTrackFilterTool::m_trk_doEoverPsel
bool m_trk_doEoverPsel
Definition: METTrackFilterTool.h:112
met::METTrackFilterTool::m_cl_inputkey
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_cl_inputkey
Definition: METTrackFilterTool.h:106
met::METTrackFilterTool::buildTrackMET
StatusCode buildTrackMET(xAOD::MissingETComponentMap *const metMap, xAOD::MissingET *const metTerm, const xAOD::Vertex *const pv, const std::vector< const xAOD::Electron * > &selElectrons, const std::vector< const xAOD::Muon * > &selMuons, const std::vector< const xAOD::TrackParticle * > &softTracks) const
Definition: METTrackFilterTool.cxx:310
met::METTrackFilterTool::executeTool
StatusCode executeTool(xAOD::MissingET *metTerm, xAOD::MissingETComponentMap *metMap) const
Definition: METTrackFilterTool.cxx:198
met::METTrackFilterTool::m_trkIsolationTool
ToolHandle< xAOD::ITrackIsolationTool > m_trkIsolationTool
Definition: METTrackFilterTool.h:95
met::METTrackFilterTool::selectMuons
static void selectMuons(const xAOD::MuonContainer &muCont, std::vector< const xAOD::Muon * > &muons)
Definition: METTrackFilterTool.cxx:409
met::METTrackFilterTool::m_trkToVertexTool
ToolHandle< CP::ITrackVertexAssociationTool > m_trkToVertexTool
Definition: METTrackFilterTool.h:94
SG::ReadHandleKey< xAOD::ElectronContainer >
ICaloTopoClusterIsolationTool.h
IMETToolBase
Definition: IMETToolBase.h:25
met::METTrackFilterTool::m_trk_doPVsel
bool m_trk_doPVsel
Definition: METTrackFilterTool.h:101
met
Definition: IMETSignificance.h:24
met::METTrackFilterTool::m_doVxSep
bool m_doVxSep
Definition: METTrackFilterTool.h:108
ElectronContainer.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
met::METTrackFilterTool
Definition: METTrackFilterTool.h:49
met::METTrackFilterTool::m_forTrackPtThr
double m_forTrackPtThr
Definition: METTrackFilterTool.h:115
xAOD::MissingET_v1
Principal data object for Missing ET.
Definition: MissingET_v1.h:25
ElectronFwd.h
met::METTrackFilterTool::initialize
StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: METTrackFilterTool.cxx:75
met::METTrackFilterTool::m_caloIsolationTool
ToolHandle< xAOD::ICaloTopoClusterIsolationTool > m_caloIsolationTool
Definition: METTrackFilterTool.h:96
met::METTrackFilterTool::m_mu_inputkey
SG::ReadHandleKey< xAOD::MuonContainer > m_mu_inputkey
Definition: METTrackFilterTool.h:104
met::METTrackFilterTool::isGoodEoverP
bool isGoodEoverP(const xAOD::TrackParticle *trk, const std::vector< const xAOD::TrackParticle * > &trkList, const xAOD::CaloClusterContainer *clusters) const
Definition: METTrackFilterTool.cxx:117
ITrackVertexAssociationTool.h
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
IInDetTrackSelectionTool.h
met::METTrackFilterTool::finalize
StatusCode finalize()
Definition: METTrackFilterTool.cxx:96
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
met::METTrackFilterTool::m_cenTrackPtThr
double m_cenTrackPtThr
Definition: METTrackFilterTool.h:114
met::METTrackFilterTool::isElTrack
static bool isElTrack(const xAOD::TrackParticle &trk, const std::vector< const xAOD::Electron * > &electrons, size_t &el_index)
Definition: METTrackFilterTool.cxx:370
met::METTrackFilterTool::selectElectrons
static void selectElectrons(const xAOD::ElectronContainer &elCont, std::vector< const xAOD::Electron * > &electrons)
Definition: METTrackFilterTool.cxx:393
VertexFwd.h
MuonContainer.h
METRefinerTool.h
met::METTrackFilterTool::m_pv_inputkey
SG::ReadHandleKey< xAOD::VertexContainer > m_pv_inputkey
Definition: METTrackFilterTool.h:105
ITrackIsolationTool.h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
TrackParticleFwd.h
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
met::METTrackFilterTool::m_doLepRecovery
bool m_doLepRecovery
Definition: METTrackFilterTool.h:109
python.changerun.pv
pv
Definition: changerun.py:81
CaloClusterContainer.h
met::METTrackFilterTool::m_useIsolationTools
bool m_useIsolationTools
Definition: METTrackFilterTool.h:110
met::METTrackFilterTool::~METTrackFilterTool
~METTrackFilterTool()
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
met::METRefinerTool
Definition: METRefinerTool.h:39
InDetDD::electrons
@ electrons
Definition: InDetDD_Defs.h:17
met::METTrackFilterTool::m_el_inputkey
SG::ReadHandleKey< xAOD::ElectronContainer > m_el_inputkey
Definition: METTrackFilterTool.h:103