50 if (fnl_sys_.Contains(system)) {
52 Warning(
"ReadYieldsFile",
"system %d already set, %s will be ignored", system, file_path);
54 else if (fdebug_)
Info(
"ReadYieldsFile",
"===== Starting reading system %d =====\n", system);
57 std::ifstream my_file;
58 my_file.open(file_path);
60 if (ok && my_file.is_open()) {
64 std::vector<Int_t> my_a_vec;
65 std::vector<Float_t> my_yield_vec;
66 std::vector<Float_t> my_yield_err_vec;
69 std::vector<Int_t> my_z_vec;
70 std::vector< std::vector<Int_t> > my_z_a_vec;
71 std::vector< std::vector<Float_t> > my_z_yield_vec;
72 std::vector< std::vector<Float_t> > my_z_yielderr_vec;
80 while (getline(my_file,
line)) {
111 my_z_vec.push_back(zz);
115 if (fdebug_)
Info(
"ReadYieldsFile",
"=== New Z=%d ===", zz);
119 my_z_a_vec.push_back(my_a_vec);
120 my_z_yield_vec.push_back(my_yield_vec);
121 my_z_yielderr_vec.push_back(my_yield_err_vec);
126 printf(
"Saving the former Z(=%d) associated A list=(%s)\n", oldZ, nl->
GetList());
132 my_yield_vec.clear();
133 my_yield_err_vec.clear();
141 my_a_vec.push_back(aa);
142 my_yield_vec.push_back(yy);
143 my_yield_err_vec.push_back(yy_err);
147 if (fdebug_) printf(
"(line=%d) (zz=%d, aa=%d, yy=%lf, yy_err=%lf)\n", nline, zz, aa, yy, yy_err);
157 my_z_a_vec.push_back(my_a_vec);
158 my_z_yield_vec.push_back(my_yield_vec);
159 my_z_yielderr_vec.push_back(my_yield_err_vec);
162 printf(
"Saving the former Z(=%d) associated A list=(%s)\n", oldZ, nl->
GetList());
166 fvec_sys_.push_back(system);
167 fvec_sys_z_.push_back(my_z_vec);
168 fvec_sys_z_a_.push_back(my_z_a_vec);
169 fvec_sys_z_yields_.push_back(my_z_yield_vec);
170 fvec_sys_z_yields_err_.push_back(my_z_yielderr_vec);
173 flist_z_.Add(my_z_nl);
174 flist_a_.Add(my_nla_list);
177 fnl_sys_.Add(system);
183 Info(
"ReadYieldsFile",
"[sys=%d] file %s closed, masses and yields saved at position %d\n", system, file_path,
int(fvec_sys_.size() - 1));
189 if (!ok)
Error(
"ReadYieldsFile",
"!!! System=%d already set !!!", system);
190 if (!my_file.is_open()) {
191 Error(
"ReadYieldsFile",
"!!! Can't open file '%s' !!!", file_path);
198 std::vector<Float_t> my_dumb_vec;
199 fvec_sys_z_meanA_.push_back(my_dumb_vec);
200 fvec_sys_z_meanerrA_.push_back(my_dumb_vec);
203 BuildGaussianPlots(system);
221 if (
fdebug_)
Info(
"BuildGaussianPlots",
"====== STARTING BUILDING GAUSSIAN PLOTS FOR SYSTEM %d ======", system);
227 std::vector<Float_t> my_meanA_vec;
228 std::vector<Float_t> my_meanAerr_vec;
235 while (!nl_zz->
End()) {
247 grln->
SetName(
Form(
"gr_lnyields_%d_vs_N_%d", system, next_zz));
263 while (!nl_aa->
End()) {
265 Int_t nn = next_aa - next_zz;
268 Float_t yield = yy_vec.at(aa_pos);
269 Float_t yielderr = yyerr_vec.at(aa_pos);
279 if (
fdebug_)
Info(
"BuildGaussianPlots",
"[Z=%d, N=%d, A=%d] Yield(%d)=%lf +/- %lf", next_zz, next_aa - next_zz, next_aa, system, yield, yielderr);
283 TF1* gaus =
new TF1(
Form(
"gaus_yields_%d_vs_N_%d", system, next_zz),
"gaus(0)", 0, 60);
284 gr->
Fit(
Form(
"gaus_yields_%d_vs_N_%d", system, next_zz),
"Q");
288 my_meanA_vec.push_back(gaus->
GetParameter(1) + next_zz);
301 if (
fdebug_)
Info(
"BuildGaussianPlots",
"====== END BUILDING GAUSSIAN PLOTS FOR SYSTEM %d ======", system);
335 gr_sys1_tol->
SetName(
Form(
"gr_yields_%d_vs_N_%d_tol", system1, zz));
337 gr_sys2_tol->
SetName(
Form(
"gr_yields_%d_vs_N_%d_tol", system2, zz));
340 gr_ratio_all->
SetName(
Form(
"gr_ratio_all_%d_%d_%d", system1, system2, zz));
342 gr_ratio_tol->
SetName(
Form(
"gr_ratio_tol_%d_%d_%d", system1, system2, zz));
361 if (
fdebug_)
Info(
"TestRMSTolerance",
"=== Starting iteration over shared A list for Z=%d ===", zz);
364 Int_t npoint_all = 0;
367 Int_t npoint_tol = 0;
369 while (!nl_inter_a.
End()) {
371 Int_t nn = next_aa - zz;
375 Float_t yield1 = yy1_vec.at(aa1_pos);
376 Float_t yield2 = yy2_vec.at(aa2_pos);
378 Float_t yielderr1 = yyerr1_vec.at(aa1_pos);
379 Float_t yielderr2 = yyerr2_vec.at(aa2_pos);
381 Float_t ratio = yield2 / yield1;
385 gr_ratio_all->
SetPoint(npoint_all, nn, ratio);
393 if (diff1 < tol * gaus1->GetParameter(2)) {
394 gr_sys1_tol->
SetPoint(np1, nn, yield1);
399 if (diff2 < tol * gaus2->GetParameter(2)) {
400 gr_sys2_tol->
SetPoint(np2, nn, yield2);
405 if ((diff1 < tol * gaus1->GetParameter(2)) && (diff2 < tol * gaus2->GetParameter(2))) {
406 gr_ratio_tol->
SetPoint(npoint_tol, nn, ratio);
413 TF1* gaus_ratio =
new TF1(
Form(
"gaus_ratio_%d_%d_%d", system1, system2, zz),
"gaus(0)/(gaus(3))", 0, 60);
437 gr_ratio_all->
Draw(
"ap");
439 gr_sys1_all->
Draw(
"p");
440 gr_sys2_all->
Draw(
"p");
443 gaus_ratio->
Draw(
"same");
444 gr_sys1_tol->
Draw(
"p");
445 gr_sys2_tol->
Draw(
"p");
446 gr_ratio_tol->
Draw(
"p");
472 if (
fdebug_)
Info(
"BuildLnR21vsNPlots",
"====== STARTING BUILDING PLOTS FOR %d/%d ======", system1, system2);
486 Info(
"BuildLnR21vsNPlots",
"system1=%d is at position %d | system2=%d is at position %d", system1, pos1, system2, pos2);
487 printf(
"The list of shared Z is '%s'\n", nl_inter.
GetList());
495 while (!nl_inter.
End()) {
500 gr_all->
SetName(
Form(
"gr_lnR21_vs_N_%d_%d_%d_all", system1, system2, next_zz));
508 gr->
SetName(
Form(
"gr_lnR21_vs_N_%d_%d_%d", system1, system2, next_zz));
534 TF1* gaus_ratio =
new TF1(
Form(
"gaus_ratio_%d_%d_%d", system1, system2, next_zz),
"gaus(0)/(gaus(3))", 0, 60);
536 gaus_ratio->
SetParameters(par0, par1, par2, par3, par4, par5);
539 TF1* gaus_ratio_ln =
new TF1(
Form(
"gaus_ratio_ln_%d_%d_%d", system1, system2, next_zz),
"TMath::Log(gaus(0)/(gaus(3)))", 0, 60);
541 gaus_ratio_ln->
SetParameters(par0, par1, par2, par3, par4, par5);
561 if (
fdebug_)
Info(
"BuildLnR21vsNPlots",
"=== Starting iteration over shared A list for Z=%d ===", next_zz);
564 Int_t npoint_all = 0;
566 while (!nl_inter_a.
End()) {
568 Int_t nn = next_aa - next_zz;
572 Float_t yield1 = yy1_vec.at(aa1_pos);
573 Float_t yield2 = yy2_vec.at(aa2_pos);
577 Float_t yielderr1 = yyerr1_vec.at(aa1_pos);
578 Float_t yielderr2 = yyerr2_vec.at(aa2_pos);
583 gr_all->
SetPoint(npoint_all, nn, lnr21);
590 if (diff1 <
ftol_ * par2 && diff2 <
ftol_ * par5) {
596 printf(
"[Z=%d, N=%d, A=%d] Point refused : (tol1=%lf, diff1=%lf), (tol2=%lf, diff2=%lf) - (mean1=%lf, sigma1=%lf), (mean2=%lf, sigma2=%lf) - ",
597 next_zz, next_aa - next_zz, next_aa,
ftol_ * par2, diff1,
ftol_ * par5, diff2, par1, par2, par4, par5);
599 if (
fdebug_)
Info(
"BuildLnR21vsNPlots",
"[Z=%d, N=%d, A=%d] Yield1(%d)=%lf, Yield2(%d)=%lf", next_zz, next_aa - next_zz, next_aa, system1, yield1, system2, yield2);
607 if (
fdebug_)
Info(
"BuildLnR21vsNPlots",
"====== END OF BUILDING PLOTS FOR %d/%d ======", system1, system2);
611 Error(
"BuildLnR21Plots",
"!!! Something is wrong in the input systems !!!");
634 if (
fdebug_)
Info(
"FitLnR21vsNPlots",
"====== STARTING FITS FOR %d/%d ======", system1, system2);
650 if (sys1 == system1 && sys2 == system2) {
654 func =
new TF1(
Form(
"func_%d_%d_%d", system1, system2, zz),
"pol1",
float(nmin),
float(nmax));
657 for (
Int_t ii = 0; ii < 10; ii++)
gr->
Fit(func, option, gooption,
float(nmin + 2),
float(nmax - 2));
665 if (
fdebug_)
Info(
"BuildLnR21vsNPlots",
"====== END OF FITS FOR %d/%d ======", system1, system2);
694 if (sys1 == system1 && sys2 == system2) {
705 while ((func = (
TF1*) it1.
Next())) {
714 if (sys1 == system1 && sys2 == system2) func->
Draw(
"same");
737 if (
fdebug_)
Info(
"BuildAlphaPlot",
"====== STARTING BUILDING ALPHA PLOTS FOR %d/%d ======", system1, system2);
751 while ((func = (
TF1*) it1.
Next())) {
760 if (sys1 == system1 && sys2 == system2) {
779 if (
fdebug_)
Info(
"BuildAlphaPlot",
"====== END BUILDING ALPHA PLOTS FOR %d/%d ======", system1, system2);
801 if (
fdebug_)
Info(
"BuildDeltaZA2Plot",
"====== STARTING BUILDING DELTA PLOTS FOR %d/%d ======", system1, system2);
831 if (
fdebug_)
Info(
"BuildDeltaZA2Plot",
"====== END BUILDING DELTA PLOTS FOR %d/%d ======", system1, system2);
853 if (
fdebug_)
Info(
"BuildAlphavsDeltaPlot",
"====== STARTING BUILDING DELTA PLOTS FOR %d/%d ======", system1, system2);
868 Float_t delta, delta_err, alpha, alpha_err;
870 Bool_t is_ok_alpha =
GetAlpha(system1, system2, zz, alpha, alpha_err);
872 if (is_ok_delta && is_ok_alpha) {
883 if (
fdebug_)
Info(
"BuildAlphavsDeltaPlot",
"====== END BUILDING DELTA PLOTS FOR %d/%d ======", system1, system2);
911 if (
fdebug_)
Info(
"BuildCsymOverTPlot",
"====== STARTING BUILDING PLOTS FOR %d/%d ======", system1, system2);
924 while ((func = (
TF1*) it1.
Next())) {
933 if (sys1 == system1 && sys2 == system2) {
951 if (
fdebug_)
Info(
"BuildCsymOverTPlot",
"====== END BUILDING PLOTS FOR %d/%d ======", system1, system2);
965 Info(
"CreateCsymOverTMultiGraph",
"%s added to the MultiGraph",
gr->
GetName());
981 TFile my_file(
Form(
"%s", file_name),
"RECREATE");
993 if (
fdebug_)
Info(
"SaveResultsROOT",
"File '%s' saved", file_name);
1008 std::ofstream my_file;
1009 my_file.open(fname.
Data(), std::ofstream::out);
1010 my_file <<
"### system_1 system_2 Z Alpha d(Alpha) <A_1> d<A_1> <A_2> d<A_2> denum d(denum) Csym/T d(Csym/T) ###" << std::endl;
1013 std::pair<Int_t, Int_t> my_pair = *it;
1014 Int_t sys1 = my_pair.first;
1015 Int_t sys2 = my_pair.second;
1017 my_file <<
"# " << sys1 <<
" / " << sys2 <<
" #" << std::endl;
1027 GetAlpha(sys1, sys2, next_z, alpha, alpha_err);
1044 GetAMean(sys1, next_z, meanA1, meanA1_err);
1045 GetAMean(sys2, next_z, meanA2, meanA2_err);
1048 KVString line(
Form(
"%d %d %d %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf", sys1, sys2, next_z, alpha, alpha_err, meanA1, meanA1_err, meanA2, meanA2_err, denum, denum_err, csymT, csymT_err));
1049 my_file <<
line.Data() << std::endl;
1052 if (
fdebug_)
Info(
"SaveResultsASCII",
"[%d/%d] results saved with the following Z list : %s\n", sys1, sys2, nl.
GetList());
1057 if (
fdebug_)
Info(
"SaveResultsASCII",
"File '%s' saved", fname.
Data());
1077 if (zpos > -1 && nl->
Contains(zz)) {
1082 if (zpos <= -1)
Error(
"GetAMean",
"[sys=%d] Can't find mean A vector for z=%d ", system, zz);
1083 if (!nl->
Contains(zz))
Error(
"GetAMean",
"[sys=%d] Z=%d is out of range", system, zz);
1101 while ((func = (
TF1*) it1.
Next())) {
1110 if (sys1 == system1 && sys2 == system2 && zzz == zz) {
1117 if (!is_ok)
Error(
"GetAlpha",
"!!! [Z=%d] (%d, %d) : Fit function not found !!!", zz, system1, system2);
1147 if (debug)
Info(
"GetDeltaZA2",
"[Z=%d] (%d / %d) : denum=%lf +/- %lf", zz, system1, system2, denum, denum_err);
1150 if (!ok1)
Warning(
"GetDeltaZA2",
"<A1> was not found for Z=%d of system %d/%d", zz, system1, system2);
1151 if (!ok2)
Warning(
"GetDeltaZA2",
"<A2> was not found for Z=%d of system %d/%d", zz, system1, system2);
1170 is_oka =
GetAlpha(system1, system2, zz, alpha, alpha_err);
1175 is_okd =
GetDeltaZA2(system1, system2, zz, denum, denum_err, debug);
1178 if (is_oka && is_okd) {
1180 csymT = alpha / 4. / denum;
1184 Info(
"GetCsymOverT",
"[Z=%d] (%d / %d) : alpha=%lf +/- %lf, denum=%lf +/- %lf, Csym/T=%lf +/- %lf", zz, system1, system2, alpha, alpha_err, denum, denum_err, csymT, csymT_err);
1203 while (!found || ii <
int(
fvec_sys_.size())) {
1205 if (sys == system) {
1213 if (pos == -1)
Warning(
"GetSystemPos",
"!!! system %d was not set !!!", system);
1214 else if (
fdebug_)
Info(
"GetSystemPos",
"system= %d found at position %d", system, pos);
1231 if (pos_system > -1) {
1232 std::vector<Int_t> my_vec_zz =
fvec_sys_z_.at(pos_system);
1236 while (!found && ii <
int(my_vec_zz.size())) {
1237 Int_t zz = my_vec_zz.at(ii);
1246 if (!found)
Warning(
"GetZPos",
"!!! Charge Z=%d for system= %d was not found !!!", ZZ, system);
1247 else if (
fdebug_)
Info(
"GetZPos",
"Charge Z=%d for system %d is at position %d", ZZ, system, pos_zz);
1270 std::vector< std::vector<Int_t> > my_vec_zz_aa =
fvec_sys_z_a_.at(pos_system);
1272 std::vector<Int_t> my_vec_aa = my_vec_zz_aa.at(pos_zz);
1277 while (!found && ii <
int(my_vec_aa.size())) {
1278 Int_t aa = my_vec_aa.at(ii);
1287 if (!found)
Warning(
"GetAPos",
"!!! mass A=%d for (system= %d, Z= %d) was not found !!!", AA, system, ZZ);
1288 else if (
fdebug_)
Info(
"GetAPos",
"mass A=%d for (system= %d, Z= %d) is at position %d", AA, system, ZZ, pos_aa);
1312 std::vector< std::vector<Int_t> > my_vec_zz_aa =
fvec_sys_z_a_.at(pos_system);
1313 std::vector<Int_t> my_vec_aa = my_vec_zz_aa.at(pos_zz);
1336 std::vector< std::vector<Float_t> > my_vec_zz_yy =
fvec_sys_z_yields_.at(pos_system);
1337 std::vector<Float_t> my_vec_yy = my_vec_zz_yy.at(pos_zz);
1361 std::vector<Float_t> my_vec_yy = my_vec_zz_yy.at(pos_zz);
1375 if (
fdebug_)
Info(
"GetANumberList",
"Looking at sys_pos=%d, z_pos=%d", sys_pos, zz_pos);
1395 nl_z1->
Copy(nl_inter);
1396 nl_inter.
Inter(*nl_z2);
1399 Info(
"GetSharedZNumberList",
"Zlist[%d]= %s, Zlist[%d]= %s, shared Zlist= %s",
1417 nl_a1->
Copy(nl_inter_a);
1418 nl_inter_a.
Inter(*nl_a2);
1421 Info(
"GetSharedANumberList",
"Z=%d : Alist[%d]= %s, Alist[%d]= %s, shared Alist= %s",
1442 while (!nl->
End()) {
1447 GetAMean(system, next_zz, aa_real, aa_real_err);
1450 if (delta_aa < min_val) {
1454 if (
fdebug_)
Info(
"FindZFromAmean",
"[%d - A=%d] : Z=%d -> <A(Z)>=%lf +/- %lf [FOUND] delta=%lf, min_val=%lf", system, aa, next_zz, aa_real, aa_real_err, delta_aa, min_val);
1456 else if (
fdebug_)
Info(
"FindZFromAmean",
"[%d - A=%d] : Z=%d -> <A(Z)>=%lf +/- %lf [NOT FOUND] delta=%lf, min_val=%lf", system, aa, next_zz, aa_real, aa_real_err, delta_aa, min_val);
1471 Info(
"PrintYields",
"Printing the list of yields : ");
1475 for (std::vector<Int_t>::iterator sys_it =
fvec_sys_.begin(); sys_it !=
fvec_sys_.end(); ++sys_it) {
1476 Int_t system = *sys_it;
1478 printf(
" =====================================\n");
1481 std::vector<Int_t> zz_vec =
fvec_sys_z_.at(nn_sys);
1482 std::vector< std::vector<Int_t> > aa_vec_vec =
fvec_sys_z_a_.at(nn_sys);
1487 for (std::vector<Int_t>::iterator zz_it = zz_vec.begin(); zz_it != zz_vec.end(); ++zz_it) {
1490 std::vector<Int_t> aa_vec = aa_vec_vec.at(nn_zz);
1491 std::vector<Float_t> yy_vec = yy_vec_vec.at(nn_zz);
1492 std::vector<Float_t> yyerr_vec = yyerr_vec_vec.at(nn_zz);
1494 for (std::vector<Float_t>::size_type ii = 0; ii != aa_vec.size(); ii++) {
1495 Int_t aa = aa_vec.at(ii);
1497 Float_t yy_err = yyerr_vec.at(ii);
1499 printf(
" [%d] : Y(%d, %d) = %lf +/- %lf\n", system, aa, zz, yy, yy_err);
1508 Info(
"PrintYields",
"That's all folks !");
1520 Info(
"PrintSystemsList",
"Printing the list of available systems : ");
1524 printf(
"[%d] %d\n", nn, next_val);
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
char * Form(const char *fmt,...)
void BuildAlphaPlot(Int_t system1, Int_t system2, Int_t mcolor, Int_t mstyle, Bool_t draw=kFALSE)
std::vector< std::vector< Int_t > > fvec_sys_z_
vectors of charge Z (one vector per system)
Int_t GetAPos(Int_t system, Int_t zz, Int_t aa)
Bool_t GetAlpha(Int_t system1, Int_t system2, Int_t zz, Float_t &alpha, Float_t &alpha_err)
— Find the corresponding alpha parameter in fit function list —
KVHashList fhlist_alpha_delta_
contains all Alpha vs Delta graphs
void DrawLnR21vsNFits(Int_t system1, Int_t system2)
std::vector< Float_t > GetAMeanVector(Int_t system)
Int_t GetZPos(Int_t system, Int_t zz)
Returns the position of the charge 'ZZ' in the vector corresponding to 'system' in fvec_sys_z_.
std::vector< std::vector< Float_t > > fvec_sys_z_meanA_
— (system, Z, <A(Z)>, <A(Z)>_err) vectors for Isoscaling —
void FitLnR21vsNPlots(Int_t system1, Int_t system2, Option_t *option="MNVR", Option_t *gooption="goff")
void BuildGaussianPlots(Int_t system)
void PrintYieldsList()
— Printers —
std::vector< std::vector< std::vector< Float_t > > > fvec_sys_z_yields_err_
vector of yields uncertainties (one vector per (system, Z) combination - same order than fvec_sys_z_a...
std::vector< Int_t > GetAVectorFromPos(Int_t pos_system, Int_t pos_zz)
std::vector< Float_t > GetYieldErrVectorFromPos(Int_t pos_system, Int_t pos_zz)
KVNumberList fnl_sys_
— Lists —
KVHashList fhlist_delta_
contains all Delta vs Z graphs
Bool_t fdebug_
verbose mode for debugging
Double_t ftol_
tolerance for the gaussian approximation (in sigma)
std::vector< Float_t > GetYieldVector(Int_t system, Int_t zz)
Int_t FindZFromAmean(Int_t system, Int_t aa)
Returns the charge ZZ associated to the provided mass AA such as <A(ZZ)> == AA.
KVNumberList * GetANumberList(Int_t system, Int_t zz)
KVList flist_a_
contains all lists of masses A (one list of KVNumberList per (system, Z) combination)
std::vector< Float_t > GetAMeanErrVector(Int_t system)
Bool_t GetCsymOverT(Int_t system1, Int_t system2, Int_t zz, Float_t &csymT, Float_t &csymT_err, Bool_t debug)
KVHashList fhlist_lnR21N_all_
contains all graphs of lnR21 vs N (without tolerance applied)
void BuildDeltaZA2Plot(Int_t system1, Int_t system2, Int_t mcolor, Int_t mstyle, Bool_t draw=kFALSE)
KVNumberList GetSharedANumberList(Int_t system1, Int_t system2, Int_t zz)
Returns the number list of all A shared between the 2 systems.
std::vector< Int_t > fvec_sys_
— (system, Z, A, yields, yields_err) vectors for Isoscaling —
std::vector< Float_t > GetYieldVectorFromPos(Int_t pos_system, Int_t pos_zz)
KVHashList fhlist_yields_
contains all yield plots vs N
std::vector< std::pair< Int_t, Int_t > > fvec_iso_pairs_
— list of isoscaling systems —
KVHashList fhlist_alpha_
contains all Aplha vs Z graphs
KVHashList fhlist_fit_
contains all linear fits attempted from lnR21_vs_N graphs
void BuildLnR21vsNPlots(Int_t system1, Int_t system2)
Int_t GetSystemPos(Int_t system)
— Getters —
Bool_t GetDeltaZA2(Int_t system1, Int_t system2, Int_t zz, Float_t &denum, Float_t &denum_err, Bool_t debug)
Return the value of the denumerator (Z/<A1>)**2-(Z/<A2>)**2 for Csym/T estimation.
KVNumberList GetSharedZNumberList(Int_t system1, Int_t system2)
Returns the number list of all Z shared between the 2 systems.
std::vector< Float_t > GetYieldErrVector(Int_t system, Int_t zz)
void TestGaussianApprox(Int_t system1, Int_t system2, Int_t zz, Double_t tol)
void SaveResultsROOT(const Char_t *file_name="./isoscaling_output_file.root")
void BuildAlphavsDeltaPlot(Int_t system1, Int_t system2, Int_t mcolor, Int_t mstyle, Bool_t draw=kFALSE)
KVNumberList * GetZNumberList(Int_t system)
KVHashList fhlist_csymT_
contains all Csym/T vs Z graphs
std::vector< std::vector< std::vector< Float_t > > > fvec_sys_z_yields_
vector of yields (one vector per (system, Z) combination - same order than fvec_sys_z_a_)
std::vector< std::vector< Float_t > > fvec_sys_z_meanerrA_
vectors of <A(Z)> uncertainties (one vector per system)
Bool_t GetAMean(Int_t system, Int_t zz, Float_t &meanA, Float_t &meanA_err)
return the <A(Z)> for the given system
void CreateCsymOverTMultiGraph(TMultiGraph *mgr)
void BuildCsymOverTPlot(Int_t system1, Int_t system2, Int_t mcolor, Int_t mstyle, Bool_t draw=kFALSE)
void SaveResultsASCII(const Char_t *file_name="./isoscaling_output_file.txt")
std::vector< Int_t > GetAVector(Int_t system, Int_t zz)
std::vector< std::vector< std::vector< Int_t > > > fvec_sys_z_a_
vectors of A(Z) (one vector per (system, Z) combination)
KVHashList fhlist_lnR21N_
contains all graphs of lnR21 vs N (with tolerance applied)
Extended TList class which owns its objects by default.
Strings used to represent a set of ranges of values.
void Inter(const KVNumberList &list)
void Copy(TObject &) const
Copy content of this number list into 'o'.
const Char_t * GetList() const
Bool_t Contains(Int_t val) const
returns kTRUE if the value 'val' is contained in the ranges defined by the number list
Int_t First() const
Returns smallest number included in list.
void Add(Int_t)
Add value 'n' to the list.
void Clear(Option_t *="")
Empty number list, reset it to initial state.
Int_t Last() const
Returns largest number included in list.
virtual TObject * Last() const
virtual TObject * At(Int_t idx) const
virtual void Add(TObject *obj)
virtual TObject * FindObject(const char *name) const
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
virtual void SetLineColor(Color_t lcolor)
virtual void SetMarkerColor(Color_t mcolor=1)
virtual void SetMarkerStyle(Style_t mstyle=1)
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
virtual Double_t GetParameter(const TString &name) const
virtual Double_t GetParError(Int_t ipar) const
virtual void Draw(Option_t *option="")
virtual void SetParameters(const Double_t *params)
virtual void SetPointError(Double_t ex, Double_t ey)
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
virtual void SetName(const char *name="")
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0)
virtual void Draw(Option_t *chopt="")
virtual void Add(TGraph *graph, Option_t *chopt="")
virtual void Draw(Option_t *chopt="")
virtual const char * GetName() const
virtual void SetTitle(const char *title="")
TObject * At(Int_t idx) const
virtual void Warning(const char *method, const char *msgfmt,...) const
virtual void Error(const char *method, const char *msgfmt,...) const
virtual void Info(const char *method, const char *msgfmt,...) const
TObjArray * Tokenize(const TString &delim) const
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
const char * Data() const
Double_t Power(Double_t x, Double_t y)
Double_t Sqrt(Double_t x)
std::pair< PtrSize_t, Bool_t > iterator