コード例 #1
0
def HWW_base_process_selection(channel, era):
    HWW_base_process_weights = MC_base_process_selection(
        channel, era).weights + [
            ("numberGeneratedEventsWeight", "numberGeneratedEventsWeight"),
            ("crossSectionPerEventWeight", "crossSectionPerEventWeight"),
        ]
    return Selection(name="HTT", weights=HWW_base_process_weights)
コード例 #2
0
def WH_process_selection(channel, era):
    return Selection(name = "WH125",
                     weights = HTT_base_process_selection(channel, era).weights + [
                         ("numberGeneratedEventsWeight", "numberGeneratedEventsWeight"),
                         ("(abs(crossSectionPerEventWeight - 0.052685) < 0.001)*0.051607+"
                          "(abs(crossSectionPerEventWeight - 0.03342) < 0.001)*0.032728576", "crossSectionPerEventWeight")],
                     cuts = [("(htxs_stage1p1cat>=300)&&(htxs_stage1p1cat<=305)", "htxs_match")])
コード例 #3
0
def DY_process_selection(channel, era):
    DY_process_weights = MC_base_process_selection(channel, era).weights
    DY_process_weights.extend([
        dy_stitching_weight(era),
        ("zPtReweightWeight", "zPtReweightWeight"),
    ])
    return Selection(name="DY", weights=DY_process_weights)
コード例 #4
0
def ggH125_process_selection(channel, era):
    ggH125_weights = HTT_base_process_selection(channel, era).weights + [
        ("ggh_NNLO_weight", "gghNNLO"),
        ggh_stitching_weight(era),
        ]
    ggH125_cuts = [("(htxs_stage1p1cat>=100)&&(htxs_stage1p1cat<=113)", "htxs")]
    return Selection(name = "ggH125", weights = ggH125_weights, cuts = ggH125_cuts)
コード例 #5
0
def ZH_process_selection(channel, era):
    return Selection(name = "ZH125",
                     weights = HTT_base_process_selection(channel, era).weights + [
                         ("numberGeneratedEventsWeight", "numberGeneratedEventsWeight"),
                         ("(abs(crossSectionPerEventWeight - 0.04774) < 0.001)*0.04683+"
                          "(abs(crossSectionPerEventWeight - 0.0007771) < 0.00001)*0.0007666+"
                          "(abs(crossSectionPerEventWeight - 0.0015391) < 0.0001)*0.00151848", "crossSectionPerEventWeight")],
                     cuts = [("(htxs_stage1p1cat>=400)&&(htxs_stage1p1cat<=405)", "htxs_match")])
コード例 #6
0
def TT_process_selection(channel, era):
    TT_process_weights = MC_base_process_selection(channel, era).weights
    TT_process_weights.extend([
        ("numberGeneratedEventsWeight", "numberGeneratedEventsWeight"),
        ("crossSectionPerEventWeight", "crossSectionPerEventWeight"),
        ("topPtReweightWeightTTH", "topPtReweightWeight"),
    ])
    return Selection(name="TT", weights=TT_process_weights)
コード例 #7
0
def W_process_selection(channel, era):
    W_process_weights = MC_base_process_selection(channel, era).weights
    W_process_weights.append(
        W_stitching_weight(era)
    )
    return Selection(
            name = "W",
            weights = W_process_weights
    )
コード例 #8
0
def ggHWW_process_selection(channel, era):
    if era in ["2016", "2017"]:
        ggHWW_weights = HWW_base_process_selection(channel, era).weights
    else:
        ggHWW_weights = MC_base_process_selection(channel, era).weights + [
                ("numberGeneratedEventsWeight", "numberGeneratedEventsWeight"),
                ("1.1019558", "crossSectionPerEventWeight"),
        ]
    return Selection(name="ggHWW125", weights=ggHWW_weights)
