3 #include "sbnanaobj/StandardRecord/Proxy/SRProxy.h"
15 return nu->pdg == pdg && nu->iscc &&
17 nu->targetPDG == 1000180400 &&
26 return nu->pdg == pdg && !nu->iscc &&
28 nu->targetPDG == 1000180400 &&
38 const double GeV2perm2 = 2.56819e31;
40 return GeV2perm2/sr->truth.xsec;
50 if(slc->truth.index < 0)
return false;
74 ret->GetXaxis()->SetTitle(
"True neutrino energy (GeV)");
76 std::string ytitle =
"Flux #times nuclei (";
78 case +12: ytitle +=
"#nu_e";
break;
79 case -12: ytitle +=
"#bar{#nu}_e";
break;
80 case +14: ytitle +=
"#nu_{#mu}";
break;
81 case -14: ytitle +=
"#bar{#nu}_{#mu}";
break;
87 ret->GetYaxis()->SetTitle(ytitle.c_str());
TH1D * ToTH1(double exposure, Color_t col=kBlack, Style_t style=kSolid, EExposureType expotype=kPOT, EBinType bintype=kBinContent) const
Histogram made from this Spectrum, scaled to some exposure.
Represent the binning of a Spectrum's x-axis.
Divide bin contents by bin widths.
TH1D * ToTH1(double exposure, Color_t col=kBlack, Style_t style=kSolid, EBinType bintype=kBinContent)
process_name opflashCryoW ana
caf::Proxy< caf::SRSlice > SRSliceProxy
_Var< caf::SRSliceProxy > Var
Representation of a variable to be retrieved from a caf::StandardRecord object.
Representation of a spectrum in any variable, with associated POT.
_Cut< caf::SRSliceProxy > Cut
const Var kInvXSec([](const caf::SRSliceProxy *sr){const double GeV2perm2=2.56819e31;return GeV2perm2/sr->truth.xsec;})
FluxTimesNuclei(SpectrumLoaderBase &loader, const Binning &bins, const Cut &fidvol, int pdg)
pdg PDG code for neutrino, -14,-12,+12,14
const SystShifts kNoShift
Base class for the various types of spectrum loader.
#define SIMPLEVAR(CAFNAME)
For Vars where literally all you need is a single CAF variable.
bool IsNCQEOnArgon(const caf::SRTrueInteractionProxy *nu, int pdg)
bool IsCCQEOnArgon(const caf::SRTrueInteractionProxy *nu, int pdg)
neutral current quasi-elastic
charged current quasi-elastic
Template for Cut and SpillCut.
Cut IsCCQEOnArgonCut(int pdg)