Combine multiple component experiments. More...
Public Member Functions | |
MultiExperiment (std::vector< const IExperiment * > expts={}) | |
void | Add (const IExperiment *expt) |
virtual double | ChiSq (osc::IOscCalcAdjustable *osc, const SystShifts &syst=SystShifts::Nominal()) const override |
const std::vector< const IExperiment * > & | GetExperiments () const |
stan::math::var | LogLikelihood (osc::IOscCalcAdjustableStan *osc, const SystShifts &syst) const override |
Sum up log-likelihoods of sub-expts. More... | |
void | SetSystCorrelations (int idx, const std::vector< std::pair< const ISyst *, const ISyst * >> &corrs) |
virtual void | SaveTo (TDirectory *dir, const std::string &name) const override |
Static Public Member Functions | |
static std::unique_ptr< MultiExperiment > | LoadFrom (TDirectory *dir, const std::string &name) |
Protected Member Functions | |
SystShifts | ApplySystCorrs (const SystShifts &shiftsIn, const std::vector< std::pair< const ISyst *, const ISyst * >> &corrs) const |
Get a new SystShifts, applying the specified correlations to it. More... | |
Protected Attributes | |
std::vector< const IExperiment * > | fExpts |
std::vector< std::vector< std::pair< const ISyst *, const ISyst * > > > | fSystCorrelations |
Combine multiple component experiments.
Definition at line 11 of file MultiExperiment.h.
|
inline |
Definition at line 14 of file MultiExperiment.h.
References fExpts, and fSystCorrelations.
Referenced by LoadFrom().
|
inline |
Definition at line 19 of file MultiExperiment.h.
References ChiSq(), fExpts, fSystCorrelations, and ana::SystShifts::Nominal().
|
protected |
Get a new SystShifts, applying the specified correlations to it.
Definition at line 18 of file MultiExperiment.cxx.
References ana::SystShifts::GetShift(), ana::SystShifts::HasStan(), it, ana::SystShifts::RemoveShift(), and ana::SystShifts::SetShift().
Referenced by ChiSq(), GetExperiments(), and LogLikelihood().
|
overridevirtual |
Reimplemented from ana::IExperiment.
Definition at line 50 of file MultiExperiment.cxx.
References ApplySystCorrs(), fExpts, fSystCorrelations, getGoodRuns4SAM::n, runNovaSAM::ret, and SetSystCorrelations().
Referenced by Add(), and MakeSurface().
|
inline |
Definition at line 28 of file MultiExperiment.h.
References ApplySystCorrs(), dir, fExpts, compare_h5_caf::idx, LoadFrom(), LogLikelihood(), SaveTo(), SetSystCorrelations(), and string.
|
static |
Definition at line 143 of file MultiExperiment.cxx.
References ana::assert(), dir, genie::utils::style::Format(), MECModelEnuComparisons::i, ana::LoadFrom< IExperiment >(), MultiExperiment(), runNovaSAM::release, string, and cvnie::subdir.
Referenced by GetExperiments().
|
overridevirtual |
Sum up log-likelihoods of sub-expts.
Reimplemented from ana::IExperiment.
Definition at line 102 of file MultiExperiment.cxx.
References ApplySystCorrs(), fExpts, fSystCorrelations, compare_h5_caf::idx, and runNovaSAM::ret.
Referenced by GetExperiments().
|
overridevirtual |
Reimplemented from ana::IExperiment.
Definition at line 116 of file MultiExperiment.cxx.
References om::cerr, dir, allTimeWatchdog::endl, fExpts, genie::utils::style::Format(), fSystCorrelations, MECModelEnuComparisons::i, it, and tmp.
Referenced by GetExperiments().
void ana::MultiExperiment::SetSystCorrelations | ( | int | idx, |
const std::vector< std::pair< const ISyst *, const ISyst * >> & | corrs | ||
) |
For the subexperiment idx, set up a mapping between systematics
Each element in the vector is a pair from a "primary" systematic to a "secondary". When this MultiExperiment is called with a primary systematic shifted, the sub-experiment will be called with the secondary systematic set to the same value (and the primary unset).
You can pass NULL for a secondary to indicate that the systematic simply has no effect on the experiment in question and should be filtered out.
Definition at line 67 of file MultiExperiment.cxx.
References om::cout, allTimeWatchdog::endl, fSystCorrelations, compare_h5_caf::idx, and it.
Referenced by ChiSq(), futureSig_reach_singlePOTcombo_syst(), GetExperiments(), joint_fit_2017_make_fc_slice(), joint_fit_2017_make_fc_surf(), make_fc_mass_and_oct_nersc_2018(), make_fc_mass_and_oct_nersc_2019(), make_fc_mh_nersc_2018(), make_fc_mh_nersc_2019(), make_fc_oct_nersc_2018(), make_fc_oct_nersc_2019(), make_fc_slices_nersc_2018(), make_fc_slices_nersc_2018_stats(), make_fc_slices_nersc_2019(), make_fc_surfaces_2020(), make_fc_surfaces_nersc_2018(), make_fc_surfaces_nersc_2018_stats(), and make_fc_surfaces_nersc_2019().
|
protected |
Definition at line 56 of file MultiExperiment.h.
Referenced by Add(), ChiSq(), GetExperiments(), LogLikelihood(), MultiExperiment(), and SaveTo().
|
protected |
Definition at line 58 of file MultiExperiment.h.
Referenced by Add(), ChiSq(), LogLikelihood(), MultiExperiment(), SaveTo(), and SetSystCorrelations().