ATLAS Offline Software
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 //
18 #include "xAODTracking/VertexFwd.h"
19 //
20 #include "CLHEP/Vector/ThreeVector.h"
21 namespace Trk {
22 
23 class Track;
24 class TrackParticleBase;
25 
71 class 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
Trk::TrackToVertexIPEstimator
A class estimating the transverse impact parameter d0 and its error of a given track wrt to the recon...
Definition: TrackToVertexIPEstimator.h:72
Trk::TrackToVertexIPEstimator::~TrackToVertexIPEstimator
~TrackToVertexIPEstimator()
IExtrapolator.h
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::TrackToVertexIPEstimator::calculate
std::unique_ptr< ImpactParametersAndSigma > calculate(const TrackParameters *track, const xAOD::Vertex &vtx) const
A method calculating the do and its error.
Definition: TrackToVertexIPEstimator.cxx:121
Trk::TrackToVertexIPEstimator::TrackToVertexIPEstimator
TrackToVertexIPEstimator(const std::string &t, const std::string &n, const IInterface *p)
Default Athena interface constructor and destructor.
Definition: TrackToVertexIPEstimator.cxx:19
Trk::TrackToVertexIPEstimator::getUnbiasedVertex
virtual xAOD::Vertex * getUnbiasedVertex(const xAOD::TrackParticle *track, const xAOD::Vertex *vtx) const override
Definition: TrackToVertexIPEstimator.cxx:309
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
beamspotman.n
n
Definition: beamspotman.py:731
Trk::TrackToVertexIPEstimator::get2DLifetimeSignOfTrack
virtual double get2DLifetimeSignOfTrack(const TrackParameters &track, const Amg::Vector3D &jetDirection, const xAOD::Vertex &primaryVertex) const override
Definition: TrackToVertexIPEstimator.cxx:253
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::TrackToVertexIPEstimator::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: TrackToVertexIPEstimator.h:148
AthAlgTool.h
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
IVertexUpdator.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
VertexFwd.h
Trk::TrackToVertexIPEstimator::m_linFactory
ToolHandle< Trk::IVertexLinearizedTrackFactory > m_linFactory
Definition: TrackToVertexIPEstimator.h:152
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
Trk::TrackToVertexIPEstimator::get3DLifetimeSignOfTrack
virtual double get3DLifetimeSignOfTrack(const TrackParameters &track, const Amg::Vector3D &jetDirection, const xAOD::Vertex &primaryVertex) const override
Definition: TrackToVertexIPEstimator.cxx:221
TrackParticleFwd.h
IVertexLinearizedTrackFactory.h
Trk::TrackToVertexIPEstimator::initialize
virtual StatusCode initialize() override
Default Athena interface methods.
Definition: TrackToVertexIPEstimator.cxx:26
Trk::TrackToVertexIPEstimator::getZLifetimeSignOfTrack
virtual double getZLifetimeSignOfTrack(const TrackParameters &track, const Amg::Vector3D &jetDirection, const xAOD::Vertex &primaryVertex) const override
Definition: TrackToVertexIPEstimator.cxx:284
ITrackToVertexIPEstimator.h
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
Trk::TrackToVertexIPEstimator::estimate
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.
Definition: TrackToVertexIPEstimator.cxx:53
Trk::TrackToVertexIPEstimator::m_Updator
ToolHandle< Trk::IVertexUpdator > m_Updator
Definition: TrackToVertexIPEstimator.h:150