7 #include "CAFAna/Core/Binning.h" 42 std::string fname_numuRHC =
"prod_caf_R17-11-14-prod4reco.k_nd_numi_rhc_epoch8b_v1_goodruns";
63 else return float(1.5);
70 int selBin = kNueBDT3Bin(sr);
74 assert(nuEBin <= 8 && "An event with nuE > 4.5 should never happen
"); 76 int anaBin = 9*selBin + nuEBin; 80 const HistAxis kAxisFSProton("NuE
Energy / Analysis Bin
",Binning::Simple(18,0,18),kNueFSProtonAnaBinning); 81 const HistAxis kAxisCVNProng("NuE
Energy / Analysis Bin
",Binning::Simple(18,0,18),kNueCVNProngAnaBinning); 82 const HistAxis kAxisBDT3("NuE
Energy / Analysis Bin
",Binning::Simple(18,0,18),kNueBDT3AnaBinning); 83 // ------------------------------------------------------------------------------------------------- 85 // ------------------------------------------------------------------------------------------------ 87 Spectrum sQ1NumuData_FSProtonRS(ld_dataRHCNumu,kNumuCCOptimisedAxis,kSelectRSNumuND0,kNoShift,kUnweighted); 88 Spectrum sQ1NumuData_FSProtonWS(ld_dataRHCNumu,kNumuCCOptimisedAxis,kSelectWSNumuND0,kNoShift,kUnweighted); 90 Spectrum sQ1NumuDataTot(ld_dataRHCNumu,kNumuCCOptimisedAxis,kNumuCutND2018,kNoShift,kUnweighted); 91 // ------------------------------------------------------------------------------------------------ 96 // Save the predictions 97 TFile *outFile = new TFile("./WrongSign-XCheck2019-NumuDataPeriod8b.root
","RECREATE
"); 100 sQ1NumuData_FSProtonRS.SaveTo(outFile, "sQ1NumuData_FSProtonRS
"); 101 sQ1NumuData_FSProtonWS.SaveTo(outFile, "sQ1NumuData_FSProtonWS
"); 103 sQ1NumuDataTot.SaveTo(outFile, "sQ1NumuDataTot
");
Cuts and Vars for the 2020 FD DiF Study.
Proxy for caf::StandardRecord.
void SetSpillCut(const SpillCut &cut)
void make_RHC_WrongSign_Numu_Pd8Data()
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.