ATLAS Offline Software
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 
34 namespace 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>
82  Estimate3dIPNoCurvature(const T*,
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 
93  double m_precision;
94 
95  };
96 
97 }
98 
99 #endif
Trk::ImpactPoint3dEstimator::~ImpactPoint3dEstimator
virtual ~ImpactPoint3dEstimator()
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Trk::VxTrackAtVertex
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
Definition: VxTrackAtVertex.h:77
IImpactPoint3dEstimator.h
AtlasFieldCacheCondObj.h
Trk::ImpactPoint3dEstimator::ImpactPoint3dEstimator
ImpactPoint3dEstimator(const std::string &t, const std::string &n, const IInterface *p)
Default constructor due to Athena interface.
Definition: ImpactPoint3dEstimator.cxx:28
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
Trk::ImpactPoint3dEstimator::m_precision
double m_precision
Definition: ImpactPoint3dEstimator.h:93
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::ImpactPoint3dEstimator::Estimate3dIPNoCurvature
std::unique_ptr< PlaneSurface > Estimate3dIPNoCurvature(const T *, const Amg::Vector3D *theVertex, double &distance) const
Definition: ImpactPoint3dEstimator.cxx:63
Trk::ImpactPoint3dEstimator::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: ImpactPoint3dEstimator.h:88
Trk::ImpactPoint3dEstimator
Definition: ImpactPoint3dEstimator.h:40
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
Trk::ImpactPoint3dEstimator::m_maxiterations
int m_maxiterations
Definition: ImpactPoint3dEstimator.h:92
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
SG::ReadCondHandleKey< AtlasFieldCacheCondObj >
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
PlaneSurface.h
Trk::ImpactPoint3dEstimator::addIP3dAtaPlane
virtual bool addIP3dAtaPlane(VxTrackAtVertex &, const Amg::Vector3D &vertex) const override
Actual estimate method, changing the state of Trk::VxTrackAtVertex.
Definition: ImpactPoint3dEstimator.cxx:287
Trk::ImpactPoint3dEstimator::finalize
virtual StatusCode finalize() override
Definition: ImpactPoint3dEstimator.cxx:54
Trk::ImpactPoint3dEstimator::initialize
virtual StatusCode initialize() override
Definition: ImpactPoint3dEstimator.cxx:41
Amg::distance
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Definition: GeoPrimitivesHelpers.h:54
Trk::ImpactPoint3dEstimator::IP3dAtaPlane
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 ...
Definition: ImpactPoint3dEstimator.cxx:309
Trk::ImpactPoint3dEstimator::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: ImpactPoint3dEstimator.h:90
Trk::ImpactPoint3dEstimator::Estimate3dIP
virtual std::unique_ptr< PlaneSurface > Estimate3dIP(const Trk::TrackParameters *trackPerigee, const Amg::Vector3D *theVertex, double &distance) const override
Definition: ImpactPoint3dEstimator.cxx:117
Trk::ImpactPoint3dEstimator::IP3dNeutralAtaPlane
virtual const Trk::NeutralAtaPlane * IP3dNeutralAtaPlane(const NeutralParameters *initNeutPerigee, const Amg::Vector3D &vertex) const override
Definition: ImpactPoint3dEstimator.cxx:345