8 class IPredictionGenerator;
17 const std::vector<std::pair<SystShifts, const IPrediction*>>& univs);
50 const std::string& savePattern =
"",
62 const std::string& savePattern =
"",
67 void SaveTo(TDirectory*
dir)
const override;
68 static std::unique_ptr<PredictionLinFit>
LoadFrom(TDirectory* dir);
75 const std::vector<double>&
ds,
76 const std::vector<std::vector<double>>& coords)
const;
82 const std::vector<const ISyst*>
fSysts;
84 std::vector<std::pair<SystShifts, const IPrediction*>>
fUnivs;
86 mutable std::vector<std::vector<double>>
fCoeffs;
Spectrum PredictComponentSyst(osc::IOscCalc *calc, const SystShifts &syst, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const override
void DebugPlotsColz(osc::IOscCalc *calc, const std::string &savePattern="", Flavors::Flavors_t flav=Flavors::kAll, Current::Current_t curr=Current::kBoth, Sign::Sign_t sign=Sign::kBoth) const
void DebugPlots(osc::IOscCalc *calc, const std::string &savePattern="", Flavors::Flavors_t flav=Flavors::kAll, Current::Current_t curr=Current::kBoth, Sign::Sign_t sign=Sign::kBoth) const
const std::vector< const ISyst * > fSysts
Simple record of shifts applied to systematic parameters.
Collection of SpectrumLoaders for many configurations.
std::vector< double > GetCoords(const SystShifts &shift) const
std::vector< std::vector< double > > fCoeffs
void DebugPlot(const ISyst *syst, osc::IOscCalc *calc, Flavors::Flavors_t flav=Flavors::kAll, Current::Current_t curr=Current::kBoth, Sign::Sign_t sign=Sign::kBoth) const
process_name opflashCryoW ana
Spectrum PredictSyst(osc::IOscCalc *calc, const SystShifts &syst) const override
Encapsulate code to systematically shift a caf::StandardRecord.
Spectrum Predict(osc::IOscCalc *calc) const override
Representation of a spectrum in any variable, with associated POT.
std::vector< std::pair< SystShifts, const IPrediction * > > fUnivs
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
Interactions of both types.
PredictionLinFit(const std::vector< const ISyst * > &systs, const IPrediction *pnom, const std::vector< std::pair< SystShifts, const IPrediction * >> &univs)
Direct creation from an ensemble of universes.
Spectrum PredictComponent(osc::IOscCalc *calc, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const override
Parameterize a collection of universes as a function of the syst knobs.
Represent the ratio between two spectra.
std::vector< double > InitFitsBin(const std::vector< std::vector< double >> &M, const std::vector< double > &ds, const std::vector< std::vector< double >> &coords) const
Helper for InitFits()
static std::unique_ptr< PredictionLinFit > LoadFrom(TDirectory *dir)
void DebugPlotColz(const ISyst *syst, osc::IOscCalc *calc, Flavors::Flavors_t flav=Flavors::kAll, Current::Current_t curr=Current::kBoth, Sign::Sign_t sign=Sign::kBoth) const
Both neutrinos and antineutrinos.
Standard interface to all prediction techniques.
Given loaders and an MC shift, Generate() generates an IPrediction.
All neutrinos, any flavor.
void SaveTo(TDirectory *dir) const override
Ratio GetRatio(const SystShifts &shift) const