ATLAS Offline Software
Loading...
Searching...
No Matches
ImpactPoint3dEstimator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 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 Trk::TrackParameters* trackPerigee,
54 const Amg::Vector3D* theVertex,
55 double& distance) const override;
56
57 virtual std::unique_ptr<PlaneSurface>
58 Estimate3dIP(const Trk::NeutralParameters* neutralPerigee,
59 const Amg::Vector3D* theVertex,
60 double& distance) const override;
61
65 virtual bool addIP3dAtaPlane(VxTrackAtVertex &,const Amg::Vector3D & vertex) const override;
66
74 virtual const Trk::AtaPlane * IP3dAtaPlane(VxTrackAtVertex & vtxTrack,const Amg::Vector3D & vertex) const override;
75
76 //Same for neutrals
77 virtual const Trk::NeutralAtaPlane * IP3dNeutralAtaPlane(const NeutralParameters * initNeutPerigee,const Amg::Vector3D & vertex) const override;
78
79 private:
80 template<typename T>
81 std::unique_ptr<PlaneSurface>
83 const Amg::Vector3D* theVertex,
84 double& distance) const;
85
86
87
88 ToolHandle< Trk::IExtrapolator > m_extrapolator;
90 {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"};
91
94
95 };
96
97}
98
99#endif
Interface class for the extrapolation AlgTool, it inherits from IAlgTool Detailed information about p...
virtual std::unique_ptr< PlaneSurface > Estimate3dIP(const Trk::TrackParameters *trackPerigee, const Amg::Vector3D *theVertex, double &distance) const override
virtual const Trk::AtaPlane * IP3dAtaPlane(VxTrackAtVertex &vtxTrack, const Amg::Vector3D &vertex) const override
This method creates the ImpactPoint3dAtaPlane as the parameters of the track at the point of closest ...
virtual StatusCode finalize() override
virtual StatusCode initialize() override
virtual const Trk::NeutralAtaPlane * IP3dNeutralAtaPlane(const NeutralParameters *initNeutPerigee, const Amg::Vector3D &vertex) const override
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
virtual bool addIP3dAtaPlane(VxTrackAtVertex &, const Amg::Vector3D &vertex) const override
Actual estimate method, changing the state of Trk::VxTrackAtVertex.
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