10 #include "CAFAna/Analysis/Fit.h" 11 #include "CAFAna/Analysis/Surface.h" 36 TString predFileName =
"pred_tutorial_nue_numu.root";
37 TFile * predFile =
new TFile(predFileName,
"read");
40 const double potFD = 6E20;
45 auto fakeDataNumu = predictionNumu->Predict(calc).FakeData(potFD);
54 for(
int potfactor:{1,10,100}){
55 double pot = potFD * potfactor;
58 auto fakeData_max = predictionNumu->Predict(calc).FakeData(pot);
59 auto mockData_max = predictionNumu->Predict(calc).MockData(pot);
61 auto fakeData_nonMax = predictionNumu->Predict(calc).FakeData(pot);
64 std::vector <TString>
labels = {
"fakeMax",
"mockMax",
"fakeNonMax"};
65 std::vector <Spectrum>
data = {fakeData_max,mockData_max,fakeData_nonMax};
76 Fitter fitter (exptNumu,{},{});
87 auto fakeData = predictionNumu->Predict(calc).FakeData(potFD);
110 auto fakeData = predictionNumu->Predict(calc).FakeData(potFD);
116 auto exptNumuConstraint =
new MultiExperiment({exptNumu,reactor,solar});
123 PlotNumuPredData(predictionNumu.get(),
calc, potFD, fakeData,
"demo4_constraints_noth23",
true);
140 auto fakeData = predictionNumu->Predict(calc).FakeData(potFD);
148 prof_th23->SetMaximum(450);
149 prof_th23->Draw(
"hist");
150 gPad->Print(
"plot_demo5_profile_th23.pdf");
156 prof_th23_dmsq->SetMaximum(450);
157 prof_th23_dmsq->Draw(
"hist");
158 gPad->Print(
"plot_demo5_profile_th23_dmsq.pdf");
165 prof_dCP->SetMaximum(20);
166 prof_dCP->Draw(
"hist");
167 gPad->Print(
"plot_demo5_profile_dCP.pdf");
173 prof_dCP_th23_dmsq->SetMaximum(20);
174 prof_dCP_th23_dmsq->Draw(
"hist");
175 gPad->Print(
"plot_demo5_profile_dCP_th23_dmsq.pdf");
182 auto fakeData = predictionNumu->Predict(calc).FakeData(potFD);
189 Surface
surf (exptNumu, calc,
195 gPad->Print(
"plot_demo6_surface.pdf");
196 auto margs =
surf.GetProfiledHists();
197 margs[0]->Draw(
"colz");
198 gPad->Print(
"plot_demo6_surface_prof_dCP.pdf");
200 margs[1]->Draw(
"colz");
201 gPad->Print(
"plot_demo6_surface_prof_th13.pdf");
206 Surface surf2 (exptNumuConstraint, calc,
213 gPad->Print(
"plot_demo6_surface2.pdf");
214 auto margs2 = surf2.GetProfiledHists();
215 margs2[0]->Draw(
"colz");
216 gPad->Print(
"plot_demo6_surface2_prof_dCP.pdf");
218 margs2[1]->Draw(
"colz");
219 gPad->Print(
"plot_demo6_surface2_prof_th13.pdf");
225 auto fakeData = predictionNumu->Predict(calc).FakeData(potFD);
228 Surface
surf (exptNumu, calc,
235 surf.DrawContour(surf_1Sigma, kSolid,
kRed);
236 surf.DrawContour(surf_2Sigma, kSolid,
kViolet);
237 surf.DrawContour(surf_3Sigma, kSolid,
kBlue);
238 gPad->Print(
"plot_demo7_contours.pdf");
252 TString suffix,
bool sameCanvas=
false){
256 auto hfake = fakeDataNumu.
ToTH1(potFD);
258 hpred->SetMaximum(1.2*
max(
hpred->GetMaximum(),hfake->GetMaximum()));
259 hfake->SetMaximum(1.2*
max(
hpred->GetMaximum(),hfake->GetMaximum()));
261 hfake->SetMarkerStyle(kFullCircle);
262 hfake->SetTitle(
"Fake Data");
267 gPad->Print(
"plot_"+suffix+
"_overlay.pdf");
270 hpred->SetTitle(
"Prediction");
272 gPad->Print(
"plot_"+suffix+
"_pred.pdf");
274 gPad->Print(
"plot_"+suffix+
"_data.pdf");
const FitSinSq2Theta12 kFitSinSq2Theta12
Cuts and Vars for the 2020 FD DiF Study.
void ResetOscCalcToDefault(osc::IOscCalcAdjustable *calc)
Reset calculator to default assumptions for all parameters.
Constraints on the parameters and from solar experiments.
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.
const FitDmSq32 kFitDmSq32
virtual Spectrum Predict(osc::IOscCalc *calc) const =0
TH2 * Gaussian68Percent2D(const FrequentistSurface &s)
Up-value surface for 68% confidence in 2D in gaussian approximation.
const ReactorExperiment * WorldReactorConstraint2015()
Weighted average of all experiments as of first nue paper writing.
TGraph * Profile(const IExperiment *expt, osc::IOscCalcAdjustable *calc, const IFitVar *v, int nbinsx, double minx, double maxx, double input_minchi, const std::vector< const IFitVar * > &profVars, const std::vector< const ISyst * > &profSysts, const SeedList &seedPts, const std::vector< SystShifts > &systSeedPts, std::map< const IFitVar *, TGraph * > &profVarsMap, std::map< const ISyst *, TGraph * > &profSystsMap, MinuitFitter::FitOpts opts)
scan in one variable, profiling over all others
TH2 * Gaussian2Sigma2D(const FrequentistSurface &s)
Up-value surface for 2 sigma confidence in 2D in gaussian approximation.
osc::IOscCalcAdjustable * DefaultOscCalc()
Create a new calculator with default assumptions for all parameters.
void demo_numuOnly(const TString options="demo1")
const FitDmSq21 kFitDmSq21
Representation of a spectrum in any variable, with associated POT.
const XML_Char const XML_Char * data
TH2 * Gaussian3Sigma2D(const FrequentistSurface &s)
Up-value surface for 3 sigma confidence in 2D in gaussian approximation.
const ConstrainedFitVarWithPrior fitDmSq32Scaled_UniformPrior & kFitDmSq32Scaled
std::unique_ptr< IPrediction > LoadFrom< IPrediction >(TDirectory *dir, const std::string &label)
Combine multiple component experiments.
const ConstrainedFitVarWithPrior fitSsqTh23_UniformPriorSsqTh23 & kFitSinSqTheta23
Standard interface to all prediction techniques.
const FitSinSq2Theta13 kFitSinSq2Theta13
void PlotNumuPredData(IPrediction *, osc::IOscCalcAdjustable *, double, Spectrum &, TString, bool)
std::string to_string(ModuleType mt)
T max(sqlite3 *const db, std::string const &table_name, std::string const &column_name)
const FitVarWithPrior fitDeltaInPiUnits_UniformPriordCP & kFitDeltaInPiUnits
Compare a single data spectrum to the MC + cosmics expectation.