コード例 #1
0
ファイル: histo.py プロジェクト: HEP-KBFI/stpol
def analysis_tree_all_reweighed(graph, cuts, snodes, **kwargs):
    cutnodes = []
    for cut_name, cut in cuts:
        lepton = cut_name.split("_")[0]

        cutnode = tree.CutNode(cut, graph, cut_name, snodes, [],
            filter_funcs=[
                lambda x,lepton=lepton: tree.is_samp(x, lepton)
        ])
        cutnodes.append(
            cutnode
        )

        #an extra QCD cleaning cut on top of the previous cut, which is only done in antiiso
        for syst in ["nominal", "up", "down"]:
            cn = tree.CutNode(
                Cuts.antiiso(lepton, syst) * Cuts.deltaR_QCD(),
                graph, "antiiso_%s" % syst, [cutnode], [],
                filter_funcs=[
                    lambda p: tree.is_samp(p, "antiiso")
                ]
            )
            cutnodes.append(
                cn
            )

    from histo_descs import create_plots
    create_plots(graph, cutnodes, **kwargs)
コード例 #2
0
ファイル: tree.py プロジェクト: HEP-KBFI/stpol
        isos[lep] = dict()
        isos[lep]['iso'] = CutNode(
            Cut("1.0"), #At present no special cuts have to be applied on the ISO region
            graph, lep + "__iso", par, [],
            filter_funcs=[lambda x: "/iso/" in x[0].name]
        )
        isol.append(isos[lep]['iso'])

        #Antiiso with variations in the isolation cut
        for aiso_syst in ["nominal", "up", "down"]:
            #dR with variations
            for dr_syst in ["nominal", "up", "down"]:
                cn = 'antiiso_' + aiso_syst + '_dR_' + dr_syst
                isos[lep][cn] = CutNode(
                    #Apply any additional anti-iso cuts (like dR) along with antiiso variations.
                    Cuts.antiiso(lep, aiso_syst) * Cuts.deltaR_QCD(dr_syst),
                    graph, lep + "__" + cn, par, [],
                    filter_funcs=[
                        lambda x: is_samp(x, "antiiso") and is_samp(x, "data")
                    ]
                )
                isol.append(isos[lep][cn])

    # [iso, antiiso] --> jet --> [jets2-3]
    jet = Node(graph, "jet", isol, [])
    jets = dict()
    for i in [2,3]:
        jets[i] = CutNode(Cuts.n_jets(i), graph, "%dj"%i, [jet], [])

    tag = Node(graph, "tag", jet.children(), [])
    tags = dict()