KaliVeda
Toolkit for HIC analysis
KVCaloBase Class Reference

Detailed Description

Calorimetry of hot nuclei.

Created by KVClassFactory on Mon Apr 14 15:01:51 2008 Author: eric bonnet,,,

Principle

KVCaloBase sums the Z (Zsum), A (Asum), Ek (Eksum) and Q (Qsum) of the considered nuclei (method Fill(KVNucleus* )) These ingredients allow to calculate the excitation energy using the following relation:

Exci + Qini = Eksum + Qsum -> Exci = Eksum + Qsum - Qini

Example of use

KVNucleus alpha(2,4,10); //definition of nuclei
KVNucleus triton(1,3);
KVNucleus azote(7,16,40);
ca.Fill(&alpha); //filling the variable
ca.Fill(&triton);
ca.Fill(&azote);
ca.Calculate();
ca.Print("ing"); // print ingredients
Ingredients, 7 stored:
0 | Zsum | 10.00000 Sum of charges
1 | Asum | 23.00000 Sum of masses
2 | Eksum | 50.0000 Sum of kinetic energies (MeV)
3 | Qsum | 23.05840 Sum of mass excess (MeV)
4 | Msum | 3.000000 Multiplicity
5 | Qini | -5.15400 Mass Excess of the initial state (reconstructed source)
6 | Exci | 78.21240 Excitation energy (MeV)
ca.GetValue(0); // return value "Zsum"
10.0000
ca.GetValue("Exci")
78.21240
Calorimetry of hot nuclei.
Definition: KVCaloBase.h:63
void Print(Option_t *opt="") const
Definition: KVCaloBase.cpp:73
virtual void Calculate()
Definition: KVCaloBase.cpp:378
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:126
Double_t GetValue(void) const
Definition: KVVarGlob.h:443
void Fill(const KVNucleus *c)
Definition: KVVarGlob.h:406

Definition at line 63 of file KVCaloBase.h.

#include <KVCaloBase.h>

Inheritance diagram for KVCaloBase:

Public Member Functions

 KVCaloBase ()
 
 KVCaloBase (const Char_t *nom)
 
virtual ~KVCaloBase (void)
 
void AddNeutrons (Int_t mult, Double_t mke)
 
virtual void Calculate ()
 
virtual void Copy (TObject &obj) const
 Methode de Copy. More...
 
Double_t GetIngValue (const KVString &name) const
 
const KVNameValueListGetList (Option_t *opt="ing") const
 
virtual Char_t GetValueType (Int_t) const
 
std::vector< Double_t > GetValueVector (void) const
 On retourne un tableau rassemblant l'ensemble des ingredients. More...
 
void Init ()
 
void Print (Option_t *opt="") const
 
void Reset ()
 
- Public Member Functions inherited from KVVarGlob
 KVVarGlob ()
 
 KVVarGlob (const Char_t *nom)
 
virtual ~KVVarGlob (void)
 
void AddSelection (const KVParticleCondition &sel)
 
Double_t AsDouble () const
 
void Copy (TObject &obj) const
 
void DefineNewFrame (KVEvent *e) const
 
void Fill (const KVNucleus *c)
 
void Fill2 (const KVNucleus *n1, const KVNucleus *n2)
 
virtual void FillN (const KVEvent *)
 
const TString & GetFrame () const
 
Int_t GetNameIndex (const Char_t *name) const
 
Double_t GetNormalization () const
 
Int_t GetNumberOfBranches () const
 
virtual Int_t GetNumberOfValues () const
 
TString GetOptionString (const Char_t *opt) const
 
Double_t GetParameter (const Char_t *par) const
 
Double_t GetValue (const Char_t *name) const
 
Double_t GetValue (Int_t i) const
 
Double_t GetValue (void) const
 
virtual TString GetValueName (Int_t i) const
 
const KVNameValueListGetValueNameList () const
 
Bool_t HasValue (const Char_t *name) const
 
bool IsDefiningNewFrame () const
 
virtual Bool_t IsGlobalVariable () const
 
Bool_t IsNBody () const
 
Bool_t IsOneBody () const
 
Bool_t IsOptionGiven (const Char_t *opt)
 