コード例 #9
0
def VVJ_process_selection(channel):
    ct = ""
    if "mt" in channel or "et" in channel:
        ct = "(gen_match_2 == 6 && gen_match_2 == 6)"
    elif "tt" in channel:
        ct = "(gen_match_1 == 6 || gen_match_2 == 6)"
    elif "em" in channel:
        ct = "0.0 == 1.0"
    return Selection(name="VVJ", cuts=[(ct, "vv_fakes")])
コード例 #10
0
def qqHWW_process_selection(channel, era):
    if era in ["2016", "2017"]:
        qqHWW_weights = HWW_base_process_selection(channel, era).weights
    else:
        qqHWW_weights = MC_base_process_selection(channel, era).weights + [
                ("numberGeneratedEventsWeight", "numberGeneratedEventsWeight"),
                ("0.0857883", "crossSectionPerEventWeight"),
        ]
    return Selection(name="qqHWW125", weights=qqHWW_weights)
コード例 #11
0
def ttH_process_selection(channel, era):
    if era in ["2016", "2017"]:
        ttH_weights = HTT_process_selection(channel, era).weights
    else:
        ttH_weights = HTT_base_process_selection(channel, era).weights + [
                ("4.569757345884934e-08", "numberGeneratedEventsWeight"),
                ("crossSectionPerEventWeight", "crossSectionPerEventWeight")]
    return Selection(name = "ttH125",
                     weights = ttH_weights)
コード例 #12
0
def SUSYggH_powheg_process_selection(channel, era):
    if era == "2017":
        SUSYggH_weights = [weight if weight.name != "puweight" else Weight("puWeight_updated", "puweight") for weight in HTT_base_process_selection(channel, era).weights ]  + [
            ("numberGeneratedEventsWeight", "numberGeneratedEventsWeight"),
            ]
    else:
        SUSYggH_weights = HTT_base_process_selection(channel, era).weights + [
            ("numberGeneratedEventsWeight", "numberGeneratedEventsWeight"),
            ]
    return Selection(name="SUSYggH", weights=SUSYggH_weights)
コード例 #13
0
def VV_process_selection(channel, era):
    VV_process_weights = MC_base_process_selection(channel, era).weights
    VV_process_weights.extend([
                ("numberGeneratedEventsWeight", "numberGeneratedEventsWeight"),
                ("crossSectionPerEventWeight", "crossSectionPerEventWeight"),
            ])
    return Selection(
            name = "VV",
            weights = VV_process_weights
    )
コード例 #14
0
def qqH125_process_selection(channel):
    qqH125_weights = HTT_base_process_selection(channel).weights + [(
        "(((htxs_stage1p1cat>=200&&htxs_stage1p1cat<=202)||abs(crossSectionPerEventWeight-0.05544)<0.001||abs(crossSectionPerEventWeight-0.052685)<0.001||abs(crossSectionPerEventWeight-0.03342)<0.001)*crossSectionPerEventWeight*numberGeneratedEventsWeight+(abs(crossSectionPerEventWeight-0.05544)>=0.001&&abs(crossSectionPerEventWeight-0.052685)>=0.001&&abs(crossSectionPerEventWeight-0.03342)>=0.001)*("
        "(htxs_stage1p1cat>=203&&htxs_stage1p1cat<=205)*8.70e-9+"
        "(htxs_stage1p1cat==206)*8.61e-9+"
        "(htxs_stage1p1cat>=207&&htxs_stage1p1cat<=210)*1.79e-8"
        "))", "qqh_stitching_weight")]
    qqH125_cuts = [("(htxs_stage1p1cat>=200)&&(htxs_stage1p1cat<=210)",
                    "qqH125")]
    return Selection(name="qqH125", weights=qqH125_weights, cuts=qqH125_cuts)
