KaliVeda  1.12/06
Heavy-Ion Analysis Toolkit
KVLevelScheme.h
Go to the documentation of this file.
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 
24 public:
27 
30 
31  int ncol;
32  int txs;
33  double dx;
34  double ddx;
35  double dy;
36  TH2F* hh;
38 
39 protected:
40  double func(double xx, double tt);
41  double getWidth(double gam, TString unit);
42  int getPI(TString jpi);
43  int getJ(TString jpi);
44 
45 public:
46 
48  {
49  return (int)fLevels.GetSize();
50  }
51  Double_t GetLevelEnergy(int il);
52  Double_t GetLevelWidth(int il);
53  Int_t GetLevelSpin(int il);
54  Int_t GetLevelParity(int il);
55 
56  const char* GetJPiStr(int il);
57  const char* GetEGammaStr(int il);
58 
59  KVLevelScheme(const char* symb);
60  virtual ~KVLevelScheme();
61 
62  void InitStructure();
63  void ReadLevels(const char* file);
64  void Print();
65 
67  {
68  return fQvalue;
69  }
71  {
72  return (ex + fQvalue);
73  }
75  {
76  return (erel - fQvalue);
77  }
78 
79  void AddResonance(Double_t ex/*kEV*/, const char* jpi, const char* gam);
80  double Evaluate(double* x, double* p);
81  double EvaluateErel(double* x, double* p);
82 
84  {
85  return fFunc;
86  }
88  {
89  return fFuncErel;
90  }
91 
92  static void GetParticlesFromErel(KVNucleus* n1, KVNucleus* n2, double erel, bool randAngle = 0, TVector3* vsrc = 0);
93  static void GetParticlesFromExci(KVNucleus* n1, KVNucleus* n2, double erel, bool randAngle = 0, TVector3* vsrc = 0);
94 
95  void GetRandomParticles(KVNucleus* n1, KVNucleus* n2, double T/*keV*/, bool randAngle = 0, TVector3* vsrc = 0);
96 
97  void SetDrawStyle(double deMin = 300., double fullWidth = 1.3, double lineWidth = 0.6, int textSize = 22);
98  void Draw(Option_t* option = "");
99  void DrawThreshold(const char* symb, Option_t* option = "", double ex = 0. /*in keV*/);
100  double GetThreshold(const char* outnuc = "");
101 
102  void SetDecayProduct(KVNucleus* nuc, double excit_energy = 0/*keV*/);
103 
104  ClassDef(KVLevelScheme, 1) //tool to simulate nucleus multi-particle decay
105 };
106 
107 #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:23
TCanvas * cc
Definition: KVLevelScheme.h:37
Int_t GetLevelParity(int il)
double EvaluateErel(double *x, double *p)
Double_t GetQvalue()
Definition: KVLevelScheme.h:66
KVNucleus * fCompNuc
Definition: KVLevelScheme.h:25
Double_t GetErelFromExci(Double_t ex)
Definition: KVLevelScheme.h:70
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:87
virtual ~KVLevelScheme()
Destructor.
KVNucleus * fDecayProd
Definition: KVLevelScheme.h:25
int getJ(TString jpi)
int getPI(TString jpi)
Double_t fQvalue
Definition: KVLevelScheme.h:26
Int_t GetNLevels()
Definition: KVLevelScheme.h:47
static void GetParticlesFromErel(KVNucleus *n1, KVNucleus *n2, double erel, bool randAngle=0, TVector3 *vsrc=0)
TF1 * GetExciSpectrum()
Definition: KVLevelScheme.h:83
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:74
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:27
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:125
virtual Int_t GetSize() const
Double_t ex[n]