ATLAS Offline Software
Loading...
Searching...
No Matches
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
29
30namespace 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
69namespace error
70{
72 {
73 const char* p;
74 ImpactPoint3dEstimatorProblem(const char* q) {p=q; }
75 };
76}
77
78#endif
virtual std::unique_ptr< PlaneSurface > Estimate3dIP(const Trk::NeutralParameters *neutralPerigee, const Amg::Vector3D *theVertex, double &distance) const =0
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 ...
DeclareInterfaceID(IImpactPoint3dEstimator, 1, 0)
virtual bool addIP3dAtaPlane(VxTrackAtVertex &, const Amg::Vector3D &vertex) const =0
Actual estimate method, changing the state of Trk::VxTrackAtVertex.
virtual const Trk::NeutralAtaPlane * IP3dNeutralAtaPlane(const NeutralParameters *initNeutPerigee, const Amg::Vector3D &vertex) const =0
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
Class for a planaer rectangular or trapezoidal surface in the ATLAS detector.
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