7 #include "CAFAna/Core/Binning.h" 43 std::string fname_numuRHC =
"prod_caf_R17-11-14-prod4reco.k_nd_numi_rhc_epoch7d_v1_goodruns";
64 else return float(1.5);
71 int selBin = kNueBDT3Bin(sr);
75 assert(nuEBin <= 8 && "An event with nuE > 4.5 should never happen
"); 77 int anaBin = 9*selBin + nuEBin; 81 const HistAxis kAxisFSProton("NuE
Energy / Analysis Bin
",Binning::Simple(18,0,18),kNueFSProtonAnaBinning); 82 const HistAxis kAxisCVNProng("NuE
Energy / Analysis Bin
",Binning::Simple(18,0,18),kNueCVNProngAnaBinning); 83 const HistAxis kAxisBDT3("NuE
Energy / Analysis Bin
",Binning::Simple(18,0,18),kNueBDT3AnaBinning); 84 // ------------------------------------------------------------------------------------------------- 86 // ------------------------------------------------------------------------------------------------ 88 Spectrum sQ1NumuData_FSProtonRS(ld_dataRHCNumu,kNumuCCOptimisedAxis,kSelectRSNumuND0,kNoShift,kUnweighted); 89 Spectrum sQ1NumuData_FSProtonWS(ld_dataRHCNumu,kNumuCCOptimisedAxis,kSelectWSNumuND0,kNoShift,kUnweighted); 91 Spectrum sQ1NumuDataTot(ld_dataRHCNumu,kNumuCCOptimisedAxis,kNumuCutND2018,kNoShift,kUnweighted); 92 // ------------------------------------------------------------------------------------------------ 97 // Save the predictions 98 TFile *outFile = new TFile("./WrongSign-XCheck2019-NumuDataPeriod7d.root
","RECREATE
"); 101 sQ1NumuData_FSProtonRS.SaveTo(outFile, "sQ1NumuData_FSProtonRS
"); 102 sQ1NumuData_FSProtonWS.SaveTo(outFile, "sQ1NumuData_FSProtonWS
"); 104 sQ1NumuDataTot.SaveTo(outFile, "sQ1NumuDataTot
");
Cuts and Vars for the 2020 FD DiF Study.
void make_RHC_WrongSign_Numu_Pd7dData()
Proxy for caf::StandardRecord.
void SetSpillCut(const SpillCut &cut)
const Var kNueEnergy2018([](const caf::SRProxy *sr){if(!sr->vtx.elastic.IsValid) return-1.0;if(sr->vtx.elastic.fuzzyk.npng< 1) return-1.0;if(kIsRHC(sr)) return kNueEnergyRHC(sr);else return kNueEnergyFHC(sr);})
const Var kCVNFSProtonScore2018([](const caf::SRProxy *sr){return CVNFinalStateScore2018(sr, 2212);})
Proton score from CVN Final State labels, using Prod3Train CVN.
const Var kCVNSSe([](const caf::SRProxy *sr){throw std::runtime_error("kCVNSSe is no longer available. Fix your macro so you don't use it.");return-5.;})
2018 nue PID
const Cut kCVNProngProtonCtNumu([](const caf::SRProxy *sr){ int count=0;if(sr->vtx.elastic.fuzzyk.npng==1) return false;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){if(sr->vtx.elastic.fuzzyk.png[i].cvnpart.pdgmax!=2212) continue;if(util::pythag(sr->vtx.elastic.vtx.X()-sr->vtx.elastic.fuzzyk.png[i].start.X(), sr->vtx.elastic.vtx.Y()-sr->vtx.elastic.fuzzyk.png[i].start.Y(), sr->vtx.elastic.vtx.Z()-sr->vtx.elastic.fuzzyk.png[i].start.Z()) > 20) continue;if(sr->vtx.elastic.fuzzyk.png[i].cvnpart.maxval< 0.72) continue;count++;}return count >0;})
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
const Var kAntiNumuBDTCVN
assert(nhit_max >=nhit_nbins)
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.