1 import ROOT,array,math,sys
     7 ROOT.gStyle.SetPadRightMargin(0.15);   
     8 ROOT.gStyle.SetPadLeftMargin(0.15);   
    11 plots = [
"numu_neutrino_ND",
"numubar_neutrino_ND",
"nue_neutrino_ND",
"nuebar_neutrino_ND",
"numu_antineutrino_ND",
"numubar_antineutrino_ND",
"nue_antineutrino_ND",
"nuebar_antineutrino_ND",
"numu_neutrino_FD",
"numubar_neutrino_FD",
"nue_neutrino_FD",
"nuebar_neutrino_FD",
"numu_antineutrino_FD",
"numubar_antineutrino_FD",
"nue_antineutrino_FD",
"nuebar_antineutrino_FD"]
    13 start_indices = [0,19,38,45,52,71,90,97,104,123,142,149,156,175,194,201]
    18     n_universes = len(universes)
    19     avg_hist = universes[0].Clone(universes[0].GetName()+
"_avg")
    20     error_hist = universes[0].Clone(universes[0].GetName()+
"_error")
    25     for i 
in range(n_universes):
    26         avg_hist.Add(universes[i])
    27     avg_hist.Scale(1/float(n_universes))
    30     for j 
in range(error_hist.GetNbinsX()+2):
    32         for i 
in range(n_universes):
    33             error += 1/float(n_universes)*ROOT.TMath.Power(universes[i].GetBinContent(j)-avg_hist.GetBinContent(j),2)
    34         error_hist.SetBinContent(j,ROOT.TMath.Sqrt(error))
    36         error_hist.Divide(avg_hist)
    42     n_universes = len(universes)
    43     avg_hist = universes[0].Clone(universes[0].GetName()+
"_avg")
    45     nbins = universes[0].GetNbinsX()
    47     for i 
in range(n_universes):
    48         avg_hist.Add(universes[i])
    49     avg_hist.Scale(1/float(n_universes))
    51     covariance = ROOT.TH2D(
"Flux_Covariance",
"Flux_Covariance",nbins,0.5,nbins+0.5,nbins,0.5,nbins+0.5)
    53     for j 
in range(avg_hist.GetNbinsX()):
    54       for k 
in range(avg_hist.GetNbinsX()):
    56         for i 
in range(n_universes):
    57             cov += 1/float(n_universes)*(universes[i].GetBinContent(j+1)-avg_hist.GetBinContent(j+1))*(universes[i].GetBinContent(k+1)-avg_hist.GetBinContent(k+1))
    59             if(avg_hist.GetBinContent(j+1)*avg_hist.GetBinContent(k+1) != 0):
    60                 cov = cov / avg_hist.GetBinContent(j+1) / avg_hist.GetBinContent(k+1)
    63         covariance.SetBinContent(j+1,k+1,cov)
    69         nbins += cv.GetNbinsX()
    70     new_cv = ROOT.TH1D(
"Flux_CV",
"Flux_CV",nbins,0.5,nbins+0.5)
    72     for universe 
in range(len(universes[0])):
    73         new_universes.append(ROOT.TH1D(
"Flux_Universe_"+
str(universe)+name,
"Flux_Universe_"+
str(universe)+name,nbins,0.5,nbins+0.5))
    75     for cv 
in range(len(cvs)):
    76         for local_bin_iter 
in range(cvs[cv].GetNbinsX()):
    78             new_cv.SetBinContent(global_bin_iter,cvs[cv].GetBinContent(local_bin_iter+1))
    79             for universe 
in range(len(universes[0])):
    80                 new_universes[universe].SetBinContent(global_bin_iter,universes[cv][universe].GetBinContent(local_bin_iter+1))
    81             global_bin_iter = global_bin_iter+1
    82     return_array = [new_cv,new_universes]
    86     cor_matrix = cov_matrix.Clone()
    87     for i 
in range(cor_matrix.GetNbinsX()):
    88         for j 
in range(cor_matrix.GetNbinsX()):
    89             if cov_matrix.GetBinContent(i+1,i+1)!=0 
