ATLAS Offline Software
ITrackToVertexIPEstimator.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 TRKVERTEXFITTERINTERFACES_ITRACKTOVERTEXIPESTIMATOR_H
6 #define TRKVERTEXFITTERINTERFACES_ITRACKTOVERTEXIPESTIMATOR_H
7 
8 #include "GaudiKernel/IAlgTool.h"
10 //
12 #include "xAODTracking/VertexFwd.h"
13 //
14 #include <memory>
15 
16 #include "CLHEP/Vector/ThreeVector.h"
31 namespace Trk {
32 
34  double IPd0;
35  double IPz0;
36  double IPz0SinTheta;
37  double sigmad0;
38  double sigmaz0;
40  double PVsigmad0;
41  double PVsigmaz0;
43 };
44 
45 
46 class ITrackToVertexIPEstimator : virtual public IAlgTool {
47 
48  public:
50 
52 
57  virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
58  const xAOD::TrackParticle* track, const xAOD::Vertex* vtx,
59  bool doRemoval) const = 0;
60 
61  virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
62  const Trk::TrackParameters* track, const xAOD::Vertex* vtx,
63  bool doRemoval) const = 0;
64 
65  virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
66  const xAOD::TrackParticle* track, const xAOD::TrackParticle* newtrack,
67  const xAOD::Vertex* vtx, bool doRemoval) const = 0;
68 
69  virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
70  const Trk::TrackParameters* track, const Trk::TrackParameters* newtrack,
71  const xAOD::Vertex* vtx, bool doRemoval) const = 0;
72 
74  const xAOD::Vertex* vtx) const = 0;
76  const xAOD::Vertex* vtx) const = 0;
77 
78  virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
79  const xAOD::TrackParticle* track, const xAOD::Vertex* vtx) const = 0;
80 
81  virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
82  const Trk::TrackParameters* track, const xAOD::Vertex* vtx) const = 0;
83 
84  virtual double get3DLifetimeSignOfTrack(
85  const Trk::TrackParameters& track, const Amg::Vector3D& jetMomentum,
86  const xAOD::Vertex& primaryVertex) const = 0;
87  virtual double get3DLifetimeSignOfTrack(
88  const Trk::TrackParameters& track, const CLHEP::Hep3Vector& jetMomentum,
89  const xAOD::Vertex& primaryVertex) const = 0;
90 
91  virtual double get2DLifetimeSignOfTrack(
92  const Trk::TrackParameters& track, const Amg::Vector3D& jetMomentum,
93  const xAOD::Vertex& primaryVertex) const = 0;
94  virtual double get2DLifetimeSignOfTrack(
95  const Trk::TrackParameters& track, const CLHEP::Hep3Vector& jetMomentum,
96  const xAOD::Vertex& primaryVertex) const = 0;
97 
98  virtual double getZLifetimeSignOfTrack(
99  const Trk::TrackParameters& track, const Amg::Vector3D& jetMomentum,
100  const xAOD::Vertex& primaryVertex) const = 0;
101  virtual double getZLifetimeSignOfTrack(
102  const Trk::TrackParameters& track, const CLHEP::Hep3Vector& jetMomentum,
103  const xAOD::Vertex& primaryVertex) const = 0;
104 
105 }; // end of class definitions
106 
107 } // namespace Trk
108 #endif
Trk::ITrackToVertexIPEstimator::estimate
virtual std::unique_ptr< ImpactParametersAndSigma > estimate(const xAOD::TrackParticle *track, const xAOD::TrackParticle *newtrack, const xAOD::Vertex *vtx, bool doRemoval) const =0
Trk::ImpactParametersAndSigma
Definition: ITrackToVertexIPEstimator.h:33
TrackParameters.h
Trk::ImpactParametersAndSigma::PVsigmaz0
double PVsigmaz0
Definition: ITrackToVertexIPEstimator.h:41
Trk::ImpactParametersAndSigma::PVsigmaz0SinTheta
double PVsigmaz0SinTheta
Definition: ITrackToVertexIPEstimator.h:42
Trk::ImpactParametersAndSigma::IPd0
double IPd0
Definition: ITrackToVertexIPEstimator.h:34
Trk::ImpactParametersAndSigma::IPz0SinTheta
double IPz0SinTheta
Definition: ITrackToVertexIPEstimator.h:36
Trk::ITrackToVertexIPEstimator::estimate
virtual std::unique_ptr< ImpactParametersAndSigma > estimate(const xAOD::TrackParticle *track, const xAOD::Vertex *vtx) const =0
Trk::ITrackToVertexIPEstimator::get2DLifetimeSignOfTrack
virtual double get2DLifetimeSignOfTrack(const Trk::TrackParameters &track, const Amg::Vector3D &jetMomentum, const xAOD::Vertex &primaryVertex) const =0
Trk::ImpactParametersAndSigma::PVsigmad0
double PVsigmad0
Definition: ITrackToVertexIPEstimator.h:40
Trk::ITrackToVertexIPEstimator::getZLifetimeSignOfTrack
virtual double getZLifetimeSignOfTrack(const Trk::TrackParameters &track, const Amg::Vector3D &jetMomentum, const xAOD::Vertex &primaryVertex) const =0
Trk::ITrackToVertexIPEstimator::getUnbiasedVertex
virtual xAOD::Vertex * getUnbiasedVertex(const xAOD::TrackParticle *track, const xAOD::Vertex *vtx) const =0
Trk::ITrackToVertexIPEstimator::~ITrackToVertexIPEstimator
virtual ~ITrackToVertexIPEstimator()
Definition: ITrackToVertexIPEstimator.h:51
Trk::ITrackToVertexIPEstimator::get2DLifetimeSignOfTrack
virtual double get2DLifetimeSignOfTrack(const Trk::TrackParameters &track, const CLHEP::Hep3Vector &jetMomentum, const xAOD::Vertex &primaryVertex) const =0
Trk::ITrackToVertexIPEstimator::get3DLifetimeSignOfTrack
virtual double get3DLifetimeSignOfTrack(const Trk::TrackParameters &track, const Amg::Vector3D &jetMomentum, const xAOD::Vertex &primaryVertex) const =0
Trk::ImpactParametersAndSigma::IPz0
double IPz0
Definition: ITrackToVertexIPEstimator.h:35
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::ImpactParametersAndSigma::sigmad0
double sigmad0
Definition: ITrackToVertexIPEstimator.h:37
Trk::ITrackToVertexIPEstimator::estimate
virtual std::unique_ptr< ImpactParametersAndSigma > estimate(const xAOD::TrackParticle *track, const xAOD::Vertex *vtx, bool doRemoval) const =0
Estimate methods returning a d0 and its calculated sigma.
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ITrackToVertexIPEstimator::getUnbiasedVertex
virtual xAOD::Vertex * getUnbiasedVertex(const Trk::TrackParameters *track, const xAOD::Vertex *vtx) const =0
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::ITrackToVertexIPEstimator::get3DLifetimeSignOfTrack
virtual double get3DLifetimeSignOfTrack(const Trk::TrackParameters &track, const CLHEP::Hep3Vector &jetMomentum, const xAOD::Vertex &primaryVertex) const =0
VertexFwd.h
Trk::ImpactParametersAndSigma::sigmaz0SinTheta
double sigmaz0SinTheta
Definition: ITrackToVertexIPEstimator.h:39
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
TrackParticleFwd.h
Trk::ImpactParametersAndSigma::sigmaz0
double sigmaz0
Definition: ITrackToVertexIPEstimator.h:38
Trk::ITrackToVertexIPEstimator::estimate
virtual std::unique_ptr< ImpactParametersAndSigma > estimate(const Trk::TrackParameters *track, const xAOD::Vertex *vtx, bool doRemoval) const =0
Trk::ITrackToVertexIPEstimator::estimate
virtual std::unique_ptr< ImpactParametersAndSigma > estimate(const Trk::TrackParameters *track, const xAOD::Vertex *vtx) const =0
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
Trk::ITrackToVertexIPEstimator::DeclareInterfaceID
DeclareInterfaceID(ITrackToVertexIPEstimator, 1, 0)
Trk::ITrackToVertexIPEstimator::getZLifetimeSignOfTrack
virtual double getZLifetimeSignOfTrack(const Trk::TrackParameters &track, const CLHEP::Hep3Vector &jetMomentum, const xAOD::Vertex &primaryVertex) const =0
Trk::ITrackToVertexIPEstimator::estimate
virtual std::unique_ptr< ImpactParametersAndSigma > estimate(const Trk::TrackParameters *track, const Trk::TrackParameters *newtrack, const xAOD::Vertex *vtx, bool doRemoval) const =0
Trk::ITrackToVertexIPEstimator
Definition: ITrackToVertexIPEstimator.h:46