1 #ifndef PhysicsTools_TagAndProbe_ColinsSuperVariables
2 #define PhysicsTools_TagAndProbe_ColinsSuperVariables
4 #define CM_ENERGY 7000.0
5 #include "TLorentzVector.h"
16 TLorentzVector Q(mu + mubar);
23 double muplus = 1.0 /
sqrt(2.0) * (mu.E() + mu.Z());
24 double muminus = 1.0 /
sqrt(2.0) * (mu.E() - mu.Z());
26 double mubarplus = 1.0 /
sqrt(2.0) * (mubar.E() + mubar.Z());
27 double mubarminus = 1.0 /
sqrt(2.0) * (mubar.E() - mubar.Z());
30 2.0 / Q.Mag() /
sqrt(
pow(Q.Mag(), 2) +
pow(Q.Pt(), 2)) * (muplus * mubarminus - muminus * mubarplus);
39 TLorentzVector
D(mu - mubar);
40 double dt_qt = D.X() * Q.X() + D.Y() * Q.Y();
42 pow(D.Pt() / Q.Mag(), 2) - 1.0 /
pow(Q.Mag(), 2) / (
pow(Q.Mag(), 2) +
pow(Q.Pt(), 2)) *
pow(dt_qt, 2);
50 TVector3
R = Pbeam.Vect().Cross(Q.Vect());
51 TVector3 Runit = R.Unit();
54 TVector3 Qt = Q.Vect();
56 TVector3 Qtunit = Qt.Unit();
58 TVector3 Dt = D.Vect();
60 double tanphi =
sqrt(
pow(Q.Mag(), 2) +
pow(Q.Pt(), 2)) / Q.Mag() * Dt.Dot(Runit) / Dt.Dot(Qtunit);
void swap(Association< C > &lhs, Association< C > &rhs)
DecomposeProduct< arg, typename Div::arg > D
void calCSVariables(TLorentzVector mu, TLorentzVector mubar, double *res, bool swap)
Power< A, B >::type pow(const A &a, const B &b)