ATLAS Offline Software
Loading...
Searching...
No Matches
ImpactPoint3dEstimator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRKVERTEXFITTERUTILS_IMPACTPOINT3DESTIMATOR_H
6#define TRKVERTEXFITTERUTILS_IMPACTPOINT3DESTIMATOR_H
7
9#include "GaudiKernel/ToolHandle.h"
13#include <memory>
14
15
33
34namespace Trk
35{
36 class IExtrapolator;
37
38
39 class ImpactPoint3dEstimator : public extends<AthAlgTool, IImpactPoint3dEstimator>
40 {
41 public:
42 virtual StatusCode initialize() override;
43 virtual StatusCode finalize() override;
44
48 ImpactPoint3dEstimator(const std::string& t, const std::string& n, const IInterface* p);
49
51
52 virtual std::unique_ptr<PlaneSurface>
53 Estimate3dIP(const EventContext& ctx,
54 const Trk::TrackParameters* trackPerigee,
55 const Amg::Vector3D* theVertex,
56 double& distance) const override;
57
58 virtual std::unique_ptr<PlaneSurface>
59 Estimate3dIP(const EventContext& ctx,
60 const Trk::NeutralParameters* neutralPerigee,
61 const Amg::Vector3D* theVertex,
62 double& distance) const override;
63
67 virtual bool addIP3dAtaPlane(const EventContext& ctx, VxTrackAtVertex &,const Amg::Vector3D & vertex) const override;
68
76 virtual const Trk::AtaPlane * IP3dAtaPlane(const EventContext& ctx,VxTrackAtVertex & vtxTrack,const Amg::Vector3D & vertex) const override;
77
78 //Same for neutrals
79 virtual const Trk::NeutralAtaPlane * IP3dNeutralAtaPlane(const EventContext& ctx,const NeutralParameters * initNeutPerigee,const Amg::Vector3D & vertex) const override;
80
81 private:
82 template<typename T>
83 std::unique_ptr<PlaneSurface>
85 const Amg::Vector3D* theVertex,
86 double& distance) const;
87
88
89
90 ToolHandle< Trk::IExtrapolator > m_extrapolator;
92 {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"};
93
96
97 };
98
99}
100
101#endif
Interface class for the extrapolation AlgTool, it inherits from IAlgTool Detailed information about p...
virtual StatusCode finalize() override
virtual bool addIP3dAtaPlane(const EventContext &ctx, VxTrackAtVertex &, const Amg::Vector3D &vertex) const override
Actual estimate method, changing the state of Trk::VxTrackAtVertex.
virtual const Trk::NeutralAtaPlane * IP3dNeutralAtaPlane(const EventContext &ctx, const NeutralParameters *initNeutPerigee, const Amg::Vector3D &vertex) const override
virtual StatusCode initialize() override
virtual std::unique_ptr< PlaneSurface > Estimate3dIP(const EventContext &ctx, const Trk::TrackParameters *trackPerigee, const Amg::Vector3D *theVertex, double &distance) const override
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
virtual const Trk::AtaPlane * IP3dAtaPlane(const EventContext &ctx, VxTrackAtVertex &vtxTrack, const Amg::Vector3D &vertex) const override
This method creates the ImpactPoint3dAtaPlane as the parameters of the track at the point of closest ...
std::unique_ptr< PlaneSurface > Estimate3dIPNoCurvature(const T *, const Amg::Vector3D *theVertex, double &distance) const
ImpactPoint3dEstimator(const std::string &t, const std::string &n, const IInterface *p)
Default constructor due to Athena interface.
ToolHandle< Trk::IExtrapolator > m_extrapolator
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< NeutralParametersDim, Neutral > NeutralParameters
ParametersT< NeutralParametersDim, Neutral, PlaneSurface > NeutralAtaPlane
ParametersBase< TrackParametersDim, Charged > TrackParameters
ParametersT< TrackParametersDim, Charged, PlaneSurface > AtaPlane