コード例 #15
0
def ZTT_embedded_process_selection(channel, era):
    ztt_embedded_weights = [
        ("generatorWeight*(generatorWeight<=1.0)", "simulation_sf"
         ),  # Issue with way too large generator weights in 2016
        ("muonEffTrgWeight*muonEffIDWeight_1*muonEffIDWeight_2",
         "scale_factor"),
    ]
    if "mt" in channel:
        ztt_embedded_weights.extend([
            ("gen_match_1==4 && gen_match_2==5", "emb_veto"),
            ("embeddedDecayModeWeight", "decayMode_SF"),
            ("idWeight_1*isoWeight_1", "lepton_sf"),
            tau_by_iso_id_weight(channel),
            triggerweight_emb(channel, era),
        ])
    elif "et" in channel:
        ztt_embedded_weights.extend([
            ("gen_match_1==3 && gen_match_2==5", "emb_veto"),
            ("embeddedDecayModeWeight", "decayMode_SF"),
            ("idWeight_1*isoWeight_1", "lepton_sf"),
            tau_by_iso_id_weight(channel),
            triggerweight_emb(channel, era),
        ])
        if "2017" in era:
            ztt_embedded_weights.extend([
                ("(pt_1<28)*((abs(eta_1)<=1.5)*0.852469262576+(abs(eta_1)>1.5)*0.689309270861)+(pt_1>=28)",
                 "low_crossele_nonclosure_weight"),
                ("(pt_1>=28)*(pt_1<40)*((abs(eta_1)<=1.5)*0.950127109065+(abs(eta_1)>1.5)*0.870372483259)+(pt_1<28)+(pt_1>=40)",
                 "low_singleelectron_nonclosure_weight"),
            ])
    elif "tt" in channel:
        ztt_embedded_weights.extend([
            ("embeddedDecayModeWeight", "decayMode_SF"),
            ("gen_match_1==5 && gen_match_2==5", "emb_veto"),
            tau_by_iso_id_weight(channel),
            triggerweight_emb(channel, era),
        ])
    elif "em" in channel:
        ztt_embedded_weights.extend([
            ("(gen_match_1==3 && gen_match_2==4)", "emb_gen_match"),
            ("idWeight_1*isoWeight_1*idWeight_2*looseIsoWeight_2",
             "lepton_sf"),
            triggerweight_emb(channel, era),
        ])
        if era == "2017":
            ztt_embedded_weights.append(
                ("0.99*trackWeight_1*trackWeight_2", "lepton_tracking_sf"))

    ztt_embedded_cuts = [(
        "((gen_match_1>2 && gen_match_1<6) && (gen_match_2>2 && gen_match_2<6))",
        "dy_genuine_tau")]

    return Selection(name="Embedded",
                     cuts=ztt_embedded_cuts,
                     weights=ztt_embedded_weights)
コード例 #16
0
def VVT_process_selection(channel):
    if "mt" in channel:
        tt_cut = "gen_match_1==4 && gen_match_2==5"
    elif "et" in channel:
        tt_cut = "gen_match_1==3 && gen_match_2==5"
    elif "tt" in channel:
        tt_cut = "gen_match_1==5 && gen_match_2==5"
    elif "em" in channel:
        tt_cut = "gen_match_1==3 && gen_match_2==4"
    elif "mm" in channel:
        tt_cut = "gen_match_1==4 && gen_match_2==4"
    return Selection(name="VVT", cuts=[(tt_cut, "vvt_cut")])
