Example #1
0
        "binning": [20, -1, 1]
    }
    variables["bdt"] = {
        "name": "bdt",
        "var": Cuts.mva_vars['mu'],
        "binning": [60, -1, 1]
    }

    weights = [
        ("weight__nominal", Weights.total_weight("mu")),
    ]


    c1 = (
        "2j0t",
        Cuts.mt_mu()*Cuts.n_jets(2)*Cuts.n_tags(0)*Cuts.lepton("mu")*Cuts.hlt("mu"),
    )
    c2 = (
        "2j1t",
        Cuts.mt_mu()*Cuts.n_jets(2)*Cuts.n_tags(1)*Cuts.lepton("mu")*Cuts.hlt("mu"),
    )
    c3 = (
        "final_cb_2j1t",
        Cuts.final(2,1),
    )
    cuts = [c1, c2, c3]

    varnodes = {}
    for k, v in variables.items():
        for c in cuts:
            vn = tree.hist_node(graph, v, c, weights)
Example #2
0
cutlist['3j0t']=Cuts.n_jets(3)*Cuts.n_tags(0)
cutlist['3j1t']=Cuts.n_jets(3)*Cuts.n_tags(1)
cutlist['3j2t']=Cuts.n_jets(3)*Cuts.n_tags(2)


#Needed for RMS cut validation
cutlist['presel_ele_no_rms']=Cuts.hlt_isoele*Cuts.lepton_veto*Cuts.pt_jet*Cuts.one_electron
cutlist['presel_mu_no_rms']=Cuts.hlt_isomu*Cuts.lepton_veto*Cuts.pt_jet*Cuts.one_muon

cutlist['presel_ele'] = cutlist['presel_ele_no_rms']*Cuts.rms_lj
cutlist['presel_mu'] = cutlist['presel_mu_no_rms']*Cuts.rms_lj

cutlist['nomet_ele']=cutlist['presel_ele']*Cuts.top_mass_sig*Cuts.eta_lj
cutlist['nomt_mu']=cutlist['presel_mu']*Cuts.top_mass_sig*Cuts.eta_lj
cutlist['noeta_ele']=cutlist['presel_ele']*Cuts.top_mass_sig*Cuts.met()
cutlist['noeta_mu']=cutlist['presel_mu']*Cuts.top_mass_sig*Cuts.mt_mu()
cutlist['final_ele']=cutlist['nomet_ele']*Cuts.met()
cutlist['final_mu']=cutlist['nomt_mu']*Cuts.mt_mu()

mva_var = Cuts.mva_vars
mva_var_qcd = Cuts.mva_vars_qcd

bdt = Cuts.mva_wps['bdt']

cutlist['bdt_mu_loose'] = Cuts.mt_mu()*Cut('%s>%f' % (mva_var['mu'],bdt['mu']['loose']))
cutlist['bdt_ele_loose'] = Cuts.met()*Cut('%s>%f' % (mva_var['ele'],bdt['ele']['loose']))
cutlist['bdt_mu_tight'] = Cuts.mt_mu()*Cut('%s>%f' % (mva_var['mu'],bdt['mu']['tight']))
cutlist['bdt_ele_tight'] = Cuts.met()*Cut('%s>%f' % (mva_var['ele'],bdt['ele']['tight']))

# Using MVA based QCD removal
cutlist['qcdmva_ele']=Cut('%s>%f' % (mva_var_qcd['ele'],bdt['ele_qcd']))
Example #3
0
        
        #ROOT functions can be used
        ("abs_eta_lj", "abs(eta_lj)", [20, 0, 5]),

        ("bdt", Cuts.mva_vars['mu'], [60, -1, 1]),
    ]

    #Define all the weight strategies that we want to apply
    weights = [
        ("weight__nominal", Weights.total_weight("mu")),

        #Demonstrate reweighting
        ("weight__puw", Weights.pu("nominal")),
        ("weight__puw_up", Weights.pu("up")),
    ]

    #All the cut regions that we are interested in
    cuts = [
        ("2j0t", Cuts.mt_mu()*Cuts.n_jets(2)*Cuts.n_tags(0)*Cuts.lepton("mu")*Cuts.hlt("mu")),
        ("2j1t", Cuts.mt_mu()*Cuts.n_jets(2)*Cuts.n_tags(1)*Cuts.lepton("mu")*Cuts.hlt("mu")),
        ("final_cb_2j1t", Cuts.final(2,1))
    ]

    #Construct the analysis chain
    snodes, out = analysis_tree(cuts, weights, variables, args.infiles, args.outfile)

    print "Recursing down"
    for sn in snodes:
        sn.recurseDown()

    out.close()
