1 #include <analysis/ContinuumSuppression/Thrust.h>
8 decltype(momenta.begin()) p;
9 decltype(momenta.begin()) q;
10 decltype(momenta.begin()) loopcount;
12 const auto begin = momenta.begin();
13 const auto end = momenta.end();
16 for (p = begin; p != end; p++)
25 for (p = begin; p != end; p++) {
27 if (rvec.z() <= 0.0) rvec = -rvec;
29 double s = rvec.Mag();
30 if (s != 0.0) rvec *= (1 / s);
32 for (loopcount = begin; loopcount != end; loopcount++) {
36 for (q = begin; q != end; q++) {
37 const TVector3 qvec(*q);
38 rvec += (qvec.Dot(rprev) >= 0) ? qvec : - qvec;
41 for (q = begin; q != end; q++) {
42 const TVector3 qvec(*q);
43 if (qvec.Dot(rvec) * qvec.Dot(rprev) < 0)
break;
50 for (q = begin; q != end; q++) {
51 const TVector3 qvec = *q;
52 ttmp += std::fabs(qvec.Dot(rvec));
54 ttmp /= (sump * rvec.Mag());
55 rvec *= 1 / rvec.Mag();