9 #include "TLorentzVector.h"
15 #include "CLHEP/Random/RandomEngine.h"
16 #include "CLHEP/Random/RandFlat.h"
20 const double GeV = 1.;
23 const double w = 1.0 / 0.1973;
28 double st = TMath::Sqrt(1. - pZ * pZ) *
r;
38 double st = TMath::Sqrt(1. - pZ * pZ) *
r;
40 pos.SetX(st * TMath::Cos(phi));
41 pos.SetY(st * TMath::Sin(phi));
45 void MomAntiMom(TLorentzVector &mom,
double mass, TLorentzVector &antiMom,
46 double antiMass,
double initialMass) {
47 double r = initialMass * initialMass - mass * mass - antiMass * antiMass;
48 if (r * r - 4 * mass * mass * antiMass * antiMass < 0.)
throw "MomAntiMom";
50 double pAbs = .5 * TMath::Sqrt(r * r - 4 * mass * mass * antiMass * antiMass) / initialMass;
53 mom.SetVectM(mom3, mass);
54 antiMom.SetVectM(- mom3, antiMass);
const double hbarc_squared
Sin< T >::type sin(const T &t)
T x() const
Cartesian x coordinate.
Cos< T >::type cos(const T &t)
CLHEP::HepRandomEngine * hjRandomEngine
Geom::Phi< T > phi() const
void MomAntiMom(TLorentzVector &mom, double mass, TLorentzVector &antiMom, double antiMass, double initialMass)
void IsotropicR3(double r, double *pX, double *pY, double *pZ)