and cov_matrix.GetBinContent(j+1,j+1)!=0:
    90                 cor_matrix.SetBinContent(i+1,j+1,cov_matrix.GetBinContent(i+1,j+1)/ROOT.TMath.Sqrt(cov_matrix.GetBinContent(i+1,i+1))/ROOT.TMath.Sqrt(cov_matrix.GetBinContent(j+1,j+1)))
    92                 if i==j: cor_matrix.SetBinContent(i+1,j+1,1)
    93                 else: cor_matrix.SetBinContent(i+1,j+1,0)
    94     cor_matrix.SetMinimum(-1.0)
    95     cor_matrix.SetMaximum(1.0)
   101 if(beam_config==
"reference"):
   102     in_files.append(ROOT.TFile(
"amit_histos_10August2016/histos_g4lbne_v3r4p3_QGSP_BERT_DUNECDR_Ref80GeV_neutrino_LBNFND_ppfx_500_rebinned.root"))
   103     in_files.append(ROOT.TFile(
"amit_histos_10August2016/histos_g4lbne_v3r4p3_QGSP_BERT_DUNECDR_Ref80GeV_antineutrino_LBNFND_ppfx_500_rebinned.root"))
   104     in_files.append(ROOT.TFile(
"amit_histos_10August2016/histos_g4lbne_v3r4p3_QGSP_BERT_DUNECDR_Ref80GeV_neutrino_LBNFFD_ppfx_500_rebinned.root"))
   105     in_files.append(ROOT.TFile(
"amit_histos_10August2016/histos_g4lbne_v3r4p3_QGSP_BERT_DUNECDR_Ref80GeV_antineutrino_LBNFFD_ppfx_500_rebinned.root"))
   108     in_files.append(ROOT.TFile(
"amit_histos_10August2016/histos_g4lbne_v3r4p3_QGSP_BERT_CP_run15_12388_neutrino_LBNFND_500_rebinned.root"))
   109     in_files.append(ROOT.TFile(
"amit_histos_10August2016/histos_g4lbne_v3r4p3_QGSP_BERT_CP_run15_12388_antineutrino_LBNFND_500_rebinned.root"))
   110     in_files.append(ROOT.TFile(
"amit_histos_10August2016/histos_g4lbne_v3r4p3_QGSP_BERT_CP_run15_12388_neutrino_LBNFFD_500_rebinned.root"))
   111     in_files.append(ROOT.TFile(
"amit_histos_10August2016/histos_g4lbne_v3r4p3_QGSP_BERT_CP_run15_12388_antineutrino_LBNFFD_500_rebinned.root"))
   115 for in_file 
in in_files:
   116     cv_histos.append(in_file.Get(
"nom/hcv_numu"))
   117     cv_histos.append(in_file.Get(
"nom/hcv_numubar"))
   118     cv_histos.append(in_file.Get(
"nom/hcv_nue"))
   119     cv_histos.append(in_file.Get(
"nom/hcv_nuebar"))
   124 error_types = [
"total",
"others",
"targetpcpi",
"targetpck",
"targetncpi",
"targetpcnu",
"targetmesonInc",
"targetnuA",
"tgtabsorption",
"totabsorption"]
   125 error_types2 = [
"total",
"others",
"targetpcpi",
"targetpcK",
"targetncpi",
"targetpcnu",
"targetmesonInc",
"targetnucleonA",
"targetabsorption",
"absorption"]
   126 error_titles = [
"Total",
"Other",
"pC#rightarrow#pi",
"pC#rightarrowK",
"nC#rightarrow#pi",
"pc#rightarrowN",
"Meson Inc",
"NucleonA",
"Target Absorption",
"Other Absorption"]
   127 for error 
in error_types:
   128     error_universes.append([])
   130 for in_file 
in in_files:
   131   for error_iter 
in range(len(error_types)):
   132     error_universes[error_iter].append([])
   133     for i 
in range(n_universes):
   134         error_universes[error_iter][-1].append(in_file.Get(
"numu_"+error_types[error_iter]+
"/h"+error_types2[error_iter]+
"_numu_"+
str(i)))
   136     error_universes[error_iter].append([])
   137     for i 
in range(n_universes):
   138         error_universes[error_iter][-1].append(in_file.Get(
"numubar_"+error_types[error_iter]+
"/h"+error_types2[error_iter]+
"_numubar_"+
str(i)))
   140     error_universes[error_iter].append([])
   141     for i 
in range(n_universes):
   142         error_universes[error_iter][-1].append(in_file.Get(
"nue_"+error_types[error_iter]+
"/h"+error_types2[error_iter]+
"_nue_"+
str(i)))
   144     error_universes[error_iter].append([])
   145     for i 
