Functions | Variables
plot_prediction_systs.C File Reference
#include "CAFAna/Core/Loaders.h"
#include "CAFAna/Analysis/Exposures.h"
#include "CAFAna/Core/Binning.h"
#include "CAFAna/Core/Cut.h"
#include "CAFAna/Core/HistAxis.h"
#include "CAFAna/Core/LoadFromFile.h"
#include "CAFAna/Core/Spectrum.h"
#include "3FlavorAna/Vars/NueVars.h"
#include "CAFAna/Vars/Vars.h"
#include "3FlavorAna/Prediction/PredictionSystJoint2018.h"
#include "3FlavorAna/Systs/NueSystHelper.h"
#include "TFile.h"
#include "TH1.h"
#include "TCanvas.h"
#include "TGaxis.h"
#include "TLatex.h"
#include "TLegend.h"
#include "TLine.h"
#include "TSystem.h"
#include "TROOT.h"
#include "TObjectTable.h"
#include <fstream>
#include <iostream>
#include <iomanip>
#include <string>
#include <cstddef>
#include "TError.h"
#include "CAFAna/shared/Ana2018/syst_variations.h"
#include "CAFAna/shared/Ana2018/draw_plots_util.h"

Go to the source code of this file.

Functions

void PrintLatexHeader ()
 
void PrintLatexComment (TString comment="")
 
void PrintLatexEnd ()
 
void LtxSection (TString sec, bool newpage=true, int sublevel=0, TString comment="")
 
void plot_prediction_systs (const bool isNumu=false, const TString &option="FHC_All_nue", const TString &analysis="allxp_nue", const std::string &period="full", const bool verbose=false, const std::string &filename_sh="")
 

Variables

TString mainfilename = "PlottingSysts.tex"
 
ofstream mainoutput
 
ofstream output
 
ofstream summary
 
ofstream tables
 
bool isNumuAna =false
 
Loaders::FluxType flux = Loaders::kFHC
 

Function Documentation

void LtxSection ( TString  sec,
bool  newpage = true,
int  sublevel = 0,
TString  comment = "" 
)

Definition at line 427 of file plot_prediction_systs.C.

References allTimeWatchdog::endl, isNumuAna, ana::MakeLatexCommandName(), and output.

428 {
429  if(newpage) output<<" \\newpage\n"<<std::endl;
430  output<<"\n \n% ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~ ~~~ ~~~ ~~~~ \n"
431  << "% ~~~ " << comment
432  << "% ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ \n \n"<<std::endl;
433 
434  if (isNumuAna && sublevel ==1 && !sec.Contains("Q1") )
435  output<<" \\newpage\n"<<std::endl;
436 
437  sec.ReplaceAll("_"," ");
438  sec.ReplaceAll("\\nu {","\\nu_{");
439 
440  TString section = "section";
441  if(sublevel ==1) section = "subsection";
442  if(sublevel ==2) section = "subsubsection";
443  output << "\n \\"<<section<<"{" << sec ;
444  if(sublevel <=1)
445  output<<"\\label{sec:" <<MakeLatexCommandName(sec) << "}";
446  output << "} \n\n";
447 
448  return;
449 }
ofstream output
bool isNumuAna
TString MakeLatexCommandName(TString mystring)
void plot_prediction_systs ( const bool  isNumu = false,
const TString &  option = "FHC_All_nue",
const TString &  analysis = "allxp_nue",
const std::string &  period = "full",
const bool  verbose = false,
const std::string &  filename_sh = "" 
)

Definition at line 59 of file plot_prediction_systs.C.

References calc, ana::CompareNDDataMCFromVector(), ana::ComparePredictionsFromVector(), om::cout, allTimeWatchdog::endl, ana::FixPlotName(), runNovaSAM::gErrorIgnoreLevel, GetCalculator(), GetExtrapolationDefs(), ana::GetSystematics2018(), isFHC, isNumuAna, ana::kCombo, ana::kEEAntiextrap, ana::kEEextrap, ana::kMEAntiextrap, ana::kMEextrap, ana::kMMAntiextrap, ana::kMMextrap, kNue1bin, kNue3bin, ana::kNuMu, ana::kNuMuNoExtrap, kNumuOpt, kNumuOther, ana::kRPARESSyst2018Test, LtxSection(), mainfilename, mainoutput, ana::MakeLatexCommandName(), ana::MakeSummaryV(), SliceLID::numuid(), output, DCS_db_parser::period, PrintLatexComment(), PrintLatexEnd(), PrintLatexHeader(), summary, systs, tables, usedumb, PandAna.Demos.tute_pid_validation::var, and copy_new_pkl_files::verbose.

