ATLAS Offline Software
Loading...
Searching...
No Matches
TauTrackFinder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 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 //-------------------------------------------------------------
69 StatusCode extrapolateToCaloSurface(const EventContext& ctx,
70 xAOD::TauJet& pTau,
71 xAOD::TauTrackContainer& tauTrackCon) const;
72
74 const xAOD::TrackParticle& trackParticle,
75 const xAOD::Vertex* primaryVertex) const;
76
77 void getTauTracksFromPV( const xAOD::TauJet& tauJet,
78 const std::vector<const xAOD::TrackParticle*>& vecTrackParticles,
79 const xAOD::Vertex* primaryVertex,
80 const bool& useGhostTracks,
81 const xAOD::JetContainer* jetContainer,
82 std::vector<const xAOD::TrackParticle*> &tauTracks,
83 std::vector<const xAOD::TrackParticle*> &wideTracks,
84 std::vector<const xAOD::TrackParticle*> &otherTracks) const;
85
86 // new xAOD version
87 void removeOffsideTracksWrtLeadTrk( const EventContext& ctx,
88 std::vector<const xAOD::TrackParticle*> &tauTracks,
89 std::vector<const xAOD::TrackParticle*> &wideTracks,
90 std::vector<const xAOD::TrackParticle*> &otherTracks,
91 const xAOD::Vertex* tauOrigin,
92 double maxDeltaZ0) const;
93
94 //-------------------------------------------------------------
96 //-------------------------------------------------------------
97 float getZ0(const EventContext& ctx, const xAOD::TrackParticle* track, const xAOD::Vertex* vertex) const; //xAOD version
98 bool isLargeD0Track(const xAOD::TrackParticle* track) const;
99
100 //-------------------------------------------------------------
102 //-------------------------------------------------------------
103 ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtensionTool {this, "ParticleCaloExtensionTool", "Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool", "Tool for the extrapolation of charged tracks"};
104 ToolHandle<Trk::ITrackSelectorTool> m_trackSelectorTool_tau {this, "TrackSelectorToolTau", "", "Tool for track selection"};
105 ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool {this, "TrackToVertexTool", "Reco::TrackToVertex"};
106 ToolHandle<Trk::ITrackToVertexIPEstimator> m_trackToVertexIPEstimator {this, "TrackToVertexIPEstimator", ""};
107
108 Gaudi::Property<double> m_maxJetDr_tau {this, "MaxJetDrTau", 0.2};
109 Gaudi::Property<double> m_maxJetDr_wide {this, "MaxJetDrWide", 0.4};
110 Gaudi::Property<bool> m_applyZ0cut {this, "removeTracksOutsideZ0wrtLeadTrk", false};
111 Gaudi::Property<float> m_z0maxDelta {this, "maxDeltaZ0wrtLeadTrk", 1000.};
112 Gaudi::Property<bool> m_removeDuplicateCoreTracks {this, "removeDuplicateCoreTracks", true};
113 Gaudi::Property<bool> m_bypassExtrapolator {this, "BypassExtrapolator", false};
114 Gaudi::Property<bool> m_useGhostTracks {this, "useGhostTracks", false};
115 Gaudi::Property<double> m_ghostTrackDR {this, "ghostTrackDR", 0.25};
116
117 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_trackPartInputContainer {this,"Key_trackPartInputContainer", "InDetTrackParticles", "input track particle container key"};
118 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_largeD0TracksInputContainer {this,"Key_LargeD0TrackInputContainer", "", "input LRT particle container key"}; //Expecting InDetLargeD0TrackParticles (offline tracks) if using LRT used
119 SG::ReadHandleKey<xAOD::JetContainer> m_jetContainer {this,"Key_jetContainer", "", "Name of the seed jet container, when using ghost matching"};
120 SG::ReadHandleKey<CaloExtensionCollection> m_ParticleCacheKey {this,"tauParticleCache", "ParticleCaloExtension", "Name of the particle measurement extrapolation cache for TauTrackFinder"};
121
122 SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" };
123
124 std::set<CaloSampling::CaloSample> m_EMSamplings;
125 std::set<CaloSampling::CaloSample> m_HadSamplings;
126};
127
128#endif // TAURECTOOLS_TAUTRACKFINDER_H
129#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
virtual StatusCode initialize() override
Algorithm functions.
StatusCode extrapolateToCaloSurface(const EventContext &ctx, xAOD::TauJet &pTau, xAOD::TauTrackContainer &tauTrackCon) const
Extrapolate track eta and phi to the calorimeter middle surface.
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
ToolHandle< Trk::ITrackToVertexIPEstimator > m_trackToVertexIPEstimator
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
void removeOffsideTracksWrtLeadTrk(const EventContext &ctx, 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
TauTrackFinder(const std::string &name)
Constructor and Destructor.
ToolHandle< Trk::IParticleCaloExtensionTool > m_caloExtensionTool
tools
float getZ0(const EventContext &ctx, const xAOD::TrackParticle *track, const xAOD::Vertex *vertex) const
Some internally used functions.
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".