コード例 #17
0
def ZTT_embedded_process_selection(channel, era):
    ztt_embedded_weights = [
        ("generatorWeight*(generatorWeight<=1.0)", "simulation_sf"),  # Issue with way too large generator weights in 2016
        ("muonEffTrgWeightIC*muonEffIDWeightIC_1*muonEffIDWeightIC_2", "scale_factor"),
    ]
    if "mt" in channel:
        if "2018" in era:
            ztt_embedded_weights = [
                ("generatorWeight*(generatorWeight<=1.0)", "simulation_sf"),  # Issue with way too large generator weights in 2016
                ("muonEffTrgWeightIC*muonEffIDWeight_1*muonEffIDWeight_2", "scale_factor"),  # Bug during ntuple production lead to overwrite of KIT ID weights by IC ones instead of writing it to new variable.
                ]
        ztt_embedded_weights.extend([
            ("gen_match_1==4 && gen_match_2==5","emb_veto"),
            ("pt_2/genMatchedLep2Pt < 1.5","high_fakemet_veto"),
            ("(pt_2<100)*embeddedDecayModeWeight+(pt_2>=100)", "decayMode_SF"),
            ("idWeight_1*isoWeight_1", "lepton_sf"),
            tau_by_iso_id_weight(channel),
            triggerweight_emb(channel, era),
            fakemetweight_emb(channel, era),
            ])
    elif "et" in channel:
        ztt_embedded_weights.extend([
            ("gen_match_1==3 && gen_match_2==5","emb_veto"),
            ("pt_2/genMatchedLep2Pt < 1.5","high_fakemet_veto"),
            ("(pt_2<100)*embeddedDecayModeWeight+(pt_2>=100)", "decayMode_SF"),
            ("idWeight_1*isoWeight_1", "lepton_sf"),
            tau_by_iso_id_weight(channel),
            triggerweight_emb(channel, era),
            fakemetweight_emb(channel, era),
            ])
    elif "tt" in channel:
        ztt_embedded_weights.extend([
            ("(pt_1<100)*embeddedDecayModeWeight+(pt_1>=100)*(pt_2<100)*((decayMode_2==0)*0.975+(decayMode_2==1)*0.975*1.051+(decayMode_2==10)*0.975*0.975*0.975+(decayMode_2==11)*0.975*0.975*0.975*1.051)+(pt_2>=100)", "decayMode_SF"),
            ("pt_1/genMatchedLep1Pt < 1.5 && pt_2/genMatchedLep2Pt < 1.5","high_fakemet_veto"),
            ("gen_match_1==5 && gen_match_2==5","emb_veto"),
            tau_by_iso_id_weight(channel),
            triggerweight_emb(channel, era),
            fakemetweight_emb(channel, era),
            ])
    elif "em" in channel:
        ztt_embedded_weights.extend([
            ("(gen_match_1==3 && gen_match_2==4)", "emb_gen_match"),
            ("idWeight_1*isoWeight_1*idWeight_2*looseIsoWeight_2", "lepton_sf"),
            triggerweight_emb(channel, era),
            ])
        if era == "2017":
            ztt_embedded_weights.append(("0.99*trackWeight_1*trackWeight_2", "lepton_tracking_sf"))

    ztt_embedded_cuts = [("((gen_match_1>2 && gen_match_1<6) && (gen_match_2>2 && gen_match_2<6))", "dy_genuine_tau")]

    return Selection(name = "Embedded",
                     cuts = ztt_embedded_cuts,
                     weights = ztt_embedded_weights)
コード例 #18
0
def HWW_process_selection(channel, era):
    HWW_process_weights = MC_base_process_selection(channel, era).weights
    HWW_process_weights.extend([
                ("numberGeneratedEventsWeight", "numberGeneratedEventsWeight"),
        ])
    if era == "2018":
        HWW_process_weights.append(("0.0857883*(abs(numberGeneratedEventsWeight - 2e-06) < 1e-07) + 1.1019558*(abs(numberGeneratedEventsWeight - 2e-06) >= 1e-07)", "crossSectionPerEventWeight"))
    else:
        HWW_process_weights.append(("crossSectionPerEventWeight", "crossSectionPerEventWeight"))
    return Selection(
            name = "HWW",
            weights = HWW_process_weights
    )
コード例 #19
0
def ggH125_process_selection(channel):
    ggH125_weights = HTT_base_process_selection(channel).weights + [
        ("ggh_NNLO_weight", "gghNNLO"), ("1.01", "bbh_inclusion_weight"),
        ("((htxs_stage1p1cat==100||htxs_stage1p1cat==102||htxs_stage1p1cat==103)*crossSectionPerEventWeight*8.210e-8+"
         "(htxs_stage1p1cat==101)*2.17e-8+"
         "(htxs_stage1p1cat==104||htxs_stage1p1cat==105)*4.39e-8+"
         "(htxs_stage1p1cat==106)*1.19e-8+"
         "(htxs_stage1p1cat>=107&&htxs_stage1p1cat<=109)*4.91e-8+"
         "(htxs_stage1p1cat>=110&&htxs_stage1p1cat<=113)*7.90e-9"
         ")", "ggh_stitching_weight")
    ]
    ggH125_cuts = [("(htxs_stage1p1cat>=100)&&(htxs_stage1p1cat<=113)", "htxs")
                   ]
    return Selection(name="ggH125", weights=ggH125_weights, cuts=ggH125_cuts)