in range(n_universes):
   146         error_universes[error_iter][-1].append(in_file.Get(
"nuebar_"+error_types[error_iter]+
"/h"+error_types2[error_iter]+
"_nuebar_"+
str(i)))
   149 numu_bins = [0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,7 ,8,12,16,20,40,100] 
   150 flavors = [
"neutrino_near_numu",
"neutrino_near_numubar",
"neutrino_near_nue",
"neutrino_near_nuebar",
"antineutrino_near_numu",
"antineutrino_near_numubar",
"antineutrino_near_nue",
"antineutrino_near_nuebar",
"neutrino_far_numu",
"neutrino_far_numubar",
"neutrino_far_nue",
"neutrino_far_nuebar",
"antineutrino_far_numu",
"antineutrino_far_numubar",
"antineutrino_far_nue",
"antineutrino_far_nuebar"]
   157 merged_histograms = []
   158 merged_universes = []
   159 flux_uncertainties = []
   160 for error_iter 
in range(len(error_types)):
   162     merged_histograms.append(
MergeHistograms(cv_histos,error_universes[error_iter],error_types[error_iter]))
   163     merged_universes.append(merged_histograms[error_iter][1])
   168 c1 = ROOT.TCanvas(
"c1",
"",1000,800)
   170 flux_uncertainties[error_types.index(
"total")].Draw()
   171 print "BLAH6",flux_uncertainties[error_types.index(
"total")].GetBinContent(start_indices[plots.index(
"numubar_antineutrino_FD")]+5)
   172 c1.Print(
"HP_error_"+beam_config+
".eps")
   173 c1.Print(
"HP_error_"+beam_config+
".png")
   177 flux_covariance.Reset()
   178 for i 
