Ejemplo n.º 1
0
for cut in cuts:
    if qcd_from_same_sign and not 'SS' in cut.name and not w_qcd_mssm_method:
        cfg_main = HistogramCfg(name=cut.name,
                                var=None,
                                cfgs=samples_qcdfromss,
                                cut=cut.cut,
                                lumi=int_lumi,
                                weight=total_weight)
    elif w_qcd_mssm_method:
        cfg_main = HistogramCfg(name=cut.name,
                                var=None,
                                cfgs=samples_mssm_method,
                                cut=cut.cut,
                                lumi=int_lumi,
                                weight=total_weight)
        wjets.cut = cut.cut  # since wjets is a sub-HistogramCfg
    else:
        cfg_main = HistogramCfg(name=cut.name,
                                var=None,
                                cfgs=all_samples,
                                cut=cut.cut,
                                lumi=int_lumi,
                                weight=total_weight)

    if qcd_from_same_sign and not 'SS' in cut.name:
        qcd.cut = cut.cut.replace('l1_charge != l2_charge',
                                  'l1_charge == l2_charge')

    if w_qcd_mssm_method:
        stacknow_highmt_os.name = 'HighMTOS' + cut.name
        stacknow_highmt_ss.name = 'HighMTSS' + cut.name
Ejemplo n.º 2
0
# variables = [lnujj_vars[0]]
# variables = getVars(['l1_reliso05', 'l2_reliso05'])
# variables = [
#     VariableCfg(name='mvis', binning={'nbinsx':35, 'xmin':0, 'xmax':350}, unit='GeV', xtitle='m_{vis}')
# ]

for cut_name in cuts:

    cfg_example = HistogramCfg(name='example',
                               var=None,
                               cfgs=samples,
                               cut='',
                               lumi=int_lumi,
                               weight=total_weight)

    cfg_example.cut = cuts[cut_name]
    cfg_example.vars = variables

    channel = "l#nujj"
    if cut_name.find("_mu") >= 0:
        channel = "#mu#nujj"
    elif cut_name.find("_e") >= 0:
        channel = "e#nujj"
    if cut_name.find("HP") >= 0:
        channel += " HP"
    elif cut_name.find("LP") >= 0:
        channel += " LP"

    plots = createHistograms(cfg_example, verbose=False)
    for variable in variables:
        plot = plots[variable.name]
Ejemplo n.º 3
0
        if sample.name != 'Data':
            # Subtract background from data
            sample.scale = -1.

    qcd = HistogramCfg(name='QCD', var=None, cfgs=samples_ss, cut=inc_cut, lumi=40.0)

    samples.append(qcd)

# Taken from Variables.py, can get subset with e.g. getVars(['mt', 'mvis'])
variables = all_vars

cfg_example = HistogramCfg(name='example', var=None, cfgs=samples, cut=inc_cut, lumi=40.0)


for cut_name in cuts:
    cfg_example.cut = cuts[cut_name]
    if qcd_from_same_sign and 'OS' in cut_name:
        qcd.cut = cuts[cut_name].replace('l1_charge != l2_charge', 'l1_charge == l2_charge')

    for variable in variables:
        cfg_example.var = variable
        if qcd_from_same_sign:
            qcd.var = variable # Can put into function but we will not want it by default if we take normalisations from e.g. high MT
        
        plot = createHistogram(cfg_example, verbose=True)
        plot.Group('Diboson', ['ZZ', 'WZ', 'WW'])
        plot.Group('Single t', ['T_tWch', 'TBar_tWch', 'TToLeptons_sch', 'TToLeptons_tch'])
        plot.Group('ZLL', ['Ztt_ZL', 'Ztt_ZJ'], style=plot.Hist('Ztt_ZL').style)
        HistDrawer.draw(plot, plot_dir='plots/'+cut_name)

Ejemplo n.º 4
0
# Taken from Variables.py, can get subset with e.g. getVars(['mt', 'mvis'])
variables = emu_vars
# variables = getVars(['n_vertices'])
# variables = getVars(['l1_reliso05', 'l2_reliso05'])
# variables = [
#     VariableCfg(name='mvis', binning={'nbinsx':35, 'xmin':0, 'xmax':350}, unit='GeV', xtitle='m_{vis}')
# ]

for cut_name in cuts:
    if  qcd_from_same_sign and not 'SS' in cut_name :
        cfg_example = HistogramCfg(name='example', var=None, cfgs=samples_qcdfromss, cut=inc_cut, lumi=lumi, weight=total_weight)
    else:
        cfg_example = HistogramCfg(name='example', var=None, cfgs=samples, cut=inc_cut, lumi=lumi, weight=total_weight)
        

    cfg_example.cut = cuts[cut_name]
    if qcd_from_same_sign and not 'SS' in cut_name:
        qcd.cut = cuts[cut_name].replace('l1_charge != l2_charge', 'l1_charge == l2_charge')

    
    cfg_example.vars = variables
    if qcd_from_same_sign:
        qcd.vars = variables # Can put into function but we will not want it by default if we take normalisations from e.g. high MT

    plots = createHistograms(cfg_example, verbose=True)
    for variable in variables:    
        plot = plots[variable.name]
        plot.Group('VV', ['WWTo1L1Nu2Q', 'WZTo1L1Nu2Q', 'WZTo1L3Nu', 'WZTo2L2Q', 'VVTo2L2Nu', 'ZZTo2L2Q', 'ZZTo4L'])
        plot.Group('Single t', ['T_tWch', 'TBar_tWch', 'TBarToLeptons_tch_powheg', 'TToLeptons_tch_powheg'])
        plot.Group('ZLL', ['ZL', 'ZJ'], style=plot.Hist('ZL').style)
        plot.Group('W', ['W1Jets', 'W2Jets', 'W3Jets', 'W4Jets'])