コード例 #20
0
def VV_process_selection(channel, era):
    VV_process_weights = MC_base_process_selection(channel, era).weights
    if era in ["2017", "2018"]:
        VV_process_weights.extend([
            ("numberGeneratedEventsWeight", "numberGeneratedEventsWeight"),
            ("crossSectionPerEventWeight", "crossSectionPerEventWeight"),
        ])
    else:
        VV_process_weights.extend([
            ("1.252790591041545e-07*(abs(crossSectionPerEventWeight - 118.7) < 0.01) + 5.029933132068942e-07*(abs(crossSectionPerEventWeight - 12.14) < 0.01) + 2.501519047441559e-07*(abs(crossSectionPerEventWeight - 22.82) < 0.01) + numberGeneratedEventsWeight*(abs(crossSectionPerEventWeight - 118.7) > 0.01 && abs(crossSectionPerEventWeight - 12.14) > 0.01 && abs(crossSectionPerEventWeight - 22.82) > 0.01)",
             "numberGeneratedEventsWeight"),
            ("crossSectionPerEventWeight", "crossSectionPerEventWeight"),
        ])
    return Selection(name="VV", weights=VV_process_weights)
コード例 #21
0
def HTT_base_process_selection(channel):
    return Selection(name="HTT_base",
                     weights=[("generatorWeight", "generatorWeight"),
                              ("puweight", "puweight"),
                              ("idWeight_1*idWeight_2", "idweight"),
                              ("isoWeight_1*isoWeight_2", "isoweight"),
                              ("trackWeight_1*trackWeight_2", "trackweight"),
                              triggerweight(channel),
                              ("eleTauFakeRateWeight*muTauFakeRateWeight",
                               "leptonTauFakeRateWeight"),
                              tau_by_iso_id_weight(channel),
                              ele_hlt_Z_vtx_weight(channel),
                              ("prefiringweight", "prefireWeight"),
                              lumi_weight])
コード例 #22
0
def W_process_selection(channel):
    return Selection(
        name="W",
        weights=
        [("generatorWeight", "generatorWeight"),
         ("((0.000824363*((npartons <= 0 || npartons >= 5)*1.0 + (npartons == 1)*0.1713 + (npartons == 2)*0.1062 + (npartons == 3)*0.0652 + (npartons == 4)*0.0645)) * (genbosonmass>=0.0) + numberGeneratedEventsWeight * crossSectionPerEventWeight * (genbosonmass<0.0))",
          "wj_stitching_weight"), ("puweight", "puweight"),
         ("idWeight_1*idWeight_2", "idweight"),
         ("isoWeight_1*isoWeight_2", "isoweight"),
         ("trackWeight_1*trackWeight_2", "trackweight"),
         triggerweight(channel),
         ("eleTauFakeRateWeight*muTauFakeRateWeight",
          "leptonTauFakeRateWeight"),
         tau_by_iso_id_weight(channel),
         ele_hlt_Z_vtx_weight(channel), ("prefiringweight", "prefireWeight"),
         lumi_weight])
コード例 #23
0
def DY_base_process_selection(channel):
    return Selection(
        name="DY_base",
        weights=
        [("generatorWeight", "generatorWeight"), ("puweight", "puweight"),
         ("idWeight_1*idWeight_2", "idweight"),
         ("isoWeight_1*isoWeight_2", "isoweight"),
         ("trackWeight_1*trackWeight_2", "trackweight"),
         triggerweight(channel),
         ("eleTauFakeRateWeight*muTauFakeRateWeight",
          "leptonTauFakeRateWeight"),
         ("(gen_match_2==1 || gen_match_2==3)*(((abs(eta_1) < 1.46) * 0.88) + ((abs(eta_1) > 1.5588) * 0.51))+!(gen_match_2==1 || gen_match_2==3)",
          "eletauFakeRateWeightFix"),
         tau_by_iso_id_weight(channel),
         ele_hlt_Z_vtx_weight(channel),
         ("zPtReweightWeight", "zPtReweightWeight"),
         ("prefiringweight", "prefireWeight"), lumi_weight])
