174 string data_dir = (gSystem->Getenv(
"GINUKEHADRONDATA")) ?
175 string(gSystem->Getenv(
"GINUKEHADRONDATA")) :
176 string(gSystem->Getenv(
"GENIE")) +
string(
"/data/evgen/intranuke");
179 <<
"Loading INTRANUKE hadron data from: " <<
data_dir;
183 string datafile_NN = data_dir +
"/tot_xsec/intranuke-xsections-NN2014.dat";
184 string datafile_pipN = data_dir +
"/tot_xsec/intranuke-xsections-pi+N.dat";
185 string datafile_pi0N = data_dir +
"/tot_xsec/intranuke-xsections-pi0N.dat";
186 string datafile_NA = data_dir +
"/tot_xsec/intranuke-fractions-NA.dat";
187 string datafile_KA = data_dir +
"/tot_xsec/intranuke-fractions-KA.dat";
188 string datafile_gamN = data_dir +
"/tot_xsec/intranuke-xsections-gamN.dat";
189 string datafile_kN = data_dir +
"/tot_xsec/intranuke-xsections-kaonN2015.dat";
193 assert( ! gSystem->AccessPathName(datafile_NN. c_str()) );
194 assert( ! gSystem->AccessPathName(datafile_pipN.c_str()) );
195 assert( ! gSystem->AccessPathName(datafile_pi0N.c_str()) );
196 assert( ! gSystem->AccessPathName(datafile_KA. c_str()) );
197 assert( ! gSystem->AccessPathName(datafile_gamN.c_str()) );
198 assert( ! gSystem->AccessPathName(datafile_kN. c_str()) );
200 LOG(
"INukeData",
pINFO) <<
"Found all necessary data files...";
212 data_NN.ReadFile(datafile_NN.c_str(),
"ke/D:pp_tot/D:pp_elas/D:pp_reac/D:pn_tot/D:pn_elas/D:pn_reac/D:nn_tot/D:nn_elas/D:nn_reac/D:pp_cmp/D:pn_cmp/D:nn_cmp/D");
213 data_pipN.ReadFile(datafile_pipN.c_str(),
214 "ke/D:pipn_tot/D:pipn_cex/D:pipn_elas/D:pipn_reac/D:pipp_tot/D:pipp_cex/D:pipp_elas/D:pipp_reac/D:pipd_abs");
215 data_pi0N.ReadFile(datafile_pi0N.c_str(),
216 "ke/D:pi0n_tot/D:pi0n_cex/D:pi0n_elas/D:pi0n_reac/D:pi0p_tot/D:pi0p_cex/D:pi0p_elas/D:pi0p_reac/D:pi0d_abs");
219 data_NA.ReadFile(datafile_NA.c_str(),
220 "ke/D:pA_tot/D:pA_elas/D:pA_inel/D:pA_cex/D:pA_abs/D:pA_pipro/D:pA_cmp/D");
221 data_gamN.ReadFile(datafile_gamN.c_str(),
222 "ke/D:pi0p_tot/D:pipn_tot/D:pimp_tot/D:pi0n_tot/D:gamp_fs/D:gamn_fs/D:gamN_tot/D");
223 data_kN.ReadFile(datafile_kN.c_str(),
224 "ke/D:kpp_elas/D:kpn_elas/D:kpn_cex/D:kp_abs/D:kpN_tot/D");
225 data_KA.ReadFile(datafile_KA.c_str(),
226 "ke/D:KA_tot/D:KA_elas/D:KA_inel/D:KA_abs/D");
228 LOG(
"INukeData",
pDEBUG) <<
"Number of data rows in NN : " << data_NN.GetEntries();
229 LOG(
"INukeData",
pDEBUG) <<
"Number of data rows in pipN : " << data_pipN.GetEntries();
230 LOG(
"INukeData",
pDEBUG) <<
"Number of data rows in pi0N : " << data_pi0N.GetEntries();
231 LOG(
"INukeData",
pDEBUG) <<
"Number of data rows in NA : " << data_NA.GetEntries();
232 LOG(
"INukeData",
pDEBUG) <<
"Number of data rows in KA : " << data_KA.GetEntries();
233 LOG(
"INukeData",
pDEBUG) <<
"Number of data rows in gamN : " << data_gamN.GetEntries();
234 LOG(
"INukeData",
pDEBUG) <<
"Number of data rows in kN : " << data_kN.GetEntries();
236 LOG(
"INukeData",
pINFO) <<
"Done loading all x-section files...";
337 const int hN_ppelas_nfiles = 20;
338 const int hN_ppelas_points_per_file = 21;
339 const int hN_ppelas_npoints = hN_ppelas_points_per_file * hN_ppelas_nfiles;
341 double hN_ppelas_energies[hN_ppelas_nfiles] = {
342 50, 100, 150, 200, 250, 300, 350, 400, 450, 500,
343 550, 600, 650, 700, 750, 800, 850, 900, 950, 1000
346 double hN_ppelas_costh [hN_ppelas_points_per_file];
347 double hN_ppelas_xsec [hN_ppelas_npoints];
351 for(
int ifile = 0; ifile < hN_ppelas_nfiles; ifile++) {
353 ostringstream hN_datafile;
354 double ke = hN_ppelas_energies[ifile];
355 hN_datafile << data_dir <<
"/diff_ang/pp/pp" << ke <<
".txt";
358 hN_datafile.str(), ke, hN_ppelas_points_per_file,
359 ipoint, hN_ppelas_costh, hN_ppelas_xsec,2);
363 hN_ppelas_energies,hN_ppelas_costh,hN_ppelas_xsec);
368 const int hN_npelas_nfiles = 20;
369 const int hN_npelas_points_per_file = 21;
370 const int hN_npelas_npoints = hN_npelas_points_per_file * hN_npelas_nfiles;
372 double hN_npelas_energies[hN_npelas_nfiles] = {
373 50, 100, 150, 200, 250, 300, 350, 400, 450, 500,
374 550, 600, 650, 700, 750, 800, 850, 900, 950, 1000
377 double hN_npelas_costh [hN_npelas_points_per_file];
378 double hN_npelas_xsec [hN_npelas_npoints];
382 for(
int ifile = 0; ifile < hN_npelas_nfiles; ifile++) {
384 ostringstream hN_datafile;
385 double ke = hN_npelas_energies[ifile];
386 hN_datafile << data_dir <<
"/diff_ang/pn/pn" << ke <<
".txt";
389 hN_datafile.str(), ke, hN_npelas_points_per_file,
390 ipoint, hN_npelas_costh, hN_npelas_xsec,2);
394 hN_npelas_energies,hN_npelas_costh,hN_npelas_xsec);
399 const int hN_pipNelas_nfiles = 60;
400 const int hN_pipNelas_points_per_file = 21;
401 const int hN_pipNelas_npoints = hN_pipNelas_points_per_file * hN_pipNelas_nfiles;
403 double hN_pipNelas_energies[hN_pipNelas_nfiles] = {
404 10, 20, 30, 40, 50, 60, 70, 80, 90,
405 100, 110, 120, 130, 140, 150, 160, 170, 180, 190,
406 200, 210, 220, 230, 240, 250, 260, 270, 280, 290,
407 300, 340, 380, 420, 460, 500, 540, 580, 620, 660,
408 700, 740, 780, 820, 860, 900, 940, 980,
409 1020, 1060, 1100, 1140, 1180, 1220, 1260,
410 1300, 1340, 1380, 1420, 1460, 1500
413 double hN_pipNelas_costh [hN_pipNelas_points_per_file];
414 double hN_pipNelas_xsec [hN_pipNelas_npoints];
418 for(
int ifile = 0; ifile < hN_pipNelas_nfiles; ifile++) {
420 ostringstream hN_datafile;
421 double ke = hN_pipNelas_energies[ifile];
422 hN_datafile << data_dir <<
"/diff_ang/pip/pip" << ke <<
".txt";
425 hN_datafile.str(), ke, hN_pipNelas_points_per_file,
426 ipoint, hN_pipNelas_costh, hN_pipNelas_xsec,2);
430 hN_pipNelas_energies,hN_pipNelas_costh,hN_pipNelas_xsec);
435 const int hN_pi0Nelas_nfiles = 60;
436 const int hN_pi0Nelas_points_per_file = 21;
437 const int hN_pi0Nelas_npoints = hN_pi0Nelas_points_per_file * hN_pi0Nelas_nfiles;
439 double hN_pi0Nelas_energies[hN_pi0Nelas_nfiles] = {
440 10, 20, 30, 40, 50, 60, 70, 80, 90,
441 100, 110, 120, 130, 140, 150, 160, 170, 180, 190,
442 200, 210, 220, 230, 240, 250, 260, 270, 280, 290,
443 300, 340, 380, 420, 460, 500, 540, 580, 620, 660,
444 700, 740, 780, 820, 860, 900, 940, 980,
445 1020, 1060, 1100, 1140, 1180, 1220, 1260,
446 1300, 1340, 1380, 1420, 1460, 1500
449 double hN_pi0Nelas_costh [hN_pi0Nelas_points_per_file];
450 double hN_pi0Nelas_xsec [hN_pi0Nelas_npoints];
454 for(
int ifile = 0; ifile < hN_pi0Nelas_nfiles; ifile++) {
456 ostringstream hN_datafile;
457 double ke = hN_pi0Nelas_energies[ifile];
458 hN_datafile << data_dir <<
"/diff_ang/pip/pip" << ke <<
".txt";
461 hN_datafile.str(), ke, hN_pi0Nelas_points_per_file,
462 ipoint, hN_pi0Nelas_costh, hN_pi0Nelas_xsec,2);
466 hN_pi0Nelas_energies,hN_pi0Nelas_costh,hN_pi0Nelas_xsec);
471 const int hN_pimNelas_nfiles = 60;
472 const int hN_pimNelas_points_per_file = 21;
473 const int hN_pimNelas_npoints = hN_pimNelas_points_per_file * hN_pimNelas_nfiles;
475 double hN_pimNelas_energies[hN_pimNelas_nfiles] = {
476 10, 20, 30, 40, 50, 60, 70, 80, 90,
477 100, 110, 120, 130, 140, 150, 160, 170, 180, 190,
478 200, 210, 220, 230, 240, 250, 260, 270, 280, 290,
479 300, 340, 380, 420, 460, 500, 540, 580, 620, 660,
480 700, 740, 780, 820, 860, 900, 940, 980,
481 1020, 1060, 1100, 1140, 1180, 1220, 1260,
482 1300, 1340, 1380, 1420, 1460, 1500
485 double hN_pimNelas_costh [hN_pimNelas_points_per_file];
486 double hN_pimNelas_xsec [hN_pimNelas_npoints];
490 for(
int ifile = 0; ifile < hN_pimNelas_nfiles; ifile++) {
492 ostringstream hN_datafile;
493 double ke = hN_pimNelas_energies[ifile];
494 hN_datafile << data_dir <<
"/diff_ang/pim/pim" << ke <<
".txt";
497 hN_datafile.str(), ke, hN_pimNelas_points_per_file,
498 ipoint, hN_pimNelas_costh, hN_pimNelas_xsec,2);
502 hN_pimNelas_energies,hN_pimNelas_costh,hN_pimNelas_xsec);
507 const int hN_kpNelas_nfiles = 18;
508 const int hN_kpNelas_points_per_file = 37;
509 const int hN_kpNelas_npoints = hN_kpNelas_points_per_file * hN_kpNelas_nfiles;
511 double hN_kpNelas_energies[hN_kpNelas_nfiles] = {
512 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000,
513 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800
516 double hN_kpNelas_costh [hN_kpNelas_points_per_file];
517 double hN_kpNelas_xsec [hN_kpNelas_npoints];
521 for(
int ifile = 0; ifile < hN_kpNelas_nfiles; ifile++) {
523 ostringstream hN_datafile;
524 double ke = hN_kpNelas_energies[ifile];
525 hN_datafile << data_dir <<
"/diff_ang/kpn/kpn" << ke <<
".txt";
528 hN_datafile.str(), ke, hN_kpNelas_points_per_file,
529 ipoint, hN_kpNelas_costh, hN_kpNelas_xsec,2);
533 hN_kpNelas_energies,hN_kpNelas_costh,hN_kpNelas_xsec);
537 const int hN_kpNcex_nfiles = 18;
538 const int hN_kpNcex_points_per_file = 37;
539 const int hN_kpNcex_npoints = hN_kpNcex_points_per_file * hN_kpNcex_nfiles;
541 double hN_kpNcex_energies[hN_kpNcex_nfiles] = {
542 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000,
543 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800
546 double hN_kpNcex_costh [hN_kpNcex_points_per_file];
547 double hN_kpNcex_xsec [hN_kpNcex_npoints];
551 for(
int ifile = 0; ifile < hN_kpNcex_nfiles; ifile++) {
553 ostringstream hN_datafile;
554 double ke = hN_kpNcex_energies[ifile];
555 hN_datafile << data_dir <<
"/diff_ang/kpncex/kpcex" << ke <<
".txt";
558 hN_datafile.str(), ke, hN_kpNcex_points_per_file,
559 ipoint, hN_kpNcex_costh, hN_kpNcex_xsec,2);
568 hN_kpNcex_energies,hN_kpNcex_costh,hN_kpNcex_xsec);
575 const int hN_kpPelas_nfiles = 18;
576 const int hN_kpPelas_points_per_file = 37;
577 const int hN_kpPelas_npoints = hN_kpPelas_points_per_file * hN_kpPelas_nfiles;
579 double hN_kpPelas_energies[hN_kpPelas_nfiles] = {
580 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000,
581 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800
584 double hN_kpPelas_costh [hN_kpPelas_points_per_file];
585 double hN_kpPelas_xsec [hN_kpPelas_npoints];
589 for(
int ifile = 0; ifile < hN_kpPelas_nfiles; ifile++) {
591 ostringstream hN_datafile;
592 double ke = hN_kpPelas_energies[ifile];
593 hN_datafile << data_dir <<
"/diff_ang/kpp/kpp" << ke <<
".txt";
596 hN_datafile.str(), ke, hN_kpPelas_points_per_file,
597 ipoint, hN_kpPelas_costh, hN_kpPelas_xsec,2);
601 hN_kpPelas_energies,hN_kpPelas_costh,hN_kpPelas_xsec);
606 const int hN_piNcex_nfiles = 60;
607 const int hN_piNcex_points_per_file = 21;
608 const int hN_piNcex_npoints = hN_piNcex_points_per_file * hN_piNcex_nfiles;
610 double hN_piNcex_energies[hN_piNcex_nfiles] = {
611 10, 20, 30, 40, 50, 60, 70, 80, 90,
612 100, 110, 120, 130, 140, 150, 160, 170, 180, 190,
613 200, 210, 220, 230, 240, 250, 260, 270, 280, 290,
614 300, 340, 380, 420, 460, 500, 540, 580, 620, 660,
615 700, 740, 780, 820, 860, 900, 940, 980,
616 1020, 1060, 1100, 1140, 1180, 1220, 1260,
617 1300, 1340, 1380, 1420, 1460, 1500
620 double hN_piNcex_costh [hN_piNcex_points_per_file];
621 double hN_piNcex_xsec [hN_piNcex_npoints];
625 for(
int ifile = 0; ifile < hN_piNcex_nfiles; ifile++) {
627 ostringstream hN_datafile;
628 double ke = hN_piNcex_energies[ifile];
629 hN_datafile << data_dir <<
"/diff_ang/pie/pie" << ke <<
".txt";
632 hN_datafile.str(), ke, hN_piNcex_points_per_file,
633 ipoint, hN_piNcex_costh, hN_piNcex_xsec,2);
637 hN_piNcex_energies,hN_piNcex_costh,hN_piNcex_xsec);
642 const int hN_piNabs_nfiles = 19;
643 const int hN_piNabs_points_per_file = 21;
644 const int hN_piNabs_npoints = hN_piNabs_points_per_file * hN_piNabs_nfiles;
646 double hN_piNabs_energies[hN_piNabs_nfiles] = {
647 50, 75, 100, 125, 150, 175, 200, 225, 250, 275,
648 300, 325, 350, 375, 400, 425, 450, 475, 500
651 double hN_piNabs_costh [hN_piNabs_points_per_file];
652 double hN_piNabs_xsec [hN_piNabs_npoints];
656 for(
int ifile = 0; ifile < hN_piNabs_nfiles; ifile++) {
658 ostringstream hN_datafile;
659 double ke = hN_piNabs_energies[ifile];
660 hN_datafile << data_dir <<
"/diff_ang/pid2p/pid2p" << ke <<
".txt";
663 hN_datafile.str(), ke, hN_piNabs_points_per_file,
664 ipoint, hN_piNabs_costh, hN_piNabs_xsec,2);
668 hN_piNabs_energies,hN_piNabs_costh,hN_piNabs_xsec);
673 const int hN_gampi0pInelas_nfiles = 29;
674 const int hN_gampi0pInelas_points_per_file = 37;
675 const int hN_gampi0pInelas_npoints = hN_gampi0pInelas_points_per_file * hN_gampi0pInelas_nfiles;
677 double hN_gampi0pInelas_energies[hN_gampi0pInelas_nfiles] = {
678 160, 180, 200, 220, 240, 260, 280, 300, 320, 340,
679 360, 380, 400, 450, 500, 550, 600, 650, 700, 750,
680 800, 850, 900, 950, 1000, 1050, 1100, 1150, 1200
683 double hN_gampi0pInelas_costh [hN_gampi0pInelas_points_per_file];
684 double hN_gampi0pInelas_xsec [hN_gampi0pInelas_npoints];
688 for(
int ifile = 0; ifile < hN_gampi0pInelas_nfiles; ifile++) {
690 ostringstream hN_datafile;
691 double ke = hN_gampi0pInelas_energies[ifile];
692 hN_datafile << data_dir <<
"/diff_ang/gampi0p/" << ke <<
"-pi0p.txt";
695 hN_datafile.str(), ke, hN_gampi0pInelas_points_per_file,
696 ipoint, hN_gampi0pInelas_costh, hN_gampi0pInelas_xsec,3);
700 hN_gampi0pInelas_energies,hN_gampi0pInelas_costh,hN_gampi0pInelas_xsec);
705 const int hN_gampi0nInelas_nfiles = 29;
706 const int hN_gampi0nInelas_points_per_file = 37;
707 const int hN_gampi0nInelas_npoints = hN_gampi0nInelas_points_per_file * hN_gampi0nInelas_nfiles;
709 double hN_gampi0nInelas_energies[hN_gampi0nInelas_nfiles] = {
710 160, 180, 200, 220, 240, 260, 280, 300, 320, 340,
711 360, 380, 400, 450, 500, 550, 600, 650, 700, 750,
712 800, 850, 900, 950, 1000, 1050, 1100, 1150, 1200
715 double hN_gampi0nInelas_costh [hN_gampi0nInelas_points_per_file];
716 double hN_gampi0nInelas_xsec [hN_gampi0nInelas_npoints];
719 for(
int ifile = 0; ifile < hN_gampi0nInelas_nfiles; ifile++) {
721 ostringstream hN_datafile;
722 double ke = hN_gampi0nInelas_energies[ifile];
723 hN_datafile << data_dir <<
"/diff_ang/gampi0n/" << ke <<
"-pi0n.txt";
726 hN_datafile.str(), ke, hN_gampi0nInelas_points_per_file,
727 ipoint, hN_gampi0nInelas_costh, hN_gampi0nInelas_xsec,3);
731 hN_gampi0nInelas_energies,hN_gampi0nInelas_costh,hN_gampi0nInelas_xsec);
736 const int hN_gampipnInelas_nfiles = 29;
737 const int hN_gampipnInelas_points_per_file = 37;
738 const int hN_gampipnInelas_npoints = hN_gampipnInelas_points_per_file * hN_gampipnInelas_nfiles;
740 double hN_gampipnInelas_energies[hN_gampipnInelas_nfiles] = {
741 160, 180, 200, 220, 240, 260, 280, 300, 320, 340,
742 360, 380, 400, 450, 500, 550, 600, 650, 700, 750,
743 800, 850, 900, 950, 1000, 1050, 1100, 1150, 1200
746 double hN_gampipnInelas_costh [hN_gampipnInelas_points_per_file];
747 double hN_gampipnInelas_xsec [hN_gampipnInelas_npoints];
751 for(
int ifile = 0; ifile < hN_gampipnInelas_nfiles; ifile++) {
753 ostringstream hN_datafile;
754 double ke = hN_gampipnInelas_energies[ifile];
755 hN_datafile << data_dir <<
"/diff_ang/gampi+n/" << ke <<
"-pi+n.txt";
758 hN_datafile.str(), ke, hN_gampipnInelas_points_per_file,
759 ipoint, hN_gampipnInelas_costh, hN_gampipnInelas_xsec,3);
763 hN_gampipnInelas_energies,hN_gampipnInelas_costh,hN_gampipnInelas_xsec);
768 const int hN_gampimpInelas_nfiles = 29;
769 const int hN_gampimpInelas_points_per_file = 37;
770 const int hN_gampimpInelas_npoints = hN_gampimpInelas_points_per_file * hN_gampimpInelas_nfiles;
772 double hN_gampimpInelas_energies[hN_gampimpInelas_nfiles] = {
773 160, 180, 200, 220, 240, 260, 280, 300, 320, 340,
774 360, 380, 400, 450, 500, 550, 600, 650, 700, 750,
775 800, 850, 900, 950, 1000, 1050, 1100, 1150, 1200
778 double hN_gampimpInelas_costh [hN_gampimpInelas_points_per_file];
779 double hN_gampimpInelas_xsec [hN_gampimpInelas_npoints];
783 for(
int ifile = 0; ifile < hN_gampimpInelas_nfiles; ifile++) {
785 ostringstream hN_datafile;
786 double ke = hN_gampimpInelas_energies[ifile];
787 hN_datafile << data_dir <<
"/diff_ang/gampi-p/" << ke <<
"-pi-p.txt";
790 hN_datafile.str(), ke, hN_gampimpInelas_points_per_file,
791 ipoint, hN_gampimpInelas_costh, hN_gampimpInelas_xsec,3);
795 hN_gampimpInelas_energies,hN_gampimpInelas_costh,hN_gampimpInelas_xsec);
802 bool saveTGraphsToFile =
true;
804 if (saveTGraphsToFile) {
806 LOG(
"INukeHadroData2015",
pNOTICE) <<
"Saving INTRANUKE hadron x-section data to ROOT file: " <<
filename;
807 TGraphs_file.Open(filename.c_str(),
"RECREATE");
812 const int pipATot_nfiles = 22;
813 const int pipATot_nuclei[pipATot_nfiles] = {1, 2, 3, 4, 6, 7, 9, 12, 16, 27, 28, 32, 40, 48, 56, 58, 63, 93, 120, 165, 181, 209};
814 const int pipATot_npoints = 203;
816 TPipA_Tot =
new TGraph2D(pipATot_npoints);
821 for(
int ifile=0; ifile < pipATot_nfiles; ifile++) {
822 ostringstream ADep_datafile;
823 int nucleus = pipATot_nuclei[ifile];
824 ADep_datafile << data_dir <<
"/tot_xsec/pipA_tot/pip" << nucleus <<
"_tot.txt";
825 TGraph * buff =
new TGraph(ADep_datafile.str().c_str());
826 for(
int i=0;
i < buff->GetN();
i++) {
827 buff -> GetPoint(
i,x,y);
828 TPipA_Tot -> SetPoint(ipoint,(
double)nucleus,x,y);
834 if (saveTGraphsToFile) {
843 const int pipAAbs_f_nfiles = 18;
844 const int pipAAbs_f_nuclei[pipAAbs_f_nfiles] = {1, 2, 3, 4, 7, 9, 12, 16, 27, 48, 56, 58, 63, 93, 120, 165, 181, 209};
845 const int pipAAbs_f_npoints = 111;
851 for(
int ifile=0; ifile < pipAAbs_f_nfiles; ifile++) {
852 ostringstream ADep_datafile;
853 int nucleus = pipAAbs_f_nuclei[ifile];
854 ADep_datafile << data_dir <<
"/tot_xsec/pipA_abs_frac/pip" << nucleus <<
"_abs_frac.txt";
855 TGraph * buff =
new TGraph(ADep_datafile.str().c_str());
856 for(
int i=0;
i < buff->GetN();
i++) {
857 buff -> GetPoint(
i,x,y);
863 if (saveTGraphsToFile) {
872 const int pipACEx_f_nfiles = 18;
873 const int pipACEx_f_nuclei[pipACEx_f_nfiles] = {1, 2, 3, 4, 7, 9, 12, 16, 27, 48, 56, 58, 63, 93, 120, 165, 181, 209};
874 const int pipACEx_f_npoints = 129;
881 for(
int ifile=0; ifile < pipACEx_f_nfiles; ifile++) {
882 ostringstream ADep_datafile;
883 int nucleus = pipACEx_f_nuclei[ifile];
884 ADep_datafile << data_dir <<
"/tot_xsec/pipA_cex_frac/pip" << nucleus <<
"_cex_frac.txt";
885 TGraph * buff =
new TGraph(ADep_datafile.str().c_str());
886 for(
int i=0;
i < buff->GetN();
i++) {
887 buff -> GetPoint(
i,x,y);
894 if (saveTGraphsToFile) {
904 TGraph2D * TPipA_CEx;
906 const int pipACEx_nfiles = 18;
907 const int pipACEx_nuclei[pipACEx_nfiles] = {1, 2, 3, 4, 7, 9, 12, 16, 27, 48, 56, 58, 63, 93, 120, 165, 181, 209};
908 const int pipACEx_npoints = 129;
910 TPipA_CEx =
new TGraph2D(pipACEx_npoints);
915 for(
int ifile=0; ifile < pipACEx_nfiles; ifile++) {
916 ostringstream ADep_datafile;
917 int nucleus = pipACEx_nuclei[ifile];
918 ADep_datafile << data_dir <<
"/tot_xsec/pipA_cex/pip" << nucleus <<
"_cex.txt";
919 TGraph * buff =
new TGraph(ADep_datafile.str().c_str());
920 for(
int i=0;
i < buff->GetN();
i++) {
921 buff -> GetPoint(
i,x,y);
922 TPipA_CEx -> SetPoint(ipoint,(
double)nucleus,x,y);
928 if (saveTGraphsToFile) {
929 TPipA_CEx -> Write(
"TPipA_CEx");
936 TGraph2D * TPipA_Abs;
938 const int pipAAbs_nfiles = 18;
939 const int pipAAbs_nuclei[pipAAbs_nfiles] = {1, 2, 3, 4, 7, 9, 12, 16, 27, 48, 56, 58, 63, 93, 120, 165, 181, 209};
940 const int pipAAbs_npoints = 111;
942 TPipA_Abs =
new TGraph2D(pipAAbs_npoints);
947 for(
int ifile=0; ifile < pipAAbs_nfiles; ifile++) {
948 ostringstream ADep_datafile;
949 int nucleus = pipAAbs_nuclei[ifile];
950 ADep_datafile << data_dir <<
"/tot_xsec/pipA_abs/pip" << nucleus <<
"_abs.txt";
951 TGraph * buff =
new TGraph(ADep_datafile.str().c_str());
952 for(
int i=0;
i < buff->GetN();
i++) {
953 buff -> GetPoint(
i,x,y);
954 TPipA_Abs -> SetPoint(ipoint,(
double)nucleus,x,y);
960 if (saveTGraphsToFile) {
961 TPipA_Abs -> Write(
"TPipA_Abs");
968 TGraph2D * TPipA_Elas;
970 const int pipAElas_nfiles = 18;
971 const int pipAElas_nuclei[pipAElas_nfiles] = {1, 2, 3, 4, 7, 9, 12, 16, 27, 48, 56, 58, 63, 93, 120, 165, 181, 209};
972 const int pipAElas_npoints = 125;
974 TPipA_Elas =
new TGraph2D(pipAElas_npoints);
979 for(
int ifile=0; ifile < pipAElas_nfiles; ifile++) {
980 ostringstream ADep_datafile;
981 int nucleus = pipAElas_nuclei[ifile];
982 ADep_datafile << data_dir <<
"/tot_xsec/pipA_elas/pip" << nucleus <<
"_elas.txt";
983 TGraph * buff =
new TGraph(ADep_datafile.str().c_str());
984 for(
int i=0;
i < buff->GetN();
i++) {
985 buff -> GetPoint(
i,x,y);
986 TPipA_Elas -> SetPoint(ipoint,(
double)nucleus,x,y);
992 if (saveTGraphsToFile) {
993 TPipA_Elas -> Write(
"TPipA_Elas");
1000 TGraph2D * TPipA_Inelas;
1002 const int pipAInelas_nfiles = 20;
1003 const int pipAInelas_nuclei[pipAInelas_nfiles] = {1, 2, 3, 4, 7, 9, 12, 16, 27, 40, 48, 56, 58, 63, 93, 120, 165, 181, 208, 209};
1004 const int pipAInelas_npoints = 118;
1006 TPipA_Inelas =
new TGraph2D(pipAInelas_npoints);
1011 for(
int ifile=0; ifile < pipAInelas_nfiles; ifile++) {
1012 ostringstream ADep_datafile;
1013 int nucleus = pipAInelas_nuclei[ifile];
1014 ADep_datafile << data_dir <<
"/tot_xsec/pipA_inelas/pip" << nucleus <<
"_inelas.txt";
1015 TGraph * buff =
new TGraph(ADep_datafile.str().c_str());
1016 for(
int i=0;
i < buff->GetN();
i++) {
1017 buff -> GetPoint(
i,x,y);
1018 TPipA_Inelas -> SetPoint(ipoint,(
double)nucleus,x,y);
1024 if (saveTGraphsToFile) {
1025 TPipA_Inelas -> Write(
"TPipA_Inelas");
1034 const int pipAElas_f_nfiles = 18;
1035 const int pipAElas_f_nuclei[pipAElas_f_nfiles] = {1, 2, 3, 4, 7, 9, 12, 16, 27, 48, 56, 58, 63, 93, 120, 165, 181, 209};
1036 const int pipAElas_f_npoints = 125;
1043 for(
int ifile=0; ifile < pipAElas_f_nfiles; ifile++) {
1044 ostringstream ADep_datafile;
1045 int nucleus = pipAElas_f_nuclei[ifile];
1046 ADep_datafile << data_dir <<
"/tot_xsec/pipA_elas_frac/pip" << nucleus <<
"_elas_frac.txt";
1047 TGraph * buff =
new TGraph(ADep_datafile.str().c_str());
1048 for(
int i=0;
i < buff->GetN();
i++) {
1049 buff -> GetPoint(
i,x,y);
1056 if (saveTGraphsToFile) {
1065 const int pipAInelas_f_nfiles = 20;
1066 const int pipAInelas_f_nuclei[pipAInelas_f_nfiles] = {1, 2, 3, 4, 7, 9, 12, 16, 27, 40, 48, 56, 58, 63, 93, 120, 165, 181, 208, 209};
1067 const int pipAInelas_f_npoints = 118;
1074 for(
int ifile=0; ifile < pipAInelas_f_nfiles; ifile++) {
1075 ostringstream ADep_datafile;
1076 int nucleus = pipAInelas_f_nuclei[ifile];
1077 ADep_datafile << data_dir <<
"/tot_xsec/pipA_inelas_frac/pip" << nucleus <<
"_inelas_frac.txt";
1078 TGraph * buff =
new TGraph(ADep_datafile.str().c_str());
1079 for(
int i=0;
i < buff->GetN();
i++) {
1080 buff -> GetPoint(
i,x,y);
1087 if (saveTGraphsToFile) {
1096 const int pipAPiPro_f_nfiles = 17;
1097 const int pipAPiPro_f_nuclei[pipAPiPro_f_nfiles] = {1, 2, 3, 4, 7, 9, 12, 16, 48, 56, 58, 63, 93, 120, 165, 181, 209};
1098 const int pipAPiPro_f_npoints = 76;
1105 for(
int ifile=0; ifile < pipAPiPro_f_nfiles; ifile++) {
1106 ostringstream ADep_datafile;
1107 int nucleus = pipAPiPro_f_nuclei[ifile];
1108 ADep_datafile << data_dir <<
"/tot_xsec/pipA_pipro_frac/pip" << nucleus <<
"_pipro_frac.txt";
1109 TGraph * buff =
new TGraph(ADep_datafile.str().c_str());
1110 for(
int i=0;
i < buff->GetN();
i++) {
1111 buff -> GetPoint(
i,x,y);
1118 if (saveTGraphsToFile) {
1123 TGraphs_file.Close();
1125 LOG(
"INukeData",
pINFO) <<
"Done building x-section splines...";
Spline * fXSecGamp_fs
gamma A x-section splines
BLI2DNonUnifGrid * fhN2dXSecKpN_Elas
BLI2DNonUnifGrid * fhN2dXSecPipN_Elas
Spline * fFracPA_Tot
N+A x-section splines.
A numeric analysis tool class for interpolating 1-D functions.
BLI2DNonUnifGrid * fhN2dXSecGamPi0P_Inelas
Spline * fXSecPp_Tot
p/nN x-section splines
BLI2DNonUnifGrid * fhN2dXSecGamPimP_Inelas
Spline * fXSecPp_Cmp
NN cmp (compound nucleus) fate.
BLI2DNonUnifGrid * fhN2dXSecGamPipN_Inelas
Spline * fXSecPipn_Tot
pi+n hN x-section splines
BLI2DNonUnifGrid * fhN2dXSecNP_Elas
BLI2DNonUnifGrid * fhN2dXSecKpN_CEx
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
BLI2DNonUnifGrid * fhN2dXSecKpP_Elas
TGraph2D * TfracPipA_PiPro
Spline * fXSecKpn_Elas
K+N x-section splines.
BLI2DNonUnifGrid * fhN2dXSecPiN_Abs
BLI2DNonUnifGrid * fhN2dXSecPiN_CEx
BLI2DNonUnifGrid * fhN2dXSecGamPi0N_Inelas
BLI2DNonUnifGrid * fhN2dXSecPP_Elas
Spline * fXSecPi0n_Tot
pi0n hN x-section splines
BLI2DNonUnifGrid * fhN2dXSecPi0N_Elas
Spline * fXSecPi0p_Tot
pi0p hN x-section splines
BLI2DNonUnifGrid * fhN2dXSecPimN_Elas
void ReadhNFile(string filename, double ke, int npoints, int &curr_point, double *costh_array, double *xsec_array, int cols)
Spline * fXSecPipp_Tot
pi+p hN x-section splines
TGraph2D * TfracPipA_Elas
Spline * fFracKA_Tot
K+A x-section splines.
TGraph2D * TfracPipA_Inelas