|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKEXINTERFACES_IINTERSECTOR_H
10 #define TRKEXINTERFACES_IINTERSECTOR_H
13 #include "GaudiKernel/IAlgTool.h"
20 class CylinderSurface;
24 class StraightLineSurface;
26 class TrackIntersection;
57 const double qOverP)
const = 0;
63 const double qOverP)
const = 0;
70 const double qOverP)
const = 0;
77 const double qOverP)
const = 0;
83 const double qOverP)
const = 0;
89 const double qOverP)
const = 0;
99 #endif // TRKEXINTERFACES_IINTERSECTOR_H
virtual ~IIntersector()=default
Virtual destructor.
virtual std::optional< TrackSurfaceIntersection > intersectDiscSurface(const DiscSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
IIntersector interface method for specific Surface type : DiscSurface.
virtual bool isValid(Amg::Vector3D startPosition, Amg::Vector3D endPosition) const =0
IIntersector interface method for extrapolation validity check over a particular extrapolation range.
DeclareInterfaceID(IInterface, 1, 0)
virtual std::optional< TrackSurfaceIntersection > intersectCylinderSurface(const CylinderSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
IIntersector interface method for specific Surface type : CylinderSurface.
Ensure that the ATLAS eigen extensions are properly loaded.
virtual std::optional< TrackSurfaceIntersection > intersectSurface(const Surface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
IIntersector interface method for general Surface type.
Eigen::Matrix< double, 3, 1 > Vector3D
virtual std::optional< TrackSurfaceIntersection > approachStraightLineSurface(const StraightLineSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
IIntersector interface method for specific Surface type : StraightLineSurface.
virtual std::optional< TrackSurfaceIntersection > intersectPlaneSurface(const PlaneSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
IIntersector interface method for specific Surface type : PlaneSurface.
virtual std::optional< TrackSurfaceIntersection > approachPerigeeSurface(const PerigeeSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
IIntersector interface method for specific Surface type : PerigeeSurface.