9#ifndef TRKEXINTERFACES_IINTERSECTOR_H
10#define TRKEXINTERFACES_IINTERSECTOR_H
13#include "GaudiKernel/IAlgTool.h"
26class 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;
Class for a CylinderSurface in the ATLAS detector.
Class for a DiscSurface in the ATLAS detector.
Base class for Intersector AlgTools.
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 > approachPerigeeSurface(const PerigeeSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
IIntersector interface method for specific Surface type : PerigeeSurface.
virtual ~IIntersector()=default
Virtual destructor.
virtual std::optional< TrackSurfaceIntersection > intersectSurface(const Surface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
IIntersector interface method for general Surface type.
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.
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.
virtual std::optional< TrackSurfaceIntersection > intersectPlaneSurface(const PlaneSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
IIntersector interface method for specific Surface type : PlaneSurface.
Class describing the Line to which the Perigee refers to.
Class for a planaer rectangular or trapezoidal surface in the ATLAS detector.
Class for a StraightLineSurface in the ATLAS detector to describe dirft tube and straw like detectors...
Abstract Base Class for tracking surfaces.
An intersection with a Surface is given by.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.