示例#1
0
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()
示例#2
0
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()
示例#4
0
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")