args = parser.parse_args() #fname = "/Users/joosep/Documents/stpol/data/step3_trees_Mar28/T_t.root" sample = Sample.fromFile(args.infile) # ev_ids = dict() # for ev in sample.tree: # evid = int(ev.event_id) # if evid not in ev_ids.keys(): # ev_ids[evid] = 1 # else: # ev_ids[evid] += 1 cuts = dict() cuts["MT_mu"] = Cuts.mt_mu cuts["2J"] = Cuts.n_jets(2) cuts["1T"] = Cuts.n_tags(1) #cuts["eta_lj"] = Cuts.eta_lj cuts["rms_lj"] = Cuts.rms_lj cuts["eta_jet"] = Cuts.eta_jet cuts["top_mass_sig"] = Cuts.top_mass_sig def makeSequences(cutsD): cuts = cutsD.values() cut_sequences = [cuts[0]] for cut in cuts[1:]: new_sequence = cut_sequences[-1]*cut cut_sequences.append(new_sequence) return cut_sequences sequences = makeSequences(cuts)
ref["t#bar{t} incl."] = ref["t#bar{t}"] ref["W(#rightarrow l #nu) + jets"] = 47758738 ref["QCD (MC)"] = 1873957 ref["t-channel"] = 54769 previous = Cuts.hlt_isomu * Cuts.one_muon * Cuts.lepton_veto mc_amount(previous, weight, 12210, ref=ref) print print "2 jets" ref = dict() ref["t#bar{t}"] = 78201 ref["t#bar{t} incl."] = ref["t#bar{t}"] ref["W(#rightarrow l #nu) + jets"] = 921051 ref["QCD (MC)"] = 67463 ref["t-channel"] = 20274 previous = previous*Cuts.n_jets(2)*Cuts.eta_jet*Cuts.pt_jet mc_amount(previous, weight, 12210, ref=ref) print print "met>45" ref = dict() ref["t#bar{t}"] = 50158 ref["t#bar{t} incl."] = ref["t#bar{t}"] ref["W(#rightarrow l #nu) + jets"] = 418873 ref["QCD (MC)"] = 8090 ref["t-channel"] = 10828 previous = previous * Cut("met > 45") mc_amount(previous, weight, 12210, ref=ref) print print "1 tight b-tag"
return N_tagged / N if __name__ == "__main__": ##sample_dir = "/scratch/joosep/out_step3_05_07_14_19/iso/mc/" sample_dir = "out_step3_May8/" samples = [] #samples.append(project_histos.Sample.fromFile(sample_dir + "TTJets_FullLept.root")) samples.append( project_histos.Sample.fromFile(sample_dir + "TTJets_MassiveBinDECAY.root")) #samples.append(project_histos.Sample.fromFile(sample_dir + "TTJets_SemiLept.root")) #samples.append(project_histos.Sample.fromFile(sample_dir + "T_t.root")) #samples.append(project_histos.Sample.fromFile(sample_dir + "WJets_inclusive.root")) logging.info("Doing b-tagging efficiency calculations") cuts = [ Cuts.mu * Cuts.n_jets(2) * Cuts.eta_lj * Cuts.mt_mu * Cuts.top_mass_sig ] # cuts = [Cuts.mu] # cuts.append("n_jets==2 && !(top_mass>130 && top_mass<220) && mt_mu>50") # cuts.append("n_jets==3 && !(top_mass>130 && top_mass<220) && mt_mu>50") for cut in cuts: for sample in samples: for flavour in ["b", "c", "l"]: entries = sample.getEntries(str(cut)) total = sample.getTotalEventCount() eff = getBTaggingEff(sample, flavour, str(cut)) print "%s | %s | %.3E/%.3E | %.6f" % (sample, flavour, entries, total, eff)
if __name__=="__main__": parser = argparse.ArgumentParser() args = parser.parse_args() #fname = "/Users/joosep/Documents/stpol/data/step3_trees_Mar28/T_t.root" fnames = [ "/Users/joosep/Documents/stpol/data/T_t.root", "/Users/joosep/Documents/stpol/data/step3_trees_Apr04/iso/mc/T_t.root", "/Users/joosep/Documents/stpol/data/step3_trees_Apr05_noPuClean/iso/mc/T_t.root", ] samples = [Sample.fromFile(f) for f in fnames] sample_names = ["Apr16 (fixed norm)", "Apr04", "Apr05 (no PU cl.)"] samps = zip(samples, sample_names) cut = Cuts.mt_mu*Cuts.n_jets(2)*Cuts.n_tags(1)*Cuts.eta_lj*Cuts.top_mass_sig hists = [] for sample, name in samps: hist = sample.drawHistogram("cos_theta", cut.cut_str, plot_range=[40, -1, 1]) #normalize to 20/fb hist.normalize_lumi(20000) hist.hist.SetName(name) hist.hist.SetTitle("%s: %.3E" % (name, hist.hist.Integral())) hist.update() hists.append(hist) print "%s: %.3E" % (name, hist.hist.Integral())
weight="pu_weight") ret0 = stack_plot( "n_jets", Cuts.mt_mu, #weight="pu_weight", name="n_jets_plot_log", title="N_{jets} in mu, PUw.", do_log_y=True, x_label="N_{jets}", min_bin=1000, weight="pu_weight") ret1 = stack_plot( "n_tags", Cuts.mt_mu * Cuts.n_jets(2), #weight="pu_weight", name="n_tags_plot_2J_log", title="N_{tags} in mu, 2J, PUw.", do_log_y=True, x_label="N_{tags}", min_bin=1000, weight="pu_weight") ret2 = stack_plot( "n_tags", Cuts.mt_mu * Cuts.n_jets(3), #weight="pu_weight", name="n_tags_plot_3J_log", title="N_{tags} in mu, 3J, PUw.", do_log_y=True,
x_label="M_{t}(W) [GeV]", weight="pu_weight" ) ret0 = stack_plot("n_jets", Cuts.mt_mu, #weight="pu_weight", name="n_jets_plot_log", title="N_{jets} in mu, PUw.", do_log_y=True, x_label="N_{jets}", min_bin=1000, weight="pu_weight" ) ret1 = stack_plot("n_tags", Cuts.mt_mu*Cuts.n_jets(2), #weight="pu_weight", name="n_tags_plot_2J_log", title="N_{tags} in mu, 2J, PUw.", do_log_y=True, x_label="N_{tags}", min_bin=1000, weight="pu_weight" ) ret2 = stack_plot("n_tags", Cuts.mt_mu*Cuts.n_jets(3), #weight="pu_weight", name="n_tags_plot_3J_log", title="N_{tags} in mu, 3J, PUw.", do_log_y=True,
args = parser.parse_args() # fname = "/Users/joosep/Documents/stpol/data/step3_trees_Mar28/T_t.root" sample = Sample.fromFile(args.infile) # ev_ids = dict() # for ev in sample.tree: # evid = int(ev.event_id) # if evid not in ev_ids.keys(): # ev_ids[evid] = 1 # else: # ev_ids[evid] += 1 cuts = dict() cuts["MT_mu"] = Cuts.mt_mu cuts["2J"] = Cuts.n_jets(2) cuts["1T"] = Cuts.n_tags(1) # cuts["eta_lj"] = Cuts.eta_lj cuts["rms_lj"] = Cuts.rms_lj cuts["eta_jet"] = Cuts.eta_jet cuts["top_mass_sig"] = Cuts.top_mass_sig def makeSequences(cutsD): cuts = cutsD.values() cut_sequences = [cuts[0]] for cut in cuts[1:]: new_sequence = cut_sequences[-1] * cut cut_sequences.append(new_sequence) return cut_sequences sequences = makeSequences(cuts)
hist_data_aiso = samplesD_aiso["SingleMuD"].drawHistogram(var, str(cut), plot_range=plot_range) hist_data_aiso.pretty_name = "data driven" hist_data_aiso.normalize(hist_qcd_iso.hist.Integral()) print hist_qcd_iso.hist.Integral() print hist_data_aiso.hist.Integral() canv = plot_hists([hist_qcd_iso, hist_data_aiso], **kwargs) B = legend([hist_qcd_iso, hist_data_aiso]) canv.SaveAs(kwargs.get("filename", "qcd_comp.pdf")) return canv, B var = "abs(eta_lj)" plot_range = [10, 2.5, 4.5] plot_rangeB = [10, 0, 4.5] D = qcd_comp_plot( var, Cuts.mt_mu*Cuts.n_jets(2)*Cuts.n_tags(1)*Cuts.eta_lj*Cuts.top_mass_sig, plot_range, title="QCD dd verification: |#eta_{lj}| in 2J1T, M_{t}(W) > 50 GeV, |#eta_{lj}|>2.5, M_{bl#nu} #in [130, 220] GeV", x_label="|#eta_{lj}|", filename="qcd_comp_2J1T_etalj_mtop_mtmu.pdf" ) A = qcd_comp_plot( var, Cuts.n_jets(2)*Cuts.n_tags(1)*Cuts.eta_lj*Cuts.top_mass_sig, plot_range, title="QCD dd verification: |#eta_{lj}| in 2J1T, |#eta_{lj}|>2.5, M_{bl#nu} #in [130,220]", x_label="|#eta_{lj}|", filename="qcd_comp_2J1T_etalj_mtop.pdf" ) B = qcd_comp_plot( var, Cuts.n_jets(2)*Cuts.n_tags(1)*Cuts.eta_lj, plot_range,
pdb.set_trace() N_tagged = numpy.sum(colA) N = numpy.sum(colB) print N_tagged, N return N_tagged/N if __name__=="__main__": ##sample_dir = "/scratch/joosep/out_step3_05_07_14_19/iso/mc/" sample_dir = "out_step3_May8/" samples = [] #samples.append(project_histos.Sample.fromFile(sample_dir + "TTJets_FullLept.root")) samples.append(project_histos.Sample.fromFile(sample_dir + "TTJets_MassiveBinDECAY.root")) #samples.append(project_histos.Sample.fromFile(sample_dir + "TTJets_SemiLept.root")) #samples.append(project_histos.Sample.fromFile(sample_dir + "T_t.root")) #samples.append(project_histos.Sample.fromFile(sample_dir + "WJets_inclusive.root")) logging.info("Doing b-tagging efficiency calculations") cuts = [Cuts.mu * Cuts.n_jets(2) * Cuts.eta_lj * Cuts.mt_mu * Cuts.top_mass_sig] # cuts = [Cuts.mu] # cuts.append("n_jets==2 && !(top_mass>130 && top_mass<220) && mt_mu>50") # cuts.append("n_jets==3 && !(top_mass>130 && top_mass<220) && mt_mu>50") for cut in cuts: for sample in samples: for flavour in ["b", "c", "l"]: entries = sample.getEntries(str(cut)) total = sample.getTotalEventCount() eff = getBTaggingEff(sample, flavour, str(cut)) print "%s | %s | %.3E/%.3E | %.6f" % (sample, flavour, entries, total, eff)
ref["t#bar{t} incl."] = ref["t#bar{t}"] ref["W(#rightarrow l #nu) + jets"] = 47758738 ref["QCD (MC)"] = 1873957 ref["t-channel"] = 54769 previous = Cuts.hlt_isomu * Cuts.one_muon * Cuts.lepton_veto mc_amount(previous, weight, 12210, ref=ref) print print "2 jets" ref = dict() ref["t#bar{t}"] = 78201 ref["t#bar{t} incl."] = ref["t#bar{t}"] ref["W(#rightarrow l #nu) + jets"] = 921051 ref["QCD (MC)"] = 67463 ref["t-channel"] = 20274 previous = previous * Cuts.n_jets(2) * Cuts.eta_jet * Cuts.pt_jet mc_amount(previous, weight, 12210, ref=ref) print print "met>45" ref = dict() ref["t#bar{t}"] = 50158 ref["t#bar{t} incl."] = ref["t#bar{t}"] ref["W(#rightarrow l #nu) + jets"] = 418873 ref["QCD (MC)"] = 8090 ref["t-channel"] = 10828 previous = previous * Cut("met > 45") mc_amount(previous, weight, 12210, ref=ref) print print "1 tight b-tag"