コード例 #24
0
def HWW_process_selection(channel):
    return Selection(
        name="HWW",
        weights=
        [("generatorWeight", "generatorWeight"),
         ("numberGeneratedEventsWeight", "numberGeneratedEventsWeight"),
         ("0.0857883*(abs(numberGeneratedEventsWeight - 2e-06) < 1e-07) + 1.1019558*(abs(numberGeneratedEventsWeight - 2e-06) >= 1e-07)",
          "crossSectionPerEventWeight"), ("puweight", "puweight"),
         ("idWeight_1*idWeight_2", "idweight"),
         ("isoWeight_1*isoWeight_2", "isoweight"),
         ("trackWeight_1*trackWeight_2", "trackweight"),
         triggerweight(channel),
         ("eleTauFakeRateWeight*muTauFakeRateWeight",
          "leptonTauFakeRateWeight"),
         tau_by_iso_id_weight(channel),
         ele_hlt_Z_vtx_weight(channel), ("prefiringweight", "prefireWeight"),
         lumi_weight])
コード例 #25
0
def VV_process_selection(channel):
    return Selection(name="VV",
                     weights=[("generatorWeight", "generatorWeight"),
                              ("numberGeneratedEventsWeight",
                               "numberGeneratedEventsWeight"),
                              ("puweight", "puweight"),
                              ("idWeight_1*idWeight_2", "idweight"),
                              ("isoWeight_1*isoWeight_2", "isoweight"),
                              ("trackWeight_1*trackWeight_2", "trackweight"),
                              triggerweight(channel),
                              ("eleTauFakeRateWeight*muTauFakeRateWeight",
                               "leptonTauFakeRateWeight"),
                              tau_by_iso_id_weight(channel),
                              ele_hlt_Z_vtx_weight(channel),
                              ("crossSectionPerEventWeight",
                               "crossSectionPerEventWeight"),
                              ("prefiringweight", "prefireWeight"),
                              lumi_weight])
コード例 #26
0
def VVL_process_selection(channel):
    if "mt" in channel:
        emb_veto = "!(gen_match_1==4 && gen_match_2==5)"
        ff_veto = "!(gen_match_2 == 6)"
    elif "et" in channel:
        emb_veto = "!(gen_match_1==3 && gen_match_2==5)"
        ff_veto = "!(gen_match_2 == 6)"
    elif "tt" in channel:
        emb_veto = "!(gen_match_1==5 && gen_match_2==5)"
        ff_veto = "!(gen_match_1 == 6 || gen_match_2 == 6)"
    elif "em" in channel:
        emb_veto = "!(gen_match_1==3 && gen_match_2==4)"
        ff_veto = "(1.0)"
    elif "mm" in channel:
        emb_veto = "!(gen_match_1==4 && gen_match_2==4)"
        ff_veto = "(1.0)"
    return Selection(name="VVL",
                     cuts=[("{} && {}".format(emb_veto,
                                              ff_veto), "tt_emb_and_ff_veto")])
コード例 #27
0
def MC_base_process_selection(channel, era):
    MC_base_process_weights = [
        ("generatorWeight", "generatorWeight"),
        ("puweight", "puweight"),
        ("idWeight_1*idWeight_2", "idweight"),
        ("isoWeight_1*isoWeight_2", "isoweight"),
        ("trackWeight_1*trackWeight_2", "trackweight"),
        ("eleTauFakeRateWeight*muTauFakeRateWeight",
         "leptonTauFakeRateWeight"),
        triggerweight(channel, era),
        tau_by_iso_id_weight(channel),
        ele_hlt_Z_vtx_weight(
            channel, era
        ),  # only used in the et channel in 2017 per function definition.
        ele_reco_weight(
            channel, era
        ),  # only used in the et, em channels in 2016 per function definition.
        prefiring_weight(
            era),  # only used in 2016 and 2017 per function definition.
        lumi_weight(era),
    ]
    return Selection(name="MC base", weights=MC_base_process_weights)