in range(1,len(error_types)):
   181 flux_covariance.SetMaximum(0.06)
   182 flux_covariance.SetMinimum(-0.005)
   183 flux_covariance.SetLabelSize(0.001,
"X")
   184 flux_covariance.SetLabelSize(0.001,
"Y")
   185 flux_covariance.SetTitle(
"Flux Hadron Production Covariance Matrix")
   186 flux_covariance.Draw(
"COLZ")
   188 latex0 = ROOT.TLatex( 0.5, 0.93, 
"Flux Hadron Production Fractional Covariance Matrix" );
   189 latex0.SetTextSize(0.04)
   190 latex0.SetTextAlign(22)
   192 latex0.SetTextFont(42)
   196     latex1 = ROOT.TLatex( 0.24, 0.035, 
"Near Detector" );
   197     latex1.SetTextSize(0.035);
   199     latex1.SetTextFont(42);     
   201     latex2 = latex1.Clone()
   202     latex2.SetText(0.61,0.035,
"Far Detector")
   204     latex3 = latex1.Clone()
   205     latex3.SetText(0.05,0.24,
"Near Detector")
   206     latex3.SetTextAngle(90)
   208     latex4 = latex1.Clone()
   209     latex4.SetText(0.05,0.62,
"Far Detector")
   210     latex4.SetTextAngle(90)
   213     latex5 = ROOT.TLatex(0.2,0.08,
"#nu Mode")
   214     latex5.SetTextSize(0.025);
   216     latex5.SetTextFont(42)
   218     latex6 = latex5.Clone()
   219     latex6.SetText(0.38,0.08,
"#bar{#nu} Mode")
   221     latex7 = latex5.Clone()
   222     latex7.SetText(0.56,0.08,
"#nu Mode")
   224     latex8 = latex5.Clone()
   225     latex8.SetText(0.74,0.08,
"#bar{#nu} Mode")
   228     latex9 = ROOT.TLatex(0.085,0.21,
"#nu Mode")
   229     latex9.SetTextSize(0.025);
   231     latex9.SetTextFont(42)
   232     latex9.SetTextAngle(90)
   234     latex10 = latex9.Clone()
   235     latex10.SetText(0.085,0.4,
"#bar{#nu} Mode")
   237     latex11 = latex9.Clone()
   238     latex11.SetText(0.085,0.59,
"#nu Mode")
   240     latex12 = latex9.Clone()
   241     latex12.SetText(0.085,0.77,
"#bar{#nu} Mode")
   244     latex13 = ROOT.TLatex( 0.175, 0.124, 
"#nu_{#mu}" );
   245     latex13.SetTextSize(0.02);
   247     latex13.SetTextFont(42);     
   249     latex14 = ROOT.TLatex( 0.245, 0.124, 
"#bar{#nu}_{#mu}" );
   250     latex14.SetTextSize(0.02);
   252     latex14.SetTextFont(42);     
   254     latex15 = ROOT.TLatex( 0.285, 0.124, 
"#nu_{e}" );
   255     latex15.SetTextSize(0.02);
   257     latex15.SetTextFont(42);     
   259     latex16 = ROOT.TLatex( 0.31, 0.124, 
"#bar{#nu}_{e}" );
   260     latex16.SetTextSize(0.02);
   262     latex16.SetTextFont(42);     
   265     latex17 = ROOT.TLatex( 0.35, 0.124, 
"#nu_{#mu}" );
   266     latex17.SetTextSize(0.02);
   268     latex17.SetTextFont(42);     
   270     latex18 = ROOT.TLatex( 0.415, 0.124, 
"#bar{#nu}_{#mu}" );
   271     latex18.SetTextSize(0.02);
   273     latex18.SetTextFont(42);     
   275     latex19 = ROOT.TLatex( 0.46, 0.124, 
"#nu_{e}" );
   276     latex19.SetTextSize(0.02);
   278     latex19.SetTextFont(42);     
   280     latex20 = ROOT.TLatex( 0.485, 0.124, 
"#bar{#nu}_{e}" );
   281     latex20.SetTextSize(0.02);
   283     latex20.SetTextFont(42);     
   286     latex21 = ROOT.TLatex( 0.53, 0.124, 
"#nu_{#mu}" );
   287     latex21.SetTextSize(0.02);
   289     latex21.SetTextFont(42);     
   291     latex22 = ROOT.TLatex( 0.595, 0.124, 
"#bar{#nu}_{#mu}" );
   292     latex22.SetTextSize(0.02);
   294     latex22.SetTextFont(42);     
   296     latex23 = ROOT.TLatex( 0.631, 0.124, 
"#nu_{e}" );
   297     latex23.SetTextSize(0.02);
   299     latex23.SetTextFont(42);     
   301     latex24 = ROOT.TLatex( 0.654, 0.124, 
"#bar{#nu}_{e}" );
   302     latex24.SetTextSize(0.02);
   304     latex24.SetTextFont(42);     
   307     latex25 = ROOT.TLatex( 0.70, 0.124, 
"#nu_{#mu}" );
   308     latex25.SetTextSize(0.02);
   310     latex25.SetTextFont(42);     
   312     latex26 = ROOT.TLatex( 0.77, 0.124, 
"#bar{#nu}_{#mu}" );
   313     latex26.SetTextSize(0.02);
   315     latex26.SetTextFont(42);     
   317     latex27 = ROOT.TLatex( 0.81, 0.124, 
"#nu_{e}" );
   318     latex27.SetTextSize(0.02);
   320     latex27.SetTextFont(42);     
   322     latex28 = ROOT.TLatex( 0.835, 0.124, 
"#bar{#nu}_{e}" );
   323     latex28.SetTextSize(0.02);
   325     latex28.SetTextFont(42);     
   328     latex29 = ROOT.TLatex( 0.11,0.18, 
"#nu_{#mu}" );
   329     latex29.SetTextAngle(90)
   330     latex29.SetTextSize(0.02);
   332     latex29.SetTextFont(42);     
   334     latex30 = ROOT.TLatex( 0.11,0.25, 
"#bar{#nu}_{#mu}" );
   335     latex30.SetTextAngle(90)
   336     latex30.SetTextSize(0.02);
   338     latex30.SetTextFont(42);     
   340     latex31 = ROOT.TLatex( 0.11,0.295, 
"#nu_{e}" );
   341     latex31.SetTextAngle(90)
   342     latex31.SetTextSize(0.02);
   344     latex31.SetTextFont(42);     
   346     latex32 = ROOT.TLatex( 0.11,0.32, 
"#bar{#nu}_{e}" );
   347     latex32.SetTextAngle(90)
   348     latex32.SetTextSize(0.02);
   350     latex32.SetTextFont(42);     
   353     latex33 = ROOT.TLatex( 0.11,0.37, 
"#nu_{#mu}" );
   354     latex33.SetTextAngle(90)
   355     latex33.SetTextSize(0.02);
   357     latex33.SetTextFont(42);     
   359     latex34 = ROOT.TLatex( 0.11,0.435, 
"#bar{#nu}_{#mu}" );
   360     latex34.SetTextAngle(90)
   361     latex34.SetTextSize(0.02);
   363     latex34.SetTextFont(42);     
   365     latex35 = ROOT.TLatex( 0.11,0.48, 
"#nu_{e}" );
   366     latex35.SetTextAngle(90)
   367     latex35.SetTextSize(0.02);
   369     latex35.SetTextFont(42);     
   371     latex36 = ROOT.TLatex( 0.11,0.505, 
"#bar{#nu}_{e}" );
   372     latex36.SetTextAngle(90)
   373     latex36.SetTextSize(0.02);
   375     latex36.SetTextFont(42);     
   378     latex37 = ROOT.TLatex( 0.11,0.56, 
"#nu_{#mu}" );
   379     latex37.SetTextAngle(90)
   380     latex37.SetTextSize(0.02);
   382     latex37.SetTextFont(42);     
   384     latex38 = ROOT.TLatex( 0.11,0.62, 
"#bar{#nu}_{#mu}" );
   385     latex38.SetTextAngle(90)
   386     latex38.SetTextSize(0.02);
   388     latex38.SetTextFont(42);     
   390     latex39 = ROOT.TLatex( 0.11,0.67, 
"#nu_{e}" );
   391     latex39.SetTextAngle(90)
   392     latex39.SetTextSize(0.02);
   394     latex39.SetTextFont(42);     
   396     latex40 = ROOT.TLatex( 0.11,0.70, 
"#bar{#nu}_{e}" );
   397     latex40.SetTextAngle(90)
   398     latex40.SetTextSize(0.02);
   400     latex40.SetTextFont(42);     
   403     latex41 = ROOT.TLatex( 0.11,0.75, 
"#nu_{#mu}" );
   404     latex41.SetTextAngle(90)
   405     latex41.SetTextSize(0.02);
   407     latex41.SetTextFont(42);     
   409     latex42 = ROOT.TLatex( 0.11,0.81, 
"#bar{#nu}_{#mu}" );
   410     latex42.SetTextAngle(90)
   411     latex42.SetTextSize(0.02);
   413     latex42.SetTextFont(42);     
   415     latex43 = ROOT.TLatex( 0.11,0.855, 
"#nu_{e}" );
   416     latex43.SetTextAngle(90)
   417     latex43.SetTextSize(0.02);
   419     latex43.SetTextFont(42);     
   421     latex44 = ROOT.TLatex( 0.11,0.88, 
"#bar{#nu}_{e}" );
   422     latex44.SetTextAngle(90)
   423     latex44.SetTextSize(0.02);
   425     latex44.SetTextFont(42);     
   428     line_1 = ROOT.TLine(19.5,0.5,19.5,208)
   429     line_2 = ROOT.TLine(38.5,0.5,38.5,208)
   430     line_3 = ROOT.TLine(45.5,0.5,45.5,208)
   431     line_4 = ROOT.TLine(52.5,0.5,52.5,208)
   432     line_5 = ROOT.TLine(71.5,0.5,71.5,208)
   433     line_6 = ROOT.TLine(90.5,0.5,90.5,208)
   434     line_7 = ROOT.TLine(97.5,0.5,97.5,208)
   435     line_8 = ROOT.TLine(104.5,0.5,104.5,208)
   436     line_9 = ROOT.TLine(123.5,0.5,123.5,208)
   437     line_10 = ROOT.TLine(142.5,0.5,142.5,208)
   438     line_11 = ROOT.TLine(149.5,0.5,149.5,208)
   439     line_12 = ROOT.TLine(156.5,0.5,156.5,208)
   440     line_13 = ROOT.TLine(175.5,0.5,175.5,208)
   441     line_14 = ROOT.TLine(194.5,0.5,194.5,208)
   442     line_15 = ROOT.TLine(201.5,0.5,201.5,208)
   443     lineb_1 = ROOT.TLine(0.5,19.5,208,19.5)
   444     lineb_2 = ROOT.TLine(0.5,38.5,208,38.5)
   445     lineb_3 = ROOT.TLine(0.5,45.5,208,45.5)
   446     lineb_4 = ROOT.TLine(0.5,52.5,208,52.5)
   447     lineb_5 = ROOT.TLine(0.5,71.5,208,71.5)
   448     lineb_6 = ROOT.TLine(0.5,90.5,208,90.5)
   449     lineb_7 = ROOT.TLine(0.5,97.5,208,97.5)
   450     lineb_8 = ROOT.TLine(0.5,104.5,208,104.5)
   451     lineb_9 = ROOT.TLine(0.5,123.5,208,123.5)
   452     lineb_10 = ROOT.TLine(0.5,142.5,208,142.5)
   453     lineb_11 = ROOT.TLine(0.5,149.5,208,149.5)
   454     lineb_12 = ROOT.TLine(0.5,156.5,208,156.5)
   455     lineb_13 = ROOT.TLine(0.5,175.5,208,175.5)
   456     lineb_14 = ROOT.TLine(0.5,194.5,208,194.5)
   457     lineb_15 = ROOT.TLine(0.5,201.5,208,201.5)
   459     line_8.SetLineWidth(4)
   460     lineb_8.SetLineWidth(4)
   462     line_4.SetLineWidth(2)
   463     lineb_4.SetLineWidth(2)
   464     line_12.SetLineWidth(2)
   465     lineb_12.SetLineWidth(2)
   467     for line 
