std::cout << "Prepare Mode [Default] : Takes a single GHep file, reconstructs the original GENIE splines, "
<< " and creates a duplicate file that also contains the flux, event rate, and xsec predictions that NUISANCE needs. " << std::endl;
std::cout << "Following options are required for Prepare Mode:" << std::endl;
std::cout << " [ -i inputfile.root ] : Reads in a single GHep input file that needs the xsec calculation ran on it. " << std::endl;
std::cout << " [ -f flux_file.root,hist_name ] : Path to root file containing the flux histogram the GHep records were generated with."
<< " A simple method is to point this to the flux histogram genie generatrs '-f /path/to/events/input-flux.root,spectrum'. " << std::endl;
std::cout << " [ -t target ] : Target that GHepRecords were generated with. Comma seperated list. E.g. for CH2 target=1000060120,1000010010,1000010010" << std::endl;
/*
std::cout << "Merger Mode [activate with -m] : Takes the list of input files assuming 'Prepare Mode' has already been ran on them and merges them "
<< "into a single file with associated Friend Tree to help with conserving ratios of events (e.g. adding nue and nueb beams together into a single file" << std::endl;
std::cout << "Following optoins are required for Merger Mode:" << std::endl;
std::cout << " [ -i inputfile1.root,inputfile2.root ] : Comma Seperated list of files to be merged. " << std::endl;
bool fKeepThrowingFluxNu; ///< [config] keep firing flux neutrinos till one of them interacts
bool fGenerateUnweighted; ///< [config] force single probability scale?
bool fPreSelect; ///< [config] set whether to pre-select events using max interaction paths
TFile* fFluxIntProbFile; ///< [input] pre-generated flux interaction probability file
TTree* fFluxIntTree; ///< [computed-or-loaded] pre-computed flux interaction probabilities (expected tree name is "gFlxIntProbs")
double fBrFluxIntProb; ///< flux interaction probability (set to branch:"FluxIntProb")
int fBrFluxIndex; ///< corresponding entry in flux input tree (set to address of branch:"FluxEntry")
double fBrFluxEnu; ///< corresponding flux P4 (set to address of branch:"FluxP4")
double fBrFluxWeight; ///< corresponding flux weight (set to address of branch: "FluxWeight")
int fBrFluxPDG; ///< corresponding flux pdg code (set to address of branch: "FluxPDG")
string fFluxIntFileName; ///< whether to save pre-generated flux tree for use in later jobs
string fFluxIntTreeName; ///< name for tree holding flux probabilities
map<int, double> fSumFluxIntProbs; ///< map where the key is flux pdg code and the value is sum of fBrFluxWeight * fBrFluxIntProb for all these flux neutrinos