コード例 #28
0
        'VBFHToTauTauM125_RunIIAutumn18MiniAOD_102X_13TeV_MINIAOD_powheg-pythia8_ext1-v1',
        'ZHToTauTauM125_RunIIAutumn18MiniAOD_102X_13TeV_MINIAOD_powheg-pythia8_v2',
        'WminusHToTauTauM125_RunIIAutumn18MiniAOD_102X_13TeV_MINIAOD_powheg-pythia8_v2',
        'WplusHToTauTauM125_RunIIAutumn18MiniAOD_102X_13TeV_MINIAOD_powheg-pythia8_v2'
        ]
    }

# Selections

channel = Selection(name = 'mt',
               cuts = [
                       ('flagMETFilter == 1', 'METFilter'),
                       ('extraelec_veto<0.5', 'extraelec_veto'),
                       ('extramuon_veto<0.5', 'extramuon_veto'),
                       ('dilepton_veto<0.5', 'dilepton_veto'),
                       ('byTightDeepTau2017v2p1VSmu_2>0.5', 'againstMuonDiscriminator'),
                       ('byVVLooseDeepTau2017v2p1VSe_2>0.5', 'againstElectronDiscriminator'),
                       ('byTightDeepTau2017v2p1VSjet_2>0.5', 'tau_iso'),
                       ('iso_1<0.15', 'muon_iso'),
                       ('q_1*q_2<0', 'os'),
                       ('((pt_2>30) && ((trg_singlemuon_27 == 1) || (trg_singlemuon_24 == 1))) || ((pt_1<25) && (trg_crossmuon_mu20tau27_hps == 1 || trg_crossmuon_mu20tau27 == 1))', 'trg_selection')
               ])

# TODO: Add the correct trigger weight string (see below)
#triggerweight = '((trg_singlemuon_27 || trg_singlemuon_24)*((((pt_1>=25)&&(pt_1<28))*trigger_24_Weight_1)+((pt_1>=28)*(trigger_24_27_Weight_1)))+(pt_1 > 21 && pt_1 < 25 && trg_crossmuon_mu20tau27_hps)*(crossTriggerDataEfficiencyWeight_1*((byTightDeepTau2017v2p1VSjet_2<0.5 && byVLooseDeepTau2017v2p1VSjet_2>0.5)*crossTriggerCorrectedDataEfficiencyWeight_vloose_DeepTau_2 + (byTightDeepTau2017v2p1VSjet_2>0.5)*crossTriggerCorrectedDataEfficiencyWeight_tight_DeepTau_2))/(crossTriggerMCEfficiencyWeight_1*((byTightDeepTau2017v2p1VSjet_2<0.5 && byVLooseDeepTau2017v2p1VSjet_2>0.5)*crossTriggerCorrectedMCEfficiencyWeight_vloose_DeepTau_2 + (byTightDeepTau2017v2p1VSjet_2>0.5)*crossTriggerCorrectedMCEfficiencyWeight_tight_DeepTau_2)))'
triggerweight = '(crossTriggerMCWeight_1*(crossTriggerMCWeight_1<10 && crossTriggerMCWeight_1>0.1)+(crossTriggerMCWeight_1>10 || crossTriggerMCWeight_1<0.1))*(pt_1<25) + (trigger_24_27_Weight_1*(pt_1>25))'

