WrongSignCuts2018.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 ////////////////////////////////////////////
6 // //
7 // Nue CVN proton ID Binning for WS study //
8 // Also contains cuts for CVNProng method //
9 // //
10 ////////////////////////////////////////////
11 
12 namespace ana
13 {
14  // Cuts for Prong-level CVN proton ID (CVNProng)
15  extern const Cut kCVNProngProtonCt;
16 
17  extern const Cut kCVNProngProtonCtNumu;
18 
19  // Nue-style Binnings for event level CVN proton ID (FSProton) and prong level CVN proton ID (CVNProng)
20  extern const Var kNueFSProtonBin;
21 
23 
24  extern const Var kNueCVNProngBin;
25 
27 }
const Var kNueCVNProngBin([](const caf::SRProxy *sr){if(!kCVNProngProtonCt(sr)) return float(0.5);else return float(1.5);return float(-1.5);})
Cuts and Vars for the 2020 FD DiF Study.
Definition: vars.h:6
const Var kNueCVNProngAnaBinning([](const caf::SRProxy *sr){int selBin=kNueCVNProngBin(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;})
const Var kNueFSProtonBin([](const caf::SRProxy *sr){if(kCVNFSProtonScore2018(sr)< 0.4) return float(0.5);else return float(1.5);return float(-1.5);})
const Var kNueFSProtonAnaBinning([](const caf::SRProxy *sr){int selBin=kNueFSProtonBin(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;})
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;})
const Cut kCVNProngProtonCt([](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.79) continue;count++;}return count >0;})
Template for Cut and SpillCut.
Definition: Cut.h:15