ATLAS Offline Software
Loading...
Searching...
No Matches
TrackToVertex.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
6// TrackToVertex.h, (c) ATLAS Detector software 2005
8
9
10#ifndef RECOTOOLS_TRACKTOVERTEX_H
11#define RECOTOOLS_TRACKTOVERTEX_H
12
13// Gaudi
15#include "GaudiKernel/ToolHandle.h"
16// Trk
19#include "TrkTrack/Track.h"
23
24namespace Trk {
26}
27
36
37namespace Reco {
38
39 class TrackToVertex : public extends <AthAlgTool, ITrackToVertex>
40 {
41 public:
42
44 TrackToVertex(const std::string&,const std::string&,const IInterface*);
45
47 virtual ~TrackToVertex() = default;
48
50 virtual StatusCode initialize() override final;
51
53 virtual std::unique_ptr<Trk::StraightLineSurface> GetBeamLine(
54 const InDet::BeamSpotData*)
55 const override final;
56
60 const EventContext& ctx,
61 const xAOD::TrackParticle& tp,
62 const Amg::Vector3D& gp) const override final;
63
67 const EventContext& ctx,
68 const xAOD::TrackParticle& tp) const override final;
69
72 const EventContext& ctx,
73 const Trk::Track& trk,
74 const Amg::Vector3D& gp) const override final;
75
78 const EventContext& ctx,
79 const Trk::Track& trk,
80 const InDet::BeamSpotData*) const override final;
81
84 virtual std::unique_ptr<Trk::TrackParameters> trackAtBeamline(
85 const EventContext& ctx,
86 const xAOD::TrackParticle& tp,
87 const InDet::BeamSpotData*) const override final;
88
91 virtual std::unique_ptr<Trk::TrackParameters> trackAtBeamline(
92 const EventContext& ctx,
93 const Trk::Track& trk,
94 const Trk::StraightLineSurface* beamline) const override final;
95
98 virtual std::unique_ptr<Trk::TrackParameters> trackAtBeamline(
99 const EventContext& ctx,
100 const Trk::TrackParameters& tpars,
101 const Trk::StraightLineSurface* beamline) const override final;
102
103 private:
104 inline bool startAtOriginalPerigee(const Trk::Track& track) const {
105 return m_startTRTSAAtPerigee.value() &&
106 track.info().patternRecognition().test(
108 track.perigeeParameters();
109 }
110
111 ToolHandle<Trk::IExtrapolator> m_extrapolator{
112 this, "Extrapolator",
113 "Trk::Extrapolator/AtlasExtrapolator"};
114
115 Gaudi::Property<bool> m_startTRTSAAtPerigee{
116 this, "StartTRTStandaloneTracksAtOriginalPerigee", false,
117 "When extrapolating TRT standalone start at their original perigee "
118 "which may have a more realistic covariance"};
119
120 const static Amg::Vector3D s_origin;
121 };
122
123} // end of namespace
124
125
126#endif // RECOTOOLS_TRACKTOVERTEX_H
127
Eigen::Matrix< double, 3, 1 > Vector3D
virtual std::unique_ptr< Trk::Perigee > perigeeAtBeamline(const EventContext &ctx, const Trk::Track &trk, const InDet::BeamSpotData *) const override final
Interface method for use with Track and the beamline.
bool startAtOriginalPerigee(const Trk::Track &track) const
virtual StatusCode initialize() override final
AlgTool initailize method.
virtual std::unique_ptr< Trk::Perigee > perigeeAtVertex(const EventContext &ctx, const xAOD::TrackParticle &tp, const Amg::Vector3D &gp) const override final
Interface method for use with xAOD::Trackparticle and given vertex position.
virtual std::unique_ptr< Trk::StraightLineSurface > GetBeamLine(const InDet::BeamSpotData *) const override final
Use this for MT Coding.
Gaudi::Property< bool > m_startTRTSAAtPerigee
virtual ~TrackToVertex()=default
Virtual destructor.
TrackToVertex(const std::string &, const std::string &, const IInterface *)
AlgTool like constructor.
static const Amg::Vector3D s_origin
static origin
virtual std::unique_ptr< Trk::TrackParameters > trackAtBeamline(const EventContext &ctx, const xAOD::TrackParticle &tp, const InDet::BeamSpotData *) const override final
Interface method for use with TrackParticle and the beamline from the BeamSpotSvc - xAOD.
ToolHandle< Trk::IExtrapolator > m_extrapolator
ToolHandle for Extrapolator.
Class for a StraightLineSurface in the ATLAS detector to describe dirft tube and straw like detectors...
STL class.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, 3, 1 > Vector3D
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
STL namespace.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
#define private