00001 // @(#)root/physics:$Id: TGenPhaseSpace.h 20882 2007-11-19 11:31:26Z rdm $ 00002 // Author: Rene Brun , Valerio Filippini 06/09/2000 00003 00004 /////////////////////////////////////////////////////////////////////////////// 00005 // // 00006 // Phase Space Generator, based on the GENBOD routine of CERNLIB // 00007 // // 00008 /////////////////////////////////////////////////////////////////////////////// 00009 00010 #ifndef ROOT_TGenPhaseSpace 00011 #define ROOT_TGenPhaseSpace 00012 00013 #include "TLorentzVector.h" 00014 00015 class TGenPhaseSpace : public TObject { 00016 private: 00017 Int_t fNt; // number of decay particles 00018 Double_t fMass[18]; // masses of particles 00019 Double_t fBeta[3]; // betas of decaying particle 00020 Double_t fTeCmTm; // total energy in the C.M. minus the total mass 00021 Double_t fWtMax; // maximum weigth 00022 TLorentzVector fDecPro[18]; //kinematics of the generated particles 00023 00024 Double_t PDK(Double_t a, Double_t b, Double_t c); 00025 00026 public: 00027 TGenPhaseSpace() {} 00028 TGenPhaseSpace(const TGenPhaseSpace &gen); 00029 virtual ~TGenPhaseSpace() {} 00030 00031 Bool_t SetDecay(TLorentzVector &P, Int_t nt, Double_t *mass, Option_t *opt=""); 00032 Double_t Generate(); 00033 TLorentzVector *GetDecay(Int_t n); 00034 00035 Int_t GetNt() const { return fNt;} 00036 Double_t GetWtMax() const { return fWtMax;} 00037 00038 ClassDef(TGenPhaseSpace,1) //Simple Phase Space Generator 00039 }; 00040 00041 #endif 00042