def AsimovFitTables(model, analysis, fit_functions, expected_signal, masses): import ROOT from ROOT import TFile, TTree, TLeaf table_file = open("/uscms/home/dryu/Dijets/data/EightTeeEeVeeBee/Fits/AsimovFits/table_{}_{}_{}.tex".format(model, analysis, expected_signal), 'w') table_file.write("\\begin{table}\n") table_file.write("\t\\centering\n") table_file.write("\t\\begin{tabular}{|c|") for i in xrange(len(fit_functions)): table_file.write("c|") table_file.write("}\n") table_file.write("\t\t\\hline\n") table_file.write("\t\tMass\t") for fit_function in fit_functions: table_file.write("\t&\t$\\mu_{" + fit_function + "}$") table_file.write("\\\\\n\t\t\\hline\n") for mass in masses: table_file.write("\t\t{} GeV ".format(mass)) for fit_function in fit_functions: tree_file = "/uscms/home/dryu/Dijets/data/EightTeeEeVeeBee/Fits/AsimovFits/mlfit_{}_{}_{}_{}_correctTrigger_{}.root".format(analysis, model, mass, fit_function, expected_signal) f = TFile(tree_file, "READ") if not f.IsOpen(): print "[AsimovFitTables] WARNING : File {} was not found. Skipping.".format(tree_file) t = f.Get("tree_fit_sb") if not t: print "[AsimovFitTables] ERROR : Didn't find tree_fit_sb in file {}. Printing contents of file.".format(tree_file) f.Print() sys.exit(1) t.GetEntry(0) mu = t.GetLeaf("mu").GetValue() mu_err = t.GetLeaf("muErr").GetValue() mu_sig = (mu / mu_err if mu_err > 0 else -1.) #table_file.write("\t\t{} GeV & {} & ${:.2}$ & ${:.2}$ & ${:.2}$ \n".format(mass, t.GetLeaf("fit_status").GetValue(), mu, mu_err, mu_sig)) table_file.write("\t&\t ${:.2} \pm {:.2}$".format(mu, mu_err)) #" & ${:.2}$ & ${:.2}$ & ${:.2}$ \n".format(mass, t.GetLeaf("fit_status").GetValue(), mu, mu_err, mu_sig)) f.Close() table_file.write("\t\\\\\n\t\t\\hline\n") table_file.write("\t\\end{tabular}\n") table_file.write("\\end{table}\n") table_file.close()
def AsimovFitPlots(model, analysis, fit_functions, expected_signal, masses): graph_mu = {} graph_pull = {} canvas_mu = TCanvas("c_asimov_fit_mu_{}_{}_{}".format(model, analysis, expected_signal), "c_asimov_fit_mu_{}_{}_{}".format(model, analysis, expected_signal), 800, 600) legend_mu = TLegend(0.83, 0.7, 0.89, 0.88) legend_mu.SetFillColor(0) legend_mu.SetBorderSize(0) frame_mu = TH1D("frame_mu", "frame_mu", 100, min(masses) - 50., max(masses) + 150.) frame_mu.GetXaxis().SetTitle("Signal Mass [GeV]") frame_mu.GetYaxis().SetTitle("#mu") frame_mu.SetMinimum(expected_signal -1.) frame_mu.SetMaximum(expected_signal + 1.) frame_mu.Draw("axis") canvas_pull = TCanvas("c_asimov_fit_pull_{}_{}_{}".format(model, analysis, expected_signal), "c_asimov_fit_pull_{}_{}_{}".format(model, analysis, expected_signal), 800, 600) legend_pull = TLegend(0.83, 0.7, 0.89, 0.88) legend_pull.SetFillColor(0) legend_pull.SetBorderSize(0) frame_pull = TH1D("frame_pull", "frame_pull", 100, min(masses) - 50., max(masses) + 150.) frame_pull.GetXaxis().SetTitle("Signal Mass [GeV]") frame_pull.GetYaxis().SetTitle("#mu/#sigma_{#mu}") frame_pull.SetMinimum(-3.) frame_pull.SetMaximum(3.) frame_pull.Draw("axis") style_counter = 0 for fit_function in fit_functions: graph_mu[fit_function] = TGraphErrors(len(masses)) graph_pull[fit_function] = TGraph(len(masses)) for i in xrange(len(masses)): tree_file = "/uscms/home/dryu/Dijets/data/EightTeeEeVeeBee/Fits/AsimovFits/mlfit_{}_{}_{}_{}_correctTrigger_{}.root".format(analysis, model, masses[i], fit_function, expected_signal) f = TFile(tree_file, "READ") if not f.IsOpen(): print "[AsimovFitTables] WARNING : File {} was not found. Skipping.".format(tree_file) t = f.Get("tree_fit_sb") if not t: print "[AsimovFitTables] ERROR : Didn't find tree_fit_sb in file {}. Printing contents of file.".format(tree_file) f.Print() sys.exit(1) t.GetEntry(0) mu = t.GetLeaf("mu").GetValue() mu_err = t.GetLeaf("muErr").GetValue() mu_sig = ((mu - expected_signal) / mu_err if mu_err > 0 else -3.) graph_mu[fit_function].SetPoint(i, masses[i], mu) graph_mu[fit_function].SetPointError(i, 0., mu_err) graph_pull[fit_function].SetPoint(i, masses[i], mu_sig) canvas_mu.cd() graph_mu[fit_function].SetMarkerStyle(20 + style_counter) graph_mu[fit_function].SetMarkerColor(seaborn.GetColorRoot("default", style_counter)) graph_mu[fit_function].Draw("p") legend_mu.AddEntry(graph_mu[fit_function], fit_function, "p") canvas_pull.cd() graph_pull[fit_function].SetMarkerStyle(20 + style_counter) graph_pull[fit_function].SetMarkerColor(seaborn.GetColorRoot("default", style_counter)) graph_pull[fit_function].Draw("p") legend_pull.AddEntry(graph_pull[fit_function], fit_function, "p") style_counter += 1 canvas_mu.cd() line_expected = TLine(min(masses) - 50., expected_signal, max(masses) + 150., expected_signal) line_expected.SetLineColor(kGray) line_expected.SetLineStyle(2) line_expected.Draw("same") legend_mu.Draw() canvas_mu.SaveAs("/uscms/home/dryu/Dijets/data/EightTeeEeVeeBee/Fits/AsimovFits/{}.pdf".format(canvas_mu.GetName())) canvas_pull.cd() legend_pull.Draw() line_zero = TLine(min(masses) - 50., 0., max(masses) + 150., 0.) line_zero.SetLineColor(kGray) line_zero.SetLineStyle(2) line_zero.Draw("same") canvas_pull.SaveAs("/uscms/home/dryu/Dijets/data/EightTeeEeVeeBee/Fits/AsimovFits/{}.pdf".format(canvas_pull.GetName()))
pccF2p2[0] = PCCF2P2[b - 1] * sigma_pccF2P2 pccF3p2[0] = PCCF3P2[b - 1] * sigma_pccF3P2 hfet[0] = HFET[b - 1] * sigma_hfet bcm[0] = BCM[b - 1] * sigma_bcm plt[0] = PLT[b - 1] * sigma_plt # plt_0[0] = PLT_0[b-1]*sigma_plt # plt_1[0] = PLT_1[b-1]*sigma_plt # plt_2[0] = PLT_2[b-1]*sigma_plt # plt_3[0] = PLT_3[b-1]*sigma_plt # plt_4[0] = PLT_4[b-1]*sigma_plt # plt_5[0] = PLT_5[b-1]*sigma_plt # plt_6[0] = PLT_6[b-1]*sigma_plt # plt_7[0] = PLT_7[b-1]*sigma_plt # plt_8[0] = PLT_8[b-1]*sigma_plt # plt_9[0] = PLT_9[b-1]*sigma_plt # plt_10[0] = PLT_10[b-1]*sigma_plt # plt_11[0] = PLT_11[b-1]*sigma_plt # plt_12[0] = PLT_12[b-1]*sigma_plt # plt_13[0] = PLT_13[b-1]*sigma_plt # plt_14[0] = PLT_14[b-1]*sigma_plt # plt_15[0] = PLT_15[b-1]*sigma_plt tree.Fill() #print fill[0],run[0],ls[0],time[0],bx[0],hfoc[0],pcc[0] #print fill[0],run[0],ls[0],':',idx_pccB1,pccB1[0],idx_pccF3p1,pccF3p1[0] outFile.Write() outFile.Print() outFile.Close()
options, remainder = getopt.gnu_getopt(sys.argv[1:], 'hl') print(options) print(remainder) # Parse the command line arguments for opt, arg in options: if opt == 'l': isL0 = True if opt == '-h': print_usage() sys.exit(0) outfile = remainder[0] print(outfile) infile = TFile(remainder[1]) infile.Print() #mcfile=TFile("SVTEfficiencyData/tritrig-WB_HPS-PhysicsRun2016-Pass2-svt-efficiency-no-killing-all.root") #mcfile=TFile("OutputHistograms/MC/tritrig-beam_2500kBunches_pass4_v4_5_0_svt_efficiency_allow_missed_sensor.root") mcfile = TFile( "OutputHistograms/MC/tritrig-beam_2500kBunches_pass4_v4_5_0_svt_efficiency_allow_missed_sensor_5sigma_weighted_ratios_rereco.root" ) #mcfile=TFile("OutputHistograms/MC/tritrig-beam_2500kBunches_pass4_v4_5_0_svt_efficiency_allow_missed_sensor_5sigma_weighted_ratios_scalekilling_2pt0.root") #mcfile=TFile("OutputHistograms/MC/tritrig-beam_2500kBunches_pass4_v4_5_0_svt_efficiency_allow_missed_sensor_5sigma_weighted_ratios_scalekilling_First3pt0_Second2pt0.root") #mcfile=TFile("SVTEfficiencyData/tritrig-WB_HPS-PhysicsRun2016-Pass2-svt-efficiency-cluster-killing-allow-missed-sensor-all.root") #mcfile=TFile("SVTEfficiencyData/tritrig-WB_HPS-PhysicsRun2016-Pass2-svt-efficiency-cluster-killing-5-sigma-L1b-axial-all.root") #mcfile=TFile("SVTEfficiencyData/tritrig-WB_HPS-PhysicsRun2016-Pass2-svt-efficiency-cluster-killing-5-sigma-L1-L6-all.root") #mcfile=TFile("SVTEfficiencyData/tritrig-WB_HPS-PhysicsRun2016-Pass2-svt-efficiency-cluster-killing-5-sigma-L1-L6-all.root") #mcfile=TFile("SVTEfficiencyData/tritrig-WB_HPS-PhysicsRun2016-Pass2-svt-efficiency-cluster-killing-5-sigma-L1t-axial-all.root") #mcfile=TFile("SVTEfficiencyData/tritrig-WB_HPS-PhysicsRun2016-Pass2-svt-efficiency-cluster-killing-weighted-ratios-all.root")