ATLAS Offline Software
Loading...
Searching...
No Matches
IImpactPoint3dEstimator.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 TRKVERTEXFITTERINTERFACES_IIMPACTPOINT3DESTIMATOR_H
6#define TRKVERTEXFITTERINTERFACES_IIMPACTPOINT3DESTIMATOR_H
7
8#include "GaudiKernel/IAlgTool.h"
11#include <memory> //for unique_ptr
12
29
30class EventContext;
31
32namespace Trk
33{
34 class PlaneSurface;
35 class VxTrackAtVertex;
36
37 class IImpactPoint3dEstimator : virtual public IAlgTool
38 {
39 public:
41
45 virtual std::unique_ptr<PlaneSurface>
46 Estimate3dIP(const EventContext& ctx, const Trk::TrackParameters* trackPerigee, const Amg::Vector3D* theVertex, double& distance) const = 0;
47 virtual std::unique_ptr<PlaneSurface>
48 Estimate3dIP(const EventContext& ctx, const Trk::NeutralParameters* neutralPerigee, const Amg::Vector3D* theVertex, double& distance) const = 0;
49
53 virtual bool addIP3dAtaPlane(const EventContext& ctx, VxTrackAtVertex &,const Amg::Vector3D & vertex) const = 0;
54
62 virtual const Trk::AtaPlane * IP3dAtaPlane(const EventContext& ctx,VxTrackAtVertex & vtxTrack,const Amg::Vector3D & vertex) const = 0;
63 //Same for neutrals
64 virtual const Trk::NeutralAtaPlane * IP3dNeutralAtaPlane(const EventContext& ctx, const NeutralParameters * initNeutPerigee,const Amg::Vector3D & vertex) const = 0;
65
66
67 };//end of class definition
68
69}
70
71namespace error
72{
74 {
75 const char* p;
76 ImpactPoint3dEstimatorProblem(const char* q) {p=q; }
77 };
78}
79
80#endif
virtual std::unique_ptr< PlaneSurface > Estimate3dIP(const EventContext &ctx, const Trk::TrackParameters *trackPerigee, const Amg::Vector3D *theVertex, double &distance) const =0
method calculating the surface (returned), distance and point of closest approach
virtual const Trk::AtaPlane * IP3dAtaPlane(const EventContext &ctx, 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 const Trk::NeutralAtaPlane * IP3dNeutralAtaPlane(const EventContext &ctx, const NeutralParameters *initNeutPerigee, const Amg::Vector3D &vertex) const =0
virtual std::unique_ptr< PlaneSurface > Estimate3dIP(const EventContext &ctx, const Trk::NeutralParameters *neutralPerigee, const Amg::Vector3D *theVertex, double &distance) const =0
virtual bool addIP3dAtaPlane(const EventContext &ctx, VxTrackAtVertex &, const Amg::Vector3D &vertex) const =0
Actual estimate method, changing the state of Trk::VxTrackAtVertex.
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