|
ATLAS Offline Software
|
#include <StraightLineIntersector.h>
|
| StraightLineIntersector (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual StatusCode | finalize () override |
|
virtual std::optional< TrackSurfaceIntersection > | intersectSurface (const Surface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override |
| IIntersector interface method for general Surface type. More...
|
|
virtual std::optional< TrackSurfaceIntersection > | approachPerigeeSurface (const PerigeeSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override |
| IIntersector interface method for specific Surface type : PerigeeSurface. More...
|
|
virtual std::optional< TrackSurfaceIntersection > | approachStraightLineSurface (const StraightLineSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override |
| IIntersector interface method for specific Surface type : StraightLineSurface. More...
|
|
virtual std::optional< TrackSurfaceIntersection > | intersectCylinderSurface (const CylinderSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override |
| IIntersector interface method for specific Surface type : CylinderSurface. More...
|
|
virtual std::optional< TrackSurfaceIntersection > | intersectDiscSurface (const DiscSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override |
| IIntersector interface method for specific Surface type : DiscSurface. More...
|
|
virtual std::optional< TrackSurfaceIntersection > | intersectPlaneSurface (const PlaneSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override |
| IIntersector interface method for specific Surface type : PlaneSurface. More...
|
|
virtual bool | isValid (Amg::Vector3D, Amg::Vector3D) const override |
| IIntersector interface method for validity check over a particular extrapolation range. More...
|
|
Definition at line 22 of file StraightLineIntersector.h.
◆ StraightLineIntersector()
Trk::StraightLineIntersector::StraightLineIntersector |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ approachPerigeeSurface()
◆ approachStraightLineSurface()
◆ distanceToCylinder()
Definition at line 95 of file StraightLineIntersector.h.
99 double sinThsqinv = 1. /
dir.perp2();
100 double stepLength = (-
pos.x() *
dir.x() -
pos.y() *
dir.y()) * sinThsqinv;
102 (cylinderRadius * cylinderRadius -
pos.perp2()) * sinThsqinv +
103 stepLength * stepLength;
105 stepLength += sqrt(deltaRSq);
◆ distanceToDisc()
◆ distanceToLine()
Definition at line 116 of file StraightLineIntersector.h.
128 double cosAngle = lineDirection.dot(
dir);
129 return (linePosition -
pos).dot(
dir - lineDirection * cosAngle) /
130 (1. - cosAngle * cosAngle);
◆ distanceToPlane()
◆ finalize()
StatusCode Trk::StraightLineIntersector::finalize |
( |
| ) |
|
|
overridevirtual |
◆ intersectCylinderSurface()
◆ intersectDiscSurface()
◆ intersectPlaneSurface()
◆ intersectSurface()
IIntersector interface method for general Surface type.
Definition at line 43 of file StraightLineIntersector.cxx.
48 const auto surfaceType = surface.type();
51 trackIntersection,
qOverP);
55 static_cast<const StraightLineSurface&
>(surface), trackIntersection,
60 static_cast<const CylinderSurface&
>(surface), trackIntersection,
65 trackIntersection,
qOverP);
69 trackIntersection,
qOverP);
◆ isValid()
◆ step()
Definition at line 144 of file StraightLineIntersector.h.
146 isect.position() += stepLength * isect.direction();
147 isect.pathlength() += stepLength;
◆ m_countExtrapolations
std::atomic<unsigned long long> Trk::StraightLineIntersector::m_countExtrapolations |
|
mutableprivate |
The documentation for this class was generated from the following files:
virtual std::optional< TrackSurfaceIntersection > approachPerigeeSurface(const PerigeeSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override
IIntersector interface method for specific Surface type : PerigeeSurface.
double distanceToDisc(const TrackSurfaceIntersection &isect, const double discZ) const
virtual std::optional< TrackSurfaceIntersection > intersectPlaneSurface(const PlaneSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override
IIntersector interface method for specific Surface type : PlaneSurface.
double distanceToCylinder(const TrackSurfaceIntersection &isect, const double cylinderRadius) const
virtual std::optional< TrackSurfaceIntersection > intersectCylinderSurface(const CylinderSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override
IIntersector interface method for specific Surface type : CylinderSurface.
virtual std::optional< TrackSurfaceIntersection > approachStraightLineSurface(const StraightLineSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override
IIntersector interface method for specific Surface type : StraightLineSurface.
virtual std::optional< TrackSurfaceIntersection > intersectDiscSurface(const DiscSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override
IIntersector interface method for specific Surface type : DiscSurface.
double distanceToLine(const TrackSurfaceIntersection &isect, const Amg::Vector3D &linePosition, const Amg::Vector3D &lineDirection) const
Eigen::Matrix< double, 3, 1 > Vector3D
double distanceToPlane(const TrackSurfaceIntersection &isect, const Amg::Vector3D &planePosition, const Amg::Vector3D &planeNormal) const
#define ATH_MSG_WARNING(x)
void step(TrackSurfaceIntersection &isect, double stepLength) const
std::atomic< unsigned long long > m_countExtrapolations