in [line_1,line_2,line_3,line_4,line_5,line_6,line_7,line_8,line_9,line_10,line_11,line_12,line_13,line_14,line_15,lineb_1,lineb_2,lineb_3,lineb_4,lineb_5,lineb_6,lineb_7,lineb_8,lineb_9,lineb_10,lineb_11,lineb_12,lineb_13,lineb_14,lineb_15]:
   468         line.SetLineColor(13)
   472 c1.Print(
"HP_covariance_"+beam_config+
".eps")
   473 c1.Print(
"HP_covariance_"+beam_config+
".png")
   476 f_foc = ROOT.TFile(
"focusing_covariance_"+beam_config+
".root")
   477 covariance_focusing = f_foc.Get(
"Focusing_Covariance")
   479 print "BLAH5",ROOT.TMath.Sqrt(flux_covariance.GetBinContent(start_indices[plots.index(
"numubar_antineutrino_FD")]+5,start_indices[plots.index(
"numubar_antineutrino_FD")]+5))
   482 total_covariance = flux_covariance.Clone(
"total_covariance")
   483 total_covariance.Add(covariance_focusing)
   485 total_covariance.SetMaximum(0.06)
   486 total_covariance.SetMinimum(-0.005)
   487 total_covariance.SetLabelSize(0.001,
"X")
   488 total_covariance.SetLabelSize(0.001,
"Y")
   489 total_covariance.SetTitle(
"Fractional Flux Covariance Matrix")
   490 total_covariance.Draw(
"COLZ")
   492 latex0b = ROOT.TLatex( 0.5, 0.93, 
"Fractional Flux Covariance Matrix" );
   493 latex0b.SetTextSize(0.04)
   494 latex0b.SetTextAlign(22)
   496 latex0b.SetTextFont(42)
   499 for line 
