41 if (sortedHits.size() < 2) {
49 std::vector<double> measuredTimes;
50 std::vector<double> expectedTimes;
51 std::vector<double> wgts;
54 measuredTimes.push_back(0.0);
55 expectedTimes.push_back(0.0);
56 double err =
getErr(sortedHits.begin()->first.PE());
57 wgts.push_back(1.0/err/err);
59 double startX = sortedHits.begin()->second.X(),
60 startY = sortedHits.begin()->second.Y(),
61 startZ = sortedHits.begin()->second.Z(),
62 startT = sortedHits.begin()->second.T();
64 std::vector<rb::RecoHit>
in;
66 for (
auto i_hit = ++sortedHits.begin();
67 i_hit != sortedHits.end();
69 in.push_back(i_hit->second);
70 measuredTimes.push_back(i_hit->second.T() - startT);
71 double dist =
getDist(i_hit->second.X(), i_hit->second.Y(),
72 i_hit->second.Z(), startX, startY, startZ);
73 expectedTimes.push_back(dist/29.97);
74 err =
getErr(i_hit->first.PE());
75 wgts.push_back(1.0/err/err);
78 LLR(expectedTimes, measuredTimes, wgts, slope, chi2, P_up, P_dn,
double getDist(double x1, double y1, double z1, double x2, double y2, double z2)
std::vector< rb::RecoHit > outliers_
std::vector< rb::RecoHit > outliers() const
void LLR(std::vector< double > &eT, std::vector< double > &mT, std::vector< double > &mTErr, double &slope, double &chi2, double &P_up, double &P_dn, std::vector< rb::RecoHit > &in, std::vector< rb::RecoHit > &outliers)