Beispiel #1
0
def scale_factors(channel, cut, apply_signal_cut=True, mt_cut=False):
    tchan = fit_sfs[channel][0]
    top = fit_sfs[channel][1]
    wzjets = fit_sfs[channel][2]
    if "2j1t" not in cut:
        tchan = 1
        top = 1
        wzjets = 1

    qcd = top
    if apply_signal_cut:
        if "mva_loose" in cut:
            qcd = qcd * qcd_cut_SF["mva"]["loose"][channel]
        elif "cutbased_final" in cut:
            qcd = qcd * qcd_cut_SF["cutbased"]["final"][channel]
    if mt_cut is False:
        qcd = qcd * qcd_mt_fit_sfs[channel]
    else:
        qcd = qcd * load_qcd_sf(channel, mt_cut)

    ret = [
        (["tchan"], tchan, -1),
        (["TTJets", "tWchan", "schan"], top, -1),
        (["qcd"], qcd, -1),
        (["WJets", "diboson", "DYJets"], wzjets, -1),
    ]
    return ret
Beispiel #2
0
def scale_factors(channel, cut, apply_signal_cut=True, mt_cut=False):
    tchan, tchan_err = fit_sfs[channel][0]
    top, top_err = fit_sfs[channel][1]
    wzjets, wzjets_err = fit_sfs[channel][2]
    if "2j1t" not in cut:
        tchan = 1
        top = 1
        wzjets = 1

    qcd = top
    if apply_signal_cut:
        if "mva_loose" in cut:
            qcd = qcd * qcd_cut_SF['mva']['loose'][channel]
        elif "cutbased_final" in cut:
            qcd = qcd * qcd_cut_SF['cutbased']['final'][channel]
    if mt_cut is False:
        qcd_sf, qcd_err = qcd_mt_fit_sfs[channel]
    else:
        qcd_sf, qcd_err = load_qcd_sf(channel, mt_cut, do_uncertainty=True)
    qcd = qcd * qcd_sf

    # Calculate the total error in the QCD scale factor from the error in
    # the MET fit (qcd_err) and the BDT fit (top_err) assuming uncorrelate
    # errors.
    rel_qcd_err = qcd_err / qcd_sf
    rel_top_err = top_err / top

    tot_rel_qcd_err = math.sqrt(sum([x**2 for x in [rel_top_err, rel_qcd_err]]))
    tot_qcd_err = tot_rel_qcd_err * qcd

    ret = [
        (['tchan'], tchan, tchan_err),
        (['TTJets', 'tWchan', 'schan'], top, top_err),
        (['qcd'], qcd, tot_qcd_err),
        (['WJets', 'diboson', 'DYJets'], wzjets, wzjets_err)
    ]
    return ret
Beispiel #3
0
from plots.common.tdrstyle import tdrstyle

from plots.fit_scale_factors import fitpars_process
from plots.qcd_scale_factors import load_qcd_sf, qcd_cut_SF
from plots.vars import varnames

from plots.common.histogram import calc_int_err

import os, copy, math
import numpy as np

channels_pretty = {"mu":"Muon", "ele":"Electron"}

#Determined from the QCD fit
qcd_mt_fit_sfs = dict()
qcd_mt_fit_sfs['mu'] = load_qcd_sf('mu', 50, do_uncertainty=True)
qcd_mt_fit_sfs['ele'] = load_qcd_sf('ele', 45, do_uncertainty=True)

#Determined as the ratio of the integral of anti-iso data after full selection / full selection minus MVA
#See qcd_scale_factors.ipynb for determination
qcd_loose_to_MVA_sfs = qcd_cut_SF['mva']['loose']

fit_sfs = dict()
fit_sfs['mu'] = [x[1:] for x in fitpars_process['final_2j1t_mva']['mu']]
fit_sfs['ele'] = [x[1:] for x in fitpars_process['final_2j1t_mva']['ele']]


# FIXME: load from file
# final_fit/results/ele__mva_BDT_with_top_mass_C_eta_lj_el_pt_mt_el_pt_bj_mass_bj_met_mass_lj.txt
# final_fit/results/mu__mva_BDT_with_top_mass_eta_lj_C_mu_pt_mt_mu_met_mass_bj_pt_bj_mass_lj.txt
Rab = 0.289989 #tchan top
Beispiel #4
0
from plots.common.cross_sections import lumis
from plots.common.tdrstyle import tdrstyle

from plots.fit_scale_factors import fitpars_process
from plots.qcd_scale_factors import load_qcd_sf, qcd_cut_SF
from plots.vars import varnames

from plots.common.histogram import calc_int_err

import os

channels_pretty = {"mu": "Muon", "ele": "Electron"}

# Determined from the QCD fit
qcd_mt_fit_sfs = dict()
qcd_mt_fit_sfs["mu"] = load_qcd_sf("mu", 50)
qcd_mt_fit_sfs["ele"] = load_qcd_sf("ele", 45)

# Determined as the ratio of the integral of anti-iso data after full selection / full selection minus MVA
# See qcd_scale_factors.ipynb for determination
qcd_loose_to_MVA_sfs = qcd_cut_SF["mva"]["loose"]

fit_sfs = dict()
fit_sfs["mu"] = [x[1] for x in fitpars_process["final_2j1t_mva"]["mu"]]
fit_sfs["ele"] = [x[1] for x in fitpars_process["final_2j1t_mva"]["ele"]]


def scale_factors(channel, cut, apply_signal_cut=True, mt_cut=False):
    tchan = fit_sfs[channel][0]
    top = fit_sfs[channel][1]
    wzjets = fit_sfs[channel][2]