in [line_1,line_2,line_3,line_4,line_5,line_6,line_7,line_8,line_9,line_10,line_11,line_12,line_13,line_14,line_15,lineb_1,lineb_2,lineb_3,lineb_4,lineb_5,lineb_6,lineb_7,lineb_8,lineb_9,lineb_10,lineb_11,lineb_12,lineb_13,lineb_14,lineb_15]:
   500         line.SetLineColor(13)
   503 for latex 
in [latex1,latex2,latex3,latex4,latex5,latex6,latex7,latex8,latex9,latex10,latex11,latex12,latex13,latex14,latex15,latex16,latex17,latex18,latex19,latex20,latex21,latex22,latex23,latex24,latex25,latex26,latex27,latex28,latex29,latex30,latex31,latex32,latex33,latex34,latex35,latex35,latex36,latex37,latex38,latex39,latex40,latex41,latex42,latex43,latex44]:
   506 c1.Print(
"Total_covariance_"+beam_config+
".eps")
   507 c1.Print(
"Total_covariance_"+beam_config+
".png")
   509 f_out = ROOT.TFile(
"total_covariance_DUNE_"+beam_config+
".root",
"RECREATE")
   510 total_covariance.Write()
   513 total_error = ROOT.TH1D(
"Total Error",
"Total Error",208,0.5,208.5);
   515     total_error.SetBinContent(i+1,ROOT.TMath.Sqrt(total_covariance.GetBinContent(i+1,i+1)))
   516 total_error.SetLabelSize(0.001,
"X")
   517 total_error.SetLabelSize(0.05,
"Y")
   518 total_error.GetYaxis().SetTitleOffset(1.3)
   519 total_error.GetYaxis().SetTitle(
"Fractional Flux Uncertainty")
   521 total_error.SetMaximum(0.4)
   522 total_error.SetMinimum(0)
   526 linec_1 = ROOT.TLine(19.5,0,19.5,total_error.GetMaximum())
   527 linec_2 = ROOT.TLine(38.5,0,38.5,total_error.GetMaximum())
   528 linec_3 = ROOT.TLine(45.5,0,45.5,total_error.GetMaximum())
   529 linec_4 = ROOT.TLine(52.5,0,52.5,total_error.GetMaximum())
   530 linec_5 = ROOT.TLine(71.5,0,71.5,total_error.GetMaximum())
   531 linec_6 = ROOT.TLine(90.5,0,90.5,total_error.GetMaximum())
   532 linec_7 = ROOT.TLine(97.5,0,97.5,total_error.GetMaximum())
   533 linec_8 = ROOT.TLine(104.5,0,104.5,total_error.GetMaximum())
   534 linec_9 = ROOT.TLine(123.5,0,123.5,total_error.GetMaximum())
   535 linec_10 = ROOT.TLine(142.5,0,142.5,total_error.GetMaximum())
   536 linec_11 = ROOT.TLine(149.5,0,149.5,total_error.GetMaximum())
   537 linec_12 = ROOT.TLine(156.5,0,156.5,total_error.GetMaximum())
   538 linec_13 = ROOT.TLine(175.5,0,175.5,total_error.GetMaximum())
   539 linec_14 = ROOT.TLine(194.5,0,194.5,total_error.GetMaximum())
   540 linec_15 = ROOT.TLine(201.5,0,201.5,total_error.GetMaximum())
   542 for line 
