6 #include "CAFAna/Core/HistCache.h" 10 #include "NuXAna/nus/Nus19FHC/Utilities.h" 47 cherenkov.name =
"Cherenkov";
50 cherenkov.onesided =
true;
57 MultiSyst abs_calib_nd;
58 abs_calib_nd.name =
"AbsCalib";
61 abs_calib_nd.onesided =
false;
62 MultiSyst abs_calib_fd;
63 abs_calib_fd.name =
"AbsCalib";
64 abs_calib_fd.systs = {
nullptr,
65 SystRegistry::ShortNameToSyst(kNusFHCFarDet.GetTag()+
"_AbsCalib")};
66 abs_calib_fd.onesided =
false;
67 SystConcat sc_abs_calib({
kNusFHCNearDet, kNusFHCFarDet } , {}, {abs_calib_nd,abs_calib_fd});
71 osc::OscCalculatorSterileTrivial calc_trivial;
72 TH1D* h_nd = nd_pred_systs->
Predict(&calc_trivial).
ToTH1(12e20);
73 TH1D* h_fd = fd_pred_systs->
Predict(&calc_trivial).
ToTH1(12e20);
74 size_t nbins_nd = h_nd->GetNbinsX(), nbins_fd = h_fd->GetNbinsX();
75 v_nd.ResizeTo(nbins_nd);
76 v_fd.ResizeTo(nbins_fd);
77 v_both.ResizeTo(nbins_nd+nbins_fd);
78 for (
size_t i = 0;
i < nbins_nd; ++
i) {
79 v_nd(
i) = h_nd->GetBinContent(
i+1);
80 v_both(
i) = h_nd->GetBinContent(
i+1);
82 for (
size_t i = 0;
i < nbins_fd; ++
i) {
83 v_fd(
i) = h_fd->GetBinContent(
i+1);
84 v_both(nbins_nd+
i) = h_fd->GetBinContent(
i+1);
86 HistCache::Delete(h_nd);
87 HistCache::Delete(h_fd);
92 TFile* f_out = TFile::Open(
"covmx.root",
"recreate");
93 TFile* f_plot = TFile::Open(
"covmx_plots.root",
"recreate");
104 CovarianceMatrix mx_cherenkov({nd_pred_systs,fd_pred_systs}, {12e20,12e20}, sc_cherenkov);
105 mx_cherenkov.PredictCovMx({nd_pred_systs,fd_pred_systs}, {12e20,12e20},
calc);
106 mx_cherenkov.SaveTo(f_out->mkdir(
"cherenkov"));
107 TH2D* h_cherenkov = mx_cherenkov.GetCovMxRelativeTH2(v_both);
108 f_plot->WriteTObject(h_cherenkov,
"cherenkov");
109 HistCache::Delete(h_cherenkov);
112 CovarianceMatrix mx_abs_calib({nd_pred_systs,fd_pred_systs}, {12e20,12e20}, sc_abs_calib);
113 mx_abs_calib.PredictCovMx({nd_pred_systs,fd_pred_systs}, {12e20,12e20},
calc);
114 mx_abs_calib.SaveTo(f_out->mkdir(
"abs_calib"));
115 TH2D* h_abs_calib = mx_abs_calib.GetCovMxRelativeTH2(v_both);
116 f_plot->WriteTObject(h_abs_calib,
"abs_calib");
117 HistCache::Delete(h_abs_calib);
120 delete nd_pred_systs;
121 delete fd_pred_systs;
Cuts and Vars for the 2020 FD DiF Study.
TH1D * ToTH1(double exposure, Color_t col=kBlack, Style_t style=kSolid, EExposureType expotype=kPOT, EBinType bintype=kBinContent) const
Histogram made from this Spectrum, scaled to some exposure.
virtual Spectrum Predict(osc::IOscCalc *calc) const =0
std::string GetTag() const
osc::OscCalcSterile * DefaultSterileCalc(int nflavors)
Create a sterile calculator with default assumptions for all parameters.
const covmx::Sample kNusFHCFarDet(covmx::Analysis::kNC, covmx::Polarity::kFHC, covmx::Detector::kFarDet)
IPrediction * LoadPrediction(std::string detector, bool rhc=false, std::string syst_type="all")
Function to load prediction object.
Standard interface to all prediction techniques.
const covmx::Sample kNusFHCNearDet(covmx::Analysis::kNC, covmx::Polarity::kFHC, covmx::Detector::kNearDet)
std::vector< const ISyst * > GetSystsFromFile(covmx::Sample sample)
Get systematics for a given sample.