Example #4
0
    mets = dict()

    #No MET cut requirement
    mets['off'] = CutNode(Cuts.no_cut, graph, "met__off", [met], [],
    )

    for met_syst in ["nominal", "up", "down"]:
        mets['met_' + met_syst] = CutNode(
            Cuts.met(met_syst),
            graph, "met__met_" + met_syst,
            [met], [],
            filter_funcs=[lambda x: is_chan(x, 'ele')]
        )
        mets['mtw_' + met_syst] = CutNode(
            Cuts.mt_mu(met_syst),
            graph, "met__mtw_" + met_syst, [met], [],
            filter_funcs=[lambda x: is_chan(x, 'mu')]
        )

    # purifications ---> cutbased, MVA
    purification = Node(graph, "signalenr", met.children(), [])
    purifications = dict()
    purifications['cutbased'] = Node(graph, "cutbased", [purification], [])
    purifications['mva'] = Node(graph, "mva", [purification], [])

    # cutbased ---> Mtop ---> SR
    mtop = Node(graph, "mtop", [purifications['cutbased']], [])
    mtops = dict()
    mtops['SR'] = CutNode(Cuts.top_mass_sig, graph, "mtop__SR", [mtop], [])
Example #5
0
proc = 'ele'
if '/mu/' in dir:
    prt = 'mu'
    proc = 'mu'

physics_processes = PhysicsProcess.get_proc_dict(lepton_channel=proc)
merge_cmds = PhysicsProcess.get_merge_dict(physics_processes)

if len(sys.argv) == 3:
    flist=[dir+'/'+sys.argv[2]]
else:
    flist=get_file_list(merge_cmds,sys.argv[1])

cut = str(cutlist['2j1t']*cutlist['presel_ele']*Cuts.met)
if '/mu/' in dir:
    cut = str(cutlist['2j1t']*cutlist['presel_mu']*Cuts.mt_mu())

for f in flist:
    print "Starting:",f
    tf=TFile(f,'UPDATE')
    t=tf.Get("trees/Events")
    t.AddFriend('trees/WJets_weights')
    print cut
    ct=t.CopyTree(cut)
    print t, ct
    print t.GetEntries(), ct.GetEntries()
    ct.SetName("Events_MVAwQCD")
    tf.cd("trees")
    ct.Write("", TObject.kOverwrite)
    tf.Close()
Example #6
0
mvaFileList['sig']['eval']= [
    'T_t_ToLeptons',
    'Tbar_t_ToLeptons'
]
mvaFileList['bg']['train']= [
    'TTJets_MassiveBinDECAY',
    'WJets_inclusive'
]
mvaFileList['bg']['eval']= [
    'TTJets_FullLept',
    'TTJets_SemiLept',
    'W1Jets_exclusive',
    'W2Jets_exclusive',
    'W3Jets_exclusive',
    'W4Jets_exclusive'
]

varList={}
varList['ele'] = [ 'top_mass','eta_lj','C','met','mt_el','mass_bj','mass_lj','el_pt','pt_bj' ]
varList['mu']  = [ 'top_mass','eta_lj','C','met','mt_mu','mass_bj','mass_lj','mu_pt','pt_bj' ]

varRank={}
varRank['ele'] = ['top_mass', 'C', 'eta_lj', 'el_pt', 'mt_el', 'pt_bj', 'mass_bj', 'met', 'mass_lj']
varRank['mu'] = ['top_mass', 'eta_lj', 'C', 'mu_pt', 'mt_mu', 'met', 'mass_bj', 'pt_bj', 'mass_lj']

from plots.common.cuts import Cut,Cuts

cuts = {}
cuts['ele'] = Cuts.n_jets(2)*Cuts.n_tags(1)*Cuts.hlt_isoele*Cuts.lepton_veto*Cuts.pt_jet*Cuts.one_electron*Cuts.rms_lj*Cuts.met()
cuts['mu']  = Cuts.n_jets(2)*Cuts.n_tags(1)*Cuts.hlt_isomu*Cuts.lepton_veto*Cuts.pt_jet*Cuts.one_muon*Cuts.rms_lj*Cuts.mt_mu()