16 const std::string fd_MC =
"prod_sumdecaf_R17-03-01-prod3reco.l_fd_genie_nonswap_fhc_nova_v08_full_v1_numu_sa_2017";
19 const Cut kNumuCosmicRejSA(
47 MakeTextListFile(fd_MC, {kNumuFDSA ||
kNumuCutFD2017}, {
"Eventlist.txt"} , {&
kTrueE, &kIsSA, &kIsA17, &
kHadEFrac, &
kCCE, &kCCESA, &
kPPFXFluxCVWgt, &
kXSecCVWgt2017}, &
kStandardSpillCuts);
Cuts and Vars for the 2020 FD DiF Study.
Proxy for caf::StandardRecord.
const Cut kNumuContainFD([](const caf::SRProxy *sr){ std::pair< int, int > planes=calcFirstLastLivePlane(sr->slc.firstplane, std::bitset< 14 >(sr->hdr.dibmask));int planestofront=sr->slc.firstplane-planes.first;int planestoback=planes.second-sr->slc.lastplane;return( sr->slc.ncellsfromedge > 1 &&planestofront > 1 &&planestoback > 1 &&sr->sel.contain.kalfwdcell > 10 &&sr->sel.contain.kalbakcell > 10 &&sr->sel.contain.cosfwdcell > 0 &&sr->sel.contain.cosbakcell > 0);})
#define SIMPLEVAR(CAFNAME)
For Vars where literally all you need is a single CAF variable.
caf::Proxy< caf::SRCosRej > cosrej
void MakeTextListFile(const std::string &wildcard, const std::vector< Cut > &cut, const std::vector< std::string > &output, const std::vector< const Var * > &floatVars, const std::vector< const Var * > &intVars, const SpillCut *spillCut)
Make a file listing all the events passing the specified cut.
const Var kTrueE([](const caf::SRProxy *sr){assert(sr->mc.nnu==1);return sr->mc.nu[0].E;})
caf::Proxy< unsigned int > nhit
const Cut kNumuNCRej([](const caf::SRProxy *sr){return(sr->sel.remid.pid >0.75);})
caf::Proxy< caf::SRSlice > slc
caf::Proxy< float > anglekal
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
caf::Proxy< caf::SRIDBranch > sel