66 {
67  // Set output verbosity
68  // Better handling/suppressing of debug messages
69  if (!verbose)
70  gErrorIgnoreLevel = kWarning;
71 
72  // Messy but we need to keep isNumuAna global for now
73  // TODO: make isNumuAna less global
74  if (isNumu)
75  isNumuAna = true;
76 
77  // Extract FHC/RHC from option
78  TString HCString;
79  if (option.Contains("FHC"))
80  {
81  isFHC = true;
82  HCString = "fhc";
83  }
84  else
85  {
86  isFHC = false;
87  HCString = "rhc";
88  }
89 
90  const bool printtableNumuND=true;
91  const bool printtableNueND=true;
92  const bool printtable=true;
93 
94  // Define output name
95  // Default is to use prediction file name, but may want to look at subset
96  TString thisoutname (filename_sh);
97  thisoutname.Remove(0,thisoutname.Last('/')+1);
98  thisoutname.ReplaceAll(".root","");
99  // If both option and analysis are specified construct a better name
100  if (!(option == "" || analysis == ""))
101  {
102  thisoutname = TString(option.Data());
103  thisoutname += "_" + analysis + "_" + TString(period.c_str());
104  }
105 
106  // Update main filename and open file
107  mainfilename = TString(thisoutname.Data());
108  mainfilename += ".tex";
109  mainoutput.open(mainfilename.Data());
110 
112 
113  // Make sub-directory and files for summary and tables
114  TString latexout = "latex/";
115  gSystem -> MakeDirectory(latexout);
116  mainoutput << "\\input{" + latexout + thisoutname + "_summary.tex}\n";
117  mainoutput << "\\input{" + latexout + thisoutname + "_tables.tex}\n";
118  mainoutput << "\\input{" + latexout + thisoutname + ".tex}\n";
119 
120  output.open((latexout+thisoutname+".tex").Data());
121  summary.open((latexout+thisoutname+"_summary.tex").Data());
122  tables.open((latexout+thisoutname+"_tables.tex").Data());
123 
125  (TString)"Comparing the shifted predictions from:"+filename_sh);
126 
127  // Get info for all systs and vars
128  // Define extrap type
129  // Vector of extrap types to loop over
130  struct xpDef
131  {
133  TString xpName;
134  bool isExtrap;
135  };
136  std::vector<xpDef> xps;
137 
138  // If not doing NuMu, then fill xps_nue.
139  if (!isNumuAna) {
140  // No extrap
141  if (analysis.Contains("nxp") || analysis.Contains("allxp"))
142  xps.push_back({kNoExtrap, "pred_nxp", false});
143  // Proportional decomposition
144  if (analysis.Contains("xp_prop") || analysis.Contains("allxp_nue"))
145  xps.push_back({kProportional, "pred_xp_prop", true});
146  // Combo --> FHC only
147  if (analysis.Contains("xp_combo") ||
148  (analysis.Contains("allxp_nue") && isFHC))
149  xps.push_back({kCombo, "pred_xp_combo", true});
150  }
151  // If doing NuMu, then fill xps_numu.
152  else {
153  // No Extrapolation
154  if (analysis.Contains("nxp") || analysis.Contains("allxp")) { xps.push_back({kNuMuNoExtrap, "pred_nxp" , false}); }
155  // Extrapolation
156  if (analysis.Contains("extrap") || analysis.Contains("allxp")) { xps.push_back({kNuMu , "pred_xp_numu", true }); }
157  }
158 
159  std::cout << "Making plots for the following extrapolations: " << std::endl;
160  for (const auto xp:xps)
161  std::cout << "\t- " << xp.xpName << std::endl;
162 
163  // Get list of systematics
164  // Pass option to determine group(s) of systematics to include in the document
165  auto systs = GetSystematics2018(option);
166  std::cout << "systs has size " << systs.size() << std::endl;
167 
168  // Get vector of Vars/extraps to loop over. For nue only returns Nue2018Axis now
169  std::vector<ExtrapDef> xpdefs = GetExtrapolationDefs( option, period, analysis );
170 
171  for (auto xpdef:xpdefs)
172  std::cout << "\t- " << xpdef.name << std::endl;
173  std::cout << "" << std::endl;
174 
175  std::cout << "Making plots for the following axes (xpdefs.size is )"
176  << xpdefs.size() << ": " << std::endl;
177  for (auto xpdef:xpdefs)
178  std::cout << "\t- " << xpdef.name << std::endl;
179  std::cout << "" << std::endl;
180 
181  // Make plots and tables
182  for (auto const & xp:xps)
183  { // all pred types
184 
185  TString thissec = xp.isExtrap ?
186  "Extrapolated prediction:":"FDMC prediction (no extrap.):";
187  if(xp.xpName.Contains("prop")) thissec += " (proportional decomp.)";
188  if(xp.xpName.Contains("combo")) thissec += " (combo decomp.)";
189  LtxSection(thissec);
190 
191  // Define ocillation calculator
192  auto calc = GetCalculator(usedumb); // dumOsc? Default false --> global
193  // varaible defined in
194  // draw_plots_util
195 
196  // Make PredictionSystJoint2018 object
197  bool isFakeData = false;
198  if (option.Contains("fakeNDData"))
199  isFakeData = true;
200  std::vector<PredictionSystJoint2018*> PredictionSysts;
201  if (!isNumuAna)
202  PredictionSysts.push_back(
203  new PredictionSystJoint2018(xp.xp, calc, systs, HCString.Data(),
204  isFakeData, false, filename_sh, false));
205  else
206  {
207  std::cout << "\n Looking at numu, "
208  << "so first load the all quantile predictions." << std::endl;
209  // First, push back the all quantile distributions.
210  PredictionSysts.push_back(
211  new PredictionSystJoint2018(xp.xp, calc, HCString.Data(), -1,
212  systs, filename_sh, false));
213  // Next , push back the individual quantile distributions.
214  for ( int quant = 1; quant < 5; quant++ )
215  {
216  std::cout << "\n Now load predictions for quantile "
217  << quant << std::endl;
218  PredictionSysts.push_back(
219  new PredictionSystJoint2018(xp.xp, calc, HCString.Data(), quant,
220  systs, filename_sh, false));
221  }
222  }
223  std::cout << "\n PredictionSysts has size " << PredictionSysts.size()
224  << ", systs has size " << systs.size() << "\n" << std::endl;
225 
226  //auto S = systnames.begin();
227  //auto shift = shifts.begin();
228  //for ( ; S!=systnames.end() && shift!=shifts.end(); ++S, ++shift)
229  for (const auto syst:systs)
230  { // all systs
231 
232  std::cout << "Processing systematic: " << syst->ShortName() << std::endl;
233  LtxSection(syst->ShortName(), true, 1,
234  "Processing systematic: " + syst->ShortName());
235 
236  // Add in something like:
237  if (syst == &kRPARESSyst2018Test)
238  {
239  std::cout << "Skipping RPA Test..." << std::endl;
240  continue;
241  }
242 
243  // Loop over Vars in xpdefs
244  for (auto const & var:xpdefs)
245  { // all vars
246  // Need to do some added switches for NuMu quantiles.
247  // ApName - Want to add "_QX" to the file names so that they are
248  // unique.
249  // ThisPredSyst - For Nue simply want 0th element of PredictionSysts,
250  // but for NuMu we need to get the element which
251  // corresponds to the right quantile.
252  TString ApName = "";
253  PredictionSystJoint2018* ThisPredSyst = PredictionSysts[0];
254  if (isNumuAna)
255  {
256  ApName = "_"+var.name(var.name.Index("_")+1,var.name.Sizeof());
257  ApName.ReplaceAll( "Quant", "Q" );
258  if ( ApName.Contains("Q1") ) ThisPredSyst = PredictionSysts[1];
259  else if ( ApName.Contains("Q2") ) ThisPredSyst = PredictionSysts[2];
260  else if ( ApName.Contains("Q3") ) ThisPredSyst = PredictionSysts[3];
261  else if ( ApName.Contains("Q4") ) ThisPredSyst = PredictionSysts[4];
262  }
263 
264  LtxSection((syst->ShortName() + ApName), false, 2,
265  "Printing FD Plots " + MakeLatexCommandName(var.name));
266 
267  AxisType axistype = kNue1bin;
268  if(var.name.Contains("Nue2018Axis")) axistype = kNue3bin;
269  if(isNumuAna) axistype = kNumuOther;
270  if(isNumuAna && var.name.Contains("Energy")) axistype = kNumuOpt;
271  if(isNumuAna && axistype != kNumuOpt) continue;
272 
273  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
274  // // FD Plots
275  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
276  TString AnaType = "_";
277  if (!analysis.Contains("numu") && isNumuAna) AnaType = "_numu_";
278  if (!analysis.Contains("nue" ) && !isNumuAna) AnaType = "_nue_";
279  TString plottitle = (
280  syst->ShortName() + ApName +
281  (xp.isExtrap ? " FarDet Extrap (" + xp.xpName + ")":" (FarDet MC)")+
282  ";" + var.name + ";" + "Events / Bin");
283  TString plotname = "compare_" + xp.xpName + AnaType +
284  FixPlotName(syst->ShortName()) + "_" + var.name;
285  TString prefix = "nue_pred_";
286  if(isNumuAna) prefix = "numu_pred_";
287 
288  bool printtable = true;
289 
290  ComparePredictionsFromVector(ThisPredSyst, syst, plottitle,
291  plotname, printtable, axistype);
292 
293  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
294  // // ND Plots
295  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
296  /* How do we include the ND plots using the new loading using
297  PredictionSystJoint2018 concept?
298 
299  Decided with Alex that the best solution is to move the code that produces the ND plots to PredictionSystJoint2018.
300 
301  Moving towards a scenario where we have PredictionSystJoint2018 handle all the loading from file and extracting spectra.
302 
303  */
304  if (!xp.isExtrap)
305  continue; // only make ND plots for extrapolated predictions
306 
307  // Define ModularExtrapComponent
308  EModExtrapComps modExtrapComp;
309 
310  if (isNumuAna)
311  {
312  if (isFHC)
313  modExtrapComp = kMMextrap;
314  else
315  modExtrapComp = kMMAntiextrap;
316  }
317  else // Nue
318  {
319  if (isFHC)
320  modExtrapComp = kMEextrap;
321  else
322  modExtrapComp = kMEAntiextrap;
323  }
324 
325  TString plottitleMu = syst->ShortName() + ApName +
326  "(NearDet MC); Non-Quasielastic Energy Estimator (GeV); Events / Bin";
327  TString plotnameMu = "compare_numu_ND_" +
328  FixPlotName(syst->ShortName()) + "_" + var.name;
329  TString numuid = "Numu";
330  if(isNumuAna)
331  {
332  numuid = var.name;
333  numuid = numuid.Remove(0, numuid.First("_")+1);
334  plotnameMu = "compare_numu_ND_" + var.name + "_" +
335  MakeLatexCommandName((syst->ShortName() + ApName));
336  }
337  LtxSection("$\\nu_{\\mu}$ ND", true, 2, "Numu Comparisons");
338 
340  ThisPredSyst, syst, modExtrapComp, plottitleMu, plotnameMu,
341  numuid, kNumuOpt, printtableNumuND);
342  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
343  if ( !printtableNueND || isNumuAna ) // continue
344  continue;
345  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
346  // Redefine ModularExtrapComponent for beam Nue background
347  if (isFHC)
348  modExtrapComp = kEEextrap;
349  else
350  modExtrapComp = kEEAntiextrap;
351  TString plottitleND = syst->ShortName() + ApName +
352  " (NearDet MC) "+ ";" + var.name + ";" + "Events / Bin";
353  TString plotnameND = "compare_nue_ND_"+
354  FixPlotName(syst->ShortName()) + "_" + var.name;
355  numuid = "Nue";
356  LtxSection("$\\nu_{e}$ ND", true, 2, "Nue comparisons");
358  ThisPredSyst, syst, modExtrapComp, plottitleND,
359  plotnameND, numuid, kNue3bin, printtableNumuND);
360 
361  }// for var in xpdefs
362  }// for S in systnames
363  // Clean up PredictionSystJoint2018 objects
364  for (auto predictionSyst:PredictionSysts)
365  {
366  delete predictionSyst;
367  predictionSyst = NULL;
368  }
369  }// for xp in xptypes
370 
371  for (auto xp:xps)
372  {
373  LtxSection("Summary Tables");
374 
375  if (xp.xpName.Contains("nxp"))
376  {
377  LtxSection(
378  "FDMC Prediction (no extrapolation) - Signal (Sorted by chisq)",
379  false, 1);
380  MakeSummaryV(true , "nxp", true);
381  LtxSection(
382  "FDMC Prediction (no extrapolation) - Background (Sorted by chisq)",
383  true, 1);
384  MakeSummaryV(false, "nxp", true);
385  }
386 
387  if (xp.xpName.Contains("combo"))
388  {
389  LtxSection("Extrapolated Prediction - Signal (Sorted by chisq)", true, 1);
390  MakeSummaryV(true ,"xp_combo",true);
391  LtxSection("Extrapolated Prediction - Background (Sorted by chisq)",
392  true, 1);
393  MakeSummaryV(false,"xp_combo",true);
394  }
395 
396  if (xp.xpName.Contains("prop"))
397  {
398  LtxSection(
399  "Extrapolated Prediction - Signal PROP (Sorted by chisq)", true, 1);
400  MakeSummaryV(true ,"xp_prop",true);
401  LtxSection(
402  "Extrapolated Prediction - Background PROP (Sorted by chisq)", true, 1);
403  MakeSummaryV(false,"xp_prop",true);
404  }
405  if (xp.xpName.Contains("pred_xp_numu")) {
406  LtxSection ( "Extrapolated Prediction - Signal PROP (Sorted by chisq)" , true, 1);
407  MakeSummaryV( true ,"pred_xp_numu",true);
408  LtxSection ( "Extrapolated Prediction - Background PROP (Sorted by chisq)", true, 1);
409  MakeSummaryV(false ,"pred_xp_numu",true);
410  }
411  }
412 
413  PrintLatexEnd();
414 
415  std::cout << "Tested to HERE!" << std::endl;
416  std::cout << "Finished!" << std::endl;
417  return;
418 }
ofstream output
TString FixPlotName(TString mystring)
osc::IOscCalc * GetCalculator(bool usingdumb)
std::vector< SystGroupDef > systs
Definition: syst_header.h:385
Loads shifted spectra from files.
const NOvARwgtSyst kRPARESSyst2018Test("RPAShapeRES2018Test","RPA shape: resonance events (2018)", novarwgt::kRPARESSyst2018_ExtrapKludge)
same as the regular 2018 version but with a nudge above sigma = 1 to help the extrapolation ...
Definition: RPASysts.h:23
static Var numuid(const std::shared_ptr< CAFAnaModel > &model)
Definition: SliceLIDVar.h:63
void PrintLatexHeader()
osc::OscCalcDumb calc
std::vector< const ISyst * > GetSystematics2018(const TString option)
const TString mainfilename
void CompareNDDataMCFromVector(TDirectory *d_no, std::vector< TDirectory * > d_sh, TString plottitle, TString out_name, TString tag, bool printtable=true, AxisType pidaxis=kNue1bin)
bool isNumuAna
std::vector< ExtrapDef > GetExtrapolationDefs(const TString analysis, const TString period)
void ComparePredictionsFromVector(TDirectory *dpred_no, std::vector< TDirectory * > dpred_sh, TString plottitle, TString out_name, bool printtable=true, AxisType pidaxis=kNue1bin)
const XML_Char * prefix
Definition: expat.h:380
static bool isFHC
OStream cout
Definition: OStream.cxx:6
TString MakeLatexCommandName(TString mystring)
void MakeSummaryV(bool signal=true, TString xptype="nxp", bool sorted=false)
ofstream summary
void LtxSection(TString sec, bool newpage=true, int sublevel=0, TString comment="")
AxisType
ofstream tables
void PrintLatexComment(TString comment="")
bool usedumb
void PrintLatexEnd()
ofstream mainoutput
void PrintLatexComment ( TString  comment = "")

