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"
13
14#include "xAODTracking/Vertex.h"
17
23
24#include <vector>
25
27
37
39public:
40 //-------------------------------------------------------------
42 //-------------------------------------------------------------
43 TauTrackFinder(const std::string& name);
46
47 //-------------------------------------------------------------
49 //-------------------------------------------------------------
57
58 //-------------------------------------------------------------
60 //-------------------------------------------------------------
61 virtual StatusCode initialize() override;
62
64 virtual StatusCode executeTool(xAOD::TauJet& pTau,
65 const EventContext& ctx,
66 xAOD::TauTrackContainer& tauTrackCon) const override;
67
68private:
69
71 const xAOD::TrackParticle& trackParticle,
72 const xAOD::Vertex* primaryVertex) const;
73
74 void getTauTracksFromPV( const xAOD::TauJet& tauJet,
75 const std::vector<const xAOD::TrackParticle*>& vecTrackParticles,
76 const xAOD::Vertex* primaryVertex,
77 const bool& useGhostTracks,
78 const xAOD::JetContainer* jetContainer,
79 std::vector<const xAOD::TrackParticle*> &tauTracks,
80 std::vector<const xAOD::TrackParticle*> &wideTracks,
81 std::vector<const xAOD::TrackParticle*> &otherTracks) const;
82
83 // new xAOD version
84 void removeOffsideTracksWrtLeadTrk( const EventContext& ctx,
85 std::vector<const xAOD::TrackParticle*> &tauTracks,
86 std::vector<const xAOD::TrackParticle*> &wideTracks,
87 std::vector<const xAOD::TrackParticle*> &otherTracks,
88 const xAOD::Vertex* tauOrigin,
89 double maxDeltaZ0) const;
90
91 //-------------------------------------------------------------
93 //-------------------------------------------------------------
94 float getZ0(const EventContext& ctx, const xAOD::TrackParticle* track, const xAOD::Vertex* vertex) const; //xAOD version
95 bool isLargeD0Track(const xAOD::TrackParticle* track) const;
96
97 //-------------------------------------------------------------
99 //-------------------------------------------------------------
100 ToolHandle<Trk::ITrackSelectorTool> m_trackSelectorTool_tau {this, "TrackSelectorToolTau", "", "Tool for track selection"};
101 ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool {this, "TrackToVertexTool", "Reco::TrackToVertex"};
102 ToolHandle<Trk::ITrackToVertexIPEstimator> m_trackToVertexIPEstimator {this, "TrackToVertexIPEstimator", ""};
103
104 Gaudi::Property<double> m_maxJetDr_tau {this, "MaxJetDrTau", 0.2};
105 Gaudi::Property<double> m_maxJetDr_wide {this, "MaxJetDrWide", 0.4};
106 Gaudi::Property<float> m_z0maxDelta {this, "maxDeltaZ0wrtLeadTrk", 1000.};
107 Gaudi::Property<bool> m_removeDuplicateCoreTracks {this, "removeDuplicateCoreTracks", true};
108 Gaudi::Property<bool> m_useGhostTracks {this, "useGhostTracks", false};
109 Gaudi::Property<double> m_ghostTrackDR {this, "ghostTrackDR", 0.25};
110
111 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_trackPartInputContainer {this,"Key_trackPartInputContainer", "InDetTrackParticles", "input track particle container key"};
112 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_largeD0TracksInputContainer {this,"Key_LargeD0TrackInputContainer", "", "input LRT particle container key"}; //Expecting InDetLargeD0TrackParticles (offline tracks) if using LRT used
113 SG::ReadHandleKey<xAOD::JetContainer> m_jetContainer {this,"Key_jetContainer", "", "Name of the seed jet container, when using ghost matching"};
114
115 SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" };
116
117 bool m_applyZ0cut = false;
118
119};
120
121#endif // TAURECTOOLS_TAUTRACKFINDER_H
122#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::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.
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
ToolHandle< Trk::ITrackToVertexIPEstimator > m_trackToVertexIPEstimator
SG::ReadHandleKey< xAOD::JetContainer > m_jetContainer
TauTrackType
Enumerator defining type of tau track.
ToolHandle< Trk::ITrackSelectorTool > m_trackSelectorTool_tau
tools
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.
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".