Пример #1
0
    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)
Пример #2
0
        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"
Пример #3
0
    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)
Пример #4
0
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())
Пример #5
0
            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,
Пример #6
0
            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,
Пример #7
0
    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)
Пример #8
0
        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,
Пример #9
0
    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)
Пример #10
0
        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"