87 std::vector<Cut> template_cuts;
89 template_cuts.push_back(
chns[
i].
cut);
93 NueCCIncCrossSectionAnalysis nominal_ana(lNDMC,
111 NueCCIncCrossSectionTemplates nominal_templates(lNDMC,
124 NueCCIncCrossSectionAnalysis light_dwn_ana(lNDLightDwn,
142 NueCCIncCrossSectionAnalysis light_up_ana(lNDLightUp,
160 NueCCIncCrossSectionAnalysis calib_dwn_ana(lNDCalibDwn,
178 NueCCIncCrossSectionAnalysis calib_up_ana(lNDCalibUp,
196 NueCCIncCrossSectionAnalysis ckv_ana(lNDCkv,
214 NueCCIncCrossSectionAnalysis
215 calib_shape_ana(lNDCalibShape,
234 std::vector<NueCCIncCrossSectionAnalysis*> genie_universes_ana;
235 std::vector<NueCCIncCrossSectionAnalysis*> ppfx_universes_ana;
240 std::vector<ana::SystShifts> genie_shifts = verse.GetSystShifts();
242 for(
int i = 0; i < 100; i++){
244 genie_universes_ana.push_back(
new NueCCIncCrossSectionAnalysis
263 ppfx_universes_ana.push_back(
new NueCCIncCrossSectionAnalysis
279 kXSecCVWgt2018_smallerDISScale_NT,
280 ppfx_univ[i] * kXSecCVWgt2018));
293 TFile*
fout =
new TFile(
"fAnalysisSpectra.root",
"recreate");
296 TDirectory* nom_dir = fout->mkdir(Form(
"%s",
"Nominal"));
298 nominal_ana.SaveTo(nom_dir->mkdir(
"Analysis"));
299 nominal_templates.SaveTo(nom_dir->mkdir(
"Templates"));
301 TDirectory* light_dwn_dir = fout->mkdir(Form(
"%s",
"LightDwn"));
303 light_dwn_ana.SaveTo(light_dwn_dir->mkdir(
"Analysis"));
305 TDirectory* light_up_dir = fout->mkdir(Form(
"%s",
"LightUp"));
307 light_up_ana.SaveTo(light_up_dir->mkdir(
"Analysis"));
309 TDirectory* calib_dwn_dir = fout->mkdir(Form(
"%s",
"CalibDwn"));
311 calib_dwn_ana.SaveTo(calib_dwn_dir->mkdir(
"Analysis"));
313 TDirectory* calib_up_dir = fout->mkdir(Form(
"%s",
"CalibUp"));
315 calib_up_ana.SaveTo(calib_up_dir->mkdir(
"Analysis"));
317 TDirectory* calib_shape_dir = fout->mkdir(Form(
"%s",
"CalibShape"));
318 calib_shape_dir->cd();
319 calib_shape_ana.SaveTo(calib_shape_dir->mkdir(
"Analysis"));
321 TDirectory* ckv_dir = fout->mkdir(Form(
"%s",
"Ckv"));
323 ckv_ana.SaveTo(ckv_dir->mkdir(
"Analysis"));
325 TDirectory*
genie_dir = fout->mkdir(Form(
"%s",
"GENIE"));
327 for(
int i = 0; i < 100; i++){
328 genie_universes_ana[
i]->SaveTo(genie_dir->mkdir(Form(
"%s_%i",
"Universe",i)));
331 TDirectory* ppfx_dir = fout->mkdir(Form(
"%s",
"PPFX"));
333 for(
int i = 0; i < 100; i++){
334 ppfx_universes_ana[
i]->SaveTo(ppfx_dir->mkdir(Form(
"%s_%i",
"Universe",i)));
const std::string UPLightFiles_full_prod4_CVNProng
std::vector< const ISyst * > getAllXsecSysts_2018()
Get master XSec syst list for 2018 analyses.
const std::string DWNLightFiles_full_prod4_CVNProng
const SelDef chns[knumchns]
const TVector3 vtxmin(-130,-176, 225)
const mHistAxisSTDef analysis_vars_truth[kvAnalysisVarsST]
const std::string CherenkovFiles_full_prod4_CVNProng
std::vector< Var > GetkPPFXFluxUnivWgt()
const mHistAxisDef analysis_vars[6]
const SpillTruthCut kIsTrueSigST
std::vector< NuTruthVar > GetkPPFXFluxUnivWgtST()
const NuTruthVar kXSecCVWgt2018_smallerDISScale_NT
const SystShifts kNoShift
const HistAxis kRecoElecEVsCosStandardAxis("Reconstructed E_{e} vs cos #theta; Elec_{e} (GeV); cos #{theta}", double_diff_bins, kRecoElecEVsCos)
const ana::Binning enubins
const std::string ShapeCalibFiles_full_prod4_CVNProng
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
string genie_dir(std::getenv("GENIE"))
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
const NuTruthHistAxis kTrueElecEVsCosStandardAxisST("True E_{e} vs cos #theta;cs Elec_{e} (GeV); cos #{theta}", double_diff_bins, kTrueElecEVsCosST)
const std::string NominalMC_full_prod4_CVNProng
const TVector3 vtxmax(160, 160, 1000)
const std::string DWNCalibFiles_full_prod4_CVNProng
const std::string UPCalibFiles_full_prod4_CVNProng
const NuTruthVar kPPFXFluxCVWgtST([](const caf::SRNeutrinoProxy *nu){ if(nu->rwgt.ppfx.cv!=nu->rwgt.ppfx.cv){return 1.f;}if(nu->rwgt.ppfx.cv >90){return 1.f;}return float(nu->rwgt.ppfx.cv);})
weight events with the flux PPFX Central value correction.
const mHistAxisDef pid_vars[kNumPIDVars]