KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVLevelScheme.h
1
3
4#ifndef __KVLevelScheme_H
5#define __KVLevelScheme_H
6
7#include "KVNucleus.h"
8#include "TMath.h"
9#include "TObject.h"
10#include "TF1.h"
11#include "KVExcitedState.h"
12#include "TH2F.h"
13#include "TCanvas.h"
14
25public:
28
31
32 int ncol;
33 int txs;
34 double dx;
35 double ddx;
36 double dy;
39
40protected:
41 double func(double xx, double tt);
42 double getWidth(double gam, TString unit);
43 int getPI(TString jpi);
44 int getJ(TString jpi);
45
46public:
47
49 {
50 return (int)fLevels.GetSize();
51 }
53 Double_t GetLevelWidth(int il);
54 Int_t GetLevelSpin(int il);
55 Int_t GetLevelParity(int il);
56
57 const char* GetJPiStr(int il);
58 const char* GetEGammaStr(int il);
59
60 KVLevelScheme(const char* symb);
61 virtual ~KVLevelScheme();
62
63 void InitStructure();
64 void ReadLevels(const char* file);
65 void Print();
66
68 {
69 return fQvalue;
70 }
72 {
73 return (ex + fQvalue);
74 }
76 {
77 return (erel - fQvalue);
78 }
79
80 void AddResonance(Double_t ex/*kEV*/, const char* jpi, const char* gam);
81 double Evaluate(double* x, double* p);
82 double EvaluateErel(double* x, double* p);
83
85 {
86 return fFunc;
87 }
89 {
90 return fFuncErel;
91 }
92
93 static void GetParticlesFromErel(KVNucleus* n1, KVNucleus* n2, double erel, bool randAngle = 0, TVector3* vsrc = 0);
94 static void GetParticlesFromExci(KVNucleus* n1, KVNucleus* n2, double erel, bool randAngle = 0, TVector3* vsrc = 0);
95
96 void GetRandomParticles(KVNucleus* n1, KVNucleus* n2, double T/*keV*/, bool randAngle = 0, TVector3* vsrc = 0);
97
98 void SetDrawStyle(double deMin = 300., double fullWidth = 1.3, double lineWidth = 0.6, int textSize = 22);
99 void Draw(Option_t* option = "");
100 void DrawThreshold(const char* symb, Option_t* option = "", double ex = 0. /*in keV*/);
101 double GetThreshold(const char* outnuc = "");
102
103 void SetDecayProduct(KVNucleus* nuc, double excit_energy = 0/*keV*/);
104
105 ClassDef(KVLevelScheme, 1) //tool to simulate nucleus multi-particle decay
106};
107
108#endif
int Int_t
double Double_t
const char Option_t
#define ClassDef(name, id)
Tool to simulate nucleus multi-particle decay.
Int_t GetLevelParity(int il)
double EvaluateErel(double *x, double *p)
Double_t GetQvalue()
KVNucleus * fCompNuc
Double_t GetErelFromExci(Double_t ex)
void SetDrawStyle(double deMin=300., double fullWidth=1.3, double lineWidth=0.6, int textSize=22)
const char * GetEGammaStr(int il)
void DrawThreshold(const char *symb, Option_t *option="", double ex=0.)
double GetThreshold(const char *outnuc="")
static void GetParticlesFromExci(KVNucleus *n1, KVNucleus *n2, double erel, bool randAngle=0, TVector3 *vsrc=0)
virtual ~KVLevelScheme()
Destructor.
KVNucleus * fDecayProd
int getJ(TString jpi)
int getPI(TString jpi)
TF1 * GetExciSpectrum()
Double_t fQvalue
Int_t GetNLevels()
static void GetParticlesFromErel(KVNucleus *n1, KVNucleus *n2, double erel, bool randAngle=0, TVector3 *vsrc=0)
Double_t GetLevelEnergy(int il)
Int_t GetLevelSpin(int il)
void SetDecayProduct(KVNucleus *nuc, double excit_energy=0)
void ReadLevels(const char *file)
double getWidth(double gam, TString unit)
double Evaluate(double *x, double *p)
Double_t GetExciFromErel(Double_t erel)
const char * GetJPiStr(int il)
TF1 * GetErelSpectrum()
void AddResonance(Double_t ex, const char *jpi, const char *gam)
void GetRandomParticles(KVNucleus *n1, KVNucleus *n2, double T, bool randAngle=0, TVector3 *vsrc=0)
double func(double xx, double tt)
Double_t GetLevelWidth(int il)
Extended TList class which owns its objects by default.
Definition KVList.h:28
Description of properties and kinematics of atomic nuclei.
Definition KVNucleus.h:126
virtual Int_t GetSize() const
Double_t ex[n]