12#include "CLHEP/Units/SystemOfUnits.h"
27 const std::string& name,
28 const IInterface* parent)
29 : base_class (
type, name, parent),
38 return StatusCode::SUCCESS;
42std::optional<Trk::TrackSurfaceIntersection>
48 const auto surfaceType = surface.
type();
51 trackIntersection,
qOverP);
65 trackIntersection,
qOverP);
69 trackIntersection,
qOverP);
77std::optional<Trk::TrackSurfaceIntersection>
88 step(isect, stepLength);
94std::optional<Trk::TrackSurfaceIntersection>
105 step(isect, stepLength);
111std::optional<Trk::TrackSurfaceIntersection>
122 step(isect, stepLength);
128std::optional<Trk::TrackSurfaceIntersection>
138 step(isect, stepLength);
144std::optional<Trk::TrackSurfaceIntersection>
154 step(isect, stepLength);
#define ATH_MSG_WARNING(x)
Class for a CylinderSurface in the ATLAS detector.
virtual const Amg::Vector3D & globalReferencePoint() const override final
Returns a global reference point: For the Cylinder this is Where denotes the averagePhi() of the cy...
Class for a DiscSurface in the ATLAS detector.
Class describing the Line to which the Perigee refers to.
Class for a planaer rectangular or trapezoidal surface in the ATLAS detector.
virtual std::optional< TrackSurfaceIntersection > approachStraightLineSurface(const StraightLineSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override
IIntersector interface method for specific Surface type : StraightLineSurface.
double distanceToDisc(const TrackSurfaceIntersection &isect, const double discZ) const
double distanceToPlane(const TrackSurfaceIntersection &isect, const Amg::Vector3D &planePosition, const Amg::Vector3D &planeNormal) const
virtual std::optional< TrackSurfaceIntersection > approachPerigeeSurface(const PerigeeSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override
IIntersector interface method for specific Surface type : PerigeeSurface.
virtual std::optional< TrackSurfaceIntersection > intersectPlaneSurface(const PlaneSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override
IIntersector interface method for specific Surface type : PlaneSurface.
std::atomic< unsigned long long > m_countExtrapolations
virtual std::optional< TrackSurfaceIntersection > intersectSurface(const Surface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override
IIntersector interface method for general Surface type.
void step(TrackSurfaceIntersection &isect, double stepLength) const
double distanceToLine(const TrackSurfaceIntersection &isect, const Amg::Vector3D &linePosition, const Amg::Vector3D &lineDirection) const
double distanceToCylinder(const TrackSurfaceIntersection &isect, const double cylinderRadius) const
StraightLineIntersector(const std::string &type, const std::string &name, const IInterface *parent)
virtual std::optional< TrackSurfaceIntersection > intersectCylinderSurface(const CylinderSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override
IIntersector interface method for specific Surface type : CylinderSurface.
virtual StatusCode finalize() override
virtual std::optional< TrackSurfaceIntersection > intersectDiscSurface(const DiscSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override
IIntersector interface method for specific Surface type : DiscSurface.
Class for a StraightLineSurface in the ATLAS detector to describe dirft tube and straw like detectors...
Abstract Base Class for tracking surfaces.
virtual const Amg::Vector3D & normal() const
Returns the normal vector of the Surface (i.e.
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
virtual constexpr SurfaceType type() const =0
Returns the Surface type to avoid dynamic casts.
const Amg::Vector3D & center() const
Returns the center position of the Surface.
An intersection with a Surface is given by.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.