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
65 virtual StatusCode executeTool(xAOD::TauJet& pTau,
66 const EventContext& ctx,
67 xAOD::TauTrackContainer& tauTrackCon) const override;
68
69private:
70 //-------------------------------------------------------------
72 //-------------------------------------------------------------
73 StatusCode extrapolateToCaloSurface(const EventContext& ctx,
74 xAOD::TauJet& pTau,
75 xAOD::TauTrackContainer& tauTrackCon) const;
76
78 const xAOD::TrackParticle& trackParticle,
79 const xAOD::Vertex* primaryVertex) const;
80
81 void getTauTracksFromPV( const xAOD::TauJet& tauJet,
82 const std::vector<const xAOD::TrackParticle*>& vecTrackParticles,
83 const xAOD::Vertex* primaryVertex,
84 const bool& useGhostTracks,
85 const xAOD::JetContainer* jetContainer,
86 std::vector<const xAOD::TrackParticle*> &tauTracks,
87 std::vector<const xAOD::TrackParticle*> &wideTracks,
88 std::vector<const xAOD::TrackParticle*> &otherTracks) const;
89
90 // new xAOD version
91 void removeOffsideTracksWrtLeadTrk( const EventContext& ctx,
92 std::vector<const xAOD::TrackParticle*> &tauTracks,
93 std::vector<const xAOD::TrackParticle*> &wideTracks,
94 std::vector<const xAOD::TrackParticle*> &otherTracks,
95 const xAOD::Vertex* tauOrigin,
96 double maxDeltaZ0) const;
97
98 //-------------------------------------------------------------
100 //-------------------------------------------------------------
101 float getZ0(const EventContext& ctx, const xAOD::TrackParticle* track, const xAOD::Vertex* vertex) const; //xAOD version
102 bool isLargeD0Track(const xAOD::TrackParticle* track) const;
103
104 //-------------------------------------------------------------
106 //-------------------------------------------------------------
107 ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtensionTool {this, "ParticleCaloExtensionTool", "Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool", "Tool for the extrapolation of charged tracks"};
108 ToolHandle<Trk::ITrackSelectorTool> m_trackSelectorTool_tau {this, "TrackSelectorToolTau", "", "Tool for track selection"};
109 ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool {this, "TrackToVertexTool", "Reco::TrackToVertex"};
110 ToolHandle<Trk::ITrackToVertexIPEstimator> m_trackToVertexIPEstimator {this, "TrackToVertexIPEstimator", ""};
111
112 Gaudi::Property<double> m_maxJetDr_tau {this, "MaxJetDrTau", 0.2};
113 Gaudi::Property<double> m_maxJetDr_wide {this, "MaxJetDrWide", 0.4};
114 Gaudi::Property<float> m_z0maxDelta {this, "maxDeltaZ0wrtLeadTrk", 1000.};
115 Gaudi::Property<bool> m_removeDuplicateCoreTracks {this, "removeDuplicateCoreTracks", true};
116 Gaudi::Property<bool> m_useGhostTracks {this, "useGhostTracks", false};
117 Gaudi::Property<double> m_ghostTrackDR {this, "ghostTrackDR", 0.25};
118
119 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_trackPartInputContainer {this,"Key_trackPartInputContainer", "InDetTrackParticles", "input track particle container key"};
120 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_largeD0TracksInputContainer {this,"Key_LargeD0TrackInputContainer", "", "input LRT particle container key"}; //Expecting InDetLargeD0TrackParticles (offline tracks) if using LRT used
121 SG::ReadHandleKey<xAOD::JetContainer> m_jetContainer {this,"Key_jetContainer", "", "Name of the seed jet container, when using ghost matching"};
122 SG::ReadHandleKey<CaloExtensionCollection> m_ParticleCacheKey {this,"tauParticleCache", "ParticleCaloExtension", "Name of the particle measurement extrapolation cache for TauTrackFinder"};
123
124 SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" };
125
127 bool m_applyZ0cut = false;
128
129 std::set<CaloSampling::CaloSample> m_EMSamplings;
130 std::set<CaloSampling::CaloSample> m_HadSamplings;
131};
132
133#endif // TAURECTOOLS_TAUTRACKFINDER_H
134#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)
virtual StatusCode executeTool(xAOD::TauJet &, const EventContext &) const override
Execute - called for each tau candidate.
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 executeTool(xAOD::TauJet &pTau, const EventContext &ctx, xAOD::TauTrackContainer &tauTrackCon) const override
Gaudi::Property< double > m_maxJetDr_tau
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".
Definition TauJet.h:17
TauTrackContainer_v1 TauTrackContainer
Definition of the current TauTrack container version.
JetContainer_v1 JetContainer
Definition of the current "jet container version".