68 TGaxis::SetMaxDigits(2);
70 gStyle->SetTitleOffset(.85,
"y");
71 gStyle->SetTitleOffset(.84,
"x");
72 gStyle->SetTitleSize(0.05,
"x");
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";
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";
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";
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";
142 &calc2, predGenNonQE,
loaders);
153 Spectrum obsCC = predCC.Predict(&calc);
154 Spectrum obsQE = predQE.Predict(&calc);
162 text.SetTextSize(0.04);
164 std::vector<const IExperiment*> exptsAll;
165 exptsAll.push_back(&exptCC);
166 exptsAll.push_back(&exptQE);
172 Spectrum obsCC2 = predCC.Predict(&calc);
173 Spectrum obsQE2 = predQE.Predict(&calc);
179 new TCanvas(
"comp1b",
"CC spectra .95");
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");
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");
193 std::vector<const IExperiment*> exptsAll2;
194 exptsAll2.push_back(&exptCC2);
195 exptsAll2.push_back(&exptQE2);
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);
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);
215 new TCanvas(
"contoursfhc1",
"contoursfhc1") ;
220 surfCC.DrawBestFit(
kRed);
226 surfQE.DrawBestFit(
kBlue);
232 surfAll.DrawBestFit(kBlack);
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");
245 leg->AddEntry(hcc,
"Contained non-QE CC",
"L");
246 leg->AddEntry(hqe,
"Contained QE CC",
"L");
247 leg->AddEntry(hall,
"Combined",
"L");
249 text.DrawLatex(0.3,0.85,
"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
251 gPad->Print(
"plots/withcosmics.1.ps");
252 gPad->Print(
"plots/withcosmics.1.C");
255 new TCanvas(
"contoursfhc1syst",
"contoursfhc1syst") ;
277 text.DrawLatex(0.3,0.85,
"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
279 if(
pot==18e20) leg->SetHeader(
"18e20 POT, FHC, 14 kton: 90% CL, all systs");
281 gPad->Print(
"plots/cosmics.systs.1.ps");
282 gPad->Print(
"plots/cosmics.systs.1.C");
286 new TCanvas(
"contoursfhc2",
"contoursfhc2") ;
291 surfCC2.DrawBestFit(
kRed);
297 surfQE2.DrawBestFit(
kBlue);
303 surfAll2.DrawBestFit(kBlack);
307 text.DrawLatex(0.3,0.85,
"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
311 gPad->Print(
"plots/withcosmics.fhc.2.ps");
312 gPad->Print(
"plots/withcosmics.fhc.2.C");
315 new TCanvas(
"contoursfhc2syst",
"contoursfhc2syst") ;
336 text.DrawLatex(0.3,0.85,
"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
340 gPad->Print(
"plots/cosmics.syst.fhc.2.ps");
341 gPad->Print(
"plots/cosmics.syst.fhc.2.C");
344 new TCanvas(
"contoursfhcsystcomp",
"contoursfhcsystcomp") ;
364 surfAllSyst.DrawBestFit(kBlack);
367 surfAll.DrawBestFit(2);
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");
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);
381 text.DrawLatex(0.3,0.92,
"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
383 gPad->Print(
"plots/cosmics.overlay.ps");
384 gPad->Print(
"plots/cosmics.overlay.C");
386 new TCanvas(
"contourscombinenosys",
"contourscombinenosys") ;
387 surfAll2.DrawBestFit(kBlack);
391 surfAll.DrawBestFit(
kRed);
395 TH1F *solid =
new TH1F(
"90% CL",
"90% CL", 10, 0, 1);
396 TH1F *dashed =
new TH1F(
"68% CL",
"68% CL", 10, 0, 1);
398 solid->SetLineWidth(2);
399 dashed->SetLineWidth(2);
400 dashed->SetLineStyle(7);
401 solid->SetLineColor(1);
402 dashed->SetLineColor(1);
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");
409 leg4->AddEntry(solid,
"2 #sigma",
"L");
410 leg4->AddEntry(dashed,
"1 #sigma",
"L");
411 leg4->SetBorderSize(0);
413 text.DrawLatex(0.3,0.92,
"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
415 gPad->Print(
"plots/cosmics.overlay.ps");
416 gPad->Print(
"plots/cosmics.overlay.C");
418 new TCanvas(
"contourscombinesys",
"contourscombinesys") ;
419 surfAllSyst2.DrawBestFit(kBlack);
423 surfAllSyst.DrawBestFit(
kRed);
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");
432 leg2->AddEntry(solid,
"90% CL, all systematics",
"L");
433 leg2->AddEntry(dashed,
"90% CL, no systematics",
"L");
434 leg2->SetBorderSize(0);
436 text.DrawLatex(0.3,0.92,
"NO#nuA #nu_{#mu} Sensitivity (14kton, 700kW)");
438 gPad->Print(
"plots/cosmics.systs.overlay.ps");
439 gPad->Print(
"plots/cosmics.systs.overlay.C");
Implements systematic errors by interpolation between shifted templates.
_HistAxis< Var > HistAxis
Far Detector at Ash River.
void SetDmsq21(const T &dmsq21) override
void SetTh12(const T &th12) override
void SetTh23(const T &th23) override
Adapt the PMNS calculator to standard interface.
const FitSinSq2Theta23 kFitSinSq2Theta23
Collection of SpectrumLoaders for many configurations.
void SetL(double L) override
TH2 * Gaussian68Percent2D(const FrequentistSurface &s)
Up-value surface for 68% confidence in 2D in gaussian approximation.
const Cut kNumuCosmicRej([](const caf::SRProxy *sr){return(sr->sel.cosrej.anglekal > 0.5 &&
sr->sel.cosrej.numucontpid2019 > 0.535 && sr->slc.nhit< 400);})
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);})
TH2 * Gaussian2Sigma2D(const FrequentistSurface &s)
Up-value surface for 2 sigma confidence in 2D in gaussian approximation.
Representation of a spectrum in any variable, with associated POT.
void Go()
Call Go() on all the loaders.
Log-likelihood scan across two parameters.
void DrawBestFit(Color_t color, Int_t marker=kFullCircle) const
Draw the best fit point.
const Binning kNumuEnergyBinning
Spectrum FakeData(double pot) const
Synonymous with AsimovData(). Retained for compatibility.
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;})
void SetdCP(const T &dCP) override
void SetDmsq32(const T &dmsq32) override
void SetTh13(const T &th13) override
const Cut kNumuNCRej([](const caf::SRProxy *sr){return(sr->sel.remid.pid >0.75);})
const ConstrainedFitVarWithPrior fitDmSq32Scaled_UniformPrior & kFitDmSq32Scaled
void SetRho(double rho) override
Combine multiple component experiments.
TH2 * Gaussian90Percent2D(const FrequentistSurface &s)
Up-value surface for 90% confidence in 2D in gaussian approximation.
const Var kQEE
Energy estimator for quasielastic CC events.
TH1 * DataMCComparison(const Spectrum &data, const Spectrum &mc, EBinType bintype)
void SetLoaderPath(const std::string &path, caf::Det_t det, DataMC datamc, DataSource src=kBeam, SwappingConfig swap=kNonSwap)
Configure loader via wildcard path.
const NCScaleSyst kNCScaleSyst
Compare a single data spectrum to the MC + cosmics expectation.