4 #include "KVLifeTimeTable.h"
5 #include "KVFileReader.h"
37 #pragma GCC diagnostic ignored "-Warray-bounds"
43 void KVLifeTimeTable::init()
47 list_t =
"y d h m s ms micros ns ps fs";
48 list_vt =
"365 24 60 60 1.e3 1.e3 1.e3 1.e3 1.e3";
52 while (!list_t.
End()) {
57 KVError::Warning(
this,
"init",
"Pb de dimensionnement de tableau conversion_t");
59 for (
Int_t jj = 0; jj < kNu_t; jj += 1)
60 for (
Int_t ii = 0; ii < kNu_t; ii += 1)
61 conversion_t[ii][jj] = 1.;
65 while (!list_vt.
End()) {
68 conversion_t[nn][nn + 1] = coef;
71 for (
Int_t ii = 0; ii < kNu_t; ii += 1) {
72 for (
Int_t jj = ii + 2; jj < kNu_t; jj += 1) {
73 conversion_t[ii][jj] = conversion_t[ii][jj - 1] * conversion_t[jj - 1][jj];
76 for (
Int_t ii = 0; ii < kNu_t; ii += 1) {
77 for (
Int_t jj = ii; jj < kNu_t; jj += 1) {
78 conversion_t[jj][ii] = 1. / conversion_t[ii][jj];
84 list_e =
"MeV keV eV";
85 list_ve =
"1.e3 1.e3";
89 while (!list_e.
End()) {
94 KVError::Warning(
this,
"init",
"Pb de dimensionnement de tableau conversion_e");
96 for (
Int_t jj = 0; jj < kNu_e; jj += 1)
97 for (
Int_t ii = 0; ii < kNu_e; ii += 1)
98 conversion_e[ii][jj] = 1.;
102 while (!list_ve.
End()) {
105 conversion_e[nn][nn + 1] = coef;
109 for (
Int_t ii = 0; ii < kNu_e; ii += 1) {
110 for (
Int_t jj = ii + 2; jj < kNu_e; jj += 1) {
111 conversion_e[ii][jj] = conversion_e[ii][jj - 1] * conversion_e[jj - 1][jj];
114 for (
Int_t ii = 0; ii < kNu_e; ii += 1) {
115 for (
Int_t jj = ii; jj < kNu_e; jj += 1) {
116 conversion_e[jj][ii] = 1. / conversion_e[ii][jj];
145 nucMap =
new TMap(50, 2);
199 val *= ToSecond(unit);
206 if (ntot == 0) InfoOnMeasured();
233 Double_t coef = conversion_t[from][to];
248 Double_t coef = conversion_e[from][to];
static Bool_t SearchKVFile(const Char_t *name, TString &fullpath, const Char_t *kvsubdir="")
Handle reading columns of numeric data in text files.
KVString GetCurrentLine()
Bool_t PreparForReadingAgain()
ReadStatus ReadLine(const KVString &pattern="")
Double_t GetDoubleReadPar(Int_t pos) const
Int_t GetIntReadPar(Int_t pos) const
Int_t GetNparRead() const
KVString GetReadPar(Int_t pos) const
Bool_t OpenFileToRead(const KVString &filename)
Simple class to store lifetime information of nucleus.
Bool_t IsAResonance() const
void SetResonance(Bool_t resonnance)
Int_t GetIntValue(const Char_t *name) const
void SetValue(const Char_t *name, value_type value)
Abstract base class for nuclear data table.
KVNuclData * GetData(Int_t zz, Int_t aa) const
virtual void GiveIndexToNucleus(Int_t zz, Int_t aa, Int_t ntot)
Add a new entry in the table.
void SetValue(Double_t val)
void SetMeasured(Bool_t measured)
void Begin(TString delim) const
KVString Next(Bool_t strip_whitespace=kFALSE) const
virtual const char * GetValue(const char *name, const char *dflt) const
virtual void SetTitle(const char *title="")
const char * GetName() const override
virtual void SetName(const char *name)
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
const char * Data() const
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
void Form(const char *fmt,...)
void Error(UserClass p, const char *location, const char *va_(fmt),...)
void Warning(UserClass p, const char *location, const char *va_(fmt),...)