Definition at line 451 of file plot_prediction_systs.C.

References allTimeWatchdog::endl, and output.

452 {
453  output<<"% ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~\n"<<std::endl;
454  output<<"% " << comment << std::endl;
455  output<<"% ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~\n"<<std::endl;
456 }
ofstream output
void PrintLatexEnd ( )

Definition at line 458 of file plot_prediction_systs.C.

References allTimeWatchdog::endl, and mainoutput.

459 {
460  mainoutput<<" \\end{document}\n"<<std::endl;
461 }
ofstream mainoutput
void PrintLatexHeader ( )

Definition at line 420 of file plot_prediction_systs.C.

References allTimeWatchdog::endl, isNumuAna, and mainoutput.

421 {
422  if(isNumuAna) mainoutput<<" \\input{header_numu} \n";
423  else mainoutput<<" \\input{header_nue} \n";
424  mainoutput<<" \\newpage\n"<<std::endl;
425 }
bool isNumuAna
ofstream mainoutput

Variable Documentation

Loaders::FluxType flux = Loaders::kFHC

Definition at line 48 of file plot_prediction_systs.C.

Referenced by ana::nueccinc::NueCCIncCrossSectionAnalysis::AddEnhancedSample(), caf::CAFMaker::AddMCTruthToVec(), ncs::Xbeam::analyze(), ncs::Xeff::analyze(), ncs::GenieTruth::analyze(), ncs::NCAna::analyze(), genie::flux::GNuMIFluxPassThroughInfo::CalcEnuWgt(), Compare_NoExtrap(), ana::ICrossSectionAnalysis::CrossSection(), CutFlow_MC(), extract_gibuu_corrs(), FD_Data_PosComp(), FD_DataOnly_PosComp(), genie::flux::GHAKKMAtmoFlux::FillFluxHisto(), genie::flux::GFLUKAAtmoFlux::FillFluxHisto(), genie::flux::GBGLRSAtmoFlux::FillFluxHisto(), simb::MCFlux::Flux(), GenerateEventsAtFixedInitState(), genie::flux::GAtmoFlux::GenerateNext_1try(), GetCommandLineArgs(), genie::flux::GAtmoFlux::GetFlux(), ana::nueccinc::NueCCIncCrossSectionAnalysis::getFlux1D(), GetLoaders2018(), GetLoaders2020(), cvn::GetParentParticleType(), ana::BeamSystOrWeightBase::GetWeight(), ana::GeniePCASyst::GetWeight(), ana::BeamSystOrWeightBase::InitializeHistograms(), ana::GeniePCASyst::InitializeHistograms(), ana::SingleNucAnalysis::LoadFrom(), ana::NumuCC2p2hAnalysis::LoadFrom(), ana::CrossSectionSpectra::LoadFrom(), ana::CrossSectionAnalysis::LoadFrom(), ana::NumuCCIncAnalysis::LoadFrom(), ana::nueccinc::NueCCIncCrossSectionAnalysis::LoadFrom(), fnex::GeniePCASyst::LoadGeniePCASystHists(), ana::T2KToyExperiment::LoadSpectra(), readNtuple::Loop(), main(), make_DataMCComp_numu(), make_predictions_systs(), makePrediction(), NoExtrap(), genie::flux::operator<<(), plot_xsecs(), ana::PlotAllFlux(), genie::flux::GSimpleNtpMeta::Print(), MergeCollections::MergeCollections::produce(), MergeGenCollections::MergeGenCollections::produce(), lem::MakeLibrary::produce(), evgen::GENIERockGen::produce(), evgen::GENIEGen::produce(), genie::flux::GJPARCNuFluxPassThroughInfo::Reset(), ana::NumuCCIncAnalysis::Result(), ana::NumuCC2p2hAnalysis::Result1DFluxInt(), ana::SingleNucAnalysis::Result2D(), ana::NumuCC2p2hAnalysis::Result2D(), ana::NumuCCIncAnalysis::Result2D(), runGBartolAtmoFluxDriver(), runGCylindTH1FluxDriver(), runGFlukaAtmo3DFluxDriver(), genie::flux::GAtmoFlux::SelectNeutrino(), genie::flux::GAstroFlux::SetEnergyPowLawIdx(), sk_sample_norm_abs(), caf::CAFMaker::sortNuWithIdx(), and SwapNDDataLoader().

bool isNumuAna =false

Definition at line 41 of file plot_prediction_systs.C.

TString mainfilename = "PlottingSysts.tex"

Definition at line 35 of file plot_prediction_systs.C.

ofstream mainoutput

Definition at line 36 of file plot_prediction_systs.C.

Referenced by plot_prediction_systs(), PrintLatexEnd(), and PrintLatexHeader().

ofstream output

Definition at line 37 of file plot_prediction_systs.C.

ofstream summary

Definition at line 38 of file plot_prediction_systs.C.

ofstream tables

Definition at line 39 of file plot_prediction_systs.C.