14#ifndef TRKNIRVANA_PREPRAWDATACOMPARISONFUNCTION_H
15#define TRKNIRVANA_PREPRAWDATACOMPARISONFUNCTION_H
83 throw std::runtime_error(
84 "PrepRawDataComparisonFunction: surface type error!");
110 throw std::runtime_error(
111 "PrepRawDataComparisonFunction: surface type error!");
115 return path1 < path2;
134 double denom = 1 - parallelity * parallelity;
135 return (std::abs(denom) > 10e-7)
137 trackToWire.dot(dirWire) * parallelity) /
const PlainObject unit() const
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
Class for a DiscSurface in the ATLAS detector.
Class for a planaer rectangular or trapezoidal surface in the ATLAS detector.
~PrepRawDataComparisonFunction()=default
double pathIntersectWithPlane(const Trk::PlaneSurface &psf) const
PrepRawDataComparisonFunction & operator=(PrepRawDataComparisonFunction &&PCF)=default
PrepRawDataComparisonFunction()=delete
PrepRawDataComparisonFunction(const Amg::Vector3D &sp, const Amg::Vector3D &dir)
Full relation definition using a straight line propagation.
Amg::Vector3D m_direction
bool operator()(const Trk::PrepRawData *one, const Trk::PrepRawData *two) const
The comparison function defining in what case a PRD is 'smaller' than a second one.
double pathIntersectWithLine(const Trk::StraightLineSurface &lsf) const
PrepRawDataComparisonFunction(const PrepRawDataComparisonFunction &PCF)=default
double pathIntersectWithDisc(const Trk::DiscSurface &dsf) const
PrepRawDataComparisonFunction(PrepRawDataComparisonFunction &&PCF)=default
PrepRawDataComparisonFunction & operator=(const PrepRawDataComparisonFunction &PCF)=default
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.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
SurfaceType
This enumerator simplifies the persistency & calculations,.