The comparison function defining in what case a PRD is 'smaller' than a second one.
61 {
64 gp1.setZero();
65 gp2.setZero();
66 const Trk::Surface* surf1 = 0;
67 const Trk::Surface* surf2 = 0;
68 if ( ! (
one->trackParameters() ||
one->measurementOnTrack() ) ){
69 std::cout << "TrackStateOnSurfaceComparisonFunction: input TSOS one not sufficient" << std::endl;
70 return true;
71 }
72 if ( ! (
two->trackParameters() ||
two->measurementOnTrack() ) ){
73 std::cout << "TrackStateOnSurfaceComparisonFunction: input TSOS two not sufficient" << std::endl;
74 return false;
75 }
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());
83 }
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());
91 }
92
95 }
96
99 } else {
100 if ( ! ( surf1 && surf2 ) ){
101 std::cout << "TrackStateOnSurfaceComparisonFunction: surface missing" << std::endl;
102 return false;
103 }
106 return path1 < path2;
107 }
108 }
Scalar mag() const
mag method
double calculateAppropriatePath(const Trk::Surface *pSurface, const Amg::Vector3D gp) const
Eigen::Matrix< double, 3, 1 > Vector3D