diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/semileptonic/HbToHuTauNu_TauToLNuNu.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/semileptonic/HbToHuTauNu_TauToLNuNu.py deleted file mode 100644 index 12207af0ca21bc524bed0a41c4dce66ad2114b71..0000000000000000000000000000000000000000 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/semileptonic/HbToHuTauNu_TauToLNuNu.py +++ /dev/null @@ -1,190 +0,0 @@ -############################################################################### -# (c) Copyright 2021-2022 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. # -############################################################################### -import Functors as F -from GaudiKernel.SystemOfUnits import MeV, mm -from RecoConf.algorithms_thor import ParticleContainersMerger - -from .builders.b_builder import make_b2xulnu -from .builders.base_builder import ( - make_candidate, - make_fake_tauons_muonic_decay, - make_kaons_from_b, - make_tauons_muonic_decay, -) - - -def make_bstoktaunu_muonic(process): - """ - Selection for the decay Bs0 -> K tau(mu nu nu ) nu. - """ - assert process in ["hlt2", "spruce"], ( - "Line must be defined as Hlt2 or Sprucing line!" - ) - with make_candidate.bind(track_chisq_ndof_max=2.5, track_ghostprob_max=0.03): - kaons = make_kaons_from_b( - pid=F.require_all( - F.PID_K > 10, F.PID_K - F.PID_P > 5, F.PID_K - F.PID_MU > 10 - ), - p_min=12000 * MeV, - pt_min=1200 * MeV, - mipchi2_min=60.0, - ) - - taus = make_tauons_muonic_decay() - - comb_m_min = 1000 * MeV - comb_m_max = 5000 * MeV - mcorr_min = 2500 * MeV - mcorr_max = 6500 * MeV - vchi2pdof_max = 2.5 - bpvdira_min = 0.999 - bpvfdchi2_min = 180.0 - comb_doca_max = 0.07 * mm - - b_rs = make_b2xulnu( - particles=[kaons, taus], - descriptor="[B_s~0 -> K+ mu-]cc", - comb_m_min=comb_m_min, - comb_m_max=comb_m_max, - comb_doca_max=comb_doca_max, - bpvdira_min=bpvdira_min, - vchi2pdof_max=vchi2pdof_max, - bpvfdchi2_min=bpvfdchi2_min, - mcorr_min=mcorr_min, - mcorr_max=mcorr_max, - ) - - b_ws = make_b2xulnu( - particles=[kaons, taus], - descriptor="[B_s~0 -> K+ mu+]cc", - comb_m_min=comb_m_min, - comb_m_max=comb_m_max, - comb_doca_max=comb_doca_max, - bpvdira_min=bpvdira_min, - vchi2pdof_max=vchi2pdof_max, - bpvfdchi2_min=bpvfdchi2_min, - mcorr_min=mcorr_min, - mcorr_max=mcorr_max, - ) - - line_alg = ParticleContainersMerger([b_rs, b_ws]) - return line_alg - - -def make_bstoktaunu_muonic_fakemu(process): - """ - Selection for the decay Bs0 -> K tau(mu nu nu) nu, with a fake muon. - """ - assert process in ["hlt2", "spruce"], ( - "Line must be defined as Hlt2 or Sprucing line!" - ) - with make_candidate.bind(track_chisq_ndof_max=2.5, track_ghostprob_max=0.03): - kaons = make_kaons_from_b( - pid=F.require_all( - F.PID_K > 10, F.PID_K - F.PID_P > 5, F.PID_K - F.PID_MU > 10 - ), - p_min=12000 * MeV, - pt_min=1200 * MeV, - mipchi2_min=60.0, - ) - - taus_nopid = make_fake_tauons_muonic_decay() - - comb_m_min = 1000 * MeV - comb_m_max = 5000 * MeV - mcorr_min = 2500 * MeV - mcorr_max = 6500 * MeV - vchi2pdof_max = 2.5 - bpvdira_min = 0.999 - bpvfdchi2_min = 180.0 - comb_doca_max = 0.07 * mm - - b_rs = make_b2xulnu( - particles=[kaons, taus_nopid], - descriptor="[B_s~0 -> K+ mu-]cc", - comb_m_min=comb_m_min, - comb_m_max=comb_m_max, - comb_doca_max=comb_doca_max, - bpvdira_min=bpvdira_min, - vchi2pdof_max=vchi2pdof_max, - bpvfdchi2_min=bpvfdchi2_min, - mcorr_min=mcorr_min, - mcorr_max=mcorr_max, - ) - - b_ws = make_b2xulnu( - particles=[kaons, taus_nopid], - descriptor="[B_s~0 -> K+ mu+]cc", - comb_m_min=comb_m_min, - comb_m_max=comb_m_max, - comb_doca_max=comb_doca_max, - bpvdira_min=bpvdira_min, - vchi2pdof_max=vchi2pdof_max, - bpvfdchi2_min=bpvfdchi2_min, - mcorr_min=mcorr_min, - mcorr_max=mcorr_max, - ) - - line_alg = ParticleContainersMerger([b_rs, b_ws]) - return line_alg - - -def make_bstoktaunu_muonic_fakek(process): - """ - Selection for the decay Bs0 -> K tau(mu nu nu) , with a fake kaon. - """ - assert process in ["hlt2", "spruce"], ( - "Line must be defined as Hlt2 or Sprucing line!" - ) - with make_candidate.bind(track_chisq_ndof_max=2.5, track_ghostprob_max=0.03): - kaons_nopid = make_kaons_from_b( - pid=None, p_min=12000 * MeV, pt_min=1200 * MeV, mipchi2_min=60.0 - ) - - taus = make_tauons_muonic_decay() - - comb_m_min = 1000 * MeV - comb_m_max = 5000.0 * MeV - mcorr_min = 2500 * MeV - mcorr_max = 6500 * MeV - vchi2pdof_max = 2.5 - bpvdira_min = 0.999 - bpvfdchi2_min = 180.0 - comb_doca_max = 0.07 * mm - - b_rs = make_b2xulnu( - particles=[kaons_nopid, taus], - descriptor="[B_s~0 -> K+ mu-]cc", - comb_m_min=comb_m_min, - comb_m_max=comb_m_max, - comb_doca_max=comb_doca_max, - bpvdira_min=bpvdira_min, - vchi2pdof_max=vchi2pdof_max, - bpvfdchi2_min=bpvfdchi2_min, - mcorr_min=mcorr_min, - mcorr_max=mcorr_max, - ) - - b_ws = make_b2xulnu( - particles=[kaons_nopid, taus], - descriptor="[B_s~0 -> K+ mu+]cc", - comb_m_min=comb_m_min, - comb_m_max=comb_m_max, - comb_doca_max=comb_doca_max, - bpvdira_min=bpvdira_min, - vchi2pdof_max=vchi2pdof_max, - bpvfdchi2_min=bpvfdchi2_min, - mcorr_min=mcorr_min, - mcorr_max=mcorr_max, - ) - - line_alg = ParticleContainersMerger([b_rs, b_ws]) - return line_alg diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/semileptonic/builders/base_builder.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/semileptonic/builders/base_builder.py index c370a04ae91d80d7ff25c01791854513b21f1981..c7d3b361cade9959c4c1c6047c7ede1f14bd503f 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/semileptonic/builders/base_builder.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/semileptonic/builders/base_builder.py @@ -280,10 +280,10 @@ def make_muons_from_b( @configurable def make_muons_for_btomunu( - pid=(F.PID_MU > 3.0), p_min=6000 * MeV, pt_min=1500 * MeV, mipchi2_min=25 + pid=(F.PID_MU > 3.0), p_min=6000 * MeV, pt_min=500 * MeV, mipchi2_min=25 ): """ - Muons produced in the decay b -> Xu mu nu. + Muons produced in the decay b -> Xu mu nu and b -> Xu tau (-> mu nu nu) nu. """ return make_muons_from_b( p_min=p_min, pt_min=pt_min, mipchi2_min=mipchi2_min, pid=pid @@ -291,7 +291,7 @@ def make_muons_for_btomunu( @configurable -def make_fake_muons_for_btomunu(p_min=6000 * MeV, pt_min=1500 * MeV, mipchi2_min=25): +def make_fake_muons_for_btomunu(p_min=6000 * MeV, pt_min=500 * MeV, mipchi2_min=25): """ Same builder as above, but requiring InMuon, not requiring IsMuon and reverting the PIDmu requirement. """ @@ -303,10 +303,10 @@ def make_fake_muons_for_btomunu(p_min=6000 * MeV, pt_min=1500 * MeV, mipchi2_min @configurable def make_electrons_for_btoenu( - pid=(F.PID_E > 2.0), p_min=6000 * MeV, pt_min=1000 * MeV, mipchi2_min=25 + pid=(F.PID_E > 2.0), p_min=6000 * MeV, pt_min=500 * MeV, mipchi2_min=25 ): """ - Electrons produced in the decay b -> Xu e nu. + Electrons produced in the decay b -> Xu e nu and b -> Xu tau (-> e nu nu) nu. """ return make_electrons_from_b( p_min=p_min, pt_min=pt_min, mipchi2_min=mipchi2_min, pid=pid, require_in_calo=1 @@ -315,7 +315,7 @@ def make_electrons_for_btoenu( @configurable def make_fake_electrons_for_btoenu( - pid=(F.PID_E <= 2.0), p_min=6000 * MeV, pt_min=1000 * MeV, mipchi2_min=25 + pid=(F.PID_E <= 2.0), p_min=6000 * MeV, pt_min=500 * MeV, mipchi2_min=25 ): """ Same builder as above, but reverting the PIDe requirement. diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/semileptonic/hlt2_semileptonic.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/semileptonic/hlt2_semileptonic.py index 4224846a5f150e008d992c615ffe002e1f40db56..75b98c63244891020a101e05cb475be08cb0b9b8 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/semileptonic/hlt2_semileptonic.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/semileptonic/hlt2_semileptonic.py @@ -120,11 +120,6 @@ from .HbToHuLNu import ( make_lbtopmunu_ss_fakemu, make_lbtopmunu_ss_fakep, ) -from .HbToHuTauNu_TauToLNuNu import ( - make_bstoktaunu_muonic, - make_bstoktaunu_muonic_fakek, - make_bstoktaunu_muonic_fakemu, -) from .HbToHuTauNu_TauToPiPiPiNu import ( make_b0topitaunu_hadronic, make_bstoktaunu_hadronic, @@ -1915,7 +1910,7 @@ def hlt2_lbtopmunu_ss_fakemu_line( @register_line_builder(hlt2_lines) def hlt2_bstokmunu_line(name="Hlt2SLB_BsToKMuNu", prescale=1, persistreco=True): """ - SL Hlt2 line for the decay Bs0 -> K mu nu. + SL Hlt2 line for the decay Bs0 -> K mu nu and Bs0 -> K tau nu (tau -> mu nu nu). """ line_alg = make_bstokmunu(process=PROCESS) @@ -1936,7 +1931,7 @@ def hlt2_bstokmunu_line(name="Hlt2SLB_BsToKMuNu", prescale=1, persistreco=True): @register_line_builder(hlt2_lines) def hlt2_bstokmunu_ss_line(name="Hlt2SLB_BsToKMuNu_SS", prescale=0.1, persistreco=True): """ - SL Hlt2 line for the decay Bs0 -> K mu nu (same-sign). + SL Hlt2 line for the decay Bs0 -> K mu nu and Bs0 -> K tau nu (tau -> mu nu nu, same-sign). """ line_alg = make_bstokmunu_ss(process=PROCESS) @@ -1959,7 +1954,7 @@ def hlt2_bstokmunu_fakemu_line( name="Hlt2SLB_BsToKMuNu_FakeMu", prescale=0.001, persistreco=True ): """ - SL Hlt2 line for the decay Bs0 -> K mu nu, with a fake muon. + SL Hlt2 line for the decay Bs0 -> K mu nu and Bs0 -> K tau nu (tau -> mu nu nu), with a fake muon. """ line_alg = make_bstokmunu_fakemu(process=PROCESS) @@ -1982,7 +1977,7 @@ def hlt2_bstokmunu_ss_fakemu_line( name="Hlt2SLB_BsToKMuNu_SS_FakeMu", prescale=0.001, persistreco=True ): """ - SL Hlt2 line for the decay Bs0 -> K mu nu, with a fake muon (same-sign). + SL Hlt2 line for the decay Bs0 -> K mu nu and Bs0 -> K tau nu (tau -> mu nu nu), with a fake muon (same-sign). """ line_alg = make_bstokmunu_ss_fakemu(process=PROCESS) @@ -2005,7 +2000,7 @@ def hlt2_bstokmunu_fakek_line( name="Hlt2SLB_BsToKMuNu_NoPIDK", prescale=0.02, persistreco=True ): """ - SL Hlt2 line for the decay Bs0 -> K mu, with a fake kaon. + SL Hlt2 line for the decay Bs0 -> K mu nu and Bs0 -> K tau nu (tau -> mu nu nu), with a fake kaon. """ line_alg = make_bstokmunu_fakek(process=PROCESS) @@ -2028,7 +2023,7 @@ def hlt2_bstokmunu_ss_fakek_line( name="Hlt2SLB_BsToKMuNu_SS_NoPIDK", prescale=0.02, persistreco=True ): """ - SL Hlt2 line for the decay Bs0 -> K mu, with a fake kaon (same-sign). + SL Hlt2 line for the decay Bs0 -> K mu nu and Bs0 -> K tau nu (tau -> mu nu nu), with a fake kaon (same-sign). """ line_alg = make_bstokmunu_ss_fakek(process=PROCESS) @@ -2051,7 +2046,7 @@ def hlt2_bstokmunu_fakek_fakemu_line( name="Hlt2SLB_BsToKMuNu_NoPIDK_FakeMu", prescale=0.001, persistreco=True ): """ - SL Hlt2 line for the decay Bs0 -> K mu, with a fake kaon and a fake muon. + SL Hlt2 line for the decay Bs0 -> K mu nu and Bs0 -> K tau nu (tau -> mu nu nu), with a fake kaon and a fake muon. """ line_alg = make_bstokmunu_fakek_fakemu(process=PROCESS) @@ -2072,7 +2067,7 @@ def hlt2_bstokmunu_fakek_fakemu_line( @register_line_builder(hlt2_lines) def hlt2_bstokenu_line(name="Hlt2SLB_BsToKENu", prescale=1, persistreco=True): """ - SL Hlt2 line for the decay Bs0 -> K e nu. + SL Hlt2 line for the decay Bs0 -> K e nu and Bs0 -> K tau nu (tau -> e nu nu). """ line_alg = make_bstokenu(process=PROCESS) @@ -2093,7 +2088,7 @@ def hlt2_bstokenu_line(name="Hlt2SLB_BsToKENu", prescale=1, persistreco=True): @register_line_builder(hlt2_lines) def hlt2_bstokenu_ss_line(name="Hlt2SLB_BsToKENu_SS", prescale=0.1, persistreco=True): """ - SL Hlt2 line for the decay Bs0 -> K e nu (same-sign). + SL Hlt2 line for the decay Bs0 -> K e nu and Bs0 -> K tau nu (tau -> e nu nu, same-sign). """ line_alg = make_bstokenu_ss(process=PROCESS) @@ -2116,7 +2111,7 @@ def hlt2_bstokenu_fakeelectron_line( name="Hlt2SLB_BsToKENu_FakeElectron", prescale=0.02, persistreco=True ): """ - SL Hlt2 line for the decay Bs0 -> K e nu, with a fake electron. + SL Hlt2 line for the decay Bs0 -> K e nu and Bs0 -> K tau nu (tau -> e nu nu), with a fake electron. """ line_alg = make_bstokenu_fakeelectron(process=PROCESS) @@ -2139,7 +2134,7 @@ def hlt2_bstokenu_ss_fakeelectron_line( name="Hlt2SLB_BsToKENu_SS_FakeElectron", prescale=0.02, persistreco=True ): """ - SL Hlt2 line for the decay Bs0 -> K e nu, with a fake electron (same-sign). + SL Hlt2 line for the decay Bs0 -> K e nu and Bs0 -> K tau nu (tau -> e nu nu), with a fake electron (same-sign). """ line_alg = make_bstokenu_ss_fakeelectron(process=PROCESS) @@ -2162,7 +2157,7 @@ def hlt2_bstokenu_fakek_line( name="Hlt2SLB_BsToKENu_NoPIDK", prescale=0.02, persistreco=True ): """ - SL Hlt2 line for the decay Bs0 -> K e, with a fake kaon. + SL Hlt2 line for the decay Bs0 -> K e nu and Bs0 -> K tau nu (tau -> e nu nu), with a fake kaon. """ line_alg = make_bstokenu_fakek(process=PROCESS) @@ -2185,7 +2180,7 @@ def hlt2_bstokenu_ss_fakek_line( name="Hlt2SLB_BsToKENu_SS_NoPIDK", prescale=0.02, persistreco=True ): """ - SL Hlt2 line for the decay Bs0 -> K e, with a fake kaon (same-sign). + SL Hlt2 line for the decay Bs0 -> K e nu and Bs0 -> K tau nu (tau -> e nu nu), with a fake kaon (same-sign). """ line_alg = make_bstokenu_ss_fakek(process=PROCESS) @@ -2208,7 +2203,7 @@ def hlt2_bstokenu_fakek_fakeelectron_line( name="Hlt2SLB_BsToKENu_NoPIDK_FakeElectron", prescale=0.02, persistreco=True ): """ - SL Hlt2 line for the decay Bs0 -> K e, with a fake kaon and a fake electron. + SL Hlt2 line for the decay Bs0 -> K e nu and Bs0 -> K tau nu (tau -> e nu nu), with a fake kaon and a fake electron. """ line_alg = make_bstokenu_fakek_fakeelectron(process=PROCESS) @@ -2249,75 +2244,6 @@ def hlt2_bstoktaunu_hadronic_line( ) -@register_line_builder(hlt2_lines) -def hlt2_bstoktaunu_muonic_line( - name="Hlt2SLB_BsToKTauNu_TauToMuNuNu", prescale=1, persistreco=True -): - """ - SL Hlt2 line for the decay Bs0 -> K tau(mu nu nu ) nu. - """ - line_alg = make_bstoktaunu_muonic(process=PROCESS) - - line_mon = generate_default_monitoring_vars( - name, line_alg, charged=False, charmed=False - ) - - return Hlt2Line( - name=name, - prescale=prescale, - persistreco=persistreco, - hlt1_filter_code=sl_hlt1_default_muon_filter(), - algs=sl_line_prefilter() + [line_alg] + line_mon, - monitoring_variables=_MONITORING_VARIABLES, - ) - - -@register_line_builder(hlt2_lines) -def hlt2_bstoktaunu_muonic_fakemu_line( - name="Hlt2SLB_BsToKTauNu_TauToMuNuNu_NoPIDMu", prescale=0.02, persistreco=True -): - """ - SL Hlt2 line for the decay Bs0 -> K tau(mu nu nu) nu, with a fake muon. - """ - line_alg = make_bstoktaunu_muonic_fakemu(process=PROCESS) - - line_mon = generate_default_monitoring_vars( - name, line_alg, charged=False, charmed=False - ) - - return Hlt2Line( - name=name, - prescale=prescale, - persistreco=persistreco, - hlt1_filter_code=sl_hlt1_default_hadron_filter(), - algs=sl_line_prefilter() + [line_alg] + line_mon, - monitoring_variables=_MONITORING_VARIABLES, - ) - - -@register_line_builder(hlt2_lines) -def hlt2_bstoktaunu_muonic_fakek_line( - name="Hlt2SLB_BsToKTauNu_TauToMuNuNu_NoPIDK", prescale=0.02, persistreco=True -): - """ - SL Hlt2 line for the decay Bs0 -> K tau(mu nu nu) , with a fake kaon. - """ - line_alg = make_bstoktaunu_muonic_fakek(process=PROCESS) - - line_mon = generate_default_monitoring_vars( - name, line_alg, charged=False, charmed=False - ) - - return Hlt2Line( - name=name, - prescale=prescale, - persistreco=persistreco, - hlt1_filter_code=sl_hlt1_default_muon_filter(), - algs=sl_line_prefilter() + [line_alg] + line_mon, - monitoring_variables=_MONITORING_VARIABLES, - ) - - @register_line_builder(hlt2_lines) def hlt2_b2ppbarmunu_line(name="Hlt2SLB_BuToPPbarMuNu", prescale=1, persistreco=True): """