// @(#)root/physics:$Id$
// Author: Rene Brun , Valerio Filippini  06/09/2000

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//   Phase Space Generator, based on the GENBOD routine of CERNLIB           //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TGenPhaseSpace
#define ROOT_TGenPhaseSpace

#include "TLorentzVector.h"

class TGenPhaseSpace : public TObject {
private:
   Int_t        fNt;             // number of decay particles
   Double_t     fMass[18];       // masses of particles
   Double_t     fBeta[3];        // betas of decaying particle
   Double_t     fTeCmTm;         // total energy in the C.M. minus the total mass
   Double_t     fWtMax;          // maximum weigth
   TLorentzVector  fDecPro[18];  //kinematics of the generated particles

   Double_t PDK(Double_t a, Double_t b, Double_t c);

public:
   TGenPhaseSpace(): fNt(0), fMass(), fBeta(), fTeCmTm(0.), fWtMax(0.) {}
   TGenPhaseSpace(const TGenPhaseSpace &gen);
   virtual ~TGenPhaseSpace() {}
   TGenPhaseSpace& operator=(const TGenPhaseSpace &gen);

   Bool_t          SetDecay(TLorentzVector &P, Int_t nt, const Double_t *mass, Option_t *opt="");
   Double_t        Generate();
   TLorentzVector *GetDecay(Int_t n);

   Int_t    GetNt()      const { return fNt;}
   Double_t GetWtMax()   const { return fWtMax;}

   ClassDef(TGenPhaseSpace,1) //Simple Phase Space Generator
};

#endif

 TGenPhaseSpace.h:1
 TGenPhaseSpace.h:2
 TGenPhaseSpace.h:3
 TGenPhaseSpace.h:4
 TGenPhaseSpace.h:5
 TGenPhaseSpace.h:6
 TGenPhaseSpace.h:7
 TGenPhaseSpace.h:8
 TGenPhaseSpace.h:9
 TGenPhaseSpace.h:10
 TGenPhaseSpace.h:11
 TGenPhaseSpace.h:12
 TGenPhaseSpace.h:13
 TGenPhaseSpace.h:14
 TGenPhaseSpace.h:15
 TGenPhaseSpace.h:16
 TGenPhaseSpace.h:17
 TGenPhaseSpace.h:18
 TGenPhaseSpace.h:19
 TGenPhaseSpace.h:20
 TGenPhaseSpace.h:21
 TGenPhaseSpace.h:22
 TGenPhaseSpace.h:23
 TGenPhaseSpace.h:24
 TGenPhaseSpace.h:25
 TGenPhaseSpace.h:26
 TGenPhaseSpace.h:27
 TGenPhaseSpace.h:28
 TGenPhaseSpace.h:29
 TGenPhaseSpace.h:30
 TGenPhaseSpace.h:31
 TGenPhaseSpace.h:32
 TGenPhaseSpace.h:33
 TGenPhaseSpace.h:34
 TGenPhaseSpace.h:35
 TGenPhaseSpace.h:36
 TGenPhaseSpace.h:37
 TGenPhaseSpace.h:38
 TGenPhaseSpace.h:39
 TGenPhaseSpace.h:40
 TGenPhaseSpace.h:41
 TGenPhaseSpace.h:42
 TGenPhaseSpace.h:43