Ejemplo n.º 5
0
samples_mc, samples_data, samples, all_samples, sampleDict = createSampleLists(analysis_dir, channel='WV', weight=weight_MC)

# Taken from Variables.py, can get subset with e.g. getVars(['mt', 'mvis'])
variables = generic_vars + lnujj_vars + lnujj_vbf_vars
# variables = [lnujj_vars[0]]
# variables = getVars(['l1_reliso05', 'l2_reliso05'])
# variables = [
#     VariableCfg(name='mvis', binning={'nbinsx':35, 'xmin':0, 'xmax':350}, unit='GeV', xtitle='m_{vis}')
# ]

for cut_name in cuts:

    cfg_example = HistogramCfg(name='example', var=None, cfgs=samples, cut='', lumi=int_lumi, weight=total_weight)

    cfg_example.cut = cuts[cut_name].replace("||HLT_MET120", "")
    cfg_example.vars = variables

    channel = "l#nujj"
    if cut_name.find("_mu") >= 0:
        channel = "#mu#nujj"
    elif cut_name.find("_e") >= 0:
        channel = "e#nujj"
    if cut_name.find("HP") >= 0:
        channel += " HP"
    elif cut_name.find("LP") >= 0:
        channel += " LP"

    plots = createHistograms(cfg_example, verbose=False)
    for variable in variables:
        plot = plots[variable.name]
