Skip to content
Snippets Groups Projects
Commit f86c42b5 authored by Ho Yin Derek Yeung's avatar Ho Yin Derek Yeung Committed by Rosen Matev
Browse files

Added a B0->D0TauNuX decay HLT2 line

parent 2dfd3277
No related branches found
No related tags found
1 merge request!1286Added a B0->D0TauNuX decay HLT2 line
......@@ -22,11 +22,12 @@ from Hlt2Conf.algorithms import ParticleContainersMerger
from .builders.base_builder import make_tauons_muonic_decay, make_fake_tauons_muonic_decay
from .builders.base_builder import make_tauons_electronic_decay, make_fake_tauons_electronic_decay
from .builders.base_builder import make_muons_from_b, make_electrons_from_b, make_candidate, make_fake_muons_from_b_notIsMuon
#from .builders.base_builder import make_pions, make_kaons
from .builders.charm_hadron_builder import make_dplus_tokpipi, make_ds_tokkpi, make_d0_tokpi, make_lambdac_topkpi
from .builders.b_builder import make_b2xtaunu
from GaudiKernel.SystemOfUnits import MeV
from GaudiKernel.SystemOfUnits import MeV, GeV, MeV, mm
import Functors as F
from PyConf import ConfigurationError
......@@ -221,3 +222,91 @@ def make_lbtolctaunu_lctopkpi_tautolnu(process, lepton):
bpvfdchi2_min=25)
return line_alg
def make_b0tod0taunu_d0tokpi_tautomununu(process, lepton):
"""
Selection for the decay B0 -> D0(-> K pi) X tau(-> mu nu nu) nu.
"""
if lepton == "mu":
with make_muons_from_b.bind(pid=(F.PID_MU > -200.0)):
taus = make_tauons_muonic_decay()
decay_descriptor = "[B~0 -> D0 mu-]cc"
elif lepton == "e":
with make_electrons_from_b.bind(pid=(F.PID_E > -200.0)):
taus = make_tauons_electronic_decay()
decay_descriptor = "[B~0 -> D0 e-]cc"
else:
raise ConfigurationError("Lepton must be either mu or e")
with make_candidate.bind(p_min=5.0*GeV):
d0s = make_d0_tokpi(
comb_docachi2_max=None,
vchi2pdof_max=4,
bpvdira_min=0.999,
comb_pt_min=2000*MeV,
comb_pt_any_min=800*MeV,
comb_pt_sum_min=2.5*GeV,
comb_doca_max=0.1*mm,
daughter_pt_min=300.0*MeV,
daughter_trghostprob_max=0.5,
daughter_mipchi2_min=9.0,
kaon_pid=(F.PID_K>4.0),
pion_pid=(F.PID_K<2.0))
b0s_rightsign = make_b2xtaunu(
particles=[d0s,taus],
descriptor=decay_descriptor,
comb_m_max=10000.0*MeV)
b0s_wrongsign = make_b2xtaunu(
particles=[d0s,taus],
descriptor=decay_descriptor,
comb_m_max=10000.0*MeV)
line_alg = ParticleContainersMerger([b0s_rightsign, b0s_wrongsign])
return line_alg
def make_b0tod0taunu_d0tokpi_fakemuon(process, lepton):
"""
Selection for the decay B0 -> D0(-> K pi) X tau(-> mu nu nu) nu, with a fake muon.
"""
if lepton == "mu":
taus = make_fake_tauons_muonic_decay()
decay_descriptor = "[B~0 -> D0 mu-]cc"
elif lepton == "e":
taus = make_fake_tauons_electronic_decay()
decay_descriptor = "[B~0 -> D0 e-]cc"
else:
raise ConfigurationError("Lepton must be either mu or e")
with make_candidate.bind(p_min=5.0*GeV):
d0s = make_d0_tokpi(
comb_docachi2_max=None,
vchi2pdof_max=4,
bpvdira_min=0.999,
comb_pt_min=2000*MeV,
comb_pt_any_min=800*MeV,
comb_pt_sum_min=2.5*GeV,
comb_doca_max=0.1*mm,
daughter_pt_min=300.0*MeV,
daughter_trghostprob_max=0.5,
daughter_mipchi2_min=9.0,
kaon_pid=(F.PID_K>4.0),
pion_pid=(F.PID_K<2.0))
b0s_rightsign = make_b2xtaunu(
particles=[d0s,taus],
descriptor=decay_descriptor,
comb_m_max=10000.0*MeV)
b0s_wrongsign = make_b2xtaunu(
particles=[d0s,taus],
descriptor=decay_descriptor,
comb_m_max=10000.0*MeV)
line_alg = ParticleContainersMerger([b0s_rightsign, b0s_wrongsign])
return line_alg
......@@ -26,7 +26,7 @@ from Moore.config import HltLine, register_line_builder
#from GaudiKernel.SystemOfUnits import MeV
from .builders import sl_line_prefilter
from .HbToHcTauNu_TauToLNuNu import make_b0todptaunu_dptokpipi_tautolnunu, make_b0todptaunu_dptokpipi_fakelepton, make_butod0taunu_d0tokpi_tautolnunu, make_butod0taunu_d0tokpi_fakelepton, make_bstodstaunu_dstokkpi_tautolnunu, make_bstodstaunu_dstokkpi_fakelepton, make_lbtolctaunu_lctopkpi_tautolnu
from .HbToHcTauNu_TauToLNuNu import make_b0todptaunu_dptokpipi_tautolnunu, make_b0todptaunu_dptokpipi_fakelepton, make_butod0taunu_d0tokpi_tautolnunu, make_butod0taunu_d0tokpi_fakelepton, make_bstodstaunu_dstokkpi_tautolnunu, make_bstodstaunu_dstokkpi_fakelepton, make_lbtolctaunu_lctopkpi_tautolnu, make_b0tod0taunu_d0tokpi_tautomununu, make_b0tod0taunu_d0tokpi_fakemuon
from .HbToHcLNu import make_butod0lnu_d0tokpi, make_butod0lnu_d0tokpi_fakelepton, make_b0todplnu_dptokpipi, make_b0todplnu_dptokpipi_fakelepton, make_bstodslnu_dstokkpi, make_bstodslnu_dstokkpi_fakelepton, make_lbtolclnu_lctopkpi
PROCESS = 'hlt2'
......@@ -359,3 +359,47 @@ def lbtolcenu_lctopkpi_line(name="Hlt2SLB_LbToLcENu_LcToPKPiLine", prescale=1):
line_alg = make_lbtolclnu_lctopkpi(process=PROCESS, lepton="e")
return HltLine(
name=name, prescale=prescale, algs=sl_line_prefilter() + [line_alg])
@register_line_builder(hlt2_lines)
def hlt2_b0tod0taunu_d0tokpi_tautomununu_line(
name="Hlt2SLB_B0ToD0TauNu_D0ToKPi_TauToMuNuNu_Line", prescale=1):
"""
SL Hlt2 line for the decay B0 -> D0(-> K pi) X tau(-> mu nu nu) nu.
"""
line_alg = make_b0tod0taunu_d0tokpi_tautomununu(
process=PROCESS, lepton="mu")
return HltLine(
name=name, prescale=prescale, algs=sl_line_prefilter() + [line_alg])
@register_line_builder(hlt2_lines)
def hlt2_b0tod0taunu_d0tokpi_fakemuon_line(
name="Hlt2SLB_B0ToD0TauNu_D0ToKPi_FakeMuon_Line", prescale=0.1):
"""
SL Hlt2 line for the decay B0 -> D0(-> K pi) X tau(-> mu nu nu) nu, with a fake muon.
"""
line_alg = make_b0tod0taunu_d0tokpi_fakemuon(
process=PROCESS, lepton="mu")
return HltLine(
name=name, prescale=prescale, algs=sl_line_prefilter() + [line_alg])
@register_line_builder(hlt2_lines)
def hlt2_b0tod0taunu_d0tokpi_tautomununu_line(
name="Hlt2SLB_B0ToD0TauNu_D0ToKPi_TauToENuNu_Line", prescale=1):
"""
SL Hlt2 line for the decay B0 -> D0(-> K pi) X tau(-> mu nu nu) nu.
"""
line_alg = make_b0tod0taunu_d0tokpi_tautomununu(
process=PROCESS, lepton="e")
return HltLine(
name=name, prescale=prescale, algs=sl_line_prefilter() + [line_alg])
@register_line_builder(hlt2_lines)
def hlt2_b0tod0taunu_d0tokpi_fakemuon_line(
name="Hlt2SLB_B0ToD0TauNu_D0ToKPi_FakeElectron_Line", prescale=0.1):
"""
SL Hlt2 line for the decay B0 -> D0(-> K pi) X tau(-> mu nu nu) nu, with a fake muon.
"""
line_alg = make_b0tod0taunu_d0tokpi_fakemuon(
process=PROCESS, lepton="e")
return HltLine(
name=name, prescale=prescale, algs=sl_line_prefilter() + [line_alg])
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment