KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVGenPhaseSpace Class Reference

Detailed Description

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:67
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:126
void Draw(Option_t *option="") override
virtual Int_t Fill(const char *name, Double_t w)
virtual void Sumw2(Bool_t flag=kTRUE)
const Int_t n
TH1F * h1
Examples
KVGenPhaseSpace_example.C, and KVGenPhaseSpace_example2.C.

Definition at line 61 of file KVGenPhaseSpace.h.

#include <KVGenPhaseSpace.h>

Inheritance diagram for KVGenPhaseSpace:

Public Member Functions

 KVGenPhaseSpace ()
 Default constructor.
 
 KVGenPhaseSpace (const Char_t *name, const Char_t *title="")
 Constructor with name and title.
 
virtual ~KVGenPhaseSpace ()
 Destructor.
 
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.
 
 KVBase (const Char_t *name, const Char_t *title="")
 Ctor for object with given name and type.
 
 KVBase (const KVBase &)
 copy ctor
 
virtual ~KVBase ()
 
virtual void Clear (Option_t *opt="")
 Clear object properties : name, type/title, number, label.
 
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
 
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 ()
 
void Clear (Option_t *option="") override
 
TObjectClone (const char *newname="") const override
 
Int_t Compare (const TObject *obj) const override
 
void Copy (TObject &named) const override
 
virtual void FillBuffer (char *&buffer)
 
const char * GetName () const override
 
const char * GetTitle () const override
 
ULong_t Hash () const override
 
TClassIsA () const override
 
Bool_t IsSortable () const override
 
void ls (Option_t *option="") const override
 
TNamedoperator= (const TNamed &rhs)
 
void Print (Option_t *option="") const override
 
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
 
void Streamer (TBuffer &) override
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- 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=nullptr)
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 
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)
 
Bool_t IsDestructed () const
 
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, void *vp)
 
void operator delete[] (void *ptr)
 
void operator delete[] (void *ptr, void *vp)
 
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)
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
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=nullptr, Int_t option=0, Int_t bufsize=0)
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const
 

Private Member Functions

Bool_t CheckBreakUpChannel ()
 
void init ()
 default initialisations
 
virtual void InitialiseMCSampler ()
 

Private Attributes

KVNucleus fCompound
 initial nucleus which undergoes break-up
 
Double_t fEtot
 available kinetic energy for decay
 
KVEventfEvent
 break-up channel
 
std::vector< Double_tfMasses
 masses of nuclei in break-up channel
 
TObjectfMCSampler
 Monte-Carlo phase space sampler.
 
Int_t fMult
 multiplicity of channel
 
Bool_t fOK
 ready to calculate or not
 

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.
 
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.)
 
static const Char_tGetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetKVBuildDate ()
 Returns KaliVeda build date.
 
static const Char_tGetKVBuildDir ()
 Returns top-level directory used for build.
 
static const Char_tGetKVBuildTime ()
 Returns KaliVeda build time.
 
static const Char_tGetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...)
 
static const Char_tGetKVBuildUser ()
 Returns username of person who performed build.
 
static const Char_tGetKVSourceDir ()
 Returns top-level directory of source tree used for build.
 
static const Char_tGetKVVersion ()
 Returns KaliVeda version string.
 
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.
 
static const Char_tgitCommit ()
 Returns last git commit of sources.
 
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.
 
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 TNamed
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
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
 
- 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 inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TObject
 kOnlyPrepStep
 

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 ( )
private

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 87 of file KVGenPhaseSpace.h.

◆ init()

void KVGenPhaseSpace::init ( void  )
private

default initialisations

Definition at line 15 of file KVGenPhaseSpace.cpp.

◆ InitialiseMCSampler()

void KVGenPhaseSpace::InitialiseMCSampler ( )
privatevirtual

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
private

initial nucleus which undergoes break-up

Definition at line 67 of file KVGenPhaseSpace.h.

◆ fEtot

Double_t KVGenPhaseSpace::fEtot
private

available kinetic energy for decay

Definition at line 72 of file KVGenPhaseSpace.h.

◆ fEvent

KVEvent* KVGenPhaseSpace::fEvent
private

break-up channel

Definition at line 68 of file KVGenPhaseSpace.h.

◆ fMasses

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

masses of nuclei in break-up channel

Definition at line 70 of file KVGenPhaseSpace.h.

◆ fMCSampler

TObject* KVGenPhaseSpace::fMCSampler
private

Monte-Carlo phase space sampler.

Definition at line 66 of file KVGenPhaseSpace.h.

◆ fMult

Int_t KVGenPhaseSpace::fMult
private

multiplicity of channel

Definition at line 69 of file KVGenPhaseSpace.h.

◆ fOK

Bool_t KVGenPhaseSpace::fOK
private

ready to calculate or not

Definition at line 71 of file KVGenPhaseSpace.h.