KaliVeda
Toolkit for HIC analysis
KVLevelScheme.h
1 
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 
25 public:
28 
31 
32  int ncol;
33  int txs;
34  double dx;
35  double ddx;
36  double dy;
37  TH2F* hh;
39 
40 protected:
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 
46 public:
47 
49  {
50  return (int)fLevels.GetSize();
51  }
52  Double_t GetLevelEnergy(int il);
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.
Definition: KVLevelScheme.h:24
TCanvas * cc
Definition: KVLevelScheme.h:38
Int_t GetLevelParity(int il)
double EvaluateErel(double *x, double *p)
Double_t GetQvalue()
Definition: KVLevelScheme.h:67
KVNucleus * fCompNuc
Definition: KVLevelScheme.h:26
Double_t GetErelFromExci(Double_t ex)
Definition: KVLevelScheme.h:71
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)
TF1 * GetErelSpectrum()
Definition: KVLevelScheme.h:88
virtual ~KVLevelScheme()
Destructor.
KVNucleus * fDecayProd
Definition: KVLevelScheme.h:26
int getJ(TString jpi)
int getPI(TString jpi)
Double_t fQvalue
Definition: KVLevelScheme.h:27
Int_t GetNLevels()
Definition: KVLevelScheme.h:48
static void GetParticlesFromErel(KVNucleus *n1, KVNucleus *n2, double erel, bool randAngle=0, TVector3 *vsrc=0)
TF1 * GetExciSpectrum()
Definition: KVLevelScheme.h:84
Double_t GetLevelEnergy(int il)
Int_t GetLevelSpin(int il)
void SetDecayProduct(KVNucleus *nuc, double excit_energy=0)
void Draw(Option_t *option="")
void ReadLevels(const char *file)
double getWidth(double gam, TString unit)
KVLevelScheme(const char *symb)
Default constructor.
double Evaluate(double *x, double *p)
Double_t GetExciFromErel(Double_t erel)
Definition: KVLevelScheme.h:75
const char * GetJPiStr(int il)
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)
void InitStructure()
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]