ATLAS Offline Software
Loading...
Searching...
No Matches
TauTrackFinder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef XAOD_ANALYSIS
6#ifndef TAURECTOOLS_TAUTRACKFINDER_H
7#define TAURECTOOLS_TAUTRACKFINDER_H
8
10#include "GaudiKernel/ToolHandle.h"
14
15#include "xAODTracking/Vertex.h"
18
24
25#include <vector>
26
28
38
40public:
41 //-------------------------------------------------------------
43 //-------------------------------------------------------------
44 TauTrackFinder(const std::string& name);
47
48 //-------------------------------------------------------------
50 //-------------------------------------------------------------
58
59 //-------------------------------------------------------------
61 //-------------------------------------------------------------
62 virtual StatusCode initialize() override;
63 virtual StatusCode executeTrackFinder(xAOD::TauJet& pTau, xAOD::TauTrackContainer& tauTrackCon) const override;
64
65private:
66 //-------------------------------------------------------------
68 //-------------------------------------------------------------
70 xAOD::TauTrackContainer& tauTrackCon) const;
71
73 const xAOD::TrackParticle& trackParticle,
74 const xAOD::Vertex* primaryVertex) const;
75
76 void getTauTracksFromPV( const xAOD::TauJet& tauJet,
77 const std::vector<const xAOD::TrackParticle*>& vecTrackParticles,
78 const xAOD::Vertex* primaryVertex,
79 const bool& useGhostTracks,
80 const xAOD::JetContainer* jetContainer,
81 std::vector<const xAOD::TrackParticle*> &tauTracks,
82 std::vector<const xAOD::TrackParticle*> &wideTracks,
83 std::vector<const xAOD::TrackParticle*> &otherTracks) const;
84
85 // new xAOD version
86 void removeOffsideTracksWrtLeadTrk(std::vector<const xAOD::TrackParticle*> &tauTracks,
87 std::vector<const xAOD::TrackParticle*> &wideTracks,
88 std::vector<const xAOD::TrackParticle*> &otherTracks,
89 const xAOD::Vertex* tauOrigin,
90 double maxDeltaZ0) const;
91
92 //-------------------------------------------------------------
94 //-------------------------------------------------------------
95 float getZ0(const xAOD::TrackParticle* track, const xAOD::Vertex* vertex) const; //xAOD version
96 bool isLargeD0Track(const xAOD::TrackParticle* track) const;
97
98 //-------------------------------------------------------------
100 //-------------------------------------------------------------
101 ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtensionTool {this, "ParticleCaloExtensionTool", "Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool", "Tool for the extrapolation of charged tracks"};
102 ToolHandle<Trk::ITrackSelectorTool> m_trackSelectorTool_tau {this, "TrackSelectorToolTau", "", "Tool for track selection"};
103 ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool {this, "TrackToVertexTool", "Reco::TrackToVertex"};
104 ToolHandle<Trk::ITrackToVertexIPEstimator> m_trackToVertexIPEstimator {this, "TrackToVertexIPEstimator", ""};
105
106 Gaudi::Property<double> m_maxJetDr_tau {this, "MaxJetDrTau", 0.2};
107 Gaudi::Property<double> m_maxJetDr_wide {this, "MaxJetDrWide", 0.4};
108 Gaudi::Property<bool> m_applyZ0cut {this, "removeTracksOutsideZ0wrtLeadTrk", false};
109 Gaudi::Property<float> m_z0maxDelta {this, "maxDeltaZ0wrtLeadTrk", 1000.};
110 Gaudi::Property<bool> m_removeDuplicateCoreTracks {this, "removeDuplicateCoreTracks", true};
111 Gaudi::Property<bool> m_bypassExtrapolator {this, "BypassExtrapolator", false};
112 Gaudi::Property<bool> m_useGhostTracks {this, "useGhostTracks", false};
113 Gaudi::Property<double> m_ghostTrackDR {this, "ghostTrackDR", 0.25};
114
115 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_trackPartInputContainer {this,"Key_trackPartInputContainer", "InDetTrackParticles", "input track particle container key"};
116 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_largeD0TracksInputContainer {this,"Key_LargeD0TrackInputContainer", "", "input LRT particle container key"}; //Expecting InDetLargeD0TrackParticles (offline tracks) if using LRT used
117 SG::ReadHandleKey<xAOD::JetContainer> m_jetContainer {this,"Key_jetContainer", "", "Name of the seed jet container, when using ghost matching"};
118 SG::ReadHandleKey<CaloExtensionCollection> m_ParticleCacheKey {this,"tauParticleCache", "ParticleCaloExtension", "Name of the particle measurement extrapolation cache for TauTrackFinder"};
119
120 SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" };
121
122 std::set<CaloSampling::CaloSample> m_EMSamplings;
123 std::set<CaloSampling::CaloSample> m_HadSamplings;
124};
125
126#endif // TAURECTOOLS_TAUTRACKFINDER_H
127#endif // XAOD_ANALYSIS
Property holding a SG store/key/clid from which a ReadHandle is made.
The base class for all tau tools.
Property holding a SG store/key/clid from which a ReadHandle is made.
TauRecToolBase(const std::string &name)
SG::ReadHandleKey< CaloExtensionCollection > m_ParticleCacheKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackPartInputContainer
TauTrackType tauTrackType(const xAOD::TauJet &tauJet, const xAOD::TrackParticle &trackParticle, const xAOD::Vertex *primaryVertex) const
Gaudi::Property< double > m_ghostTrackDR
float getZ0(const xAOD::TrackParticle *track, const xAOD::Vertex *vertex) const
Some internally used functions.
virtual StatusCode initialize() override
Algorithm functions.
void getTauTracksFromPV(const xAOD::TauJet &tauJet, const std::vector< const xAOD::TrackParticle * > &vecTrackParticles, const xAOD::Vertex *primaryVertex, const bool &useGhostTracks, const xAOD::JetContainer *jetContainer, std::vector< const xAOD::TrackParticle * > &tauTracks, std::vector< const xAOD::TrackParticle * > &wideTracks, std::vector< const xAOD::TrackParticle * > &otherTracks) const
std::set< CaloSampling::CaloSample > m_HadSamplings
StatusCode extrapolateToCaloSurface(xAOD::TauJet &pTau, xAOD::TauTrackContainer &tauTrackCon) const
Extrapolate track eta and phi to the calorimeter middle surface.
ToolHandle< Trk::ITrackToVertexIPEstimator > m_trackToVertexIPEstimator
void removeOffsideTracksWrtLeadTrk(std::vector< const xAOD::TrackParticle * > &tauTracks, std::vector< const xAOD::TrackParticle * > &wideTracks, std::vector< const xAOD::TrackParticle * > &otherTracks, const xAOD::Vertex *tauOrigin, double maxDeltaZ0) const
SG::ReadHandleKey< xAOD::JetContainer > m_jetContainer
std::set< CaloSampling::CaloSample > m_EMSamplings
TauTrackType
Enumerator defining type of tau track.
ToolHandle< Trk::ITrackSelectorTool > m_trackSelectorTool_tau
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_largeD0TracksInputContainer
Gaudi::Property< double > m_maxJetDr_wide
ASG_TOOL_CLASS2(TauTrackFinder, TauRecToolBase, ITauToolBase)
Gaudi::Property< float > m_z0maxDelta
virtual StatusCode executeTrackFinder(xAOD::TauJet &pTau, xAOD::TauTrackContainer &tauTrackCon) const override
Gaudi::Property< bool > m_applyZ0cut
Gaudi::Property< double > m_maxJetDr_tau
Gaudi::Property< bool > m_bypassExtrapolator
Gaudi::Property< bool > m_useGhostTracks
TauTrackFinder(const std::string &name)
Constructor and Destructor.
ToolHandle< Trk::IParticleCaloExtensionTool > m_caloExtensionTool
tools
Gaudi::Property< bool > m_removeDuplicateCoreTracks
bool isLargeD0Track(const xAOD::TrackParticle *track) const
ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.
TauJet_v3 TauJet
Definition of the current "tau version".
TauTrackContainer_v1 TauTrackContainer
Definition of the current TauTrack container version.
JetContainer_v1 JetContainer
Definition of the current "jet container version".