ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::IIntersector Class Referenceabstract

Base class for Intersector AlgTools. More...

#include <IIntersector.h>

Inheritance diagram for Trk::IIntersector:
Collaboration diagram for Trk::IIntersector:

Public Member Functions

 DeclareInterfaceID (IInterface, 1, 0)
virtual ~IIntersector ()=default
 Virtual destructor.
virtual std::optional< TrackSurfaceIntersectionintersectSurface (const Surface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
 IIntersector interface method for general Surface type.
virtual std::optional< TrackSurfaceIntersectionapproachPerigeeSurface (const PerigeeSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
 IIntersector interface method for specific Surface type : PerigeeSurface.
virtual std::optional< TrackSurfaceIntersectionapproachStraightLineSurface (const StraightLineSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
 IIntersector interface method for specific Surface type : StraightLineSurface.
virtual std::optional< TrackSurfaceIntersectionintersectCylinderSurface (const CylinderSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
 IIntersector interface method for specific Surface type : CylinderSurface.
virtual std::optional< TrackSurfaceIntersectionintersectDiscSurface (const DiscSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
 IIntersector interface method for specific Surface type : DiscSurface.
virtual std::optional< TrackSurfaceIntersectionintersectPlaneSurface (const PlaneSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const =0
 IIntersector interface method for specific Surface type : PlaneSurface.
virtual bool isValid (Amg::Vector3D startPosition, Amg::Vector3D endPosition) const =0
 IIntersector interface method for extrapolation validity check over a particular extrapolation range.

Detailed Description

Base class for Intersector AlgTools.

Returning a NULL pointer means that the intersection/approach has not converged, or there has not been a mathematical solution for this.

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch

modifications from Alan..nosp@m.Popp.nosp@m.leton.nosp@m.@cer.nosp@m.n.ch:

  • I've added a preliminary set of interfaces that are sufficient to get me going.
  • The TrackParameter interfaces are just a suggestion - there is no implementation.
  • I've not included PropDirection as the code discovers this by itself !

Definition at line 45 of file IIntersector.h.

Constructor & Destructor Documentation

◆ ~IIntersector()

virtual Trk::IIntersector::~IIntersector ( )
virtualdefault

Virtual destructor.

Member Function Documentation

◆ approachPerigeeSurface()

virtual std::optional< TrackSurfaceIntersection > Trk::IIntersector::approachPerigeeSurface ( const PerigeeSurface & surface,
const TrackSurfaceIntersection & trackIntersection,
const double qOverP ) const
pure virtual

IIntersector interface method for specific Surface type : PerigeeSurface.

◆ approachStraightLineSurface()

virtual std::optional< TrackSurfaceIntersection > Trk::IIntersector::approachStraightLineSurface ( const StraightLineSurface & surface,
const TrackSurfaceIntersection & trackIntersection,
const double qOverP ) const
pure virtual

IIntersector interface method for specific Surface type : StraightLineSurface.

◆ DeclareInterfaceID()

Trk::IIntersector::DeclareInterfaceID ( IInterface ,
1 ,
0  )

◆ intersectCylinderSurface()

virtual std::optional< TrackSurfaceIntersection > Trk::IIntersector::intersectCylinderSurface ( const CylinderSurface & surface,
const TrackSurfaceIntersection & trackIntersection,
const double qOverP ) const
pure virtual

IIntersector interface method for specific Surface type : CylinderSurface.

◆ intersectDiscSurface()

virtual std::optional< TrackSurfaceIntersection > Trk::IIntersector::intersectDiscSurface ( const DiscSurface & surface,
const TrackSurfaceIntersection & trackIntersection,
const double qOverP ) const
pure virtual

IIntersector interface method for specific Surface type : DiscSurface.

◆ intersectPlaneSurface()

virtual std::optional< TrackSurfaceIntersection > Trk::IIntersector::intersectPlaneSurface ( const PlaneSurface & surface,
const TrackSurfaceIntersection & trackIntersection,
const double qOverP ) const
pure virtual

IIntersector interface method for specific Surface type : PlaneSurface.

◆ intersectSurface()

virtual std::optional< TrackSurfaceIntersection > Trk::IIntersector::intersectSurface ( const Surface & surface,
const TrackSurfaceIntersection & trackIntersection,
const double qOverP ) const
pure virtual

IIntersector interface method for general Surface type.

◆ isValid()

virtual bool Trk::IIntersector::isValid ( Amg::Vector3D startPosition,
Amg::Vector3D endPosition ) const
pure virtual

IIntersector interface method for extrapolation validity check over a particular extrapolation range.


The documentation for this class was generated from the following file: