KaliVeda  1.13/01
Heavy-Ion Analysis Toolkit
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
KVGenPhaseSpace Class Reference

Generate momenta for an event using microcanonical phase space sampling.

Created by KVClassFactory on Fri Apr 17 10:19:02 2015 Author: John Frankland,,,

We use ROOT class TGenPhaseSpace to sample the phase space for each event. This corresponds to sampling the microcanonical phase space for a gas composed of the nuclei of the break-up channel with a given total kinetic energy determined by energy balance.

Example of use

KVNucleus CN(6,12);
CN.SetExcitEnergy(20); // minimum = 7.27 MeV
KVEvent decay;
KVNucleus* n = decay.AddParticle();
n->SetZandA(2,4);
n = decay.AddParticle();
n->SetZandA(2,4);
n = decay.AddParticle();
n->SetZandA(2,4);
if(!gps.SetBreakUpChannel(CN, &decay))
{
printf("Break-up channel is not allowed\n");
return;
}
TH1F* h1 = new TH1F("h1","Kinetic energy of alpha particle 3",200,0,etot*2./3.);
h1->Sumw2();
Int_t nevents = 10000;
while(nevents--){
wgt = gps.Generate();
h1->Fill(n->GetKE(),wgt);
}
h1->Draw();
int Int_t
double Double_t
Abstract base class container for multi-particle events.
Definition: KVEvent.h:66
virtual KVParticle * AddParticle()=0
Generate momenta for an event using microcanonical phase space sampling.
Bool_t SetBreakUpChannel(const KVNucleus &CN, KVEvent *e)
virtual Double_t Generate()
Double_t GetAvailableEnergy() const
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:125
virtual Int_t Fill(const char *name, Double_t w)
virtual void Draw(Option_t *option="")
virtual void Sumw2(Bool_t flag=kTRUE)
const Int_t n
TH1F * h1
Examples
KVGenPhaseSpace_example.C, and KVGenPhaseSpace_example2.C.

Definition at line 60 of file KVGenPhaseSpace.h.

Public Member Functions

 KVGenPhaseSpace ()
 Default constructor. More...
 
 KVGenPhaseSpace (const Char_t *name, const Char_t *title="")
 Constructor with name and title. More...
 
virtual ~KVGenPhaseSpace ()
 Destructor. More...
 
void Copy (TObject &obj) const
 
virtual Double_t Generate ()
 
Double_t GetAvailableEnergy () const
 
Bool_t SetBreakUpChannel (const KVNucleus &CN, KVEvent *e)
 
- Public Member Functions inherited from KVBase
 KVBase ()
 Default constructor. More...
 
 KVBase (const Char_t *name, const Char_t *title="")
 Ctor for object with given name and type. More...
 
 KVBase (const KVBase &)
 copy ctor More...
 
virtual ~ KVBase ()
 
virtual void Clear (Option_t *opt="")
 Clear object properties : name, type/title, number, label. More...
 
const Char_tGetLabel () const
 
UInt_t GetNumber () const
 
UInt_t GetNumberOfObjects () const
 
virtual TObjectGetObject () const
 
virtual const Char_tGetType () const
 
Bool_t HasLabel () const
 
virtual Bool_t IsCalled (const Char_t *name) const
 
Bool_t IsLabelled (const Char_t *l) const
 
virtual Bool_t IsType (const Char_t *typ) const
 
virtual void List ()
 
KVBaseoperator= (const KVBase &)
 copy assignment operator More...
 
virtual void Print (Option_t *option="") const
 
Double_t ProtectedGetX (const TF1 *func, Double_t val, int &status, Double_t xmin=0.0, Double_t xmax=0.0) const
 
void SetLabel (const Char_t *lab)
 
virtual void SetNumber (UInt_t num)
 
virtual void SetType (const Char_t *str)
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 
virtual TObjectClone (const char *newname="") const
 
virtual Int_t Compare (const TObject *obj) const
 
virtual void FillBuffer (char *&buffer)
 
virtual const char * GetName () const
 
virtual const char * GetTitle () const
 
virtual ULong_t Hash () const
 
virtual Bool_t IsSortable () const
 
virtual void ls (Option_t *option="") const
 
TNamedoperator= (const TNamed &rhs)
 
virtual void SetName (const char *name)
 
virtual void SetNameTitle (const char *name, const char *title)
 
virtual void SetTitle (const char *title="")
 
virtual Int_t Sizeof () const
 
- Public Member Functions inherited from TObject
 TObject ()
 
 TObject (const TObject &object)
 
virtual ~TObject ()
 
void AbstractMethod (const char *method) const
 
virtual void AppendPad (Option_t *option="")
 
virtual void Browse (TBrowser *b)
 
ULong_t CheckedHash ()
 
virtual const char * ClassName () const
 
virtual void Delete (Option_t *option="")
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 
virtual void Draw (Option_t *option="")
 
virtual void DrawClass () const
 
virtual TObjectDrawClone (Option_t *option="") const
 
virtual void Dump () const
 
virtual void Error (const char *method, const char *msgfmt,...) const
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 
virtual TObjectFindObject (const char *name) const
 
virtual TObjectFindObject (const TObject *obj) const
 
virtual Option_tGetDrawOption () const
 
virtual const char * GetIconName () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 
virtual Bool_t HandleTimer (TTimer *timer)
 
Bool_t HasInconsistentHash () const
 
virtual void Info (const char *method, const char *msgfmt,...) const
 
virtual Bool_t InheritsFrom (const char *classname) const
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 
virtual void Inspect () const
 
void InvertBit (UInt_t f)
 
virtual Bool_t IsEqual (const TObject *obj) const
 
virtual Bool_t IsFolder () const
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 
virtual Bool_t Notify ()
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 
void operator delete (void *ptr)
 
void operator delete[] (void *ptr)
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 
virtual void Paint (Option_t *option="")
 
virtual void Pop ()
 
virtual Int_t Read (const char *name)
 
virtual void RecursiveRemove (TObject *obj)
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 
virtual void SetDrawOption (Option_t *option="")
 
virtual void SetUniqueID (UInt_t uid)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 

Protected Member Functions

Bool_t CheckBreakUpChannel ()
 
virtual void InitialiseMCSampler ()
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 
void MakeZombie ()
 

Protected Attributes

KVNucleus fCompound
 initial nucleus which undergoes break-up More...
 
Double_t fEtot
 available kinetic energy for decay More...
 
KVEventfEvent
 break-up channel More...
 
std::vector< Double_tfMasses
 masses of nuclei in break-up channel More...
 
TObjectfMCSampler
 Monte-Carlo phase space sampler. More...
 
Int_t fMult
 multiplicity of channel More...
 
Bool_t fOK
 ready to calculate or not More...
 
- Protected Attributes inherited from KVBase
TString fLabel
 label for the object More...
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TObject
 kOnlyPrepStep
 

Private Member Functions

void init ()
 default initialisations More...
 

Additional Inherited Members

- Public Types inherited from KVBase
enum  EKaliVedaBits { kIsKaliVedaObject = BIT(23) }
 
- Public Types inherited from TObject
enum  EDeprecatedStatusBits
 
enum  EStatusBits
 
- Static Public Member Functions inherited from KVBase
static Bool_t AreEqual (Double_t x, Double_t y, Long64_t maxdif=1)
 Comparison between two 64-bit floating-point values. More...
 
static void BackupFileWithDate (const Char_t *path)
 
static void CombineFiles (const Char_t *file1, const Char_t *file2, const Char_t *newfilename, Bool_t keep=kTRUE)
 
static void Deprecated (const char *method, const char *advice)
 
static Bool_t FindClassSourceFiles (const Char_t *class_name, KVString &imp_file, KVString &dec_file, const Char_t *dir_name=".")
 
static Bool_t FindExecutable (TString &exec, const Char_t *path="$(PATH)")
 
static const Char_tFindFile (const Char_t *search, TString &wfil)
 
static const Char_tGetBINDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetDATABASEFilePath ()
 
static const Char_tGetDATADIRFilePath (const Char_t *namefile="")
 
static Bool_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval)
 
static const Char_tGetDataSetEnv (const Char_t *dataset, const Char_t *type, const Char_t *defval)
 
static Double_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Double_t defval)
 
static const Char_tGetETCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetExampleFilePath (const Char_t *library, const Char_t *namefile)
 Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) More...
 
static const Char_tGetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetKVBuildDate ()
 Returns KaliVeda build date. More...
 
static const Char_tGetKVBuildDir ()
 Returns top-level directory used for build. More...
 
static const Char_tGetKVBuildTime ()
 Returns KaliVeda build time. More...
 
static const Char_tGetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More...
 
static const Char_tGetKVBuildUser ()
 Returns username of person who performed build. More...
 
static const Char_tGetKVSourceDir ()
 Returns top-level directory of source tree used for build. More...
 
static const Char_tGetKVVersion ()
 Returns KaliVeda version string. More...
 
static const Char_tGetLIBDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetListOfPlugins (const Char_t *base)
 
static const Char_tGetListOfPluginURIs (const Char_t *base)
 
static const Char_tGetPluginURI (const Char_t *base, const Char_t *plugin)
 
static void GetTempFileName (TString &base)
 
static const Char_tGetTEMPLATEDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetWORKDIRFilePath (const Char_t *namefile="")
 
static const Char_tgitBranch ()
 Returns git branch of sources. More...
 
static const Char_tgitCommit ()
 Returns last git commit of sources. More...
 
static void InitEnvironment ()
 
static bool is_gnuinstall ()
 
static Bool_t IsThisAPlugin (const TString &uri, TString &base)
 
static TPluginHandlerLoadPlugin (const Char_t *base, const Char_t *uri="0")
 
static Bool_t OpenContextMenu (const char *method, TObject *obj, const char *alt_method_name="")
 
static void OpenTempFile (TString &base, std::ofstream &fp)
 
static void PrintSplashScreen ()
 Prints welcome message and infos on version etc. More...
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, KVSQLite::database &dbfile, const Char_t *kvsubdir="")
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ifstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ofstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchKVFile (const Char_t *name, TString &fullpath, const Char_t *kvsubdir="")
 
static const Char_tWorkingDirectory ()
 
- Static Public Member Functions inherited from TObject
static Longptr_t GetDtorOnly ()
 
static Bool_t GetObjectStat ()
 
static void SetDtorOnly (void *obj)
 
static void SetObjectStat (Bool_t stat)
 
- Public Attributes inherited from TObject
 kBitMask
 
 kCanDelete
 
 kCannotPick
 
 kHasUUID
 
 kInconsistent
 
 kInvalidObject
 
 kIsOnHeap
 
 kIsReferenced
 
 kMustCleanup
 
 kNoContextMenu
 
 kNotDeleted
 
 kObjInCanvas
 
 kOverwrite
 
 kSingleKey
 
 kWriteDelete
 
 kZombie
 

#include <KVGenPhaseSpace.h>

Inheritance diagram for KVGenPhaseSpace:
Inheritance graph
[legend]

Constructor & Destructor Documentation

◆ KVGenPhaseSpace() [1/2]

KVGenPhaseSpace::KVGenPhaseSpace ( )

Default constructor.

Definition at line 49 of file KVGenPhaseSpace.cpp.

◆ KVGenPhaseSpace() [2/2]

KVGenPhaseSpace::KVGenPhaseSpace ( const Char_t name,
const Char_t title = "" 
)

Constructor with name and title.

Definition at line 61 of file KVGenPhaseSpace.cpp.

◆ ~KVGenPhaseSpace()

KVGenPhaseSpace::~KVGenPhaseSpace ( )
virtual

Destructor.

Definition at line 72 of file KVGenPhaseSpace.cpp.

Member Function Documentation

◆ CheckBreakUpChannel()

Bool_t KVGenPhaseSpace::CheckBreakUpChannel ( )
protected

We check that:

  • mass and charge are conserved
  • the excitation energy of the compound is greater than the channel Q-value (taking into account any excitation energy of nuclei in exit channel)

Definition at line 180 of file KVGenPhaseSpace.cpp.

◆ Copy()

void KVGenPhaseSpace::Copy ( TObject obj) const
virtual

This method copies the current state of 'this' object into 'obj' You should add here any member variables, for example: (supposing a member variable KVGenPhaseSpace::fToto) CastedObj.fToto = fToto; or CastedObj.SetToto( GetToto() );

Reimplemented from KVBase.

Definition at line 89 of file KVGenPhaseSpace.cpp.

◆ Generate()

Double_t KVGenPhaseSpace::Generate ( )
virtual

Generate 1 event for this break-up channel. The weight associated to the event is returned. We also store the value in the list of parameters of the KVEvent object pointed to by fEvent: fEvent->GetParameters()->SetValue("PHASESPACE_WEIGHT", weight);

NB: in order to get e.g. correct kinetic energy distributions for particles, this weight MUST be used as e.g. the filling weight for any histograms (see example in Class Description)

Examples
KVGenPhaseSpace_example.C, and KVGenPhaseSpace_example2.C.

Definition at line 148 of file KVGenPhaseSpace.cpp.

◆ GetAvailableEnergy()

Double_t KVGenPhaseSpace::GetAvailableEnergy ( ) const
inline

Return total kinetic energy available for break-up particles

Examples
KVGenPhaseSpace_example2.C.

Definition at line 86 of file KVGenPhaseSpace.h.

◆ init()

void KVGenPhaseSpace::init ( void  )
private

default initialisations

Definition at line 15 of file KVGenPhaseSpace.cpp.

◆ InitialiseMCSampler()

void KVGenPhaseSpace::InitialiseMCSampler ( )
protectedvirtual

initialise the TGenPhaseSpace for the decay channel We store the name of the generator in the list of parameters of the KVEvent object pointed to by fEvent: fEvent->GetParameters()->SetValue("PHASESPACE_GENERATOR","TGenPhaseSpace");

Definition at line 32 of file KVGenPhaseSpace.cpp.

◆ SetBreakUpChannel()

Bool_t KVGenPhaseSpace::SetBreakUpChannel ( const KVNucleus CN,
KVEvent e 
)

Define the break-up channel, i.e. the initial compound nucleus with its kinematics & excitation energy, and a list of nuclei to be produced by the decay. Nuclei produced by decay may be excited.

Returns kTRUE if decay is energetically allowed, kFALSE if not.

Examples
KVGenPhaseSpace_example.C, and KVGenPhaseSpace_example2.C.

Definition at line 111 of file KVGenPhaseSpace.cpp.

Member Data Documentation

◆ fCompound

KVNucleus KVGenPhaseSpace::fCompound
protected

initial nucleus which undergoes break-up

Definition at line 66 of file KVGenPhaseSpace.h.

◆ fEtot

Double_t KVGenPhaseSpace::fEtot
protected

available kinetic energy for decay

Definition at line 71 of file KVGenPhaseSpace.h.

◆ fEvent

KVEvent* KVGenPhaseSpace::fEvent
protected

break-up channel

Definition at line 67 of file KVGenPhaseSpace.h.

◆ fMasses

std::vector<Double_t> KVGenPhaseSpace::fMasses
protected

masses of nuclei in break-up channel

Definition at line 69 of file KVGenPhaseSpace.h.

◆ fMCSampler

TObject* KVGenPhaseSpace::fMCSampler
protected

Monte-Carlo phase space sampler.

Definition at line 65 of file KVGenPhaseSpace.h.

◆ fMult

Int_t KVGenPhaseSpace::fMult
protected

multiplicity of channel

Definition at line 68 of file KVGenPhaseSpace.h.

◆ fOK

Bool_t KVGenPhaseSpace::fOK
protected

ready to calculate or not

Definition at line 70 of file KVGenPhaseSpace.h.


The documentation for this class was generated from the following files: