ATLAS Offline Software
IImpactPoint3dEstimator.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 TRKVERTEXFITTERINTERFACES_IIMPACTPOINT3DESTIMATOR_H
6 #define TRKVERTEXFITTERINTERFACES_IIMPACTPOINT3DESTIMATOR_H
7 
8 #include "GaudiKernel/IAlgTool.h"
11 #include <memory> //for unique_ptr
12 
30 namespace Trk
31 {
32  class PlaneSurface;
33  class VxTrackAtVertex;
34 
35  class IImpactPoint3dEstimator : virtual public IAlgTool
36  {
37  public:
39 
43  virtual std::unique_ptr<PlaneSurface>
44  Estimate3dIP(const Trk::TrackParameters* trackPerigee, const Amg::Vector3D* theVertex, double& distance) const = 0;
45  virtual std::unique_ptr<PlaneSurface>
46  Estimate3dIP(const Trk::NeutralParameters* neutralPerigee, const Amg::Vector3D* theVertex, double& distance) const = 0;
47 
51  virtual bool addIP3dAtaPlane(VxTrackAtVertex &,const Amg::Vector3D & vertex) const = 0;
52 
60  virtual const Trk::AtaPlane * IP3dAtaPlane(VxTrackAtVertex & vtxTrack,const Amg::Vector3D & vertex) const = 0;
61  //Same for neutrals
62  virtual const Trk::NeutralAtaPlane * IP3dNeutralAtaPlane(const NeutralParameters * initNeutPerigee,const Amg::Vector3D & vertex) const = 0;
63 
64 
65  };//end of class definition
66 
67 }
68 
69 namespace error
70 {
72  {
73  const char* p;
75  };
76 }
77 
78 #endif
Trk::IImpactPoint3dEstimator
Definition: IImpactPoint3dEstimator.h:36
TrackParameters.h
Trk::VxTrackAtVertex
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
Definition: VxTrackAtVertex.h:77
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
Trk::IImpactPoint3dEstimator::Estimate3dIP
virtual std::unique_ptr< PlaneSurface > Estimate3dIP(const Trk::NeutralParameters *neutralPerigee, const Amg::Vector3D *theVertex, double &distance) const =0
Trk::IImpactPoint3dEstimator::addIP3dAtaPlane
virtual bool addIP3dAtaPlane(VxTrackAtVertex &, const Amg::Vector3D &vertex) const =0
Actual estimate method, changing the state of Trk::VxTrackAtVertex.
error::ImpactPoint3dEstimatorProblem::p
const char * p
Definition: IImpactPoint3dEstimator.h:73
Trk::IImpactPoint3dEstimator::IP3dAtaPlane
virtual const Trk::AtaPlane * IP3dAtaPlane(VxTrackAtVertex &vtxTrack, const Amg::Vector3D &vertex) const =0
This method creates the ImpactPoint3dAtaPlane as the parameters of the track at the point of closest ...
NeutralParameters.h
Trk::IImpactPoint3dEstimator::Estimate3dIP
virtual std::unique_ptr< PlaneSurface > Estimate3dIP(const Trk::TrackParameters *trackPerigee, const Amg::Vector3D *theVertex, double &distance) const =0
method calculating the surface (returned), distance and point of closest approach
error::ImpactPoint3dEstimatorProblem
Definition: IImpactPoint3dEstimator.h:72
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::IImpactPoint3dEstimator::DeclareInterfaceID
DeclareInterfaceID(IImpactPoint3dEstimator, 1, 0)
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
Trk::IImpactPoint3dEstimator::IP3dNeutralAtaPlane
virtual const Trk::NeutralAtaPlane * IP3dNeutralAtaPlane(const NeutralParameters *initNeutPerigee, const Amg::Vector3D &vertex) const =0
extractSporadic.q
list q
Definition: extractSporadic.py:98
error::ImpactPoint3dEstimatorProblem::ImpactPoint3dEstimatorProblem
ImpactPoint3dEstimatorProblem(const char *q)
Definition: IImpactPoint3dEstimator.h:74
error
Definition: IImpactPoint3dEstimator.h:70
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