3 #include "CAFAna/Core/Var.h" 20 for (
unsigned int PrimL=0; PrimL < sr->
mc.
nu[0].prim.size(); ++PrimL) {
22 if (
abs(sr->
mc.
nu[0].prim[PrimL].pdg) != WhPDG )
continue;
26 if (sr->
mc.
nu[0].prim[PrimL].totEscE>0.0) MyEnergy += sr->
mc.
nu[0].prim[PrimL].totEscE;
29 if(sr->
mc.
nu[0].prim[PrimL].p.E<0.0)
continue;
32 if (sr->
mc.
nu[0].prim[PrimL].pdg == 2112) {
34 }
else if (sr->
mc.
nu[0].prim[PrimL].pdg == 2212) {
36 }
else if (
abs(sr->
mc.
nu[0].prim[PrimL].pdg) == 211) {
37 E = sr->
mc.
nu[0].prim[PrimL].p.E;
38 }
else if (sr->
mc.
nu[0].prim[PrimL].pdg == 111) {
39 E = sr->
mc.
nu[0].prim[PrimL].p.E;
40 }
else if (
abs(sr->
mc.
nu[0].prim[PrimL].pdg) == 13) {
41 E = sr->
mc.
nu[0].prim[PrimL].p.E;
42 }
else if (sr->
mc.
nu[0].prim[PrimL].pdg == 22 ) {
43 E = sr->
mc.
nu[0].prim[PrimL].p.E;
44 }
else if (
abs(sr->
mc.
nu[0].prim[PrimL].pdg) == 321) {
45 E = sr->
mc.
nu[0].prim[PrimL].p.E;
46 }
else if (
abs(sr->
mc.
nu[0].prim[PrimL].pdg) == 11) {
47 E = sr->
mc.
nu[0].prim[PrimL].p.E;
53 if (DEBUGGING)
std::cout <<
"\tThe total " << (GetUncontE==
true?
"uncontained":
"kinetic") <<
" energy from " << WhPDG <<
" was " << MyEnergy <<
std::endl;
61 ThisEn = sr->
mc.
nu[0].E;
68 for (
unsigned int PrimL=0; PrimL < sr->
mc.
nu[0].prim.size(); ++PrimL) {
69 TotEn += sr->
mc.
nu[0].prim[PrimL].totEscE;
225 if(sr->
mc.
nu[0].E<=0.0)
return -5.0;
226 else return (E/sr->
mc.
nu[0].E);
237 if(sr->
mc.
nu[0].E<=0.0)
return -5.0;
238 else return (E/sr->
mc.
nu[0].E);
244 if(sr->
mc.
nu[0].E<=0.0)
return -5.0;
365 std::cout <<
"\nLooking at event " << sr->
hdr.
evt <<
", there are " << sr->
mc.
nu.size() <<
", the 0th neutrino is a " << sr->
mc.
nu[0].pdg <<
", with Energy " << sr->
mc.
nu[0].E
366 <<
". There were a total of " << sr->
mc.
nu[0].prim.size() <<
" other primaries associated with that neutrino, " << sr->
mc.
nu[0].nneutron <<
" were neutrons." 373 for (
unsigned int PrimL=0; PrimL < sr->
mc.
nu[0].prim.size(); ++PrimL) {
374 std::cout <<
"\t\tLooking at Prim " << PrimL <<
" of " << sr->
mc.
nu[0].prim.size() <<
", it was a " << sr->
mc.
nu[0].prim[PrimL].pdg
375 <<
", VisE " << sr->
mc.
nu[0].prim[PrimL].visE <<
", VisEInslc " << sr->
mc.
nu[0].prim[PrimL].visEinslc <<
", E0 " << sr->
mc.
nu[0].prim[PrimL].p.E
376 <<
", enteringE " << sr->
mc.
nu[0].prim[PrimL].enteringE <<
", totEscE " << sr->
mc.
nu[0].prim[PrimL].totEscE
378 TotEn += sr->
mc.
nu[0].prim[PrimL].totEscE;
382 NPar = sr->
mc.
nu[0].nneutron;
390 NPar = sr->
mc.
nu[0].nproton;
398 NPar = sr->
mc.
nu[0].npiplus + sr->
mc.
nu[0].npiminus;
406 NPar = sr->
mc.
nu[0].npizero;
const Var kProtonEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 2212, false);})
const Var kPi0EnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 111, false);})
double CalcPrimE(const caf::SRProxy *sr, int WhPDG, bool GetUncontE)
const Var kTotUncontEn([](const caf::SRProxy *sr){float TotEn=0.0;for(unsigned int PrimL=0;PrimL< sr->mc.nu[0].prim.size();++PrimL){TotEn+=sr->mc.nu[0].prim[PrimL].totEscE;} std::cout<< "Energy "<< TotEn<< " Run "<< sr->hdr.run<< ", SubRun "<< sr->hdr.subrun<< ", Cycle "<< sr->hdr.cycle<< ", Batch "<< sr->hdr.batch<< ", Event "<< sr->hdr.evt<< ", Slice "<< sr->hdr.subevt<< std::endl;return TotEn;})
const Var kElectronEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 11, false);return ThisEn;})
Cuts and Vars for the 2020 FD DiF Study.
const Var kUncontPi0EnFracTot([](const caf::SRProxy *sr){return CalcFracE(sr, 111, true, true);})
const Var kTotUncontEnFrac([](const caf::SRProxy *sr){if(sr->mc.nu[0].E<=0.0) return-5.0;else return(kTotUncontEn(sr)/sr->mc.nu[0].E);})
caf::Proxy< caf::SRHeader > hdr
const Var kUncontMiscEn([](const caf::SRProxy *sr){return kTotUncontEn(sr)-kUncontMuonEn(sr)-kUncontNeutronEn(sr)-kUncontProtonEn(sr)-kUncontPionEn(sr)-kUncontPi0En(sr)-kUncontPhotonEn(sr)-kUncontKaonEn(sr)-kUncontElectronEn(sr);})
const Var kElectronEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 11, false);})
double CalcFracE(const caf::SRProxy *sr, int WhPDG, bool GetUncontE, bool UncontOverTotal=false)
Proxy for caf::StandardRecord.
caf::Proxy< std::vector< caf::SRNeutrino > > nu
const Var kUncontPhotonEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 22, true);return ThisEn;})
const Var kUncontPionEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 211, true);})
const Var kUncontKaonEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 321, true);})
const Var kUncontProtonEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 2212, true);})
const Var kUncontElectronEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 11, true);return ThisEn;})
const Var kKaonEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 321, false);return ThisEn;})
const Var kKaonEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 321, false);})
const Var kUncontNeutronEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 2112, true);})
const Var kUncontProtonEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 2212, true);return ThisEn;})
const Var kUncontNeutronEnFracTot([](const caf::SRProxy *sr){return CalcFracE(sr, 2112, true, true);})
const Var kNPi0s([](const caf::SRProxy *sr){float NPar=0.;NPar=sr->mc.nu[0].npizero;return NPar;})
const Var kUncontProtonEnFracTot([](const caf::SRProxy *sr){return CalcFracE(sr, 2212, true, true);})
const Var kUncontMuonEnFracTot([](const caf::SRProxy *sr){return CalcFracE(sr, 13, true, true);})
const Var kUncontMuonEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 13, true);return ThisEn;})
static const float MassProt
const Var kUncontElectronEnFracTot([](const caf::SRProxy *sr){return CalcFracE(sr, 11, true, true);})
const Var kNNeutrons([](const caf::SRProxy *sr){float NPar=0.;if(DEBUGGING){std::cout<< "\nLooking at event "<< sr->hdr.evt<< ", there are "<< sr->mc.nu.size()<< ", the 0th neutrino is a "<< sr->mc.nu[0].pdg<< ", with Energy "<< sr->mc.nu[0].E<< ". There were a total of "<< sr->mc.nu[0].prim.size()<< " other primaries associated with that neutrino, "<< sr->mc.nu[0].nneutron<< " were neutrons."<< std::endl;if(kIsDytmanMEC(sr)) std::cout<< " The neutrino was a MEC"<< std::endl;else if(kIsDIS(sr)) std::cout<< " The neutrino was a DIS"<< std::endl;else if(kIsRes(sr)) std::cout<< " The neutrino was a Resonance"<< std::endl;else if(kIsCoh(sr)) std::cout<< " The neutrino was a Coherent"<< std::endl;float TotEn=0.0;for(unsigned int PrimL=0;PrimL< sr->mc.nu[0].prim.size();++PrimL){std::cout<< "\t\tLooking at Prim "<< PrimL<< " of "<< sr->mc.nu[0].prim.size()<< ", it was a "<< sr->mc.nu[0].prim[PrimL].pdg<< ", VisE "<< sr->mc.nu[0].prim[PrimL].visE<< ", VisEInslc "<< sr->mc.nu[0].prim[PrimL].visEinslc<< ", E0 "<< sr->mc.nu[0].prim[PrimL].p.E<< ", enteringE "<< sr->mc.nu[0].prim[PrimL].enteringE<< ", totEscE "<< sr->mc.nu[0].prim[PrimL].totEscE<< std::endl;TotEn+=sr->mc.nu[0].prim[PrimL].totEscE;}std::cout<< "\tThe total uncontained energy was "<< TotEn<< std::endl;NPar=sr->mc.nu[0].nneutron;}return NPar;})
const Var kUncontPionEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 211, true);return ThisEn;})
const Var kMuonEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 13, false);})
const Var kPionEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 211, false);return ThisEn;})
const Var kPi0En([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 111, false);return ThisEn;})
const Var kUncontPi0En([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 111, true);return ThisEn;})
caf::Proxy< caf::SRTruthBranch > mc
const Var kUncontNeutronEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 2112, true);return ThisEn;})
const Var kPhotonEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 22, false);return ThisEn;})
const Var kMuonEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 13, false);return ThisEn;})
const Var kUncontElectronEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 11, true);})
const Var kNeutronEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 2112, false);return ThisEn;})
const Var kProtonEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 2212, false);return ThisEn;})
const Var kNuMinusAll([](const caf::SRProxy *sr){return kNeutrinoEn(sr)-kMuonEn(sr)-kNeutronEn(sr)-kProtonEn(sr)-kPionEn(sr)-kPi0En(sr)-kPhotonEn(sr)-kKaonEn(sr)-kElectronEn(sr);})
const Var kUncontMuonEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 13, true);})
static const float MassNeut
const Var kUncontKaonEnFracTot([](const caf::SRProxy *sr){return CalcFracE(sr, 321, true, true);})
const Var kUncontPi0EnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 111, true);})
const Var kNeutrinoEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=sr->mc.nu[0].E;return ThisEn;})
const Var kPionEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 211, false);})
static const bool DEBUGGING
const Var kNeutronEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 2112, false);})
const Var kUncontKaonEn([](const caf::SRProxy *sr){float ThisEn=0.;ThisEn=CalcPrimE(sr, 321, true);return ThisEn;})
const Var kUncontPhotonEnFracTot([](const caf::SRProxy *sr){return CalcFracE(sr, 22, true, true);})
const Var kUncontPionEnFracTot([](const caf::SRProxy *sr){return CalcFracE(sr, 211, true, true);})
const Var kUncontPhotonEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 22, true);})
const Var kPhotonEnFrac([](const caf::SRProxy *sr){return CalcFracE(sr, 22, false);})