ATLAS Offline Software
ITrackToVertexIPEstimator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 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 static const InterfaceID IID_ITrackToVertexCompatibilityEstimator(
46  "ITrackToVertexIPEstimator", 1, 0);
47 
48 class ITrackToVertexIPEstimator : virtual public IAlgTool {
49 
50  public:
52 
53  static const InterfaceID& interfaceID() {
54  return IID_ITrackToVertexCompatibilityEstimator;
55  };
56 
61  virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
62  const xAOD::TrackParticle* track, const xAOD::Vertex* vtx,
63  bool doRemoval) const = 0;
64 
65  virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
66  const Trk::TrackParameters* track, const xAOD::Vertex* vtx,
67  bool doRemoval) const = 0;
68 
69  virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
70  const xAOD::TrackParticle* track, const xAOD::TrackParticle* newtrack,
71  const xAOD::Vertex* vtx, bool doRemoval) const = 0;
72 
73  virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
74  const Trk::TrackParameters* track, const Trk::TrackParameters* newtrack,
75  const xAOD::Vertex* vtx, bool doRemoval) const = 0;
76 
78  const xAOD::Vertex* vtx) const = 0;
80  const xAOD::Vertex* vtx) const = 0;
81 
82  virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
83  const xAOD::TrackParticle* track, const xAOD::Vertex* vtx) const = 0;
84 
85  virtual std::unique_ptr<ImpactParametersAndSigma> estimate(
86  const Trk::TrackParameters* track, const xAOD::Vertex* vtx) const = 0;
87 
88  virtual double get3DLifetimeSignOfTrack(
89  const Trk::TrackParameters& track, const Amg::Vector3D& jetMomentum,
90  const xAOD::Vertex& primaryVertex) const = 0;
91  virtual double get3DLifetimeSignOfTrack(
92  const Trk::TrackParameters& track, const CLHEP::Hep3Vector& jetMomentum,
93  const xAOD::Vertex& primaryVertex) const = 0;
94 
95  virtual double get2DLifetimeSignOfTrack(
96  const Trk::TrackParameters& track, const Amg::Vector3D& jetMomentum,
97  const xAOD::Vertex& primaryVertex) const = 0;
98  virtual double get2DLifetimeSignOfTrack(
99  const Trk::TrackParameters& track, const CLHEP::Hep3Vector& jetMomentum,
100  const xAOD::Vertex& primaryVertex) const = 0;
101 
102  virtual double getZLifetimeSignOfTrack(
103  const Trk::TrackParameters& track, const Amg::Vector3D& jetMomentum,
104  const xAOD::Vertex& primaryVertex) const = 0;
105  virtual double getZLifetimeSignOfTrack(
106  const Trk::TrackParameters& track, const CLHEP::Hep3Vector& jetMomentum,
107  const xAOD::Vertex& primaryVertex) const = 0;
108 
109 }; // end of class definitions
110 
111 } // namespace Trk
112 #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::ITrackToVertexIPEstimator::interfaceID
static const InterfaceID & interfaceID()
Definition: ITrackToVertexIPEstimator.h:53
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::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:48