11 #include "tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorLineFit3D.h"
19 TVector3 directionVector;
40 double Wyi = (1. / (aHit->getPositionError().Y() * aHit->getPositionError().Y()));
41 double Wzi = (1. / (aHit->getPositionError().Z() * aHit->getPositionError().Z()));
46 sumWyiXi += Wyi * aHit->getPosition().X();
47 sumWziXi += Wzi * aHit->getPosition().X();
49 sumWyiYi += Wyi * aHit->getPosition().Y();
50 sumWziZi += Wzi * aHit->getPosition().Z();
52 sumWyiXiYi += Wyi * aHit->getPosition().X() * aHit->getPosition().Y();
53 sumWziXiZi += Wzi * aHit->getPosition().X() * aHit->getPosition().Z();
55 sumWyiXi2 += Wyi * aHit->getPosition().X() * aHit->getPosition().X();
56 sumWziXi2 += Wzi * aHit->getPosition().X() * aHit->getPosition().X();
59 detValY = sumWyiXi2 * sumWyi - sumWyiXi * sumWyiXi;
63 detValY = 1. / detValY;
65 detValZ = sumWziXi2 * sumWzi - sumWziXi * sumWziXi;
69 detValZ = 1. / detValZ;
71 slopeY = detValY * (sumWyi * sumWyiXiYi - sumWyiXi * sumWyiYi);
72 slopeZ = detValZ * (sumWzi * sumWziXiZi - sumWziXi * sumWziZi);
74 interceptY = detValY * (- sumWyiXi * sumWyiXiYi + sumWyiXi2 * sumWyiYi);
75 interceptZ = detValZ * (- sumWziXi * sumWziXiZi + sumWziXi2 * sumWziZi);
78 chi2 += pow(((aHit->getPosition().Y() - slopeY * aHit->getPosition().X() - interceptY) / aHit->getPositionError().Y()) , 2)
79 + pow(((aHit->getPosition().Z() - slopeZ * aHit->getPosition().X() - interceptZ) / aHit->getPositionError().Z()) , 2);
85 return TMath::Prob(chi2, measurements.size() - 1);