Macros | Functions
template_nonGENIE_systs.C File Reference
#include "OscLib/OscCalcGeneral.h"
#include "OscLib/OscCalcPMNS.h"
#include "OscLib/OscCalc.h"
#include "CAFAna/Cuts/Cuts.h"
#include "CAFAna/Fit/Fit.h"
#include "CAFAna/Vars/FitVars.h"
#include "CAFAna/Experiment/MultiExperiment.h"
#include "CAFAna/Analysis/Plots.h"
#include "CAFAna/Prediction/PredictionNoExtrap.h"
#include "CAFAna/Prediction/PredictionInterp.h"
#include "CAFAna/Experiment/SingleSampleExperiment.h"
#include "CAFAna/Fit/FrequentistSurface.h"
#include "CAFAna/Core/Utilities.h"
#include "CAFAna/Vars/Vars.h"
#include "3FlavorAna/Vars/Binnings.h"
#include "CAFAna/Core/Loaders.h"
#include "CAFAna/Core/SpectrumLoader.h"
#include "CAFAna/Core/Binning.h"
#include "CAFAna/Systs/Systs.h"
#include "TCanvas.h"
#include "TFile.h"
#include "TGraph.h"
#include "TH1.h"
#include "TH2.h"
#include "TMath.h"
#include "TGaxis.h"
#include "TMultiGraph.h"
#include "TLegend.h"
#include "TLatex.h"
#include "TStyle.h"
#include "THStack.h"
#include "TPaveText.h"
#include <cmath>
#include <iostream>
#include <sstream>
#include <string>
#include <fstream>
#include <iomanip>
#include "Utilities/func/MathUtil.h"

Go to the source code of this file.

Macros

#define location   0
 
#define mcset   0
 
#define pot   18e20
 

Functions

void Simulation ()
 
void template_nonGENIE_systs ()
 

Macro Definition Documentation

#define location   0

Definition at line 49 of file template_nonGENIE_systs.C.

Referenced by template_nonGENIE_systs().

#define mcset   0

Definition at line 50 of file template_nonGENIE_systs.C.

Referenced by template_nonGENIE_systs().

#define pot   18e20

Definition at line 51 of file template_nonGENIE_systs.C.

Referenced by template_nonGENIE_systs().

Function Documentation

void Simulation ( )

Definition at line 55 of file template_nonGENIE_systs.C.

References prelim.

Referenced by template_nonGENIE_systs().

56 {
57  TLatex* prelim = new TLatex(.9, .95, "NO#nuA Simulation");
58  prelim->SetTextColor(kGray+1);
59  prelim->SetNDC();
60  prelim->SetTextSize(2/30.);
61  prelim->SetTextAlign(32);
62  prelim->Draw();
63 }
TLatex * prelim
Definition: Xsec_final.C:133
void template_nonGENIE_systs ( )

Definition at line 65 of file template_nonGENIE_systs.C.

References calc, ana::DataMCComparison(), ana::ISurface::DrawBestFit(), ana::ISurface::DrawContour(), e, ana::Spectrum::FakeData(), shutoffs::filename, plot_validation_datamc::fname, demo4::fnameSwap, ana::Gaussian2Sigma2D(), ana::Gaussian68Percent2D(), ana::Gaussian90Percent2D(), ana::Loaders::Go(), ana::kBeam, kBlue, ana::kCCE, ana::kCosmic, caf::kFARDET, ana::kFitDmSq32Scaled, ana::kFitSinSq2Theta23, ana::Loaders::kFluxSwap, kGreen, ana::Loaders::kMC, ana::kNCScaleSyst, ana::Loaders::kNonSwap, ana::kNormSyst, ana::kNumuContainFD, ana::kNumuCosmicRej, ana::kNumuEnergyBinning, ana::kNumuNCRej, ana::kNumuQESel, ana::kQEE, kRed, MECModelEnuComparisons::leg, loaders, location, mcset, pot, osc::_OscCalcPMNS< T >::SetdCP(), osc::_OscCalcPMNS< T >::SetDmsq21(), osc::_OscCalcPMNS< T >::SetDmsq32(), osc::_OscCalcPMNS< T >::SetL(), ana::Loaders::SetLoaderPath(), osc::_OscCalcPMNS< T >::SetRho(), osc::_OscCalcPMNS< T >::SetTh12(), osc::_OscCalcPMNS< T >::SetTh13(), osc::_OscCalcPMNS< T >::SetTh23(), Simulation(), string, and MakeMiniprodValidationCuts::text.

