90#include <TDirectory.h>
91#include <TPostScript.h>
124using std::ostringstream;
126using namespace genie;
158int main(
int argc,
char ** argv)
163 LOG(
"gslp2root",
pFATAL) <<
" No TuneId in RunOption";
177 for (
unsigned int indx_p = 0; indx_p <
gOptProbePdgList.size(); ++indx_p ) {
178 for (
unsigned int indx_t = 0; indx_t <
gOptTgtPdgList.size(); ++indx_t ) {
225 const unsigned int kNMarkers = 5;
226 const unsigned int kNColors = 6;
227 unsigned int markers[kNMarkers] = {20, 28, 29, 27, 3};
228 unsigned int colors [kNColors] = {1, 2, 4, 6, 8, 28};
232 TCanvas * c =
new TCanvas(
"c",
"",20,20,500,850);
235 TLegend * legend =
new TLegend(0.01,0.01,0.99,0.99);
236 legend->SetFillColor(0);
237 legend->SetBorderSize(0);
241 ostringstream filename;
242 filename <<
"xsec-splines-"
245 TPostScript * ps =
new TPostScript(filename.str().c_str(),
kPsType);
249 unsigned int nspl = ilist->size();
255 InteractionList::const_iterator ilistiter = ilist->begin();
257 for(; ilistiter != ilist->end(); ++ilistiter) {
261 <<
"Current interaction: " << interaction->
AsString();
268 <<
"Can't get spline for: " << interaction->
AsString();
273 int icol = TMath::Min( i % kNColors, kNColors-1 );
274 int isty = TMath::Min( i / kNMarkers, kNMarkers-1 );
275 int col = colors[icol];
276 int sty = markers[isty];
279 <<
"color = " << col <<
", marker = " << sty;
283 gr[i]->SetLineColor(col);
284 gr[i]->SetMarkerColor(col);
285 gr[i]->SetMarkerStyle(sty);
286 gr[i]->SetMarkerSize(0.5);
295 <<
"Can't get the cross section sum spline";
301 double XSmax = -9999;
304 for(
int j=0; j<
kNP; j++) {
305 gr[nspl]->GetPoint(j,x,y);
306 XSmax = TMath::Max(XSmax,y);
308 XSmin = XSmax/100000.;
312 LOG(
"gspl2root",
pINFO) <<
"Drawing frame: XSec = (" << XSmin <<
", " << XSmax <<
")";
317 TH1F *
h = (TH1F*) c->DrawFrame(
gEmin, XSmin,
gEmax, XSmax);
318 for(
unsigned int ispl = 0; ispl <= nspl; ispl++)
if(gr[ispl]) { gr[ispl]->Draw(
"LP"); }
319 h->GetXaxis()->SetTitle(
"Ev (GeV)");
320 h->GetYaxis()->SetTitle(
"#sigma_{nuclear}/Ev (cm^{2}/GeV)");
329 h = (TH1F*) c->DrawFrame(
gEmin, XSmin,
gEmax, XSmax);
331 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
335 TString spltitle(interaction->
AsString());
336 spltitle = spltitle.ReplaceAll(
";",1,
" ",1);
337 legend->AddEntry(gr[i], spltitle.Data(),
"LP");
341 legend->SetHeader(
"QEL Cross Sections");
342 gr[nspl]->Draw(
"LP");
343 legend->AddEntry(gr[nspl],
"sum",
"LP");
344 h->GetXaxis()->SetTitle(
"Ev (GeV)");
345 h->GetYaxis()->SetTitle(
"#sigma_{nuclear}/Ev (cm^{2}/GeV)");
358 h = (TH1F*) c->DrawFrame(
gEmin, XSmin,
gEmax, XSmax);
361 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
365 TString spltitle(interaction->
AsString());
366 spltitle = spltitle.ReplaceAll(
";",1,
" ",1);
367 legend->AddEntry(gr[i], spltitle.Data(),
"LP");
371 legend->SetHeader(
"RES Cross Sections");
372 gr[nspl]->Draw(
"LP");
373 legend->AddEntry(gr[nspl],
"sum",
"LP");
374 h->GetXaxis()->SetTitle(
"Ev (GeV)");
375 h->GetYaxis()->SetTitle(
"#sigma_{nuclear}/Ev (cm^{2}/GeV)");
388 h = (TH1F*) c->DrawFrame(
gEmin, XSmin,
gEmax, XSmax);
391 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
395 TString spltitle(interaction->
AsString());
396 spltitle = spltitle.ReplaceAll(
";",1,
" ",1);
397 legend->AddEntry(gr[i], spltitle.Data(),
"LP");
401 legend->SetHeader(
"DIS Cross Sections");
402 gr[nspl]->Draw(
"LP");
403 legend->AddEntry(gr[nspl],
"sum",
"LP");
404 h->GetXaxis()->SetTitle(
"Ev (GeV)");
405 h->GetYaxis()->SetTitle(
"#sigma_{nuclear}/Ev (cm^{2}/GeV)");
418 h = (TH1F*) c->DrawFrame(
gEmin, XSmin,
gEmax, XSmax);
421 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
425 TString spltitle(interaction->
AsString());
426 spltitle = spltitle.ReplaceAll(
";",1,
" ",1);
427 legend->AddEntry(gr[i], spltitle.Data(),
"LP");
431 legend->SetHeader(
"COH Cross Sections");
432 gr[nspl]->Draw(
"LP");
433 legend->AddEntry(gr[nspl],
"sum",
"LP");
434 h->GetXaxis()->SetTitle(
"Ev (GeV)");
435 h->GetYaxis()->SetTitle(
"#sigma_{nuclear}/Ev (cm^{2}/GeV)");
448 h = (TH1F*) c->DrawFrame(
gEmin, XSmin,
gEmax, XSmax);
450 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
454 TString spltitle(interaction->
AsString());
455 spltitle = spltitle.ReplaceAll(
";",1,
" ",1);
456 legend->AddEntry(gr[i], spltitle.Data(),
"LP");
460 legend->SetHeader(
"Charm Prod. Cross Sections");
462 legend->AddEntry(gr[nspl],
"sum",
"LP");
463 h->GetXaxis()->SetTitle(
"Ev (GeV)");
464 h->GetYaxis()->SetTitle(
"#sigma_{nuclear}/Ev (cm^{2}/GeV)");
477 h = (TH1F*) c->DrawFrame(
gEmin, XSmin,
gEmax, XSmax);
480 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
486 TString spltitle(interaction->
AsString());
487 spltitle = spltitle.ReplaceAll(
";",1,
" ",1);
488 legend->AddEntry(gr[i], spltitle.Data(),
"LP");
492 legend->SetHeader(
"IMD and ve Elastic Cross Sections");
493 gr[nspl]->Draw(
"LP");
494 legend->AddEntry(gr[nspl],
"sum",
"LP");
495 h->GetXaxis()->SetTitle(
"Ev (GeV)");
496 h->GetYaxis()->SetTitle(
"#sigma_{nuclear}/Ev (cm^{2}/GeV)");
511 for(
unsigned int j=0; j<=nspl; j++) {
if(gr[j])
delete gr[j]; }
518 g->SetTitle(
"GENIE cross section graph");
519 g->GetXaxis()->SetTitle(
"Ev (GeV)");
520 g->GetYaxis()->SetTitle(
"#sigma_{nuclear} (10^{-38} cm^{2})");
535 LOG(
"gspl2root",
pWARN) <<
"No Interaction List available" ;
558 dptr << probe_name <<
"_" << tgt_name;
559 ostringstream dtitle;
560 dtitle <<
"Cross sections for: "
565 <<
"Will store graphs in root directory = " << dptr.str();
566 TDirectory * topdir =
567 dynamic_cast<TDirectory *
> (froot->Get(dptr.str().c_str()));
570 <<
"Directory: " << dptr.str() <<
" already exists!! Exiting";
576 topdir = froot->mkdir(dptr.str().c_str(),dtitle.str().c_str());
585 InteractionList::const_iterator ilistiter = ilist->begin();
587 for(; ilistiter != ilist->end(); ++ilistiter) {
600 else if (proc.
IsMEC() ) { title <<
"mec"; }
604 title <<
"_single_pion" ;
611 else if ( xcls.
NPions() > 0 ) title <<
"_pion" ;
612 else if ( xcls.
NRhos() > 0 ) title <<
"_rho" ;
613 else title <<
"_other" ;
623 LOG(
"gspl2root",
pWARN) <<
"Process " << proc
624 <<
" scattering type not recognised: spline not added" ;
627 if (proc.
IsWeakCC()) { title <<
"_cc"; }
628 else if (proc.
IsWeakNC()) { title <<
"_nc"; }
629 else if (proc.
IsWeakMix()) { title <<
"_ccncmix"; }
630 else if (proc.
IsEM() ) { title <<
"_em"; }
633 LOG(
"gspl2root",
pWARN) <<
"Process " << proc
634 <<
" interaction type has not recongnised: spline not added " ;
647 LOG(
"gspl2root",
pWARN) <<
"Can't handle hit 2-nucleon cluster PDG = " << hitnuc;
651 LOG(
"gspl2root",
pWARN) <<
"Can't handle hit nucleon PDG = " << hitnuc;
669 if(insea) { title <<
"sea"; }
670 else { title <<
"val"; }
679 title <<
"_" << resname.substr(3,4) << resname.substr(0,3);
681 else if ( xcls.
NPions() == 1 ) {
693 else if ( xcls.
NPi0() == 1 ) {
697 title <<
'_' << channel ;
730 else if (
pdg::IsTau(leppdg) ) { title <<
"_tau"; }
731 else if (
pdg::IsPion(leppdg) ) { title <<
"_had"; }
740 gr->SetName(title.str().c_str());
742 gr->SetTitle(spl->GetName());
760 double * xsresccp =
new double[
kNSplineP];
761 double * xsresccn =
new double[
kNSplineP];
762 double * xsresncp =
new double[
kNSplineP];
763 double * xsresncn =
new double[
kNSplineP];
771 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
801 TGraph * gr_resccp =
new TGraph(
kNSplineP,
e, xsresccp);
802 gr_resccp->SetName(
"res_cc_p");
804 topdir->Add(gr_resccp);
805 TGraph * gr_resccn =
new TGraph(
kNSplineP,
e, xsresccn);
806 gr_resccn->SetName(
"res_cc_n");
808 topdir->Add(gr_resccn);
809 TGraph * gr_resncp =
new TGraph(
kNSplineP,
e, xsresncp);
810 gr_resncp->SetName(
"res_nc_p");
812 topdir->Add(gr_resncp);
813 TGraph * gr_resncn =
new TGraph(
kNSplineP,
e, xsresncn);
814 gr_resncn->SetName(
"res_nc_n");
816 topdir->Add(gr_resncn);
822 double * xsdiscc =
new double[
kNSplineP];
823 double * xsdisnc =
new double[
kNSplineP];
824 double * xsdisccp =
new double[
kNSplineP];
825 double * xsdisccn =
new double[
kNSplineP];
826 double * xsdisncp =
new double[
kNSplineP];
827 double * xsdisncn =
new double[
kNSplineP];
836 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
872 TGraph * gr_discc =
new TGraph(
kNSplineP,
e, xsdiscc);
873 gr_discc->SetName(
"dis_cc");
875 topdir->Add(gr_discc);
876 TGraph * gr_disnc =
new TGraph(
kNSplineP,
e, xsdisnc);
877 gr_disnc->SetName(
"dis_nc");
879 topdir->Add(gr_disnc);
880 TGraph * gr_disccp =
new TGraph(
kNSplineP,
e, xsdisccp);
881 gr_disccp->SetName(
"dis_cc_p");
883 topdir->Add(gr_disccp);
884 TGraph * gr_disccn =
new TGraph(
kNSplineP,
e, xsdisccn);
885 gr_disccn->SetName(
"dis_cc_n");
887 topdir->Add(gr_disccn);
888 TGraph * gr_disncp =
new TGraph(
kNSplineP,
e, xsdisncp);
889 gr_disncp->SetName(
"dis_nc_p");
891 topdir->Add(gr_disncp);
892 TGraph * gr_disncn =
new TGraph(
kNSplineP,
e, xsdisncn);
893 gr_disncn->SetName(
"dis_nc_n");
895 topdir->Add(gr_disncn);
909 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
945 TGraph * gr_discc_charm =
new TGraph(
kNSplineP,
e, xsdiscc);
946 gr_discc_charm->SetName(
"dis_cc_charm");
948 topdir->Add(gr_discc_charm);
949 TGraph * gr_disnc_charm =
new TGraph(
kNSplineP,
e, xsdisnc);
950 gr_disnc_charm->SetName(
"dis_nc_charm");
952 topdir->Add(gr_disnc_charm);
953 TGraph * gr_disccp_charm =
new TGraph(
kNSplineP,
e, xsdisccp);
954 gr_disccp_charm->SetName(
"dis_cc_p_charm");
956 topdir->Add(gr_disccp_charm);
957 TGraph * gr_disccn_charm =
new TGraph(
kNSplineP,
e, xsdisccn);
958 gr_disccn_charm->SetName(
"dis_cc_n_charm");
960 topdir->Add(gr_disccn_charm);
961 TGraph * gr_disncp_charm =
new TGraph(
kNSplineP,
e, xsdisncp);
962 gr_disncp_charm->SetName(
"dis_nc_p_charm");
964 topdir->Add(gr_disncp_charm);
965 TGraph * gr_disncn_charm =
new TGraph(
kNSplineP,
e, xsdisncn);
966 gr_disncn_charm->SetName(
"dis_nc_n_charm");
968 topdir->Add(gr_disncn_charm);
974 double * xsmeccc =
new double[
kNSplineP];
975 double * xsmecnc =
new double[
kNSplineP];
981 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
999 TGraph * gr_meccc =
new TGraph(
kNSplineP,
e, xsmeccc);
1000 gr_meccc->SetName(
"mec_cc");
1002 topdir->Add(gr_meccc);
1003 TGraph * gr_mecnc =
new TGraph(
kNSplineP,
e, xsmecnc);
1004 gr_mecnc->SetName(
"mec_nc");
1006 topdir->Add(gr_mecnc);
1012 double * xscohcc =
new double[
kNSplineP];
1013 double * xscohnc =
new double[
kNSplineP];
1014 double * xscohtot =
new double[
kNSplineP];
1021 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
1046 TGraph * gr_cohcc =
new TGraph(
kNSplineP,
e, xscohcc);
1047 gr_cohcc->SetName(
"coh_cc");
1049 topdir->Add(gr_cohcc);
1051 TGraph * gr_cohnc =
new TGraph(
kNSplineP,
e, xscohnc);
1052 gr_cohnc->SetName(
"coh_nc");
1054 topdir->Add(gr_cohnc);
1056 TGraph * gr_cohtot =
new TGraph(
kNSplineP,
e, xscohtot);
1057 gr_cohtot->SetName(
"coh");
1059 topdir->Add(gr_cohtot);
1065 double * xsglrescc =
new double[
kNSplineP];
1066 double * xsglresnc =
new double[
kNSplineP];
1067 double * xsphrescc =
new double[
kNSplineP];
1073 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
1096 TGraph * gr_glrescc =
new TGraph(
kNSplineP,
e, xsglrescc);
1097 gr_glrescc->SetName(
"glres_cc");
1099 topdir->Add(gr_glrescc);
1100 TGraph * gr_glresnc =
new TGraph(
kNSplineP,
e, xsglresnc);
1101 gr_glresnc->SetName(
"glres_nc");
1103 topdir->Add(gr_glresnc);
1104 TGraph * gr_phrescc =
new TGraph(
kNSplineP,
e, xsphrescc);
1105 gr_phrescc->SetName(
"phres_cc");
1107 topdir->Add(gr_phrescc);
1113 double * xstotcc =
new double[
kNSplineP];
1114 double * xstotccp =
new double[
kNSplineP];
1115 double * xstotccn =
new double[
kNSplineP];
1116 double * xstotnc =
new double[
kNSplineP];
1117 double * xstotncp =
new double[
kNSplineP];
1118 double * xstotncn =
new double[
kNSplineP];
1127 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
1173 TGraph * gr_totcc =
new TGraph(
kNSplineP,
e, xstotcc);
1174 gr_totcc->SetName(
"tot_cc");
1176 topdir->Add(gr_totcc);
1177 TGraph * gr_totccp =
new TGraph(
kNSplineP,
e, xstotccp);
1178 gr_totccp->SetName(
"tot_cc_p");
1180 topdir->Add(gr_totccp);
1181 TGraph * gr_totccn =
new TGraph(
kNSplineP,
e, xstotccn);
1182 gr_totccn->SetName(
"tot_cc_n");
1184 topdir->Add(gr_totccn);
1185 TGraph * gr_totnc =
new TGraph(
kNSplineP,
e, xstotnc);
1186 gr_totnc->SetName(
"tot_nc");
1188 topdir->Add(gr_totnc);
1189 TGraph * gr_totncp =
new TGraph(
kNSplineP,
e, xstotncp);
1190 gr_totncp->SetName(
"tot_nc_p");
1192 topdir->Add(gr_totncp);
1193 TGraph * gr_totncn =
new TGraph(
kNSplineP,
e, xstotncn);
1194 gr_totncn->SetName(
"tot_nc_n");
1196 topdir->Add(gr_totncn);
1213 delete [] xsglrescc;
1214 delete [] xsglresnc;
1215 delete [] xsphrescc;
1232 if(is_charged_lepton) {
1238 double * xsresemp =
new double[
kNSplineP];
1239 double * xsresemn =
new double[
kNSplineP];
1245 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
1265 TGraph * gr_resemp =
new TGraph(
kNSplineP,
e, xsresemp);
1266 gr_resemp->SetName(
"res_em_p");
1268 topdir->Add(gr_resemp);
1269 TGraph * gr_resemn =
new TGraph(
kNSplineP,
e, xsresemn);
1270 gr_resemn->SetName(
"res_em_n");
1272 topdir->Add(gr_resemn);
1278 double * xsdisemp =
new double[
kNSplineP];
1279 double * xsdisemn =
new double[
kNSplineP];
1284 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
1306 TGraph * gr_disemp =
new TGraph(
kNSplineP,
e, xsdisemp);
1307 gr_disemp->SetName(
"dis_em_p");
1309 topdir->Add(gr_disemp);
1310 TGraph * gr_disemn =
new TGraph(
kNSplineP,
e, xsdisemn);
1311 gr_disemn->SetName(
"dis_em_n");
1313 topdir->Add(gr_disemn);
1323 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
1345 TGraph * gr_disemp_charm =
new TGraph(
kNSplineP,
e, xsdisemp);
1346 gr_disemp_charm->SetName(
"dis_em_p_charm");
1348 topdir->Add(gr_disemp_charm);
1349 TGraph * gr_disemn_charm =
new TGraph(
kNSplineP,
e, xsdisemn);
1350 gr_disemn_charm->SetName(
"dis_em_n_charm");
1352 topdir->Add(gr_disemn_charm);
1357 double * xstotem =
new double[
kNSplineP];
1358 double * xstotemp =
new double[
kNSplineP];
1359 double * xstotemn =
new double[
kNSplineP];
1365 for(ilistiter = ilist->begin(); ilistiter != ilist->end(); ++ilistiter) {
1373 bool isem = proc.
IsEM();
1394 TGraph * gr_totem =
new TGraph(
kNSplineP,
e, xstotem);
1395 gr_totem->SetName(
"tot_em");
1397 topdir->Add(gr_totem);
1398 TGraph * gr_totemp =
new TGraph(
kNSplineP,
e, xstotemp);
1399 gr_totemp->SetName(
"tot_em_p");
1401 topdir->Add(gr_totemp);
1402 TGraph * gr_totemn =
new TGraph(
kNSplineP,
e, xstotemn);
1403 gr_totemn->SetName(
"tot_em_n");
1405 topdir->Add(gr_totemn);
1468 LOG(
"gspl2root",
pINFO) <<
"Parsing command line arguments";
1479 LOG(
"gspl2root",
pINFO) <<
"Reading input XML filename";
1482 LOG(
"gspl2root",
pFATAL) <<
"Unspecified input XML file!";
1489 LOG(
"gspl2root",
pINFO) <<
"Reading probe PDG code";
1493 <<
"Unspecified probe PDG code - Exiting";
1500 LOG(
"gspl2root",
pINFO) <<
"Reading target PDG code";
1504 <<
"Unspecified target PDG code - Exiting";
1511 LOG(
"gspl2root",
pINFO) <<
"Reading neutrino energy";
1514 if(nue.find(
",") != string::npos) {
1517 assert(nurange.size() == 2);
1518 gEmin = atof(nurange[0].c_str());
1519 gEmax = atof(nurange[1].c_str());
1522 gEmin = val_reg -> GetDouble(
"GVLD-Emin" ) ;
1523 gEmax = atof(nue.c_str());
1525 <<
"Unspecified Emin - Setting to " <<
gEmin <<
" GeV as per configuration";
1529 gEmin = val_reg -> GetDouble(
"GVLD-Emin" ) ;
1532 <<
"Unspecified Emin,Emax - Setting to " <<
gEmin <<
",100 GeV ";
1539 LOG(
"gspl2root",
pINFO) <<
"Reading output ROOT filename";
1543 <<
"Unspecified output ROOT file. Using default: gxsec.root";
1556 LOG(
"gspl2root",
pINFO) <<
"Command line arguments:";
1569 <<
"\n\n" <<
"Syntax:" <<
"\n"
1570 <<
" gspl2root -f xml_file -p probe_pdg -t target_pdg"
1571 <<
" [-e emin,emax] [-o output_root_file] [-w] [-l]\n"
1572 <<
" [--message-thresholds xml_file]\n";
1581 vector<string>::const_iterator iter;
1582 for(iter = isvec.begin(); iter != isvec.end(); ++iter) {
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils.
static AlgConfigPool * Instance()
Command line argument parser.
string ArgAsString(char opt)
bool OptionExists(char opt)
was option set?
A vector of EventGeneratorI objects.
GENIE Event Generation Driver. A minimalist user interface object for generating neutrino interaction...
const Spline * XSecSpline(const Interaction *interaction) const
void Configure(int nu_pdgc, int Z, int A)
void CreateSplines(int nknots=-1, double emax=-1, bool inLogE=true)
const Spline * XSecSumSpline(void) const
const InteractionList * Interactions(void) const
void CreateXSecSumSpline(int nk, double Emin, double Emax, bool inlogE=true)
void SetEventGeneratorList(string listname)
Initial State information.
const Target & Tgt(void) const
A vector of Interaction objects.
Summary information for an interaction.
string AsString(void) const
const XclsTag & ExclTag(void) const
const ProcessInfo & ProcInfo(void) const
const InitialState & InitState(void) const
Is a concrete implementation of the QELFormFactorsModelI: Form Factors for Quasi Elastic CC vN Delta ...
void push_back(int pdg_code)
Singleton class to load & serve a TDatabasePDG.
static PDGLibrary * Instance(void)
TParticlePDG * Find(int pdgc, bool must_exist=true)
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
bool IsPhotonResonance(void) const
bool IsWeakNC(void) const
bool IsNuElectronElastic(void) const
bool IsDiffractive(void) const
bool IsDeepInelastic(void) const
bool IsInverseMuDecay(void) const
bool IsCoherentElastic(void) const
bool IsPhotonCoherent(void) const
bool IsWeakMix(void) const
bool IsWeakCC(void) const
bool IsCoherentProduction(void) const
bool IsQuasiElastic(void) const
bool IsIMDAnnihilation(void) const
bool IsGlashowResonance(void) const
bool IsResonant(void) const
bool IsDarkNeutralCurrent(void) const
A registry. Provides the container for algorithm configuration parameters.
void ReadFromCommandLine(int argc, char **argv)
void BuildTune()
build tune and inform XSecSplineList
static RunOpt * Instance(void)
A numeric analysis tool class for interpolating 1-D functions.
TGraph * GetAsTGraph(int np=500, bool xscaling=false, bool inlog=false, double fx=1., double fy=1.) const
double Evaluate(double x) const
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
int HitNucPdg(void) const
int HitQrkPdg(void) const
bool HitSeaQrk(void) const
bool HitQrkIsSet(void) const
bool HitNucIsSet(void) const
List of cross section vs energy splines.
XmlParserStatus_t LoadFromXml(const string &filename, bool keep=false)
static XSecSplineList * Instance()
Contains minimal information for tagging exclusive processes.
int NSingleGammas(void) const
bool IsInclusiveCharm(void) const
bool IsFinalQuarkEvent(void) const
int FinalQuarkPdg(void) const
bool IsStrangeEvent(void) const
Resonance_t Resonance(void) const
bool KnownResonance(void) const
bool IsFinalLeptonEvent(void) const
bool IsInclusiveStrange(void) const
bool IsCharmEvent(void) const
int StrangeHadronPdg(void) const
int CharmHadronPdg(void) const
int FinalLeptonPdg(void) const
GEVGDriver GetEventGenDriver(void)
void FormatXSecGraph(TGraph *g)
PDGCodeList gOptTgtPdgList
PDGCodeList gOptProbePdgList
PDGCodeList GetPDGCodeListFromString(std::string s)
void GetCommandLineArgs(int argc, char **argv)
void SaveNtupleToRootFile(void)
void SaveGraphsToRootFile(void)
bool Is2NucleonCluster(int pdgc)
bool IsAntiSQuark(int pdgc)
bool IsAntiUQuark(int pdgc)
bool IsAntiCQuark(int pdgc)
bool IsElectron(int pdgc)
bool IsAntiBQuark(int pdgc)
bool IsAntiDQuark(int pdgc)
bool IsChargedLepton(int pdgc)
bool IsNeutralLepton(int pdgc)
bool IsAntiTQuark(int pdgc)
static constexpr double cm2
void MesgThresholds(string inpfile)
Baryon Resonance utilities.
const char * AsString(Resonance_t res)
resonance id -> string
string FilterString(string filt, string input)
vector< string > Split(string input, string delim)
Root of GENIE utility namespaces.
THE MAIN GENIE PROJECT NAMESPACE
enum genie::EXmlParseStatus XmlParserStatus_t
enum genie::EResonance Resonance_t