37 const double epsilon=1e-8;
41 if(
a.tracks()!=NULL) nTracksA=
a.tracks()->size();
42 if(b.tracks()!=NULL) nTracksB=b.tracks()->size();
43 const HepGeom::Point3D<double>& posA =
a.position();
44 const HepGeom::Point3D<double>& posB = b.position();
46 if(
a.algorithmId() != b.algorithmId())
return false;
47 if(nTracksA != nTracksB)
return false;
48 if(
a.ndof() != b.ndof())
return false;
49 if(fabs(posA.x()-posB.x())>epsilon)
return false;
50 if(fabs(posA.y()-posB.y())>epsilon)
return false;
51 if(fabs(posA.z()-posB.z())>epsilon)
return false;
52 if(fabs(
a.chi2()-b.chi2())>epsilon)
return false;
53 if(fabs(
a.mass()-b.mass())>epsilon)
return false;
69 if(
a.tracks()!=NULL) nTracksA=
a.tracks()->size();
70 if(b.tracks()!=NULL) nTracksB=b.tracks()->size();
71 const HepGeom::Point3D<double>& posA =
a.position();
72 const HepGeom::Point3D<double>& posB = b.position();
74 variableChange[
"x"] = posA.x() - posB.x();
75 variableChange[
"y"] = posA.y() - posB.y();
76 variableChange[
"z"] = posA.z() - posB.z();
77 variableChange[
"ntracks"] = (double)(nTracksA - nTracksB);
78 variableChange[
"chi2"] =
a.chi2() - b.chi2();
79 variableChange[
"ndof"] = (double)(
a.ndof() - b.ndof());
80 variableChange[
"mass"] =
a.mass() - b.mass();
81 variableChange[
"energyFraction"] =
a.energyFraction() - b.energyFraction();
82 variableChange[
"nTwoTracksSecVtx"] = (double)(
a.nTwoTracksSecVtx() - b.nTwoTracksSecVtx());
void diff(const TrigVertex &a, const TrigVertex &b, std::map< std::string, double > &variableChange)
comparison with feedback Function compares two objects and returns "semi verbose" output in the form ...