Ejemplo n.º 6
0
    cfg_data_tight = HistogramCfg(
        name='tight_data',
        var=None,
        cfgs=samples,
        cut=inc_cut,
        lumi=int_lumi,
        weight=total_weight + ' * ((genmet_pt < 0.) - (l2_gen_match == 5))')
    cfg_data_loose = HistogramCfg(
        name='loose_data',
        var=None,
        cfgs=samples,
        cut=inc_cut,
        lumi=int_lumi,
        weight=total_weight + ' * ((genmet_pt < 0.) - (l2_gen_match == 5))')

    cfg_tight.cut = cuts[cut_name]
    cfg_loose.cut = cuts[cut_name].replace(
        'l2_byCombinedIsolationDeltaBetaCorrRaw3Hits<1.5', '1.')
    cfg_data_tight.cut = cuts[cut_name]
    cfg_data_loose.cut = cuts[cut_name].replace(
        'l2_byCombinedIsolationDeltaBetaCorrRaw3Hits<1.5', '1.')

    for variable in variables:
        cfg_tight.var = variable
        cfg_loose.var = variable
        cfg_data_tight.var = variable
        cfg_data_loose.var = variable

        plot_tight = createHistogram(cfg_tight, verbose=False)
        plot_loose = createHistogram(cfg_loose, verbose=False)
        plot_data_tight = createHistogram(cfg_data_tight,
Ejemplo n.º 7
0
                                         cut=inc_cut,
                                         lumi=int_lumi,
                                         weight=total_weight +
                                         ' * ((l2_gen_match == 6))')

                tight_cut = inc_cut + cuts[cut_name] + cut_extra
                loose_cut = tight_cut.replace(
                    'l2_byIsolationMVArun2v1DBoldDMwLT>2.5', '1.')
                loose_cut = tight_cut.replace(
                    'l2_byIsolationMVArun2v1DBoldDMwLT>2.5',
                    'l2_byIsolationMVArun2v1DBoldDMwLT>0.5')

                print 'Tight cut:', tight_cut
                print 'Loose cut:', loose_cut

                cfg_tight.cut = tight_cut
                cfg_loose.cut = loose_cut

                cfg_tight.var = variable
                cfg_loose.var = variable

                plot_tight = createHistogram(cfg_tight, verbose=False)
                plot_loose = createHistogram(cfg_loose, verbose=False)

                tight_hist = plot_tight.GetStack().totalHist.weighted
                loose_hist = plot_loose.GetStack().totalHist.weighted

                plot_inputs.append((tight_hist, loose_hist, sample_def['name'],
                                    sample_def['colour'], sample_def['style']))

            plotMCEffs(
Ejemplo n.º 8
0
    cfg_tight_data = HistogramCfg(
        name='tight_data',
        var=None,
        cfgs=samples,
        cut=inc_cut,
        lumi=int_lumi,
        weight=total_weight + '*( (is_data>0.5) - (abs(tau1_gen_pdgId)==15))')
    cfg_loose_data = HistogramCfg(
        name='loose_data',
        var=None,
        cfgs=samples,
        cut=inc_cut,
        lumi=int_lumi,
        weight=total_weight + '*( (is_data>0.5) - (abs(tau1_gen_pdgId)==15))')

    cfg_tight.cut = cuts[cut_name][0]
    cfg_loose.cut = cuts[cut_name][1]
    cfg_tight_data.cut = cuts[cut_name][0]
    cfg_loose_data.cut = cuts[cut_name][1]

    for cfg in [cfg_tight, cfg_loose, cfg_tight_data, cfg_loose_data]:
        cfg.vars = variables

    plots_tight = createHistograms(cfg_tight, verbose=True)
    plots_loose = createHistograms(cfg_loose, verbose=True)
    plots_tight_data = createHistograms(cfg_tight_data,
                                        verbose=True,
                                        all_stack=True)
    plots_loose_data = createHistograms(cfg_loose_data,
                                        verbose=True,
                                        all_stack=True)
    cfg_data_tight = HistogramCfg(
        name='tight_data',
        var=None,
        cfgs=samples,
        cut=inc_cut,
        lumi=int_lumi,
        weight=total_weight + ' * ((genmet_pt < 0.) - (l2_gen_match == 5))')
    cfg_data_loose = HistogramCfg(
        name='loose_data',
        var=None,
        cfgs=samples,
        cut=inc_cut,
        lumi=int_lumi,
        weight=total_weight + ' * ((genmet_pt < 0.) - (l2_gen_match == 5))')

    cfg_tight.cut = cuts[cut_name]
    cfg_loose.cut = cuts[cut_name].replace('tau1_decayModeFinding>0.', '1.')
    cfg_data_tight.cut = cuts[cut_name]
    cfg_data_loose.cut = cuts[cut_name].replace('tau1_decayModeFinding>0.',
                                                '1.')

    for variable in variables:
        cfg_tight.var = variable
        cfg_loose.var = variable
        cfg_data_tight.var = variable
        cfg_data_loose.var = variable

        plot_tight = createHistogram(cfg_tight, verbose=False)
        plot_loose = createHistogram(cfg_loose, verbose=False)
        plot_data_tight = createHistogram(cfg_data_tight,
                                          verbose=False,
Ejemplo n.º 10
0
    if qcd_from_same_sign and not 'SS' in cut.name:
        cfg_example = HistogramCfg(name=cut.name,
                                   var=None,
                                   cfgs=samples_qcdfromss,
                                   cut=inc_cut,
                                   lumi=int_lumi,
                                   weight=total_weight)
    else:
        cfg_example = HistogramCfg(name=cut.name,
                                   var=None,
                                   cfgs=all_samples,
                                   cut=inc_cut,
                                   lumi=int_lumi,
                                   weight=total_weight)

    cfg_example.cut = cut.cut
    if qcd_from_same_sign and not 'SS' in cut.name:
        qcd.cut = cut.cut.replace('l1_charge != l2_charge',
                                  'l1_charge == l2_charge')

    for variable in variables:
        cfg_example.var = variable
        if qcd_from_same_sign:
            qcd.var = variable  # Can put into function but we will not want it by default if we take normalisations from e.g. high MT

        plot = createHistogram(cfg_example, verbose=False)
        plot.Group('VV', [
            'ZZTo2L2Q', 'WWTo1L1Nu2Q', 'WZTo1L3Nu', 'ZZTo4L', 'WZTo3L',
            'WZTo2L2Q', 'WZTo1L1Nu2Q', 'T_tWch', 'TBar_tWch',
            'TToLeptons_tch_powheg', 'TBarToLeptons_tch_powheg'
        ])
Ejemplo n.º 11
0
                                       signal_cut_name,
                                       var=None,
                                       cfgs=samples,
                                       cut=inc_cut,
                                       lumi=int_lumi,
                                       weight=total_weight)
        cfg_stack_loose = HistogramCfg(name='loose_stack' + cut_name +
                                       signal_cut_name,
                                       var=None,
                                       cfgs=samples,
                                       cut=inc_cut,
                                       lumi=int_lumi,
                                       weight=total_weight)

        for variable in variables:
            cfg_tight.cut = cuts[cut_name] + signal_cut
            cfg_loose.cut = cuts[cut_name]
            cfg_data_tight.cut = cuts[cut_name] + signal_cut
            cfg_data_loose.cut = cuts[cut_name]
            cfg_stack_tight.cut = cuts[cut_name] + signal_cut
            cfg_stack_loose.cut = cuts[cut_name]

            if variable.name in ['jet_pt_up', 'jet_pt_down']:
                for cfg in [
                        cfg_tight, cfg_loose, cfg_data_tight, cfg_data_loose,
                        cfg_stack_tight, cfg_stack_loose
                ]:
                    if variable.name == 'jet_pt_up':
                        cfg.cut = cfg.cut.replace(
                            'jet_pt',
                            '(jet_pt*(is_data + (1. - is_data)*jet_corrJECUp))'