Class providing comparison function, or relational definition, for sorting MeasurementBase objects.
More...
#include <TrackStateOnSurfaceComparisonFunction.h>
Class providing comparison function, or relational definition, for sorting MeasurementBase objects.
Definition at line 37 of file TrackStateOnSurfaceComparisonFunction.h.
◆ ComparisonMode
◆ TrackStateOnSurfaceComparisonFunction() [1/3]
Trk::TrackStateOnSurfaceComparisonFunction::TrackStateOnSurfaceComparisonFunction |
( |
double |
cradius | ) |
|
|
inline |
◆ TrackStateOnSurfaceComparisonFunction() [2/3]
Trk::TrackStateOnSurfaceComparisonFunction::TrackStateOnSurfaceComparisonFunction |
( |
const Amg::Vector3D & |
dir | ) |
|
|
inline |
◆ TrackStateOnSurfaceComparisonFunction() [3/3]
◆ calculateAppropriatePath()
◆ operator()()
The comparison function defining in what case a PRD is 'smaller' than a second one.
Definition at line 61 of file TrackStateOnSurfaceComparisonFunction.h.
68 if ( ! (
one->trackParameters() ||
one->measurementOnTrack() ) ){
69 std::cout <<
"TrackStateOnSurfaceComparisonFunction: input TSOS one not sufficient" << std::endl;
72 if ( ! (
two->trackParameters() ||
two->measurementOnTrack() ) ){
73 std::cout <<
"TrackStateOnSurfaceComparisonFunction: input TSOS two not sufficient" << std::endl;
76 if (
one->trackParameters()){
77 gp1 =
one->trackParameters()->position();
78 surf1 = &
one->trackParameters()->associatedSurface();
79 if (!surf1 &&
one->measurementOnTrack() ) surf1 = &(
one->measurementOnTrack()->associatedSurface());
80 }
else if (
one->measurementOnTrack()){
81 gp1 =
one->measurementOnTrack()->globalPosition();
82 surf1 = &(
one->measurementOnTrack()->associatedSurface());
84 if (
two->trackParameters()){
85 gp2 =
two->trackParameters()->position();
86 surf2 = &
two->trackParameters()->associatedSurface();
87 if (!surf2 &&
two->measurementOnTrack() ) surf2 = &(
two->measurementOnTrack()->associatedSurface());
88 }
else if (
two->measurementOnTrack()) {
89 gp2 =
two->measurementOnTrack()->globalPosition();
90 surf2 = &(
two->measurementOnTrack()->associatedSurface());
100 if ( ! ( surf1 && surf2 ) ){
101 std::cout <<
"TrackStateOnSurfaceComparisonFunction: surface missing" << std::endl;
106 return path1 < path2;
◆ pathIntersectWithCylinder()
Definition at line 180 of file TrackStateOnSurfaceComparisonFunction.h.
195 double k = (direc.y())/(direc.x());
196 double d = (point2.x()*point1.y() - point1.x()*point2.y())/(point2.x() - point1.x());
204 double q =
d*
d -
R*
R;
214 double t1 = (
first - point1.x())/direc.x();
215 double t2 = (
second - point1.x())/direc.x();
220 if ( dist1raw.mag() < dist2raw.mag() ) {
◆ pathIntersectWithDisc()
double Trk::TrackStateOnSurfaceComparisonFunction::pathIntersectWithDisc |
( |
const Trk::DiscSurface * |
dsf | ) |
const |
|
inlineprivate |
◆ pathIntersectWithLine() [1/2]
◆ pathIntersectWithLine() [2/2]
◆ pathIntersectWithPlane()
double Trk::TrackStateOnSurfaceComparisonFunction::pathIntersectWithPlane |
( |
const Trk::PlaneSurface * |
psf | ) |
const |
|
inlineprivate |
◆ m_direction
◆ m_mode
◆ m_point
◆ m_radius
const double Trk::TrackStateOnSurfaceComparisonFunction::m_radius {0.} |
|
private |
The documentation for this class was generated from the following file: