8 #include "TDirectory.h" 10 #include "TObjString.h" 15 REGISTER_LOADFROM(
"PredictionCombinePeriods", IPrediction, PredictionCombinePeriods);
71 std::vector<std::string>
labels;
72 std::vector<Binning>
bins;
78 const double targetPOT =
it.second;
109 Eigen::MatrixXd asum;
111 std::vector<std::string>
labels;
112 std::vector<Binning>
bins;
118 const double targetPOT =
it.second;
121 Eigen::MatrixXd
h = s.
GetEigen(targetPOT);
166 TDirectory*
tmp = gDirectory;
168 dir = dir->mkdir(name.c_str());
171 TObjString(
"PredictionCombinePeriods").Write(
"type");
178 for(
unsigned int i = 0;
i < fPreds.size(); ++
i)
193 dir = dir->GetDirectory(name.c_str());
196 TObjString*
tag = (TObjString*)dir->Get(
"type");
198 assert(tag->GetString() ==
"PredictionCombinePeriods");
204 std::vector<std::pair<const IPrediction*, double>> preds;
206 for(
int i = 0;
i < pots->GetNrows(); ++
i){
209 preds.emplace_back(pred, (*pots)[
i]);
const std::vector< Binning > & GetBinnings() const
Pass neutrinos through unchanged.
OscillatableSpectrum ComponentCC(int from, int to) const override
Spectrum PredictSyst(osc::IOscCalc *calc, const SystShifts &syst) const override
_HistAxis< Var > HistAxis
Cuts and Vars for the 2020 FD DiF Study.
static std::unique_ptr< PredictionCombinePeriods > LoadFrom(TDirectory *dir, const std::string &name)
~PredictionCombinePeriods()
Simple record of shifts applied to systematic parameters.
General interface to oscillation calculators.
virtual Spectrum PredictComponentSyst(osc::IOscCalc *calc, const SystShifts &syst, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const
const Eigen::ArrayXd & GetEigen() const
NB these don't have POT scaling. For expert high performance ops only!
std::vector< double > Spectrum
PredictionCombinePeriods(const std::vector< std::pair< const IPrediction *, double >> &preds)
Spectrum ComponentNCTotal() const override
static SystShifts Nominal()
std::vector< std::pair< const IPrediction *, double > > fPreds
Representation of a spectrum in any variable, with associated POT.
const std::vector< std::string > & GetLabels() const
Spectrum PredictComponentSyst(osc::IOscCalc *calc, const SystShifts &syst, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const override
Interactions of both types.
virtual OscillatableSpectrum ComponentCC(int from, int to) const
const std::vector< Binning > & GetBinnings() const
Spectrum ComponentNCAnti() const override
std::unique_ptr< IPrediction > LoadFrom< IPrediction >(TDirectory *dir, const std::string &label)
osc::NoOscillations noosc
Spectrum PredictComponent(osc::IOscCalc *calc, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const override
Spectrum ComponentNC() const override
REGISTER_LOADFROM("BENDecomp", IDecomp, BENDecomp)
Neutral-current interactions.
assert(nhit_max >=nhit_nbins)
Eigen::MatrixXd GetEigen(double pot) const
Both neutrinos and antineutrinos.
Standard interface to all prediction techniques.
void Format(TGraph *gr, int lcol, int lsty, int lwid, int mcol, int msty, double msiz)
const std::vector< std::string > & GetLabels() const
All neutrinos, any flavor.
Spectrum with true energy information, allowing it to be oscillated
void SaveTo(TDirectory *dir, const std::string &name) const override
Spectrum Predict(osc::IOscCalc *calc) const override