5 #include "CAFAna/Core/Cut.h" 6 #include "CAFAna/Core/HistAxis.h" 13 #include "TDirectory.h" 14 #include "TObjString.h" 33 std::vector<std::string>
labels,
39 static void PlotDebug(
const std::vector<TH1 *> universes,
44 static void PlotDebug(
const std::vector<TH1 *> universes,
60 const Cut * signal_cut,
61 const Cut * selection_cut);
91 std::vector<SystematicDef*> syst_defs,
97 std::vector<SystematicDef*> mv_defs,
98 std::map<SystematicDef*, Multiverse * > mv_signal,
99 std::map<SystematicDef*, Multiverse * > mv_bkgd,
100 std::map<SystematicDef*, Multiverse * > mv_selected_signal,
101 std::map<SystematicDef*, Multiverse * > mv_selected_bkgd,
102 std::map<SystematicDef*, Multiverse * > mv_selected);
122 TDirectory * save_dir,
std::string plot_dump =
".",
137 std::map< SystematicDef*, UpDownPair<Spectrum> >
fSignal;
138 std::map< SystematicDef*, UpDownPair<Spectrum> >
fBkgd;
141 std::map< SystematicDef*, UpDownPair<Spectrum> >
fSelected;
145 std::map< SystematicDef*, Multiverse *>
fMVBkgd;
167 if(copy.up) ret.
up = std::move(copy.up);
168 if(copy.down) ret.
down = std::move(copy.down);
175 TDirectory *
tmp = gDirectory;
177 TObjString(
"UpDownPair").Write(
"type");
180 save.
up->SaveTo(dir,
"up");
181 save.
down->SaveTo(dir,
"down");
184 save.
up->SaveTo(dir,
"onesided");
191 TObjString * ptag = (TObjString*) dir->Get(
"type");
192 assert(ptag->GetString() ==
"UpDownPair");
194 if(dir->GetDirectory(
"onesided")) {
std::vector< SystematicDef * > GetMVSystDefs()
UpDownPair< TH1 > ToUpDownHist(Multiverse *mv, const TH1 *h_nominal)
Cuts and Vars for the 2020 FD DiF Study.
std::map< SystematicDef *, UpDownPair< Spectrum > > fSignal
std::map< SystematicDef *, UpDownPair< Spectrum > > fSelectedBkgd
CutOptimization(const HistAxis *hist_axis, const Cut *signal_cut, const Cut *selection_cut)
const HistAxis * fOptiHistAxis
static std::unique_ptr< CutOptimization > LoadFrom(TDirectory *dir, const std::string &name)
std::map< SystematicDef *, Multiverse * > fMVBkgd
static TH1 * ToHist(const Spectrum *spec, OptimizeMethod_t method, double POT=-1)
std::map< SystematicDef *, UpDownPair< Spectrum > > fBkgd
void DefineNominal(SystematicDef *nominal)
UpDownPair< Spectrum > CopyUpDownSpectrum(const UpDownPair< Spectrum > ©)
Representation of a spectrum in any variable, with associated POT.
CutOptimization & operator=(const CutOptimization &rhs)
static void PlotDebug(TH1 *hist, std::string draw_option, std::string title, std::string name)
Spectrum * fNominalSignal
static std::unique_ptr< Spectrum > LoadFrom(TDirectory *dir, const std::string &name)
std::map< SystematicDef *, Multiverse * > fMVSelectedBkgd
void SaveTo(TDirectory *dir, const std::string &name) const
void DefineMultiverseSystematic(SystematicDef *syst, std::vector< Var > mv_weights)
static TH1 * Efficiency(TH1 *num, TH1 *denom, OptimizeMethod_t method)
const Cut * fSelectionCut
Spectrum * fNominalSelectedSignal
void SetSpillCuts(const SpillCut &)
static void Integrate(TH1 *&result, const TH1 *tmp, OptimizeMethod_t method)
std::vector< float > Spectrum
std::map< SystematicDef *, UpDownPair< Spectrum > > fSelectedSignal
void save(bool IsData, bool Bad)
std::vector< double > POT
void Optimize(OptimizeMethod_t method, FOM_t fom, double data_pot, TDirectory *save_dir, std::string plot_dump=".", bool debug=false)
void OptimizedSigmaOverSigma(OptimizeMethod_t method, double data_pot, TDirectory *save_dir, std::string plot_dump=".", bool debug=false)
Spectrum * fNominalSelected
std::vector< SystematicDef * > GetSystDefs()
~CutOptimization()=default
void SaveToUpDownSpectra(const UpDownPair< Spectrum > &save, TDirectory *dir)
void DefineSystematic(SystematicDef *syst)
std::map< SystematicDef *, Multiverse * > fMVSelectedSignal
std::map< SystematicDef *, UpDownPair< Spectrum > > fSelected
assert(nhit_max >=nhit_nbins)
std::vector< SystematicDef * > fSystDefs
UpDownPair< Spectrum > LoadFromUpDownSpectra(TDirectory *dir)
std::vector< SystematicDef * > GetAllSystDefs()
TH1 * AbsUncertaintySquared(const UpDownPair< TH1 > syst, const TH1 *nominal) const
std::map< SystematicDef *, Multiverse * > fMVSelected
std::vector< SystematicDef * > fMVSystDefs
SystematicDef * fNominalSystDef
Spectrum * fNominalSelectedBkgd
std::map< SystematicDef *, Multiverse * > fMVSignal
TH1 * AbsUncertainty(const UpDownPair< TH1 > syst, const TH1 *nominal) const