###############################################################################
# (c) Copyright 2020-2021 CERN for the benefit of the LHCb Collaboration #
# #
# This software is distributed under the terms of the GNU General Public #
# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". #
# #
# In applying this licence, CERN does not waive the privileges and immunities #
# granted to it by virtue of its status as an Intergovernmental Organization #
# or submit itself to any jurisdiction. #
###############################################################################
"""Definition of b -> s mu tau HLT2 lines.
Final states built are (all taus decay to muons and neutrinos):
1. Bs decays to phi
- Bs -> phi(-> K+ K-) e+ tau- and its charge conjugate
- Bs -> phi(-> K+ K+) e+ tau- and its charge conjugate
- Bs -> phi(-> K+ K+) e- tau+ and its charge conjugate
- Bs -> phi(-> K+ K-) e+ tau+ and its charge conjugate
- Bs -> phi(-> K+ K-) e+ tau- with a fake kaon and its charge conjugate
- Bs -> phi(-> K+ K-) e+ tau- with a fake muon from the Bs and its charge conjugate
- Bs -> phi(-> K+ K-) e+ tau- with a fake muon from the tau and its charge conjugate
2. Lb decays to pK
- Lb -> Lambda(-> p+ K-) e+ tau- and its charge conjugate
- Lb -> Lambda(-> p+ K-) e- tau+ and its charge conjugate
- Lb -> Lambda(-> p+ K+) e+ tau- and its charge conjugate
- Lb -> Lambda(-> p+ K+) e- tau+ and its charge conjugate
- Lb -> Lambda(-> p+ K-) e+ tau+ and its charge conjugate
- Lb -> Lambda(-> p+ K-) e- tau- and its charge conjugate
- Lb -> Lambda(-> p+ K-) e+ tau- with a fake kaon and its charge conjugate
- Lb -> Lambda(-> p+ K-) e- tau+ with a fake kaon and its charge conjugate
- Lb -> Lambda(-> p+ K-) e+ tau- with a fake proton
- Lb -> Lambda(-> p+ K-) e- tau+ with a fake proton
- Lb -> Lambda(-> K+ K-) e+ tau- with a fake muon
- Lb -> Lambda(-> p+ K-) e- tau+ with a fake muon
3. Bd decays to K*
- Bd -> K*(-> K+ pi-) e+ tau- and its charge conjugate
- Bd -> K*(-> K+ pi-) e- tau+ and its charge conjugate
- Bd -> K*(-> K+ pi+) e+ tau- and its charge conjugate
- Bd -> K*(-> K+ pi+) e- tau+ and its charge conjugate
- Bd -> K*(-> K+ pi-) e+ tau+ and its charge conjugate
- Bd -> K*(-> K+ pi-) e- tau- and its charge conjugate
- Bd -> K*(-> K+ pi-) e+ tau- with a fake kaon and its charge conjugate
- Bd -> K*(-> K+ pi-) e- tau+ with a fake kaon and its charge conjugate
- Bd -> K*(-> K+ pi-) e+ tau- with a fake pion and its charge conjugate
- Bd -> K*(-> K+ pi-) e- tau+ with a fake pion and its charge conjugate
- Bd -> K*(-> K+ pi-) e+ tau- with a fake muon and its charge conjugate
- Bd -> K*(-> K+ pi-) e- tau+ with a fake muon and its charge conjugate
Note a: fake particles are obtained through reversing the PID requirements
Note b: particles stemming directly from the b-hadron are combined with a ParticleCombiner. This is not intended to represent a given particle (hence the loose mass requirements)
"""
from Moore.config import register_line_builder
from Moore.lines import Hlt2Line
from RecoConf.reconstruction_objects import make_pvs
from GaudiKernel.SystemOfUnits import MeV
import Functors as F
from Hlt2Conf.lines.rd.builders import rdbuilder_thor
from Hlt2Conf.lines.rd.builders import btosmutau_exclusive
from Hlt2Conf.lines.rd.builders import btosetau_exclusive
from Hlt2Conf.lines.rd.builders.rd_isolation import parent_and_children_isolation
from Hlt2Conf.lines.rd.builders.rd_prefilters import rd_prefilter, _RD_MONITORING_VARIABLES
all_lines = {}
kwargs_protons = {
"p_min": 3000 * MeV,
"pt_min": 250 * MeV,
"mipchi2dvprimary_min": 16,
"pid": F.require_all(F.PID_P > 4, F.PID_P - F.PID_K > 0, ~F.ISMUON),
}
kwargs_protons_reverse_pid = {
"p_min": 3000 * MeV,
"pt_min": 250 * MeV,
"mipchi2dvprimary_min": 16,
"pid": (F.PID_P < 4),
}
kwargs_kaons = {
"pt_min": 250 * MeV,
"p_min": 3000 * MeV,
"mipchi2dvprimary_min": 16,
"pid": F.require_all(F.PID_K > 4, ~F.ISMUON),
}
kwargs_kaons_reverse_pid = {
"pt_min": 250 * MeV,
"p_min": 3000 * MeV,
"mipchi2dvprimary_min": 16,
"pid": (F.PID_K < 4),
}
kwargs_kaons_for_bu = {
"pt_min": 750 * MeV,
"p_min": 5000 * MeV,
"mipchi2dvprimary_min": 36,
"pid": F.require_all(F.PID_K > 4, F.PID_K - F.PID_P > 0, ~F.ISMUON),
}
kwargs_kaons_for_bu_reverse_pid = {
"pt_min": 750 * MeV,
"p_min": 5000 * MeV,
"mipchi2dvprimary_min": 36,
"pid": (F.PID_K < 4),
}
kwargs_kaons_for_kstar = {
"p_min": 5000 * MeV,
"pt_min": 500. * MeV,
"mipchi2dvprimary_min": 25,
"pid": F.require_all(F.PID_K > 6, ~F.ISMUON)
}
kwargs_kaons_for_kstar_reverse_pid = {
"p_min": 5000 * MeV,
"pt_min": 500. * MeV,
"mipchi2dvprimary_min": 25,
"pid": (F.PID_K < 6)
}
kwargs_pions = {
"p_min": 5000 * MeV,
"pt_min": 500 * MeV,
"mipchi2dvprimary_min": 25,
"pid": F.require_all(F.PID_K < -2, ~F.ISMUON)
}
kwargs_pions_reverse_pid = {
"p_min": 5000 * MeV,
"pt_min": 500 * MeV,
"mipchi2dvprimary_min": 25,
"pid": (F.PID_K > -2)
}
kwargs_muons_from_tau = {
"p_min": 3000 * MeV,
"pt_min": 250 * MeV,
"mipchi2dvprimary_min": 9,
"pid": F.require_all(F.PID_MU > 1, F.ISMUON)
}
kwargs_muons_from_tau_reverse_pid = {
"p_min": 3000 * MeV,
"pt_min": 250 * MeV,
"mipchi2dvprimary_min": 9,
"pid": (F.PID_MU < 1)
}
kwargs_electrons = {
"p_min": 3000 * MeV,
"mipchi2dvprimary_min": 9,
"pid": F.require_all(F.PID_E > 6, ~F.ISMUON),
"pt_min": 250 * MeV
}
kwargs_electrons_reverse_pid = {
"p_min": 3000 * MeV,
"mipchi2dvprimary_min": 9,
"pid": (F.PID_E < 6),
"pt_min": 250 * MeV
}
kwargs_electrons_for_bu = {
"p_min": 3000 * MeV,
"mipchi2dvprimary_min": 25,
"pid": F.require_all(F.PID_E > 6, ~F.ISMUON),
"pt_min": 750 * MeV
}
kwargs_electrons_for_bu_reverse_pid = {
"p_min": 3000 * MeV,
"mipchi2dvprimary_min": 25,
"pid": (F.PID_E < 6),
"pt_min": 750 * MeV
}
[docs]@register_line_builder(all_lines)
def bstophietau_tautomu_line(name='Hlt2RD_BsToKKTauE_TauToMu', prescale=1):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
phies = btosetau_exclusive.make_phie(kaons, kaons, electrons, pvs)
bs = btosmutau_exclusive.make_bs(phies, muons_from_tau, pvs)
algs = rd_prefilter() + [phies, bs]
iso_parts = parent_and_children_isolation(
parents={
'Bs': bs,
'phie': phies
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bstophietau_tautomu_same_sign_kaons_sskmu_line(
name='Hlt2RD_BsToKKTauE_TauToMu_SSK_SSKmu', prescale=0.7):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
phies = btosetau_exclusive.make_phie(
kaons,
kaons,
electrons,
pvs,
decay_descriptor="[B0 -> K+ K+ e+]cc",
name="rd_same_sign_dikaon_electron_for_btosetau_{hash}")
bs = btosmutau_exclusive.make_bs(
phies,
muons_from_tau,
pvs,
name="rd_make_bs_to_kktaue_same_sign_kaons_{hash}")
algs = rd_prefilter() + [phies, bs]
iso_parts = parent_and_children_isolation(
parents={
'Bs': bs,
'phie': phies
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bstophietau_tautomu_same_sign_kaons_oskmu_line(
name='Hlt2RD_BsToKKTauE_TauToMu_SSK_OSKmu', prescale=0.7):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
phies = btosetau_exclusive.make_phie(
kaons,
kaons,
electrons,
pvs,
decay_descriptor="[B0 -> K- K- e+]cc",
name="rd_same_sign_dikaon_electron_for_btosetau_{hash}")
bs = btosmutau_exclusive.make_bs(
phies,
muons_from_tau,
pvs,
name="rd_make_bs_to_kktaue_same_sign_kaons_{hash}")
algs = rd_prefilter() + [phies, bs]
iso_parts = parent_and_children_isolation(
parents={
'Bs': bs,
'phie': phies
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bstophimutau_tautomu_same_sign_muons_line(
name='Hlt2RD_BsToKKTauE_TauToMu_SSl', prescale=0.7):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
phies = btosetau_exclusive.make_phie(
kaons, kaons, electrons, pvs, decay_descriptor="[B0 -> K+ K- e+]cc")
bs = btosmutau_exclusive.make_bs(
phies,
muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu+]cc",
name="rd_make_bs_to_kktaue_same_sign_leptons_{hash}")
algs = rd_prefilter() + [phies, bs]
iso_parts = parent_and_children_isolation(
parents={
'Bs': bs,
'phie': phies
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bstophietau_tautomu_fakemuon_from_tau_line(
name='Hlt2RD_BsToKKTauE_TauToMu_FakeMuonFromTau', prescale=0.03):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
fake_muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau_reverse_pid)
phies = btosetau_exclusive.make_phie(kaons, kaons, electrons, pvs)
bs = btosmutau_exclusive.make_bs(
phies,
fake_muons_from_tau,
pvs,
name="rd_make_bs_to_kktaue_fake_muon_from_tau_{hash}")
algs = rd_prefilter() + [phies, bs]
iso_parts = parent_and_children_isolation(
parents={
'Bs': bs,
'phie': phies
},
decay_products={'mu_f_tau': fake_muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bstophietau_tautomu_fakemuon_from_b_line(
name='Hlt2RD_BsToKKTauE_TauToMu_FakeMuonFromB', prescale=0.003):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
fake_electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_reverse_pid)
phies_fake_electron = btosetau_exclusive.make_phie(
kaons,
kaons,
fake_electrons,
pvs,
name="rd_dikaon_fake_electron_for_btosetau_{hash}")
bs = btosmutau_exclusive.make_bs(
phies_fake_electron,
muons_from_tau,
pvs,
name="rd_make_bs_to_kktaue_fake_electron_from_b_{hash}")
algs = rd_prefilter() + [phies_fake_electron, bs]
iso_parts = parent_and_children_isolation(
parents={
'Bs': bs,
'phie': phies_fake_electron
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bstophietau_tautomu_fakekaon_line(
name='Hlt2RD_BsToKKTauE_TauToMu_FakeKaon', prescale=0.1):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
fake_kaons = rdbuilder_thor.make_rd_detached_kaons(
**kwargs_kaons_reverse_pid)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
phies = btosetau_exclusive.make_phie(
kaons,
fake_kaons,
electrons,
pvs,
name="rd_fake_dikaon_electron_for_btosetau_{hash}")
bs = btosmutau_exclusive.make_bs(
phies,
muons_from_tau,
pvs,
name="rd_make_bs_to_kktaue_fake_kaons_{hash}")
algs = rd_prefilter() + [phies, bs]
iso_parts = parent_and_children_isolation(
parents={
'Bs': bs,
'phie': phies
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_sspmu_line(name='Hlt2RD_LbToPKTauE_TauToMu_SSpmu',
prescale=1):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(**kwargs_protons)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
pkes = btosetau_exclusive.make_pke(
kaons, protons, electrons, pvs, decay_descriptor="[B0 -> p+ K- e+]cc")
lb = btosmutau_exclusive.make_lb(
pkes, muons_from_tau, pvs, decay_descriptor="[Lambda_b0 -> B0 mu-]cc")
algs = rd_prefilter() + [pkes, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_ospmu_line(name='Hlt2RD_LbToPKTauE_TauToMu_OSpmu',
prescale=1):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(**kwargs_protons)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
pkes = btosetau_exclusive.make_pke(
kaons, protons, electrons, pvs, decay_descriptor="[B0 -> p+ K- e-]cc")
lb = btosmutau_exclusive.make_lb(
pkes, muons_from_tau, pvs, decay_descriptor="[Lambda_b0 -> B0 mu+]cc")
algs = rd_prefilter() + [pkes, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_same_sign_pk_sspmu_line(
name='Hlt2RD_LbToPKTauE_TauToMu_SSpK_SSpmu', prescale=0.7):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(**kwargs_protons)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
pkes = btosetau_exclusive.make_pke(
kaons,
protons,
electrons,
pvs,
decay_descriptor="[B0 -> p+ K+ e+]cc",
name="rd_same_sign_pk_electron_for_btosetau_{hash}")
lb = btosmutau_exclusive.make_lb(
pkes,
muons_from_tau,
pvs,
decay_descriptor="[Lambda_b0 -> B0 mu-]cc",
name="rd_make_lb_to_pketau_same_sign_pk_{hash}")
algs = rd_prefilter() + [pkes, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_same_sign_pk_ospmu_line(
name='Hlt2RD_LbToPKTauE_TauToMu_SSpK_OSpmu', prescale=0.7):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(**kwargs_protons)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
pkes = btosetau_exclusive.make_pke(
kaons,
protons,
electrons,
pvs,
decay_descriptor="[B0 -> p+ K+ e-]cc",
name="rd_same_sign_pk_electron_for_btosetau_{hash}")
lb = btosmutau_exclusive.make_lb(
pkes,
muons_from_tau,
pvs,
decay_descriptor="[Lambda_b0 -> B0 mu+]cc",
name="rd_make_lb_to_pketau_same_sign_pk_{hash}")
algs = rd_prefilter() + [pkes, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_same_sign_muons_sspmu_line(
name='Hlt2RD_LbToPKTauE_TauToMu_SSl_SSpmu', prescale=0.5):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(**kwargs_protons)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
pkes = btosetau_exclusive.make_pke(
kaons, protons, electrons, pvs, decay_descriptor="[B0 -> p+ K- e+]cc")
lb = btosmutau_exclusive.make_lb(
pkes,
muons_from_tau,
pvs,
decay_descriptor="[Lambda_b0 -> B0 mu+]cc",
name="rd_make_lb_to_pketau_same_sign_leptons_{hash}")
algs = rd_prefilter() + [pkes, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_same_sign_muons_ospmu_line(
name='Hlt2RD_LbToPKTauE_TauToMu_SSl_OSpmu', prescale=0.75):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(**kwargs_protons)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
pkes = btosetau_exclusive.make_pke(
kaons, protons, electrons, pvs, decay_descriptor="[B0 -> p+ K- e-]cc")
lb = btosmutau_exclusive.make_lb(
pkes,
muons_from_tau,
pvs,
decay_descriptor="[Lambda_b0 -> B0 mu-]cc",
name="rd_make_lb_to_pketau_same_sign_leptons_{hash}")
algs = rd_prefilter() + [pkes, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_fakemuon_from_tau_sspmu_line(
name='Hlt2RD_LbToPKTauE_TauToMu_FakeMuonFromTau_SSpmu',
prescale=0.015):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(**kwargs_protons)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
fake_muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau_reverse_pid)
pkes = btosetau_exclusive.make_pke(
kaons, protons, electrons, pvs, decay_descriptor="[B0 -> p+ K- e+]cc")
lb = btosmutau_exclusive.make_lb(
pkes,
fake_muons_from_tau,
pvs,
decay_descriptor="[Lambda_b0 -> B0 mu-]cc",
name="rd_make_lb_to_pketau_fake_muon_from_tau_{hash}")
algs = rd_prefilter() + [pkes, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes
},
decay_products={'mu_f_tau': fake_muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_fakemuon_from_tau_ospmu_line(
name='Hlt2RD_LbToPKTauE_TauToMu_FakeMuonFromTau_OSpmu',
prescale=0.005):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(**kwargs_protons)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
fake_muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau_reverse_pid)
pkes = btosetau_exclusive.make_pke(
kaons, protons, electrons, pvs, decay_descriptor="[B0 -> p+ K- e-]cc")
lb = btosmutau_exclusive.make_lb(
pkes,
fake_muons_from_tau,
pvs,
decay_descriptor="[Lambda_b0 -> B0 mu+]cc",
name="rd_make_lb_to_pketau_fake_muon_from_tau_{hash}")
algs = rd_prefilter() + [pkes, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes
},
decay_products={'mu_f_tau': fake_muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_fakemuon_from_b_sspmu_line(
name='Hlt2RD_LbToPKTauE_TauToMu_FakeMuonFromB_SSpmu', prescale=0.015):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(**kwargs_protons)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
fake_electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_reverse_pid)
pkes_fake_electron = btosetau_exclusive.make_pke(
kaons,
protons,
fake_electrons,
pvs,
decay_descriptor="[B0 -> p+ K- e+]cc",
name="rd_pk_fake_electron_for_btosetau_{hash}")
lb = btosmutau_exclusive.make_lb(
pkes_fake_electron,
muons_from_tau,
pvs,
decay_descriptor="[Lambda_b0 -> B0 mu-]cc",
name="rd_make_lb_to_pketau_fake_electron_from_b_{hash}")
algs = rd_prefilter() + [pkes_fake_electron, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes_fake_electron
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_fakemuon_from_b_ospmu_line(
name='Hlt2RD_LbToPKTauE_TauToMu_FakeMuonFromB_OSpmu', prescale=0.015):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(**kwargs_protons)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
fake_electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_reverse_pid)
pkes_fake_electron = btosetau_exclusive.make_pke(
kaons,
protons,
fake_electrons,
pvs,
decay_descriptor="[B0 -> p+ K- e-]cc",
name="rd_pk_fake_electron_for_btosetau_{hash}")
lb = btosmutau_exclusive.make_lb(
pkes_fake_electron,
muons_from_tau,
pvs,
decay_descriptor="[Lambda_b0 -> B0 mu+]cc",
name="rd_make_lb_to_pketau_fake_electron_from_b_{hash}")
algs = rd_prefilter() + [pkes_fake_electron, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes_fake_electron
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_fakeproton_sspmu_line(
name='Hlt2RD_LbToPKTauE_TauToMu_FakeProton_SSpmu', prescale=0.1):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(
**kwargs_protons_reverse_pid)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
pkes = btosetau_exclusive.make_pke(
kaons,
protons,
electrons,
pvs,
decay_descriptor="[B0 -> p+ K- e+]cc",
name="rd_pk_fake_proton_electron_for_btosetau_{hash}")
lb = btosmutau_exclusive.make_lb(
pkes,
muons_from_tau,
pvs,
decay_descriptor="[Lambda_b0 -> B0 mu-]cc",
name="rd_make_lb_to_pketau_fake_protons_{hash}")
algs = rd_prefilter() + [pkes, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_fakeproton_ospmu_line(
name='Hlt2RD_LbToPKTauE_TauToMu_FakeProton_OSpmu', prescale=0.15):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(
**kwargs_protons_reverse_pid)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
pkes = btosetau_exclusive.make_pke(
kaons,
protons,
electrons,
pvs,
decay_descriptor="[B0 -> p+ K- e-]cc",
name="rd_pk_fake_proton_electron_for_btosetau_{hash}")
lb = btosmutau_exclusive.make_lb(
pkes,
muons_from_tau,
pvs,
decay_descriptor="[Lambda_b0 -> B0 mu+]cc",
name="rd_make_lb_to_pketau_fake_protons_{hash}")
algs = rd_prefilter() + [pkes, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_fakekaon_sspmu_line(
name='Hlt2RD_LbToPKTauE_TauToMu_FakeKaon_SSpmu', prescale=0.3):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(**kwargs_protons)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_reverse_pid)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
pkes = btosetau_exclusive.make_pke(
kaons,
protons,
electrons,
pvs,
decay_descriptor="[B0 -> p+ K- e+]cc",
name="rd_pk_fake_kaon_electron_for_btosetau_{hash}")
lb = btosmutau_exclusive.make_lb(
pkes,
muons_from_tau,
pvs,
decay_descriptor="[Lambda_b0 -> B0 mu-]cc",
name="rd_make_lb_to_pketau_fake_kaons_{hash}")
algs = rd_prefilter() + [pkes, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def lbtopketau_tautomu_fakekaon_ospmu_line(
name='Hlt2RD_LbToPKTauE_TauToMu_FakeKaon_OSpmu', prescale=0.3):
pvs = make_pvs()
protons = rdbuilder_thor.make_rd_detached_protons(**kwargs_protons)
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_reverse_pid)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
pkes = btosetau_exclusive.make_pke(
kaons,
protons,
electrons,
pvs,
decay_descriptor="[B0 -> p+ K- e-]cc",
name="rd_pk_fake_kaon_electron_for_btosetau_{hash}")
lb = btosmutau_exclusive.make_lb(
pkes,
muons_from_tau,
pvs,
decay_descriptor="[Lambda_b0 -> B0 mu+]cc",
name="rd_make_lb_to_pketau_fake_kaons_{hash}")
algs = rd_prefilter() + [pkes, lb]
iso_parts = parent_and_children_isolation(
parents={
'Lb': lb,
'pKe': pkes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_sskmu_line(name='Hlt2RD_BdToKPiTauE_TauToMu_SSKmu',
prescale=1):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_kstar)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
kstes = btosetau_exclusive.make_kste(
kaons, pions, electrons, pvs, decay_descriptor="[B0 -> K+ pi- e+]cc")
bd = btosmutau_exclusive.make_bd(
kstes, muons_from_tau, pvs, decay_descriptor="[B_s0 -> B0 mu-]cc")
algs = rd_prefilter() + [kstes, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_oskmu_line(name='Hlt2RD_BdToKPiTauE_TauToMu_OSKmu',
prescale=1):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_kstar)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
kstes = btosetau_exclusive.make_kste(
kaons, pions, electrons, pvs, decay_descriptor="[B0 -> K+ pi- e-]cc")
bd = btosmutau_exclusive.make_bd(
kstes, muons_from_tau, pvs, decay_descriptor="[B_s0 -> B0 mu+]cc")
algs = rd_prefilter() + [kstes, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_same_sign_kpi_sskmu_line(
name='Hlt2RD_BdToKPiTauE_TauToMu_SSKpi_SSKmu', prescale=0.5):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_kstar)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
kstes = btosetau_exclusive.make_kste(
kaons,
pions,
electrons,
pvs,
decay_descriptor="[B0 -> K+ pi+ e+]cc",
name="rd_same_sign_kpi_electron_for_btosetau_{hash}")
bd = btosmutau_exclusive.make_bd(
kstes,
muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu-]cc",
name="rd_make_bd_to_kpietau_same_sign_kpi_{hash}")
algs = rd_prefilter() + [kstes, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_same_sign_kpi_oskmu_line(
name='Hlt2RD_BdToKPiTauE_TauToMu_SSKpi_OSKmu', prescale=0.1):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_kstar)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
kstes = btosetau_exclusive.make_kste(
kaons,
pions,
electrons,
pvs,
decay_descriptor="[B0 -> K+ pi+ e-]cc",
name="rd_same_sign_kpi_electron_for_btosetau_{hash}")
bd = btosmutau_exclusive.make_bd(
kstes,
muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu+]cc",
name="rd_make_bd_to_kpietau_same_sign_kpi_{hash}")
algs = rd_prefilter() + [kstes, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_same_sign_muons_sskmu_line(
name='Hlt2RD_BdToKPiTauE_TauToMu_SSl_SSKmu', prescale=0.5):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_kstar)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
kstes = btosetau_exclusive.make_kste(
kaons, pions, electrons, pvs, decay_descriptor="[B0 -> K+ pi- e+]cc")
bd = btosmutau_exclusive.make_bd(
kstes,
muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu+]cc",
name="rd_make_bd_to_kpietau_same_sign_leptons_{hash}")
algs = rd_prefilter() + [kstes, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_same_sign_muons_oskmu_line(
name='Hlt2RD_BdToKPiTauE_TauToMu_SSl_OSKmu', prescale=0.7):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_kstar)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
kstes = btosetau_exclusive.make_kste(
kaons, pions, electrons, pvs, decay_descriptor="[B0 -> K+ pi- mu-]cc")
bd = btosmutau_exclusive.make_bd(
kstes,
muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu-]cc",
name="rd_make_bd_to_kpietau_same_sign_leptons_{hash}")
algs = rd_prefilter() + [kstes, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_fakemuon_from_tau_sskmu_line(
name='Hlt2RD_BdToKPiTauE_TauToMu_FakeMuonFromTau_SSKmu',
prescale=0.015):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_kstar)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
fake_muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau_reverse_pid)
kstes = btosetau_exclusive.make_kste(
kaons, pions, electrons, pvs, decay_descriptor="[B0 -> K+ pi- e+]cc")
bd = btosmutau_exclusive.make_bd(
kstes,
fake_muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu-]cc",
name="rd_make_bd_to_kpietau_fake_muon_from_tau_{hash}")
algs = rd_prefilter() + [kstes, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes
},
decay_products={'mu_f_tau': fake_muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_fakemuon_from_tau_oskmu_line(
name='Hlt2RD_BdToKPiTauE_TauToMu_FakeMuonFromTau_OSKmu',
prescale=0.005):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_kstar)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
fake_muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau_reverse_pid)
kstes = btosetau_exclusive.make_kste(
kaons, pions, electrons, pvs, decay_descriptor="[B0 -> K+ pi- e-]cc")
bd = btosmutau_exclusive.make_bd(
kstes,
fake_muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu+]cc",
name="rd_make_bd_to_kpietau_fake_muon_from_tau_{hash}")
algs = rd_prefilter() + [kstes, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes
},
decay_products={'mu_f_tau': fake_muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_fakemuon_from_b_sskmu_line(
name='Hlt2RD_BdToKPiTauE_TauToMu_FakeMuonFromB_SSKmu', prescale=0.015):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_kstar)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
fake_electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_reverse_pid)
kstes_fake_electron = btosetau_exclusive.make_kste(
kaons,
pions,
fake_electrons,
pvs,
decay_descriptor="[B0 -> K+ pi- e+]cc",
name="rd_kpi_fake_electron_for_btosetau_{hash}")
bd = btosmutau_exclusive.make_bd(
kstes_fake_electron,
muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu-]cc",
name="rd_make_bd_to_kpietau_fake_electron_from_b_{hash}")
algs = rd_prefilter() + [kstes_fake_electron, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes_fake_electron
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_fakemuon_from_b_oskmu_line(
name='Hlt2RD_BdToKPiTauE_TauToMu_FakeMuonFromB_OSKmu', prescale=0.003):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_kstar)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
fake_electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_reverse_pid)
kstes_fake_electron = btosetau_exclusive.make_kste(
kaons,
pions,
fake_electrons,
pvs,
decay_descriptor="[B0 -> K+ pi- e-]cc",
name="rd_kpi_fake_electron_for_btosetau_{hash}")
bd = btosmutau_exclusive.make_bd(
kstes_fake_electron,
muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu+]cc",
name="rd_make_bd_to_kpietau_fake_electron_from_b_{hash}")
algs = rd_prefilter() + [kstes_fake_electron, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes_fake_electron
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_fakekaon_sskmu_line(
name='Hlt2RD_BdToKPiTauE_TauToMu_FakeKaon_SSKmu', prescale=0.15):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(
**kwargs_kaons_for_kstar_reverse_pid)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
kstes = btosetau_exclusive.make_kste(
kaons,
pions,
electrons,
pvs,
decay_descriptor="[B0 -> K+ pi- e+]cc",
name="rd_kpi_fake_kaon_electron_for_btosetau_{hash}")
bd = btosmutau_exclusive.make_bd(
kstes,
muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu-]cc",
name="rd_make_bd_to_kpietau_fake_kaons_{hash}")
algs = rd_prefilter() + [kstes, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_fakekaon_oskmu_line(
name='Hlt2RD_BdToKPiTauE_TauToMu_FakeKaon_OSKmu', prescale=0.15):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(
**kwargs_kaons_for_kstar_reverse_pid)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
kstes = btosetau_exclusive.make_kste(
kaons,
pions,
electrons,
pvs,
decay_descriptor="[B0 -> K+ pi- e-]cc",
name="rd_kpi_fake_kaon_electron_for_btosetau_{hash}")
bd = btosmutau_exclusive.make_bd(
kstes,
muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu+]cc",
name="rd_make_bd_to_kpietau_fake_kaons_{hash}")
algs = rd_prefilter() + [kstes, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_fakepion_sskmu_line(
name='Hlt2RD_BdToKPiTauE_TauToMu_FakePion_SSKmu', prescale=0.3):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_kstar)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions_reverse_pid)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
kstes = btosetau_exclusive.make_kste(
kaons,
pions,
electrons,
pvs,
decay_descriptor="[B0 -> K+ pi- e+]cc",
name="rd_kpi_fake_pion_electron_for_btosetau_{hash}")
bd = btosmutau_exclusive.make_bd(
kstes,
muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu-]cc",
name="rd_make_bd_to_kpietau_fake_pions_{hash}")
algs = rd_prefilter() + [kstes, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def bdtokstetau_tautomu_fakepion_oskmu_line(
name='Hlt2RD_BdToKPiTauE_TauToMu_FakePion_OSKmu', prescale=0.3):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_kstar)
pions = rdbuilder_thor.make_rd_detached_pions(**kwargs_pions_reverse_pid)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(**kwargs_electrons)
kstes = btosetau_exclusive.make_kste(
kaons,
pions,
electrons,
pvs,
decay_descriptor="[B0 -> K+ pi- e-]cc",
name="rd_kpi_fake_pion_electron_for_btosetau_{hash}")
bd = btosmutau_exclusive.make_bd(
kstes,
muons_from_tau,
pvs,
decay_descriptor="[B_s0 -> B0 mu+]cc",
name="rd_make_bd_to_kpietau_fake_pions_{hash}")
algs = rd_prefilter() + [kstes, bd]
iso_parts = parent_and_children_isolation(
parents={
'Bd': bd,
'Kstes': kstes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def butoketau_tautomu_oskmu_line(name='Hlt2RD_BuToKTauE_TauToMu_OSKmu',
prescale=0.1):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_bu)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_for_bu)
kes = btosetau_exclusive.make_ke(
kaons, electrons, pvs, decay_descriptor="[B0 -> e- K+]cc")
bu = btosmutau_exclusive.make_bu(
kes, muons_from_tau, pvs, decay_descriptor="[B+ -> B0 mu+]cc")
iso_parts = parent_and_children_isolation(
parents={
'Bu': bu,
'Kes': kes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=rd_prefilter() + [kes, bu],
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def butoketau_tautomu_sskmu_line(name='Hlt2RD_BuToKTauE_TauToMu_SSKmu',
prescale=0.3):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_bu)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_for_bu)
kes = btosetau_exclusive.make_ke(
kaons, electrons, pvs, decay_descriptor="[B0 -> e+ K+]cc")
bu = btosmutau_exclusive.make_bu(
kes, muons_from_tau, pvs, decay_descriptor="[B+ -> B0 mu-]cc")
iso_parts = parent_and_children_isolation(
parents={
'Bu': bu,
'Kes': kes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=rd_prefilter() + [kes, bu],
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def butoketau_tautomu_same_sign_muons_oskmu_line(
name='Hlt2RD_BuToKTauE_TauToMu_SSl_OSKmu', prescale=0.3):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_bu)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_for_bu)
kes = btosetau_exclusive.make_ke(
kaons, electrons, pvs, decay_descriptor="[B0 -> e- K+]cc")
bu = btosmutau_exclusive.make_bu(
kes,
muons_from_tau,
pvs,
decay_descriptor="[B+ -> B0 mu-]cc",
name="rd_make_bu_to_ketau_same_sign_leptons_{hash}")
iso_parts = parent_and_children_isolation(
parents={
'Bu': bu,
'Kes': kes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=rd_prefilter() + [kes, bu],
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def butoketau_tautomu_same_sign_muons_sskmu_line(
name='Hlt2RD_BuToKTauE_TauToMu_SSl_SSKmu', prescale=0.75):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_bu)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_for_bu)
kes = btosetau_exclusive.make_ke(
kaons, electrons, pvs, decay_descriptor="[B0 -> e- K-]cc")
bu = btosmutau_exclusive.make_bu(
kes,
muons_from_tau,
pvs,
decay_descriptor="[B+ -> B0 mu-]cc",
name="rd_make_bu_to_ketau_same_sign_leptons_{hash}")
iso_parts = parent_and_children_isolation(
parents={
'Bu': bu,
'Kes': kes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=rd_prefilter() + [kes, bu],
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def butoketau_tautomu_fakemuon_from_tau_oskmu_line(
name='Hlt2RD_BuToKTauE_TauToMu_FakeMuonFromTau_OSKmu', prescale=0.002):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_bu)
electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_for_bu)
fake_muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau_reverse_pid)
kes = btosetau_exclusive.make_ke(
kaons, electrons, pvs, decay_descriptor="[B0 -> e- K+]cc")
bu = btosmutau_exclusive.make_bu(
kes,
fake_muons_from_tau,
pvs,
decay_descriptor="[B+ -> B0 mu+]cc",
name="rd_make_bu_to_ketau_fake_muon_from_tau_{hash}")
algs = rd_prefilter() + [kes, bu]
iso_parts = parent_and_children_isolation(
parents={
'Bu': bu,
'Kes': kes
},
decay_products={'mu_f_tau': fake_muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def butoketau_tautomu_fakemuon_from_tau_sskmu_line(
name='Hlt2RD_BuToKTauE_TauToMu_FakeMuonFromTau_SSKmu', prescale=0.005):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_bu)
electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_for_bu)
fake_muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau_reverse_pid)
kes = btosetau_exclusive.make_ke(
kaons, electrons, pvs, decay_descriptor="[B0 -> e+ K+]cc")
bu = btosmutau_exclusive.make_bu(
kes,
fake_muons_from_tau,
pvs,
decay_descriptor="[B+ -> B0 mu-]cc",
name="rd_make_bu_to_ketau_fake_muon_from_tau_{hash}")
algs = rd_prefilter() + [kes, bu]
iso_parts = parent_and_children_isolation(
parents={
'Bu': bu,
'Kes': kes
},
decay_products={'mu_f_tau': fake_muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def butoketau_tautomu_fakemuon_from_b_oskmu_line(
name='Hlt2RD_BuToKTauE_TauToMu_FakeMuonFromB_OSKmu', prescale=0.015):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_bu)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
fake_electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_for_bu_reverse_pid)
kes_fake_electron = btosetau_exclusive.make_ke(
kaons,
fake_electrons,
pvs,
decay_descriptor="[B0 -> e- K+]cc",
name="rd_kaon_fake_electron_for_btosetau_{hash}")
bu = btosmutau_exclusive.make_bu(
kes_fake_electron,
muons_from_tau,
pvs,
decay_descriptor="[B+ -> B0 mu+]cc",
name="rd_make_bu_to_ketau_fake_electron_from_b_{hash}")
algs = rd_prefilter() + [kes_fake_electron, bu]
iso_parts = parent_and_children_isolation(
parents={
'Bu': bu,
'Kes': kes_fake_electron
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def butoketau_tautomu_fakemuon_from_b_sskmu_line(
name='Hlt2RD_BuToKTauE_TauToMu_FakeMuonFromB_SSKmu', prescale=0.015):
pvs = make_pvs()
kaons = rdbuilder_thor.make_rd_detached_kaons(**kwargs_kaons_for_bu)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
fake_electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_for_bu_reverse_pid)
kes_fake_electron = btosetau_exclusive.make_ke(
kaons,
fake_electrons,
pvs,
decay_descriptor="[B0 -> e+ K+]cc",
name="rd_kaon_fake_electron_for_btosetau_{hash}")
bu = btosmutau_exclusive.make_bu(
kes_fake_electron,
muons_from_tau,
pvs,
decay_descriptor="[B+ -> B0 mu-]cc",
name="rd_make_bu_to_ketau_fake_electron_from_b_{hash}")
algs = rd_prefilter() + [kes_fake_electron, bu]
iso_parts = parent_and_children_isolation(
parents={
'Bu': bu,
'Kes': kes_fake_electron
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=algs,
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def butoketau_tautomu_fakekaon_oskmu_line(
name='Hlt2RD_BuToKTauE_TauToMu_FakeKaon_OSKmu', prescale=0.05):
pvs = make_pvs()
fake_kaons = rdbuilder_thor.make_rd_detached_kaons(
**kwargs_kaons_for_bu_reverse_pid)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_for_bu)
kes = btosetau_exclusive.make_ke(
fake_kaons,
electrons,
pvs,
decay_descriptor="[B0 -> e- K+]cc",
name="rd_fake_kaon_electron_for_btosetau_{hash}")
bu = btosmutau_exclusive.make_bu(
kes,
muons_from_tau,
pvs,
decay_descriptor="[B+ -> B0 mu+]cc",
name="rd_make_bu_to_ketau_fake_kaons_{hash}")
iso_parts = parent_and_children_isolation(
parents={
'Bu': bu,
'Kes': kes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=rd_prefilter() + [kes, bu],
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)
[docs]@register_line_builder(all_lines)
def butoketau_tautomu_fakekaon_sskmu_line(
name='Hlt2RD_BuToKTauE_TauToMu_FakeKaon_SSKmu', prescale=0.15):
pvs = make_pvs()
fake_kaons = rdbuilder_thor.make_rd_detached_kaons(
**kwargs_kaons_for_bu_reverse_pid)
muons_from_tau = rdbuilder_thor.make_rd_detached_muons(
**kwargs_muons_from_tau)
electrons = rdbuilder_thor.make_rd_detached_electrons(
**kwargs_electrons_for_bu)
kes = btosetau_exclusive.make_ke(
fake_kaons,
electrons,
pvs,
decay_descriptor="[B0 -> e+ K+]cc",
name="rd_fake_kaon_electron_for_btosetau_{hash}")
bu = btosmutau_exclusive.make_bu(
kes,
muons_from_tau,
pvs,
decay_descriptor="[B+ -> B0 mu-]cc",
name="rd_make_bu_to_ketau_fake_kaons_{hash}")
iso_parts = parent_and_children_isolation(
parents={
'Bu': bu,
'Kes': kes
},
decay_products={'mu_f_tau': muons_from_tau})
return Hlt2Line(
name=name,
algs=rd_prefilter() + [kes, bu],
prescale=prescale,
extra_outputs=iso_parts,
monitoring_variables=_RD_MONITORING_VARIABLES)