17 #include "CAFAna/Cuts/NueCutsSecondAna.h" 21 #include "CAFAna/Analysis/SALoaders.h" 35 #include "Utilities/func/MathUtil.h" 56 SpectrumLoader lNDData(
"prod_caf_R17-09-05-prod4recopreview.f_nd_numi_fhc_full_v1_addShortSimpleCVN_goodruns");
57 SpectrumLoader lNDMC(
"prod_caf_R17-11-14-prod4reco.d_nd_genie_nonswap_fhc_nova_v08_full_v1");
59 SpectrumLoader lFDnonswap(
"prod_caf_R17-11-14-prod4reco.d_fd_genie_nonswap_fhc_nova_v08_full_v1");
60 SpectrumLoader lFDfluxswap(
"prod_caf_R17-11-14-prod4reco.d_fd_genie_fluxswap_fhc_nova_v08_full_v1");
61 SpectrumLoader lFDtauswap(
"prod_caf_R17-11-14-prod4reco.d_fd_genie_tau_fhc_nova_v08_full_v1");
106 TFile*
file =
new TFile(
"nue_dcmp.root",
"recreate");
107 TDirectory*
d = file->mkdir(
"nue_decomps");
109 michelDCMP->
SaveTo(d,
"michelcheatDCMP");
110 michelbenDCMP->
SaveTo(d,
"michelbenDCMP");
111 propDCMP->
SaveTo(d,
"propDCMP");
Cuts and Vars for the 2020 FD DiF Study.
void SetSpillCut(const SpillCut &cut)
const Cut kNue2018CVNCut([](const caf::SRProxy *sr){if(kIsRHC(sr)) return kNue2018RHCCVNCut(sr);else return kNue2018FHCCVNCut(sr);})
const Cut kNue2018NDPresel
const Var kNue2018AnaBin([](const caf::SRProxy *sr){int selBin=kNue2018SelectionBin(sr);float nuE=kNueEnergy2018(sr);int nuEBin=nuE/0.5;assert(nuEBin<=8 &&"An event with nuE > 4.5 should never happen");int anaBin=9 *selBin+nuEBin;return anaBin;})
Use this Analysis Binning for Ana2018, official Binning.
const SpillCut kStandardDQCuts([](const caf::SRSpillProxy *spill){if(spill->dcmedgematchfrac==0 &&spill->fracdcm3hits==0 &&spill->nmissingdcmslg==0) return bool(spill->isgoodspill); if(spill->det==caf::kNEARDET && (spill->fracdcm3hits > 0.45|| spill->nmissingdcms > 0)) return false; if(spill->eventincomplete) return false; if(spill->det==caf::kFARDET && spill->nmissingdcmslg > 0) return false; if(spill->det==caf::kFARDET && !spill->ismc && spill->dcmedgematchfrac<=0.2) return false;return true;})
Cut out events with a noisy detector or with parts missing.
virtual void Go() override
Load all the registered spectra.
const Binning kNue2018Binning
const SystShifts kNoShift
void SaveTo(TDirectory *dir, const std::string &name) const override
Splits Data proportionally according to MC.
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
Standard interface to all decomposition techniques.
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
virtual void SaveTo(TDirectory *dir, const std::string &name) const =0
static Binning Simple(int n, double lo, double hi, const std::vector< std::string > &labels={})
Just return the ND truth spectra as the decomposition.