47 if (aa > bb)
return 1;
48 if (aa < bb)
return -1;
109 for (n=0; n<
fNt; n++) {
119 for (n=0; n<fNt-1; n++) {
120 pd[
n] =
PDK(invMas[n+1],invMas[n],
fMass[n+1]);
139 for (j=0; j<=i; j++) {
143 v->
SetPx( cZ*x - sZ*y );
144 v->
SetPy( sZ*x + cZ*y );
147 v->
SetPx( cY*x - sY*z );
148 v->
SetPz( sY*x + cY*z );
151 if (i == (fNt-1))
break;
154 for (j=0; j<=i; j++)
fDecPro[j].Boost(0,beta,0);
196 if (fNt<2 || fNt>18)
return kFALSE;
202 for (n=0;n<
fNt;n++) {
214 if (strcasecmp(opt,
"fermi")==0) {
217 ,3.141592, 19.73921, 62.01255, 129.8788, 204.0131
218 ,256.3704, 268.4705, 240.9780, 189.2637
219 ,132.1308, 83.0202, 47.4210, 24.8295
220 ,12.0006, 5.3858, 2.2560, 0.8859 };
227 for (n=1; n<
fNt; n++) {
230 wtmax *=
PDK(emmax, emmin, fMass[n]);
void SetPxPyPzE(Double_t px, Double_t py, Double_t pz, Double_t e)
virtual Double_t Rndm(Int_t i=0)
Machine independent random number generator.
Double_t Generate()
Generate a random final state.
ClassImp(TGenPhaseSpace) Double_t TGenPhaseSpace
the PDK function
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
double beta(double x, double y)
Calculates the beta function.
TGenPhaseSpace & operator=(const TGenPhaseSpace &gen)
Assignment operator.
TLorentzVector fDecPro[18]
TObject & operator=(const TObject &rhs)
TObject assignment operator.
Int_t DoubleMax(const void *a, const void *b)
special max function
R__EXTERN TRandom * gRandom
MyComplex< T > P(MyComplex< T > z, T c_real, T c_imag)
[MyComplex]
Bool_t SetDecay(TLorentzVector &P, Int_t nt, const Double_t *mass, Option_t *opt="")
input: TLorentzVector &P: decay particle (Momentum, Energy units are Gev/C, GeV) Int_t nt: number of ...
Mother of all ROOT objects.
Double_t PDK(Double_t a, Double_t b, Double_t c)
TLorentzVector * GetDecay(Int_t n)
return Lorentz vector corresponding to decay n
Double_t Sqrt(Double_t x)