9 #ifndef ThePEG_SimplePhaseSpace_H
10 #define ThePEG_SimplePhaseSpace_H
12 #include "ThePEG/Config/ThePEG.h"
14 #include "ThePEG/Vectors/LorentzRotation.h"
15 #include "ThePEG/Vectors/LorentzRotation.h"
16 #include "ThePEG/EventRecord/Particle.h"
17 #include "ThePEG/EventRecord/ParticleTraits.h"
18 #include "ThePEG/Repository/UseRandom.h"
19 #include "SimplePhaseSpace.xh"
46 template <
typename PType>
47 static void CMS(Energy2 s, PType & p1, PType & p2);
64 template <
typename PType>
65 static void CMS(PType & p1, PType & p2, Energy2 s,
66 double cosTheta,
double phi);
84 template <
typename PType>
85 static void CMS(PType & p1, PType & p2, Energy2 s, Energy2 t,
double phi,
99 template <
typename PType>
100 static void CMS(PType & p1, PType & p2, Energy2 s);
112 template <
typename PPairType>
113 static void CMS(
const PPairType & p, Energy2 s)
115 CMS(*p.first, *p.second, s);
135 template <
typename PType>
136 static void CMS(PType & p1, PType & p2, PType & p3, Energy2 s,
137 double x1,
double x3);
161 template <
typename PType>
162 static void CMS(PType & p1, PType & p2, PType & p3, Energy2 s,
163 double x1,
double x3,
double phii = 0.0,
164 double theta = 0.0,
double phi = 0.0);
187 return Momentum3(p*sqrt(1.0 - sqr(costheta))*sin(phi),
188 p*sqrt(1.0 - sqr(costheta))*cos(phi),
206 static vector<LorentzMomentum>
221 template <
typename Container>
222 static void CMSn(Container & particles,
Energy m0);
228 #ifndef ThePEG_TEMPLATES_IN_CC_FILE
229 #include "SimplePhaseSpace.tcc"