CutFlow_header.h
Go to the documentation of this file.
1 #include "CAFAna/Cuts/Cuts.h"
4 
5 namespace ana {
6  void MakeCutFlowVecs( std::vector<std::string> &NuMu_CutNames, std::vector<Cut> &NuMu_TieredCuts,
7  std::vector<std::string> &Nue_CutNames, std::vector<Cut> &Nue_TieredCuts ) {
8 
9  NuMu_CutNames.clear(); NuMu_TieredCuts.clear();
10  Nue_CutNames .clear(); Nue_TieredCuts .clear();
11 
12  const Cut NoCut = kNoCut;
13  const Cut NuMu_Qual = k3flavor2020FDVeto && kNumuQuality;
14  const Cut NuMu_Cont = NuMu_Qual && kNumuContainFD2020;
15  const Cut NuMu_CosR = NuMu_Cont && kNumu2020CosRej;
16  const Cut NuMu_PID = kNumu2020FD;
17 
18  const Cut Nue_Veto = k3flavor2020FDVeto;
19  const Cut Nue_Mask = Nue_Veto && kApplySecondAnalysisMask;
20  const Cut Nue_DQ = Nue_Mask && kNue2020RecoQuality;
21  const Cut Nue_Cont = Nue_DQ && kNue2020ProngContain;
22  const Cut Nue_En = kNue2020CorePresel;
23  const Cut Nue_CRej = Nue_En && kNue2020CosRej;
24  const Cut Nue_CVN = Nue_CRej && kNue2020PID;
25  const Cut Nue_NSlc = kNue2020FD;
26 
27  const Cut Nue_Peri_Rev = !kNue2020FD;;
28  const Cut Nue_Peri_Base = !kNue2020FD && kNue2020PeripheralBasicEventCut;
29  const Cut Nue_Peri_PID = Nue_Peri_Base && kNue2020CVN_VsCosPID;
30  const Cut Nue_Peri_NSlc = kNue2020FDPeripheral;
31 
32  // NuMu Cuts.
33  NuMu_CutNames.push_back("NuMu_NoCut"); NuMu_TieredCuts.push_back( NoCut );
34  NuMu_CutNames.push_back("NuMu_Quality"); NuMu_TieredCuts.push_back( NuMu_Qual );
35  NuMu_CutNames.push_back("NuMu_Containment"); NuMu_TieredCuts.push_back( NuMu_Cont );
36  NuMu_CutNames.push_back("NuMu_CosmicRej"); NuMu_TieredCuts.push_back( NuMu_CosR );
37  NuMu_CutNames.push_back("NuMu_FullPID"); NuMu_TieredCuts.push_back( NuMu_PID );
38  // Nue Cuts
39  Nue_CutNames .push_back("Nue_NoCut"); Nue_TieredCuts .push_back( NoCut );
40  //Nue_CutNames .push_back("Nue_Veto"); Nue_TieredCuts .push_back( Nue_Veto );
41  //Nue_CutNames .push_back("Nue_Mask"); Nue_TieredCuts .push_back( Nue_Mask );
42  Nue_CutNames .push_back("Nue_DQ" ); Nue_TieredCuts .push_back( Nue_DQ );
43  Nue_CutNames .push_back("Nue_Cont"); Nue_TieredCuts .push_back( Nue_Cont );
44  //Nue_CutNames .push_back("Nue_En" ); Nue_TieredCuts .push_back( Nue_En );
45  Nue_CutNames .push_back("Nue_CRej"); Nue_TieredCuts .push_back( Nue_CRej );
46  //Nue_CutNames .push_back("Nue_CVN" ); Nue_TieredCuts .push_back( Nue_CVN );
47  Nue_CutNames .push_back("Nue_NSlc"); Nue_TieredCuts .push_back( Nue_NSlc );
48  // Peripheral Cuts
49  //Nue_CutNames .push_back("Periph_Rev" ); Nue_TieredCuts .push_back( Nue_Peri_Rev );
50  Nue_CutNames .push_back("Periph_Base"); Nue_TieredCuts .push_back( Nue_Peri_Base );
51  //Nue_CutNames .push_back("Periph_PID" ); Nue_TieredCuts .push_back( Nue_Peri_PID );
52  Nue_CutNames .push_back("Periph_NSlc"); Nue_TieredCuts .push_back( Nue_Peri_NSlc );
53  }
54 }
Cuts and Vars for the 2020 FD DiF Study.
Definition: CutFlow_header.h:5
const Cut kNue2020ProngContain
Definition: NueCuts2020.h:37
const Cut kApplySecondAnalysisMask([](const caf::SRProxy *sr){if(sr->hdr.det!=caf::kFARDET) return true; std::bitset< 14 > binary(sr->hdr.dibmask);std::pair< int, int > planesA=calcFirstLastLivePlane(sr->slc.firstplane, binary);std::pair< int, int > planesB=calcFirstLastLivePlane(sr->slc.lastplane, binary);if((planesA.first!=planesB.first)||(planesA.second!=planesB.second)) return false;return((planesA.second-planesA.first+1)/64 >=4);})
Definition: AnalysisMasks.h:18
const Cut kNue2020PID([](const caf::SRProxy *sr){if(kIsRHC(sr)) return kNue2020PIDRHC(sr);else return kNue2020PIDFHC(sr);})
Definition: NueCuts2020.h:61
const Cut k3flavor2020FDVeto
Definition: 3flavorCuts.h:12
void MakeCutFlowVecs(std::vector< std::string > &NuMu_CutNames, std::vector< Cut > &NuMu_TieredCuts, std::vector< std::string > &Nue_CutNames, std::vector< Cut > &Nue_TieredCuts)
Definition: CutFlow_header.h:6
const Cut kNue2020CVN_VsCosPID(kNue2020CVN_VsCosPIDFunc)
const Cut kNue2020CorePresel
Definition: NueCuts2020.h:44
const Cut kNue2020CosRej([](const caf::SRProxy *sr){if(kIsRHC(sr)) return kNue2020CosRejRHC(sr);else return kNue2020CosRejFHC(sr);})
Definition: NueCuts2020.h:62
const Cut kNumuContainFD2020
Definition: NumuCuts2020.h:42
const Cut kNue2020PeripheralBasicEventCut
Definition: NueCuts2020.h:69
const Cut kNumu2020FD
Definition: NumuCuts2020.h:59
const Cut kNue2020FD
Definition: NueCuts2020.h:65
const Cut kNumu2020CosRej([](const caf::SRProxy *sr){return(sr->sel.cosrej.numucontpid2020 > 0.45);})
Definition: NumuCuts2020.h:22
const Cut kNue2020RecoQuality([](const caf::SRProxy *sr){if(sr->sel.nuecosrej.hitsperplane >=8) return false;if(!sr->vtx.elastic.IsValid) return false;if(sr->vtx.elastic.fuzzyk.npng==0) return false;return true;})
Definition: NueCuts2020.h:16
Template for Cut and SpillCut.
Definition: Cut.h:15
const Cut kNumuQuality
Definition: NumuCuts.h:17
const Cut kNue2020FDPeripheral(kNue2020FDPeripheralFunc)
const Cut kNoCut
The simplest possible cut: pass everything, used as a default.
Definition: Cut.h:117