mc = Selection(name = 'mc',
        weights = [
            ('generatorWeight', 'generatorWeight'),
            ('puweight', 'puweight'),
コード例 #29
0
def channel_selection(channel):
    if "mt" in channel:
        return Selection(
            name="mt",
            cuts
            =[("flagMETFilter == 1", "METFilter"),
              ("extraelec_veto<0.5", "extraelec_veto"),
              ("extramuon_veto<0.5", "extramuon_veto"
               ),
              ("dilepton_veto<0.5", "dilepton_veto"
               ),
              ("byTightDeepTau2017v2p1VSmu_2>0.5", "againstMuonDiscriminator"),
              ("byVVLooseDeepTau2017v2p1VSe_2>0.5",
               "againstElectronDiscriminator"),
              ("byTightDeepTau2017v2p1VSjet_2>0.5",
               "tau_iso"), ("iso_1<0.15", "muon_iso"), ("q_1*q_2<0", "os"),
              ("pt_2>30 && ((trg_singlemuon_27 == 1) || (trg_singlemuon_24 == 1) || (pt_1 < 25 && trg_crossmuon_mu20tau27 == 1))",
               "trg_selection")])
    elif "et" in channel:
        return Selection(
            name="et",
            cuts
            =[("flagMETFilter == 1", "METFilter"),
              ("extraelec_veto<0.5", "extraelec_veto"),
              ("extramuon_veto<0.5", "extramuon_veto"
               ),
              ("dilepton_veto<0.5", "dilepton_veto"
               ),
              ("againstMuonLoose3_2>0.5", "againstMuonDiscriminator"),
              ("againstElectronTightMVA6_2>0.5",
               "againstElectronDiscriminator"),
              ("byTightIsolationMVArun2017v2DBoldDMwLT2017_2>0.5",
               "tau_iso"), ("iso_1<0.15", "ele_iso"), ("q_1*q_2<0", "os"),
              ("pt_2>30 && pt_1 > 25 && (((trg_singleelectron_35 == 1) || (trg_singleelectron_32 == 1) || ((trg_singleelectron_27 == 1))) || (abs(eta_1)>1.5 && isEmbedded)) || (pt_1>25 && pt_1<28 && pt_2>35 && ((isEmbedded && (abs(eta_1)>1.5)) || (trg_crossele_ele24tau30 == 1)))",
               "trg_selection")])
    elif "tt" in channel:
        return Selection(
            name="tt",
            cuts=
            [("flagMETFilter == 1", "METFilter"),
             ("extraelec_veto<0.5", "extraelec_veto"),
             ("extramuon_veto<0.5", "extramuon_veto"),
             ("dilepton_veto<0.5", "dilepton_veto"),
             ("againstMuonLoose3_1>0.5 && againstMuonLoose3_2>0.5",
              "againstMuonDiscriminator"),
             ("againstElectronVLooseMVA6_1>0.5 && againstElectronVLooseMVA6_2>0.5",
              "againstElectronDiscriminator"),
             ("byTightIsolationMVArun2017v2DBoldDMwLT2017_1>0.5", "tau_1_iso"),
             ("byTightIsolationMVArun2017v2DBoldDMwLT2017_2>0.5", "tau_2_iso"),
             ("(trg_doubletau_35_tightiso_tightid == 1) || (trg_doubletau_40_mediso_tightid == 1) || (trg_doubletau_40_tightiso == 1)",
              "trg_selection"), ("q_1*q_2<0", "os")])

    elif "em" in channel:
        return Selection(
            name="em",
            cuts
            =[("flagMETFilter == 1", "METFilter"),
              ("extraelec_veto<0.5", "extraelec_veto"),
              ("extramuon_veto<0.5", "extramuon_veto"
               ),
              ("dilepton_veto<0.5", "dilepton_veto"
               ),
              ("iso_1<0.15", "ele_iso"
               ),
              ("iso_2<0.2", "muon_iso"
               ),
              ("q_1*q_2<0", "os"
               ),
              ("pt_2>10 && ((trg_muonelectron_mu23ele12 == 1) || (trg_muonelectron_mu8ele23 == 1))",
               "trg_selection")])
コード例 #30
0
def ttH_process_selection(channel):
    return Selection(name="ttH",
                     weights=HTT_process_selection(channel).weights)