Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-15 09:12:42

0001 // @(#)root/physics:$Id$
0002 // Author: Rene Brun , Valerio Filippini  06/09/2000
0003 
0004 #ifndef ROOT_TGenPhaseSpace
0005 #define ROOT_TGenPhaseSpace
0006 
0007 #include "TLorentzVector.h"
0008 
0009 /// Phase Space Generator, based on the GENBOD routine of CERNLIB
0010 class TGenPhaseSpace : public TObject {
0011 private:
0012    Int_t        fNt;             // number of decay particles
0013    Double_t     fMass[18];       // masses of particles
0014    Double_t     fBeta[3];        // betas of decaying particle
0015    Double_t     fTeCmTm;         // total energy in the C.M. minus the total mass
0016    Double_t     fWtMax;          // maximum weight
0017    TLorentzVector  fDecPro[18];  //kinematics of the generated particles
0018 
0019    Double_t PDK(Double_t a, Double_t b, Double_t c);
0020 
0021 public:
0022    TGenPhaseSpace(): fNt(0), fMass(), fBeta(), fTeCmTm(0.), fWtMax(0.) {}
0023    TGenPhaseSpace(const TGenPhaseSpace &gen);
0024    ~TGenPhaseSpace() override {}
0025    TGenPhaseSpace& operator=(const TGenPhaseSpace &gen);
0026 
0027    Bool_t          SetDecay(TLorentzVector &P, Int_t nt, const Double_t *mass, Option_t *opt="");
0028    Double_t        Generate();
0029    TLorentzVector *GetDecay(Int_t n);
0030 
0031    Int_t    GetNt()      const { return fNt;}
0032    Double_t GetWtMax()   const { return fWtMax;}
0033 
0034    ClassDefOverride(TGenPhaseSpace,1) //Simple Phase Space Generator
0035 };
0036 
0037 #endif
0038