36 hd.push_back({
"mindistface", {
"Min. Distance to any Detector Face (cm)",
Binning::Simple(160, 0., 800.),
kDistTop}});
49 std::vector<HistDef>
ret;
62 std::vector <HistDef>
ret;
const Var kPartPtp([](const caf::SRProxy *sr){if(std::isnan(1.*sr->sel.nuecosrej.partptp)|| std::isinf(1.*sr->sel.nuecosrej.partptp)) return-5.f;return float(sr->sel.nuecosrej.partptp);})
void AddNueHistDefShowerFD(std::vector< HistDef > &hd)
Cuts and Vars for the 2020 FD DiF Study.
std::vector< HistDef > getAllNusAna01NDHistDefs()
void AddNusHistDefTruth(std::vector< HistDef > &hd)
const Var kDistTop([](const caf::SRProxy *sr){return std::min(sr->sel.nuecosrej.starttop, sr->sel.nuecosrej.stoptop);})
const Var kTrkCalEPerNHit([](const caf::SRProxy *sr){if(sr->trk.kalman.ntracks< 1) return 0.f;return sr->trk.kalman.tracks[0].calE/sr->trk.kalman.tracks[0].nhit;})
const Var kEPerHit([](const caf::SRProxy *sr){if(sr->slc.nhit >0) return 1000.0 *(sr->slc.calE/sr->slc.nhit);else return-5.;})
const Var kMinDistFace([](const caf::SRProxy *sr){const caf::SRNueCosRejProxy &cr=sr->sel.nuecosrej;float mindist=10000.;mindist=std::min(mindist, std::min(cr.starteast, cr.stopeast));mindist=std::min(mindist, std::min(cr.startwest, cr.stopwest));mindist=std::min(mindist, std::min(cr.starttop, cr.stoptop));mindist=std::min(mindist, std::min(cr.startbottom, cr.stopbottom));mindist=std::min(mindist, std::min(cr.startfront, cr.stopfront));mindist=std::min(mindist, std::min(cr.startback, cr.stopback));return(mindist > 9999.?(float)-5.:mindist);})
const Var kTrkLength([](const caf::SRProxy *sr){if(sr->trk.kalman.ntracks< 1) return-5.f;return sr->trk.kalman.tracks[0].len/100;})
const Var kTruetpT([](const caf::SRProxy *sr){return(sr->mc.nnu==0)?0.:util::pythag(sr->mc.nu[0].beam.tp.X(), sr->mc.nu[0].beam.tp.Y());})
True neutrino ancestor (off-target) pT.
void AddNueHistDefShowerND(std::vector< ana::HistDef > &hd)
const Var kPtpMassless([](const caf::SRProxy *sr){if(std::isnan(1.*sr->sel.nuecosrej.photptp)|| std::isinf(1.*sr->sel.nuecosrej.photptp)) return-1.f;return float(sr->sel.nuecosrej.photptp);})
std::vector< HistDef > getAllNusAna01FDHistDefs()
const Var kTrueE([](const caf::SRProxy *sr){assert(sr->mc.nnu==1);return sr->mc.nu[0].E;})
const Var kLongestProng([](const caf::SRProxy *sr){if(!sr->vtx.elastic.IsValid) return 0.f;if(sr->vtx.elastic.fuzzyk.npng==0) return 0.f;auto idx=sr->vtx.elastic.fuzzyk.longestidx;return float(sr->vtx.elastic.fuzzyk.png[idx].len);})
const Var kCaloE
Summed calorimetric energy of all hits in slice, uncorrected.
const Var kTruetpz([](const caf::SRProxy *sr){return(sr->mc.nnu==0)?0.:float(sr->mc.nu[0].beam.tp.z);})
True neutrino ancestor (off-target) pz.
void AddNusHistDefTrack(std::vector< HistDef > &hd)
const Var kNMichels([](const caf::SRProxy *sr){int n_me=0;for(int i=0;i< (int) sr->me.nslc;i++) if(sr->me.slc[i].mid > 1. &&sr->me.slc[i].deltat > 1200.) n_me++;for(int i=0;i< (int) sr->me.nkalman;i++) if(sr->me.trkkalman[i].mid > 0. &&sr->me.trkkalman[i].deltat > 800.) n_me++;if(n_me > 2) n_me=2;return n_me;})
Number of SlcME's assoc with slice.
void AddNueHistDefShower(std::vector< HistDef > &hd)
void AddNueHistDefVertexFD(std::vector< HistDef > &hd)
void AddNusHistDefFDExtra(std::vector< HistDef > &hd)
void AddNusHistDefAna01Basic(std::vector< HistDef > &hd)
const Var kTrueMuonE([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return 0.f;if(sr->mc.nu[0].prim.empty()) return 0.f;if(std::abs(sr->mc.nu[0].prim[0].pdg)!=13) return 0.f;return float(sr->mc.nu[0].prim[0].p.E);})
void AddNueHistDefVertexND(std::vector< HistDef > &hd)
static Binning Simple(int n, double lo, double hi, const std::vector< std::string > &labels={})
void AddNueHistDefPIDs(std::vector< HistDef > &hd)
const Var kTrkNhits([](const caf::SRProxy *sr){if(sr->trk.kalman.ntracks< 1) return 65535;return int(sr->trk.kalman.tracks[0].nhit);})