7 #include "TObjString.h" 26 &&
"Number of kinematic bins given to FitInAnaBinsBkgdEstimator" 27 " does not match number of reconstructed bins in analysis");
30 for (
int kinIdx = 0; kinIdx <
int(
fCompPreds.size()); kinIdx++){
38 double sigscale = seed.GetShift(systs.back());
39 double signom =
fCompPreds[kinIdx]->GetSpectra().back()->Integral(pot);
40 asig[kinIdx+1] = (1+sigscale)*signom;
45 return fData - sigest;
50 TDirectory *
tmp = gDirectory;
52 dir = dir->mkdir(name.c_str());
55 TObjString(
"FitInAnaBinsBkgdEstimator").Write(
"type");
61 nanabins.Write(
"nanabins");
65 fDatas[
i] ->SaveTo(dir,
"fDatas_" +idxstr);
75 std::unique_ptr<FitInAnaBinsBkgdEstimator>
78 dir = dir->GetDirectory(name.c_str());
84 assert(nanabins->GetNoElements()==1 &&
"N MCBkgds is not 1.");
85 std::vector<Spectrum*> datas;
86 std::vector<PredictionScaleComp*>
ps;
87 for (
int i = 0;
i < (*nanabins)[0];
i++){
89 ps.push_back(ana::LoadFrom<PredictionScaleComp>(dir,
"fCompPreds_"+idxstr).
release());
90 datas.push_back(ana::LoadFrom<Spectrum>(dir,
"fDatas_"+idxstr).
release());
95 return std::unique_ptr<FitInAnaBinsBkgdEstimator>(
const std::vector< Binning > & GetBinnings() const
std::vector< PredictionScaleComp * > fCompPreds
Cuts and Vars for the 2020 FD DiF Study.
Simple record of shifts applied to systematic parameters.
FitInAnaBinsBkgdEstimator(SpectrumLoaderBase &lMC, SpectrumLoaderBase &lDA, const HistAxis axisana, const HistAxis axisfit, const Cut sel, std::vector< Cut > kinsel, std::vector< std::pair< Cut, bool > > bkgdtypes, Cut isSig, const SystShifts &shiftmc=kNoShift, const SystShifts &shiftda=kNoShift, const Var &weimc=kUnweighted, const Var &weida=kUnweighted)
const Eigen::ArrayXd & GetEigen() const
NB these don't have POT scaling. For expert high performance ops only!
Representation of a spectrum in any variable, with associated POT.
const XML_Char const XML_Char * data
std::vector< Spectrum * > fDatas
void SaveTo(TDirectory *dir, const std::string &name) const override
void SaveTo(TDirectory *dir, const std::string &name) const
Spectrum Background() const override
static std::unique_ptr< FitInAnaBinsBkgdEstimator > LoadFrom(TDirectory *dir, const std::string &name)
assert(nhit_max >=nhit_nbins)
const std::vector< std::string > & GetLabels() const
double Livetime() const
Seconds. For informational purposes only. No calculations use this.
_HistAxis< Var > HistAxis
std::string to_string(ModuleType const mt)
Compare a single data spectrum to the MC + cosmics expectation.
Perform MINUIT fits in one or two dimensions.