ATLAS Offline Software
Loading...
Searching...
No Matches
TrackToVertexIPEstimator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRKVERTEXFITTERUTILS_TRACKTOVERTEXIPESTIMATOR_H
6#define TRKVERTEXFITTERUTILS_TRACKTOVERTEXIPESTIMATOR_H
7
9//
11//
12#include "GaudiKernel/ToolHandle.h"
16//
19//
20#include "CLHEP/Vector/ThreeVector.h"
21namespace Trk {
22
23class Track;
25
70
71class TrackToVertexIPEstimator : public extends<AthAlgTool,
72 ITrackToVertexIPEstimator> {
73
74 public:
78 virtual StatusCode initialize() override;
79
83 TrackToVertexIPEstimator(const std::string& t, const std::string& n,
84 const IInterface* p);
85
87
92 virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
93 const xAOD::TrackParticle* track, const xAOD::Vertex* vtx,
94 bool doRemoval) const override;
95 virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
96 const TrackParameters* track, const xAOD::Vertex* vtx,
97 bool doRemoval) const override;
98
99 virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
100 const xAOD::TrackParticle* track, const xAOD::TrackParticle* newtrack,
101 const xAOD::Vertex* vtx, bool doRemoval) const override;
102 virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
103 const TrackParameters* track, const TrackParameters* newtrack,
104 const xAOD::Vertex* vtx, bool doRemoval) const override;
105
107 const xAOD::TrackParticle* track, const xAOD::Vertex* vtx) const override;
109 const TrackParameters* track, const xAOD::Vertex* vtx) const override;
110
111 virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
112 const xAOD::TrackParticle* track, const xAOD::Vertex* vtx) const override;
113 virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
114 const TrackParameters* track, const xAOD::Vertex* vtx) const override;
115
116 /* Methods which provide the lifetime Sign for the Impact Parameter (2D, Z,
117 * 3D) */
118 virtual double get3DLifetimeSignOfTrack(
119 const TrackParameters& track, const Amg::Vector3D& jetDirection,
120 const xAOD::Vertex& primaryVertex) const override;
121 virtual double get3DLifetimeSignOfTrack(
122 const TrackParameters& track, const CLHEP::Hep3Vector& jetDirection,
123 const xAOD::Vertex& primaryVertex) const override;
124
125 virtual double get2DLifetimeSignOfTrack(
126 const TrackParameters& track, const Amg::Vector3D& jetDirection,
127 const xAOD::Vertex& primaryVertex) const override;
128 virtual double get2DLifetimeSignOfTrack(
129 const TrackParameters& track, const CLHEP::Hep3Vector& jetDirection,
130 const xAOD::Vertex& primaryVertex) const override;
131
132 virtual double getZLifetimeSignOfTrack(
133 const TrackParameters& track, const Amg::Vector3D& jetDirection,
134 const xAOD::Vertex& primaryVertex) const override;
135 virtual double getZLifetimeSignOfTrack(
136 const TrackParameters& track, const CLHEP::Hep3Vector& jetDirection,
137 const xAOD::Vertex& primaryVertex) const override;
138
139 private:
145 std::unique_ptr<ImpactParametersAndSigma> calculate(
146 const TrackParameters* track, const xAOD::Vertex& vtx) const;
147
148 ToolHandle<Trk::IExtrapolator> m_extrapolator{this, "Extrapolator",
149 "Trk::Extrapolator"};
150 ToolHandle<Trk::IVertexUpdator> m_Updator{this, "VertexUpdator",
151 "Trk::KalmanVertexUpdator"};
152 ToolHandle<Trk::IVertexLinearizedTrackFactory> m_linFactory{
153 this, "LinearizedTrackFactory", "Trk::FullLinearizedTrackFactory"};
154
155}; // end of class definitions
156
157} // namespace Trk
158
159#endif
virtual double get2DLifetimeSignOfTrack(const TrackParameters &track, const Amg::Vector3D &jetDirection, const xAOD::Vertex &primaryVertex) const override
ToolHandle< Trk::IVertexUpdator > m_Updator
virtual double getZLifetimeSignOfTrack(const TrackParameters &track, const Amg::Vector3D &jetDirection, const xAOD::Vertex &primaryVertex) const override
std::unique_ptr< ImpactParametersAndSigma > calculate(const TrackParameters *track, const xAOD::Vertex &vtx) const
A method calculating the do and its error.
virtual StatusCode initialize() override
Default Athena interface methods.
virtual xAOD::Vertex * getUnbiasedVertex(const xAOD::TrackParticle *track, const xAOD::Vertex *vtx) const override
ToolHandle< Trk::IExtrapolator > m_extrapolator
virtual std::unique_ptr< ImpactParametersAndSigma > estimate(const xAOD::TrackParticle *track, const xAOD::Vertex *vtx, bool doRemoval) const override
Estimate methods returning a d0 and its calculated sigma.
virtual double get3DLifetimeSignOfTrack(const TrackParameters &track, const Amg::Vector3D &jetDirection, const xAOD::Vertex &primaryVertex) const override
TrackToVertexIPEstimator(const std::string &t, const std::string &n, const IInterface *p)
Default Athena interface constructor and destructor.
ToolHandle< Trk::IVertexLinearizedTrackFactory > m_linFactory
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.