|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
   11 #ifndef TRKEXSTRAIGHTLINEINTERSECTOR_STRAIGHTLINEINTERSECTOR_H 
   12 #define TRKEXSTRAIGHTLINEINTERSECTOR_STRAIGHTLINEINTERSECTOR_H 
   34       const double qOverP) 
const override;
 
   40       const double ) 
const override;
 
   47       const double ) 
const override;
 
   54       const double ) 
const override;
 
   60       const double ) 
const override;
 
   66       const double ) 
const override;
 
   78                             const double cylinderRadius) 
const;
 
   80                         const double discZ) 
const;
 
   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);
 
  113   return (discZ - 
pos.z()) / 
dir.z();
 
  128   double cosAngle = lineDirection.dot(
dir);
 
  129   return (linePosition - 
pos).dot(
dir - lineDirection * cosAngle) /
 
  130          (1. - cosAngle * cosAngle);
 
  141   return planeNormal.dot(planePosition - 
pos) / planeNormal.dot(
dir);
 
  145                                           double stepLength)
 const {
 
  152 #endif  // TRKEXSTRAIGHTLINEINTERSECTOR_STRAIGHTLINEINTERSECTOR_H 
  
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 StatusCode finalize() override
double pathlength() const
Method to retrieve the pathlength propagated till the Intersection.
virtual std::optional< TrackSurfaceIntersection > intersectPlaneSurface(const PlaneSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double) const override
IIntersector interface method for specific Surface type : PlaneSurface.
virtual std::optional< TrackSurfaceIntersection > intersectSurface(const Surface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override
IIntersector interface method for general Surface type.
StraightLineIntersector(const std::string &type, const std::string &name, const IInterface *parent)
const Amg::Vector3D & position() const
Method to retrieve the position of the Intersection.
double distanceToCylinder(const TrackSurfaceIntersection &isect, const double cylinderRadius) const
::StatusCode StatusCode
StatusCode definition for legacy code.
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
Ensure that the ATLAS eigen extensions are properly loaded.
Eigen::Matrix< double, 3, 1 > Vector3D
const Amg::Vector3D & direction() const
Method to retrieve the direction at the Intersection.
double distanceToPlane(const TrackSurfaceIntersection &isect, const Amg::Vector3D &planePosition, const Amg::Vector3D &planeNormal) const
virtual bool isValid(Amg::Vector3D, Amg::Vector3D) const override
IIntersector interface method for validity check over a particular extrapolation range.
void step(TrackSurfaceIntersection &isect, double stepLength) const
std::atomic< unsigned long long > m_countExtrapolations