Bool_t IsParameterSet (const Char_t *par)
 
bool IsSelectingEvents () const
 
Bool_t IsTwoBody () const
 
void ListInit ()
 
 operator double () const
 
Double_t operator() (const Char_t *name) const
 
Double_t operator() (Int_t i) const
 
Double_t operator() (void) const
 
void Print (Option_t *="") const
 
void SetDefineGroup (const KVString &groupname="")
 
void SetEventSelection (const EventSelector &f)
 
void SetFrame (const Char_t *ref)
 
void SetMaxNumBranches (Int_t n)
 
void SetNewFrameDefinition (const FrameSetter &f)
 
virtual void SetNormalization (Double_t norm)
 
void SetOption (const Char_t *option, const Char_t *value)
 
void SetParameter (const Char_t *par, Double_t value)
 
void SetSelection (const KVParticleCondition &sel)
 
bool TestEventSelection () const
 
void UnsetOption (const Char_t *opt)
 
void UnsetParameter (const Char_t *par)
 
- 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_t * GetLabel () const
 
UInt_t GetNumber () const
 
UInt_t GetNumberOfObjects () const
 
virtual TObject * GetObject () const
 
virtual const Char_t * GetType () 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...
 
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)
 

Private Member Functions

void AddIngValue (KVString name, Double_t value)
 
void ComputeExcitationEnergy ()
 
virtual void fill (const KVNucleus *)
 
Double_t GetIngValue (Int_t idx) const
 
virtual Double_t getvalue_int (Int_t) const
 
void init_KVCaloBase ()
 
Bool_t RootSquare (Double_t aaa, Double_t bbb, Double_t ccc)
 
void SetIngValue (KVString name, Double_t value)
 
virtual void SumUp ()
 

Private Attributes

Bool_t kIsModified
 indique les ingredients ont ete modifies More...
 
Double_t kracine_max
 
Double_t kracine_min
 deux racines issues de la resolution de RootSquare More...
 
Int_t kroot_status
 statut pour la methode de RootSquare More...
 
KVNucleus nn
 permet d utiliser des methodes de KVNucleus More...
 
KVNameValueList nvl_ing
 //Contains all ingredients computed More...
 

Additional Inherited Members

- Public Types inherited from KVVarGlob
enum  { kOneBody , kTwoBody , kNBody }
 
- Public Types inherited from KVBase
enum  EKaliVedaBits { kIsKaliVedaObject = BIT(23) }
 
- Static Public Member Functions inherited from KVVarGlob
static void MakeClass (const Char_t *classname, const Char_t *classdesc, int type=kOneBody)
 
- 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_t * FindFile (const Char_t *search, TString &wfil)
 
static const Char_t * GetBINDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetDATABASEFilePath ()
 
static const Char_t * GetDATADIRFilePath (const Char_t *namefile="")
 
static Bool_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval)
 
static const Char_t * GetDataSetEnv (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_t * GetETCDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetExampleFilePath (const Char_t *library, const Char_t *namefile)
 Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) More...
 
static const Char_t * GetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetKVBuildDate ()
 Returns KaliVeda build date. More...
 
static const Char_t * GetKVBuildDir ()
 Returns top-level directory used for build. More...
 
static const Char_t * GetKVBuildTime ()
 Returns KaliVeda build time. More...
 
static const Char_t * GetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More...
 
static const Char_t * GetKVBuildUser ()
 Returns username of person who performed build. More...
 
static const Char_t * GetKVSourceDir ()
 Returns top-level directory of source tree used for build. More...
 
static const Char_t * GetKVVersion ()
 Returns KaliVeda version string. More...
 
static const Char_t * GetLIBDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetListOfPlugins (const Char_t *base)
 
static const Char_t * GetListOfPluginURIs (const Char_t *base)
 
static const Char_t * GetPluginURI (const Char_t *base, const Char_t *plugin)
 
static void GetTempFileName (TString &base)
 
static const Char_t * GetTEMPLATEDIRFilePath (const Char_t *namefile="")
 
static const Char_t * GetWORKDIRFilePath (const Char_t *namefile="")
 
static const Char_t * gitBranch ()
 Returns git branch of sources. More...
 