66 {
67 
68  TGaxis::SetMaxDigits(2);
69 
70  gStyle->SetTitleOffset(.85, "y");
71  gStyle->SetTitleOffset(.84, "x");
72  gStyle->SetTitleSize(0.05,"x");
73 
74  std::string fname, fnameSwap, fnameCosmic;
75 
76  if(mcset==1) {
77 
78  if(location==1) {
79  fname = "$NOVA_DATA/mc/forFA/fd_genie_fhc_nonswap_real.caf.root";
80  fnameSwap = "$NOVA_DATA/mc/forFA/fd_genie_fhc_swap_real.caf.root";
81  fnameCosmic = "/nfs/raid5/kirk/mc/fd_cry/fd_cry.153.caf.root";
82  }
83  else if(location==0) {
84  fname = "prod_caf_FA14-10-28_fd_genie_fhc_nonswap_14db";
85  fnameSwap = "prod_caf_FA14-10-28_fd_genie_fhc_fluxswap_14db";
86  fnameCosmic = "prod_caf_FA14-10-28_fd_cry_all";
87  }
88  }
89 
90  else if(mcset==0) {
91 
92  if(location==1) {
93  fname = "$NOVA_DATA/mc/forFA/fd_genie_fhc_nonswap_ideal.caf.root";
94  fnameSwap = "$NOVA_DATA/mc/forFA/fd_genie_fhc_swap_ideal.caf.root";
95  fnameCosmic = "/nfs/raid5/kirk/mc/fd_cry/fd_cry.153.caf.root";
96  }
97  else if(location==0) {
98  fname = "prod_caf_FA14-10-28_fd_genie_fhc_nonswap_14db";
99  fnameSwap = "prod_caf_FA14-10-28_fd_genie_fhc_fluxswap_14db";
100  fnameCosmic = "prod_caf_FA14-10-28_fd_cry_all";
101  }
102  }
103 
105 
106  calc.SetL(810);
107  calc.SetRho(0); // No matter effects
108  calc.SetDmsq21(7.59e-5);
109  calc.SetDmsq32(2.4e-3);
110  calc.SetTh12(.601);
111  calc.SetTh13(.1567);
112  // calc.SetdCP(TMath::Pi()/2);
113  calc.SetdCP(0);
114  calc.SetTh23(TMath::Pi()/4); // sin^2(2theta) = 1
115 
116  osc::OscCalcPMNS calc2;
117 
118  calc2.SetL(810);
119  calc2.SetRho(0); // No matter effects
120  calc2.SetDmsq21(7.59e-5);
121  calc2.SetDmsq32(2.4e-3);
122  calc2.SetTh12(.601);
123  calc2.SetTh13(.1567);
124  // calc2.SetdCP(TMath::Pi()/2);
125  calc2.SetdCP(0);
126  calc2.SetTh23(TMath::Pi()/4); // sin^2(2theta) = 1
127 
128  const std::string filename = fname;
129  const std::string filenameSwap = fnameSwap;
130  const std::string filenameCosmic = fnameCosmic;
131 
133  loaders.SetLoaderPath(filename,caf::kFARDET,Loaders::kMC,ana::kBeam,Loaders::kNonSwap);
134  loaders.SetLoaderPath(filenameSwap,caf::kFARDET,Loaders::kMC,ana::kBeam,Loaders::kFluxSwap);
135  loaders.SetLoaderPath(filenameCosmic,caf::kFARDET,Loaders::kMC,ana::kCosmic,Loaders::kNonSwap);
136 
137  // Load up the necessary histograms, seperated by flavour etc
138  NoExtrapGenerator predGenNonQE(
139  HistAxis("Non-QE Neutrino Energy (GeV)", kNumuEnergyBinning,kCCE),
141  PredictionInterp predCC({&kEnergyScaleSyst, &kNormSyst, &kNCScaleSyst},
142  &calc2, predGenNonQE, loaders);
143 
144  NoExtrapGenerator predGenQE(
145  HistAxis("Non-QE Neutrino Energy (GeV)", kNumuEnergyBinning,kQEE),
147  PredictionInterp predQE({&kEnergyScaleSyst, &kNormSyst, &kNCScaleSyst},
148  &calc2, predGenQE, loaders);
149 
150 
151  loaders.Go();
152 
153  Spectrum obsCC = predCC.Predict(&calc); // the prediction
154  Spectrum obsQE = predQE.Predict(&calc);
155  Spectrum fakeCC = obsCC.FakeData(pot); // the data, faked
156  Spectrum fakeQE = obsQE.FakeData(pot);
157  SingleSampleExperiment exptCC(&predCC, fakeCC); // made into an 'experiment'
158  SingleSampleExperiment exptQE(&predQE, fakeQE);
159 
160  TLatex text;
161  text.SetNDC(true);
162  text.SetTextSize(0.04);
163 
164  std::vector<const IExperiment*> exptsAll;
165  exptsAll.push_back(&exptCC);
166  exptsAll.push_back(&exptQE);
167  MultiExperiment exptAll(exptsAll);
168 
169  // now, the same but with a different truth value of theta_23
170  calc.SetTh23(.67264); // sin^2(2theta) = 0.95
171 
172  Spectrum obsCC2 = predCC.Predict(&calc);
173  Spectrum obsQE2 = predQE.Predict(&calc);
174  Spectrum fakeCC2 = obsCC2.FakeData(pot);
175  Spectrum fakeQE2 = obsQE2.FakeData(pot);
176  SingleSampleExperiment exptCC2(&predCC, fakeCC2);
177  SingleSampleExperiment exptQE2(&predQE, fakeQE2);
178 
179  new TCanvas("comp1b","CC spectra .95"); // plot spectra for each sample
180  DataMCComparison(fakeCC2, obsCC2);
181  TH1* ccu2 = predCC.PredictUnoscillated().ToTH1(pot);
182  ccu2->SetLineStyle(7);
183  ccu2->Draw("hist same");
184  gPad->Print("plots/comp1b.ps");
185  new TCanvas("comp2b","QE spectra .95");
186  DataMCComparison(fakeQE2, obsQE2);
187  TH1* qeu2 = predQE.PredictUnoscillated().ToTH1(pot);
188  qeu2->SetLineStyle(7);
189  qeu2->Draw("hist same");
190  gPad->Print("plots/comp2b.ps");
191  gPad->Print("plots/comp3b.ps");
192 
193  std::vector<const IExperiment*> exptsAll2;
194  exptsAll2.push_back(&exptCC2);
195  exptsAll2.push_back(&exptQE2);
196  MultiExperiment exptAll2(exptsAll2);
197 
198  calc.SetTh23(1); // Seed value
199 
200  TH1F *hcc = new TH1F("cc", "cc", 10, 0, 1);
201  TH1F *hqe = new TH1F("qe", "qe", 10, 0, 1);
202  TH1F *hall = new TH1F("all", "all", 10, 0, 1);
203  TH1F *hgreen = new TH1F("green", "green", 10, 0, 1);
204 
205  hcc->SetLineWidth(2);
206  hqe->SetLineWidth(2);
207  hall->SetLineWidth(2);
208  hgreen->SetLineWidth(2);
209  hcc->SetLineColor(2);
210  hqe->SetLineColor(4);
211  hall->SetLineColor(1);
212  hgreen->SetLineColor(kGreen);
213 
214  //The log-likelihood surface: FHC
215  new TCanvas("contoursfhc1","contoursfhc1") ;
216 
217  FrequentistSurface surfCC(&exptCC, &calc,
218  &kFitSinSq2Theta23, 30, .93, 1,
219  &kFitDmSq32Scaled, 30, 2.2, 2.7);
220  surfCC.DrawBestFit(kRed);
221  surfCC.DrawContour(Gaussian90Percent2D(surfCC), kSolid, kRed);
222 
223  FrequentistSurface surfQE(&exptQE, &calc,
224  &kFitSinSq2Theta23, 30, .94, 1,
225  &kFitDmSq32Scaled, 30, 2.2, 2.7);
226  surfQE.DrawBestFit(kBlue);
227  surfQE.DrawContour(Gaussian90Percent2D(surfQE), kSolid, kBlue);
228 
229  FrequentistSurface surfAll(&exptAll, &calc,
230  &kFitSinSq2Theta23, 30, .96, 1,
231  &kFitDmSq32Scaled, 30, 2.2, 2.6);
232  surfAll.DrawBestFit(kBlack);
233  surfAll.DrawContour(Gaussian90Percent2D(surfAll), kSolid, kBlack);
234 
235  Simulation();
236 
237  TLegend *leg = new TLegend(0.11,0.11,0.5,0.45);
238  leg->SetFillColor(10);
239  leg->SetFillStyle(0);
240  leg->SetBorderSize(0);
241  if(pot==18e20) leg->SetHeader("18e20 POT, FHC, 14 kton: 90% CL, no Systs");
242  else if(pot==6e20) leg->SetHeader("6e20 POT, FHC, 14 kton: 90% CL");
243  else if(pot==1e20) leg->SetHeader("1e20 POT, FHC, 14 kton: 90% CL");
244 
245  leg->AddEntry(hcc, "Contained non-QE CC","L");
246  leg->AddEntry(hqe,"Contained QE CC","L");
247  leg->AddEntry(hall,"Combined","L");
248  leg->Draw("same");
249  text.DrawLatex(0.3,0.85,"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
250 
251  gPad->Print("plots/withcosmics.1.ps");
252  gPad->Print("plots/withcosmics.1.C");
253 
254  //with systs
255  new TCanvas("contoursfhc1syst","contoursfhc1syst") ;
256 
257  FrequentistSurface surfCCSyst(&exptCC, &calc,
258  &kFitSinSq2Theta23, 30, .93, 1,
259  &kFitDmSq32Scaled, 30, 2.2, 2.7, {}, {&kEnergyScaleSyst, &kNormSyst, &kNCScaleSyst});
260  surfCCSyst.DrawBestFit(kRed);
261  surfCCSyst.DrawContour(Gaussian90Percent2D(surfCCSyst), kSolid, kRed);
262 
263  FrequentistSurface surfQESyst(&exptQE, &calc,
264  &kFitSinSq2Theta23, 30, .93, 1,
265  &kFitDmSq32Scaled, 30, 2.2, 2.7, {}, {&kEnergyScaleSyst, &kNormSyst, &kNCScaleSyst});
266  surfQESyst.DrawBestFit(kBlue);
267  surfQESyst.DrawContour(Gaussian90Percent2D(surfQESyst), kSolid, kBlue);
268 
269  FrequentistSurface surfAllSyst(&exptAll, &calc,
270  &kFitSinSq2Theta23, 30, .96, 1,
271  &kFitDmSq32Scaled, 30, 2.2, 2.6, {}, {&kEnergyScaleSyst, &kNormSyst, &kNCScaleSyst});
272  surfAllSyst.DrawBestFit(kBlack);
273  surfAllSyst.DrawContour(Gaussian90Percent2D(surfAllSyst), kSolid, kBlack);
274 
275  Simulation();
276 
277  text.DrawLatex(0.3,0.85,"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
278 
279  if(pot==18e20) leg->SetHeader("18e20 POT, FHC, 14 kton: 90% CL, all systs");
280 
281  gPad->Print("plots/cosmics.systs.1.ps");
282  gPad->Print("plots/cosmics.systs.1.C");
283 
284  //2
285 
286  new TCanvas("contoursfhc2","contoursfhc2") ;
287 
288  FrequentistSurface surfCC2(&exptCC2, &calc,
289  &kFitSinSq2Theta23, 30, .87, 1,
290  &kFitDmSq32Scaled, 30, 2.1, 2.7);
291  surfCC2.DrawBestFit(kRed);
292  surfCC2.DrawContour(Gaussian90Percent2D(surfCC2), kSolid, kRed);
293 
294  FrequentistSurface surfQE2(&exptQE2, &calc,
295  &kFitSinSq2Theta23, 30, .86, 1,
296  &kFitDmSq32Scaled, 30, 2.1, 2.8);
297  surfQE2.DrawBestFit(kBlue);
298  surfQE2.DrawContour(Gaussian90Percent2D(surfQE2), kSolid, kBlue);
299 
300  FrequentistSurface surfAll2(&exptAll2, &calc,
301  &kFitSinSq2Theta23, 30, .88, 1,
302  &kFitDmSq32Scaled, 30, 2, 2.8);
303  surfAll2.DrawBestFit(kBlack);
304  surfAll2.DrawContour(Gaussian90Percent2D(surfAll2), kSolid, kBlack);
305 
306  leg->Draw("same");
307  text.DrawLatex(0.3,0.85,"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
308 
309  Simulation();
310 
311  gPad->Print("plots/withcosmics.fhc.2.ps");
312  gPad->Print("plots/withcosmics.fhc.2.C");
313 
314 
315  new TCanvas("contoursfhc2syst","contoursfhc2syst") ;
316 
317  FrequentistSurface surfCCSyst2(&exptCC2, &calc,
318  &kFitSinSq2Theta23, 30, .86, 1,
319  &kFitDmSq32Scaled, 30, 2.1, 2.8, {}, {&kEnergyScaleSyst, &kNormSyst, &kNCScaleSyst});
320  surfCCSyst2.DrawBestFit(kRed);
321  surfCCSyst2.DrawContour(Gaussian90Percent2D(surfCCSyst2), kSolid, kRed);
322 
323  FrequentistSurface surfQESyst2(&exptQE2, &calc,
324  &kFitSinSq2Theta23, 30, .85, 1,
325  &kFitDmSq32Scaled, 30, 2.1, 2.8, {}, {&kEnergyScaleSyst, &kNormSyst, &kNCScaleSyst});
326  surfQESyst2.DrawBestFit(kBlue);
327  surfQESyst2.DrawContour(Gaussian90Percent2D(surfQESyst2), kSolid, kBlue);
328 
329  FrequentistSurface surfAllSyst2(&exptAll2, &calc,
330  &kFitSinSq2Theta23, 30, .88, 1,
331  &kFitDmSq32Scaled, 30, 2, 2.8, {}, {&kEnergyScaleSyst, &kNormSyst, &kNCScaleSyst});
332  surfAllSyst2.DrawBestFit(kBlack);
333  surfAllSyst2.DrawContour(Gaussian90Percent2D(surfAllSyst2), kSolid, kBlack);
334 
335  leg->Draw("same");
336  text.DrawLatex(0.3,0.85,"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
337 
338  Simulation();
339 
340  gPad->Print("plots/cosmics.syst.fhc.2.ps");
341  gPad->Print("plots/cosmics.syst.fhc.2.C");
342 
343 
344  new TCanvas("contoursfhcsystcomp","contoursfhcsystcomp") ;
345 
346  FrequentistSurface surfAllSystE(&exptAll, &calc, // energy systematics only
347  &kFitSinSq2Theta23, 30, .93, 1,
348  &kFitDmSq32Scaled, 30, 2, 2.8, {}, {&kEnergyScaleSyst});
349  surfAllSystE.DrawBestFit(kGreen);
350  surfAllSystE.DrawContour(Gaussian90Percent2D(surfAllSystE), kSolid, kGreen);
351 
352  FrequentistSurface surfAllSystNC(&exptAll, &calc, // NC scale systs only
353  &kFitSinSq2Theta23, 30, .93, 1,
354  &kFitDmSq32Scaled, 30, 2, 2.8, {}, {&kNCScaleSyst});
355  surfAllSystNC.DrawBestFit(4);
356  surfAllSystNC.DrawContour(Gaussian90Percent2D(surfAllSystNC), kSolid, 4);
357 
358  FrequentistSurface surfAllSystNorm(&exptAll, &calc, // NC scale systs only
359  &kFitSinSq2Theta23, 30, .93, 1,
360  &kFitDmSq32Scaled, 30, 2, 2.8, {}, {&kNormSyst});
361  surfAllSystNorm.DrawBestFit(kMagenta);
362  surfAllSystNorm.DrawContour(Gaussian90Percent2D(surfAllSystNorm), kSolid, kMagenta);
363 
364  surfAllSyst.DrawBestFit(kBlack);
365  surfAllSyst.DrawContour(Gaussian90Percent2D(surfAllSyst), kSolid, kBlack);
366 
367  surfAll.DrawBestFit(2);
368  surfAll.DrawContour(Gaussian90Percent2D(surfAll), kSolid, 2);
369 
370  TLegend *leg3 = new TLegend(0.12,0.12,0.5,0.4);
371  leg3->SetFillColor(10);
372  leg3->SetFillStyle(0);
373  leg3->SetHeader("18e20 POT FHC, 14 kton, 90% CL");
374 
375  leg3->AddEntry(hall, "All systematics","L");
376  leg3->AddEntry(hcc, "No systematics","L");
377  leg3->AddEntry(hqe, "NC scale only","L");
378  leg3->AddEntry(hgreen, "Energy scale only","L");
379  leg3->SetBorderSize(0);
380  leg3->Draw("");
381  text.DrawLatex(0.3,0.92,"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
382 
383  gPad->Print("plots/cosmics.overlay.ps");
384  gPad->Print("plots/cosmics.overlay.C");
385 
386  new TCanvas("contourscombinenosys","contourscombinenosys") ;
387  surfAll2.DrawBestFit(kBlack);
388  surfAll2.DrawContour(Gaussian2Sigma2D(surfAll2), kSolid, 1);
389  surfAll2.DrawContour(Gaussian68Percent2D(surfAll2), 7, 1);
390 
391  surfAll.DrawBestFit(kRed);
392  surfAll.DrawContour(Gaussian2Sigma2D(surfAll), kSolid, 2);
393  surfAll.DrawContour(Gaussian68Percent2D(surfAll), 7, 2);
394 
395  TH1F *solid = new TH1F("90% CL", "90% CL", 10, 0, 1);
396  TH1F *dashed = new TH1F("68% CL", "68% CL", 10, 0, 1);
397 
398  solid->SetLineWidth(2);
399  dashed->SetLineWidth(2);
400  dashed->SetLineStyle(7);
401  solid->SetLineColor(1);
402  dashed->SetLineColor(1);
403 
404  TLegend *leg4 = new TLegend(0.12,0.12,0.5,0.4);
405  leg4->SetFillColor(10);
406  leg4->SetFillStyle(0);
407  leg4->SetHeader("18e20 POT FHC, 14 kton");
408 
409  leg4->AddEntry(solid, "2 #sigma","L");
410  leg4->AddEntry(dashed,"1 #sigma","L");
411  leg4->SetBorderSize(0);
412  leg4->Draw("");
413  text.DrawLatex(0.3,0.92,"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
414 
415  gPad->Print("plots/cosmics.overlay.ps");
416  gPad->Print("plots/cosmics.overlay.C");
417 
418  new TCanvas("contourscombinesys","contourscombinesys") ;
419  surfAllSyst2.DrawBestFit(kBlack);
420  surfAllSyst2.DrawContour(Gaussian90Percent2D(surfAllSyst2), kSolid, kBlack);
421  surfAll2.DrawContour(Gaussian90Percent2D(surfAll2), 7, kBlack);
422 
423  surfAllSyst.DrawBestFit(kRed);
424  surfAllSyst.DrawContour(Gaussian90Percent2D(surfAllSyst), kSolid, kRed);
425  surfAll.DrawContour(Gaussian90Percent2D(surfAll), 7, kRed);
426 
427  TLegend *leg2 = new TLegend(0.12,0.12,0.5,0.4);
428  leg2->SetFillColor(10);
429  leg2->SetFillStyle(0);
430  leg2->SetHeader("18e20 POT FHC, 14 kton");
431 
432  leg2->AddEntry(solid, "90% CL, all systematics","L");
433  leg2->AddEntry(dashed,"90% CL, no systematics","L");
434  leg2->SetBorderSize(0);
435  leg2->Draw("");
436  text.DrawLatex(0.3,0.92,"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
437 
438  gPad->Print("plots/cosmics.systs.overlay.ps");
439  gPad->Print("plots/cosmics.systs.overlay.C");
440 
441 }
Implements systematic errors by interpolation between shifted templates.
enum BeamMode kRed
_HistAxis< Var > HistAxis
Definition: HistAxis.h:103
Far Detector at Ash River.
Definition: SREnums.h:11
void SetDmsq21(const T &dmsq21) override
Definition: OscCalcPMNS.h:35
void SetTh12(const T &th12) override
Definition: OscCalcPMNS.h:37
void SetTh23(const T &th23) override
Definition: OscCalcPMNS.h:39
Adapt the PMNS calculator to standard interface.
Definition: StanTypedefs.h:28
const FitSinSq2Theta23 kFitSinSq2Theta23
string fnameSwap
Definition: demo4.py:6
Collection of SpectrumLoaders for many configurations.
Definition: Loaders.h:23
void SetL(double L) override
Definition: OscCalcPMNS.h:33
TH2 * Gaussian68Percent2D(const FrequentistSurface &s)
Up-value surface for 68% confidence in 2D in gaussian approximation.
const Color_t kMC
const Cut kNumuCosmicRej([](const caf::SRProxy *sr){return(sr->sel.cosrej.anglekal > 0.5 && sr->sel.cosrej.numucontpid2019 > 0.535 && sr->slc.nhit< 400);})
Definition: NumuCuts.h:32
const Cut kNumuContainFD([](const caf::SRProxy *sr){ std::pair< int, int > planes=calcFirstLastLivePlane(sr->slc.firstplane, std::bitset< 14 >(sr->hdr.dibmask));int planestofront=sr->slc.firstplane-planes.first;int planestoback=planes.second-sr->slc.lastplane;return( sr->slc.ncellsfromedge > 1 &&planestofront > 1 &&planestoback > 1 &&sr->sel.contain.kalfwdcell > 10 &&sr->sel.contain.kalbakcell > 10 &&sr->sel.contain.cosfwdcell > 0 &&sr->sel.contain.cosbakcell > 0);})
Definition: NumuCuts.h:20
TH2 * Gaussian2Sigma2D(const FrequentistSurface &s)
Up-value surface for 2 sigma confidence in 2D in gaussian approximation.
string filename
Definition: shutoffs.py:106
osc::OscCalcDumb calc
Generates FD-only predictions (no extrapolation)
Representation of a spectrum in any variable, with associated POT.
Definition: Spectrum.h:40
void Go()
Call Go() on all the loaders.
Definition: Loaders.cxx:162
Log-likelihood scan across two parameters.
const NormSyst kNormSyst
Definition: Systs.cxx:14
void DrawBestFit(Color_t color, Int_t marker=kFullCircle) const
Draw the best fit point.
Definition: ISurface.cxx:37
#define mcset
const Binning kNumuEnergyBinning
Definition: Binnings.cxx:13
Spectrum FakeData(double pot) const
Synonymous with AsimovData(). Retained for compatibility.
Definition: Spectrum.cxx:349
const Cut kNumuQESel([](const caf::SRProxy *sr){std::cout<< "WARNING! Attempting to access kNumuQESel which relies on qepid (which no longer exists.) Aborting..."<< std::endl;abort(); return false;})
Definition: NumuCuts.h:38
void SetdCP(const T &dCP) override
Definition: OscCalcPMNS.h:40
void SetDmsq32(const T &dmsq32) override
Definition: OscCalcPMNS.h:36
const Var kCCE
Definition: NumuVars.h:21
void SetTh13(const T &th13) override
Definition: OscCalcPMNS.h:38
const Cut kNumuNCRej([](const caf::SRProxy *sr){return(sr->sel.remid.pid >0.75);})
Definition: NumuCuts.h:24
const ConstrainedFitVarWithPrior fitDmSq32Scaled_UniformPrior & kFitDmSq32Scaled
#define pot
void SetRho(double rho) override
Definition: OscCalcPMNS.h:34
#define location
Combine multiple component experiments.
void Simulation()
TH2 * Gaussian90Percent2D(const FrequentistSurface &s)
Up-value surface for 90% confidence in 2D in gaussian approximation.
std::vector< Loaders * > loaders
Definition: syst_header.h:386
const Var kQEE
Energy estimator for quasielastic CC events.
Definition: NumuVars.cxx:28
TH1 * DataMCComparison(const Spectrum &data, const Spectrum &mc, EBinType bintype)
Definition: Plots.cxx:35
Float_t e
Definition: plot.C:35
enum BeamMode kGreen
enum BeamMode kBlue
void SetLoaderPath(const std::string &path, caf::Det_t det, DataMC datamc, DataSource src=kBeam, SwappingConfig swap=kNonSwap)
Configure loader via wildcard path.
Definition: Loaders.cxx:25
const NCScaleSyst kNCScaleSyst
Definition: Systs.cxx:16
Compare a single data spectrum to the MC + cosmics expectation.
enum BeamMode string