ROOT logo
ROOT » MATH » PHYSICS » TGenPhaseSpace

class TGenPhaseSpace: public TObject


  Utility class to generate n-body event,
  with constant cross-section (default)
  or with Fermi energy dependence (opt="Fermi").
  The event is generated in the center-of-mass frame,
  but the decay products are finally boosted
  using the betas of the original particle.

  The code is based on the GENBOD function (W515 from CERNLIB)
  using the Raubold and Lynch method
      F. James, Monte Carlo Phase Space, CERN 68-15 (1968)

 see example of use in $ROOTSYS/tutorials/physics/PhaseSpace.C

 Note that Momentum, Energy units are Gev/C, GeV

Function Members (Methods)

public:
TGenPhaseSpace()
TGenPhaseSpace(const TGenPhaseSpace& gen)
virtual~TGenPhaseSpace()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
static TClass*TObject::Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Double_tGenerate()
TLorentzVector*GetDecay(Int_t n)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
Int_tGetNt() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Double_tGetWtMax() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual TClass*TObject::IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TGenPhaseSpace&operator=(const TGenPhaseSpace&)
TObject&TObject::operator=(const TObject& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
Bool_tSetDecay(TLorentzVector& P, Int_t nt, Double_t* mass, Option_t* opt = "")
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidTObject::ShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
virtual voidTObject::Streamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

private:
Double_tfBeta[3]betas of decaying particle
TLorentzVectorfDecPro[18]kinematics of the generated particles
Double_tfMass[18]masses of particles
Int_tfNtnumber of decay particles
Double_tfTeCmTmtotal energy in the C.M. minus the total mass
Double_tfWtMaxmaximum weigth

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

Double_t PDK(Double_t a, Double_t b, Double_t c)
the PDK function
TGenPhaseSpace(const TGenPhaseSpace& gen)
copy constructor
Double_t Generate()
  Generate a random final state.
  The function returns the weigth of the current event.
  The TLorentzVector of each decay product can be obtained using GetDecay(n).

 Note that Momentum, Energy units are Gev/C, GeV
TLorentzVector * GetDecay(Int_t n)
return Lorentz vector corresponding to decay n
Bool_t SetDecay(TLorentzVector& P, Int_t nt, Double_t* mass, Option_t* opt = "")
 input:
 TLorentzVector &P:    decay particle (Momentum, Energy units are Gev/C, GeV)
 Int_t nt:             number of decay products
 Double_t *mass:       array of decay product masses
 Option_t *opt:        default -> constant cross section
                       "Fermi" -> Fermi energy dependece
 return value:
 kTRUE:      the decay is permitted by kinematics
 kFALSE:     the decay is forbidden by kinematics

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