static const Char_t * gitCommit ()
 Returns last git commit of sources. More...
 
static void InitEnvironment ()
 
static bool is_gnuinstall ()
 
static Bool_t IsThisAPlugin (const TString &uri, TString &base)
 
static TPluginHandler * LoadPlugin (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_t * WorkingDirectory ()
 

Constructor & Destructor Documentation

◆ KVCaloBase() [1/2]

KVCaloBase::KVCaloBase ( )
inline

Definition at line 89 of file KVCaloBase.h.

◆ KVCaloBase() [2/2]

KVCaloBase::KVCaloBase ( const Char_t *  nom)
inline

Definition at line 93 of file KVCaloBase.h.

◆ ~KVCaloBase()

virtual KVCaloBase::~KVCaloBase ( void  )
inlinevirtual

Definition at line 99 of file KVCaloBase.h.

Member Function Documentation

◆ AddIngValue()

void KVCaloBase::AddIngValue ( KVString  name,
Double_t  value 
)
private

protected method, increment the value of a name given ingredient if it is not defined, it's created

Definition at line 267 of file KVCaloBase.cpp.

◆ AddNeutrons()

void KVCaloBase::AddNeutrons ( Int_t  mult,
Double_t  mke 
)

Add extra neutrons multiplicity (number) and mean kinetic energy

Definition at line 353 of file KVCaloBase.cpp.

◆ Calculate()

void KVCaloBase::Calculate ( void  )
virtual

Realisation de la calorimetrie Calcul de l'energie d'excitation appel de SumUp()

Resolution de l'equation Exci + Qini = \Sigma Ek + \Sigma Q -> Exci = \Sigma Ek + \Sigma Q - Qini

Implements KVVarGlob.

Reimplemented in KVCalorimetry.

Definition at line 378 of file KVCaloBase.cpp.

◆ ComputeExcitationEnergy()

void KVCaloBase::ComputeExcitationEnergy ( )
private

Definition at line 341 of file KVCaloBase.cpp.

◆ Copy()

void KVCaloBase::Copy ( TObject &  obj) const
virtual

Methode de Copy.

Reimplemented from KVBase.

Definition at line 19 of file KVCaloBase.cpp.

◆ fill()

void KVCaloBase::fill ( const KVNucleus n)
privatevirtual

Remplissage des energies, masse, charge et defaut de masse Pour l'energie cinetique, si l'utilisateur a utilise en amont la methode KVVarGlob::SetFrame(const Char_t*), c'est dans ce repere que les energies sont sommees (a condition que chaque KVNucleus possede le repere avec un nom identique)

somme simple sur les A, Z, Ek, Q sans distinction du type de particules

Reimplemented from KVVarGlob.

Reimplemented in KVCalorimetry.

Definition at line 287 of file KVCaloBase.cpp.

◆ GetIngValue() [1/2]

Double_t KVCaloBase::GetIngValue ( const KVString name) const

return the value of a name given ingredient if it is not defined return 0

Definition at line 229 of file KVCaloBase.cpp.

◆ GetIngValue() [2/2]

Double_t KVCaloBase::GetIngValue ( Int_t  idx) const
private

protected method, return the value of a index given ingredient

Definition at line 242 of file KVCaloBase.cpp.

◆ GetList()

const KVNameValueList & KVCaloBase::GetList ( Option_t *  option = "ing") const

retourne la KVNameValueList ou sont enregistres les ingredients (option=="ing") ou les parametres (option=="par")

Definition at line 95 of file KVCaloBase.cpp.

◆ getvalue_int()

Double_t KVCaloBase::getvalue_int ( Int_t  i) const
privatevirtual

can't assume all ingredients declared to SetNameIndex in list nvl_ing exist

  • as they are dynamically created as data is filled therefore use NameIndex to retrieve name, then look for value in list by name

Implements KVVarGlob.

Definition at line 118 of file KVCaloBase.cpp.

◆ GetValueType()

Char_t KVCaloBase::GetValueType ( Int_t  i) const
virtual

Returns type of value depending on name: Zsum I Asum I Eksum D Qsum D Msum I Aneu I Qneu D Mneu I Qini D Temp D Exci D Ekneu D Zpart I Apart I Ekpart D Qpart D Mpart I Zfrag I Afrag I Ekfrag D Qfrag D Mfrag I

Reimplemented from KVVarGlob.

Definition at line 154 of file KVCaloBase.cpp.

◆ GetValueVector()

std::vector< Double_t > KVCaloBase::GetValueVector ( void  ) const
virtual

On retourne un tableau rassemblant l'ensemble des ingredients.

Reimplemented from KVVarGlob.

Definition at line 190 of file KVCaloBase.cpp.

◆ Init()

void KVCaloBase::Init ( void  )
virtual

Init() is called by KVGVList::MakeBranches(), so this is the latest they can be set up.

Implements KVVarGlob.

Reimplemented in KVCalorimetry.

Definition at line 32 of file KVCaloBase.cpp.

◆ init_KVCaloBase()

void KVCaloBase::init_KVCaloBase ( )
private

protected method Private initialisation method called by all constructors. All member initialisations should be done here.

Definition at line 207 of file KVCaloBase.cpp.

◆ Print()

void KVCaloBase::Print ( Option_t *  option = "") const
virtual

printf information on the object opt==ing, print the list of ingredients computed opt==par, print the list of parameters

Reimplemented from KVBase.

Definition at line 73 of file KVCaloBase.cpp.

◆ Reset()

void KVCaloBase::Reset ( void  )
virtual

Remise a zero avant le traitement d'un evenement

Implements KVVarGlob.

Definition at line 51 of file KVCaloBase.cpp.

◆ RootSquare()

Bool_t KVCaloBase::RootSquare ( Double_t  aa,
Double_t  bb,
Double_t  cc 
)
private

protected method

calcul les racines du polynome d'ordre 2 : aa*x*x + bb*xx + cc = 0 les racines sont accessibles par les variables kracine_min et kracine_max

kroot_status>=0 -> tout c'est bien passe la fonction retourne kTRUE =0 2 racines reelles distinctes =1 2 racines reelles egales (aa==0)

kroot_status<0 les deux racines sont mises a zero la fonction retourne kFALSE =-1 2 racines imaginaires (Delta<0) =-2 aa=bb=0 le calcul n'est alors pas poursuivi, la methode Calculate() retournera kFALSE la cause peut etre discriminee en appelant la methode GetValue("RootStatus")

Definition at line 417 of file KVCaloBase.cpp.

◆ SetIngValue()

void KVCaloBase::SetIngValue ( KVString  name,
Double_t  value 
)
private

protected method, set the value a name given ingredient

Definition at line 254 of file KVCaloBase.cpp.

◆ SumUp()

void KVCaloBase::SumUp ( )
privatevirtual

protected method Appele par Calculate pour mettre a jour les differents ingredients de la calorimetrie :

Trois modes de sommes:

determination de l exces de masse de la source recontruite, dernier ingredient de l'equation : Exci + Qini = \Sigma Ek + \Sigma Q -> Exci = \Sigma Ek + \Sigma Q - Qini

defaut de masse de la source reconstruite

Reimplemented in KVCalorimetry.

Definition at line 319 of file KVCaloBase.cpp.

Member Data Documentation

◆ kIsModified

Bool_t KVCaloBase::kIsModified
private

indique les ingredients ont ete modifies

Definition at line 72 of file KVCaloBase.h.

◆ kracine_max

Double_t KVCaloBase::kracine_max
private

Definition at line 76 of file KVCaloBase.h.

◆ kracine_min

Double_t KVCaloBase::kracine_min
private

deux racines issues de la resolution de RootSquare

Definition at line 76 of file KVCaloBase.h.

◆ kroot_status

Int_t KVCaloBase::kroot_status
private

statut pour la methode de RootSquare

Definition at line 77 of file KVCaloBase.h.

◆ nn

KVNucleus KVCaloBase::nn
private

permet d utiliser des methodes de KVNucleus

Definition at line 69 of file KVCaloBase.h.

◆ nvl_ing

KVNameValueList KVCaloBase::nvl_ing
private

//Contains all ingredients computed

Definition at line 70 of file KVCaloBase.h.