in [linec_1,linec_2,linec_3,linec_4,linec_5,linec_6,linec_7,linec_8,linec_9,linec_10,linec_11,linec_12,linec_13,linec_14,linec_15]:
   547 for latex 
in [latex1,latex2,latex5,latex6,latex7,latex8,latex13,latex14,latex15,latex16,latex17,latex18,latex19,latex20,latex21,latex22,latex23,latex24,latex25,latex26,latex27,latex28]:
   550 c1.Print(
"Total_error_"+beam_config+
".eps")
   551 c1.Print(
"Total_error_"+beam_config+
".png")
   554 const int NRGBs = 3, NCont = 999;   555   gStyle.xSetNumberContours(NCont);   556   Double_t stops[NRGBs] = { 0.00, 0.50, 1.00};   557   Double_t red[NRGBs]   = { 0.00, 1.00, 1.00};   558   Double_t green[NRGBs] = { 0.00, 1.00, 0.00};   559   Double_t blue[NRGBs]  = { 1.00, 1.00, 0.00};   560   TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);   564 ROOT.gStyle.SetNumberContours(NCont);
   565 stops = [ 0.00, 0.50, 1.00];
   566 red   = [ 0.00, 1.00, 1.00];
   567 green = [ 0.00, 1.00, 0.00];
   568 blue  = [ 1.00, 1.00, 0.00];
   569 ROOT.TColor.CreateGradientColorTable(NRGBs, array.array(
'd',stops), array.array(
'd',red), array.array(
'd',green), array.array(
'd',blue), NCont);
   572 correlation.Draw(
"COLZ")
   574 for line 
in [line_1,line_2,line_3,line_4,line_5,line_6,line_7,line_8,line_9,line_10,line_11,line_12,line_13,line_14,line_15,lineb_1,lineb_2,lineb_3,lineb_4,lineb_5,lineb_6,lineb_7,lineb_8,lineb_9,lineb_10,lineb_11,lineb_12,lineb_13,lineb_14,lineb_15]:
   575         line.SetLineColor(13)
   577 for latex 
in [latex1,latex2,latex3,latex4,latex5,latex6,latex7,latex8,latex9,latex10,latex11,latex12,latex13,latex14,latex15,latex16,latex17,latex18,latex19,latex20,latex21,latex22,latex23,latex24,latex25,latex26,latex27,latex28,latex29,latex30,latex31,latex32,latex33,latex34,latex35,latex36,latex37,latex38,latex39,latex40,latex41,latex42,latex43,latex44]:
   580 c1.Print(
"total_correlation_"+beam_config+
".eps")
   581 c1.Print(
"total_correlation_"+beam_config+
".png")
   586     error_bins = [0,2,4,6,8,10]
   587     if plot.startswith(
"numu"):
   588         error_bins = [0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,7 ,8,12,20,40] 
   590     total_uncertainties = [0]*(len(error_bins)-1)
   591     for i 
in range(1,len(error_types)):
   593         temp_hist = ROOT.TH1D(error_types[i],error_types[i],len(error_bins)-1,array.array(
'd',error_bins))
   594         for j 
in range(len(error_bins)-1):
   595                 temp_hist.SetBinContent(j+1,
abs(flux_uncertainties[i].GetBinContent(start_indices[plots.index(plot)]+j+1)))
   596                 total_uncertainties[j] = total_uncertainties[j]+math.pow(flux_uncertainties[i].GetBinContent(start_indices[plots.index(plot)]+j+1),2)
   597         error_hists.append(temp_hist)
   599     temp_hist = ROOT.TH1D(
"Total",
"Total",len(error_bins)-1,array.array(
'd',error_bins))
   600     for j 
in range(len(error_bins)-1):
   601         temp_hist.SetBinContent(j+1,math.sqrt(total_uncertainties[j]))
   602     error_hists.append(temp_hist)
   604     error_hists[-1].SetMinimum(0);
   605     error_hists[-1].SetMaximum(0.2);
   606     error_hists[-1].SetLineWidth(3)
   607     error_hists[-1].Draw(
"hist")
   608     error_hists[-1].GetXaxis().SetTitle(
"Neutrino Energy (GeV)")
   609     error_hists[-1].GetYaxis().SetTitle(
"Fractional Uncertainty")
   610     error_hists[-1].GetYaxis().SetTitleOffset(1.3)
   611     for i 
in range(0,len(error_hists)-1):
   612             colors = [2,ROOT.kOrange+3,6,ROOT.kOrange+7,ROOT.kGreen+2,3,ROOT.kAzure+7,ROOT.kBlue-4,7,ROOT.kViolet+1,13,15,17,19]
   613             error_hists[i].SetLineColor(colors[i])
   614             error_hists[i].SetLineWidth(3)
   615             error_hists[i].Draw(
"histsame")
   617     leg = ROOT.TLegend(0.25,0.6,0.5,0.88)
   618     leg.AddEntry(error_hists[-1],
"Total",
"l")
   619     for i 
in range(0,len(error_hists)-1):
   620         leg.AddEntry(error_hists[i],error_titles[i+1],
"l")
   624     c1.Print(
"HP_error_overlay_"+plot+
"_"+beam_config+
".eps")        
   625     c1.Print(
"HP_error_overlay_"+plot+
"_"+beam_config+
".png")
   628     focusing_unc = ROOT.TH1D(
"Focusing",
"Focusing",len(error_bins)-1,array.array(
'd',error_bins))
   629     total_unc = ROOT.TH1D(
"Total",
"Total",len(error_bins)-1,array.array(
'd',error_bins))
   630     for j 
in range(len(error_bins)-1):
   631         focusing_unc.SetBinContent(j+1,ROOT.TMath.Sqrt(covariance_focusing.GetBinContent(start_indices[plots.index(plot)]+j+1,start_indices[plots.index(plot)]+j+1)))
   632         total_unc.SetBinContent(j+1,ROOT.TMath.Sqrt(total_covariance.GetBinContent(start_indices[plots.index(plot)]+j+1,start_indices[plots.index(plot)]+j+1)))
   634     total_unc.SetMinimum(0)
   635     total_unc.SetMaximum(0.2)
   636     total_unc.SetLineWidth(3)
   637     focusing_unc.SetLineWidth(3)
   638     total_unc.GetXaxis().SetTitle(
"Neutrino Energy (GeV)")
   639     total_unc.GetYaxis().SetTitle(
"Fractional Uncertainty")
   640     total_unc.GetYaxis().SetTitleOffset(1.3)
   641     total_unc.Draw(
"hist")
   642     focusing_unc.SetLineColor(2)
   643     error_hists[-1].SetLineColor(4)
   644     focusing_unc.Draw(
"histsame")
   645     error_hists[-1].Draw(
"histsame")
   647     if plot==
"numubar_antineutrino_FD":
   648         print "blah3",total_unc.GetBinContent(5),focusing_unc.GetBinContent(5),error_hists[-1].GetBinContent(5)
   649         print "BLAH4",ROOT.TMath.Sqrt(total_covariance.GetBinContent(start_indices[plots.index(
"numubar_antineutrino_FD")]+5,start_indices[plots.index(
"numubar_antineutrino_FD")]+5))
   650         total_unc.Print(
"ALL")
   651         print plots.index(
"numubar_antineutrino_FD"),plots.index(plot)
   654     leg2 = ROOT.TLegend(0.25,0.7,0.6,0.88)
   655     leg2.AddEntry(total_unc,
"Total",
"l")
   656     leg2.AddEntry(error_hists[-1],
"Hadron Production",
"l")
   657     leg2.AddEntry(focusing_unc,
"Focusing",
"l")
   661     c1.Print(
"error_overlay_"+plot+
"_"+beam_config+
".eps")        
   662     c1.Print(
"error_overlay_"+plot+
"_"+beam_config+
".png")
 def GetCorrelation(cov_matrix)
def MakeErrorHistogram(universes, asFrac=True)
def MergeHistograms(cvs, universes, name)
def MakeCovariance(universes, asFrac=True)