8 #include "CAFAna/Core/HistAxis.h" 13 #include "CAFAna/Cuts/NueCutsSecondAna.h" 56 SpectrumLoader loader_data(
"def_snapshot prod_caf_R19-11-18-prod5reco.d.f.h_nd_numi_fhc_period235910_v1 with limit 200");
57 SpectrumLoader loader_mc(
"def_snapshot prod_caf_R19-11-18-prod5reco.d.h_nd_genie_N1810j0211a_nonswap_fhc_nova_v08_full_v1 with limit 200");
72 TFile*
fout =
new TFile(filename.c_str(),
"recreate");
74 data->
SaveTo(fout,
"data");
75 mc_nom->
SaveTo(fout,
"mc_nom");
76 decompBEN->
SaveTo(fout,
"decompBEN");
77 decompMichel->
SaveTo(fout,
"decompMichel");
78 decompProportional->
SaveTo(fout,
"decompProportional");
84 TFile*
fin =
new TFile(filename.c_str(),
"read");
88 double pot = spec_data->
POT();
103 nue_ratio->Divide(nue_nom);
106 antinue_ratio->Divide(antinue_nom);
109 antinumu_ratio->Divide(antinumu_nom);
112 numu_ratio->Divide(numu_nom);
115 nc_ratio->Divide(nc_nom);
117 TFile* outputFile =
new TFile(
"nue2017_decomp_ratios.root",
"update");
122 antinue_ratio->Write();
123 antinumu_ratio->Write();
Cuts and Vars for the 2020 FD DiF Study.
const std::vector< T > & GetVars() const
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.
virtual Spectrum AntiNumuComponent() const override
virtual Spectrum NCComponent() const override
void SetSpillCut(const SpillCut &cut)
virtual Spectrum NumuComponent() const override
Representation of a spectrum in any variable, with associated POT.
virtual Spectrum AntiNueComponent() const override
static std::unique_ptr< MichelDecomp > LoadFrom(TDirectory *dir, const std::string &name)
Spectrum Unoscillated() const
const XML_Char const XML_Char * data
const Binning kNue2020Binning
virtual void SaveTo(TDirectory *dir, const std::string &name) const override
static std::unique_ptr< Spectrum > LoadFrom(TDirectory *dir, const std::string &name)
virtual Spectrum NueComponent() const override
void SaveTo(TDirectory *dir, const std::string &name) const override
virtual void Go() override
Load all the registered spectra.
void SaveTo(TDirectory *dir, const std::string &name) const
std::vector< float > Spectrum
const SystShifts kNoShift
void SaveTo(TDirectory *dir, const std::string &name) const override
const std::vector< Binning > & GetBinnings() const
Splits Data proportionally according to MC.
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
const Var kNue2020AnaBin([](const caf::SRProxy *sr){int selBin=kNue2020SelectionBin(sr);float nuE=kNueEnergy2020(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;})
Use this Analysis Binning for Ana2020, official Binning.
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
static NullLoader kNullLoader
Dummy loader that doesn't load any files.
const std::vector< std::string > & GetLabels() const
void nue_decomp_scales(bool makeFile=false)