diff --git a/CODEOWNERS b/CODEOWNERS index 11cf75cafd6d9b64baa24eea2c86f5c4386a7411..0e4332dfbad53c14bc1e5de42806938bb2060d46 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -132,8 +132,8 @@ /Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/ @elsmith @mrama @cagapopo @tfulghes @fevolle @htilquin /Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/b2ll_builders.py @tmombach /Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/B2ll_lines.py @tmombach -/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/b_to_xtaul_rd_builder.py @tfulghes -/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xtaul_hlt2.py @tfulghes +/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/b_to_xtaul_rd_builder.py @tfulghes @yaz +/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xtaul_hlt2.py @tfulghes /Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xtaul_spruce.py @tfulghes /Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/rare_tau_decay_lines.py @maik /Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/rare_tau_decay_builders.py @maik @@ -144,6 +144,7 @@ /Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/bnv_builders.py @fdevelli /Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/bnv_lines_hlt2.py @fdevelli /Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/lfv_lines_hlt2.py @fdevelli +/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_tautau_hlt2.py @tfulghes @yaz # QEE /Hlt/Hlt2Conf/python/Hlt2Conf/lines/qee/ @wbarter @ncooke @jideng @rjhunter @olupton @yqiu @cvazquez @hyin @dzuliani diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/__init__.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/__init__.py index 6c0bba66c4b1774a2cd3a3679e774348d25eb049..ad2cf0570d045633a35b588022a1bee00c85ca2f 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/__init__.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/__init__.py @@ -41,6 +41,7 @@ from . import omega_rare_decay_lines from . import baryonic_radiative from . import bnv_lines_hlt2 from . import lfv_lines_hlt2 +from . import b_to_tautau_hlt2 # provide "all_lines" for correct registration by the overall HLT2 lines module all_lines = {} @@ -69,10 +70,11 @@ all_lines.update(omega_rare_decay_lines.all_lines) all_lines.update(baryonic_radiative.all_lines) all_lines.update(bnv_lines_hlt2.all_lines) all_lines.update(lfv_lines_hlt2.all_lines) +all_lines.update(b_to_tautau_hlt2.hlt2_lines) sprucing_lines = {} -sprucing_lines.update(b_to_xtaul_spruce.sprucing_lines) sprucing_lines.update(b_to_ll_spruce.sprucing_lines) sprucing_lines.update(b_to_multilepton_spruce.sprucing_lines) sprucing_lines.update(b_to_xll_spruce.sprucing_lines) sprucing_lines.update(b_to_xgamma_exclusive_spruce.sprucing_lines) +sprucing_lines.update(b_to_xtaul_spruce.sprucing_lines) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_tautau_hlt2.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_tautau_hlt2.py new file mode 100644 index 0000000000000000000000000000000000000000..3c6aff7da4b9939eee89c568639e7047b4c104c2 --- /dev/null +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_tautau_hlt2.py @@ -0,0 +1,70 @@ +############################################################################### +# (c) Copyright 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. # +############################################################################### +''' +Author: Ya Zhao, Tommaso Fulghesu +Contact: ya.zhao@cern.ch, tommaso.fulghesu@cern.ch +Date: 01/04/2022 +''' +####################################################################################### +#### #### +#### Hlt2 lines for selecting OS and SS events of B0 and B_s0 decaying into a pair #### +#### of taus, each one decays hadronically into three pions #### +#### #### +####################################################################################### + +from Moore.config import register_line_builder +from Moore.lines import Hlt2Line +from PyConf import configurable +from Hlt2Conf.lines.rd.builders import b_to_xtaul_rd_builder as builder +from Hlt2Conf.lines.rd.builders.rd_prefilters import rd_prefilter, _RD_MONITORING_VARIABLES +from GaudiKernel.SystemOfUnits import GeV + +hlt2_lines = {} + + +@register_line_builder(hlt2_lines) +@configurable +def Hlt2RD_BdToTauTau_OS_Line(name="Hlt2RD_BdToTauTau_TauTo3Pi_OS", + prescale=1, + persistreco=True): + """ + Register B -> tautau (B0 and B_s0) line + """ + ditaus = builder.filter_BToTauTau( + ditaus=builder.make_dilepton_from_tauls( + parent_id="B_s0", daughter_id="tau+", tau_pt_min=1 * GeV)) + + return Hlt2Line( + name=name, + algs=rd_prefilter() + [ditaus], + persistreco=persistreco, + prescale=prescale, + monitoring_variables=_RD_MONITORING_VARIABLES) + + +@register_line_builder(hlt2_lines) +@configurable +def Hlt2RD_BdToTauTau_SS_Line(name="Hlt2RD_BdToTauTau_TauTo3Pi_SS", + prescale=1, + persistreco=True): + """ + Register B -> tautau (B0 and B_s0) line + """ + ditaus = builder.filter_BToTauTau( + ditaus=builder.make_dilepton_from_tauls( + parent_id="B_s0", daughter_id="tau-", tau_pt_min=1 * GeV)) + + return Hlt2Line( + name=name, + algs=rd_prefilter() + [ditaus], + persistreco=persistreco, + prescale=prescale, + monitoring_variables=_RD_MONITORING_VARIABLES) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xtaul_hlt2.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xtaul_hlt2.py index dfa6f8ea60c0c2319fd5e798f37a33e4629f8ebc..7ab9aa033544b3910a06bc50ae686960a90f7c0f 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xtaul_hlt2.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xtaul_hlt2.py @@ -58,10 +58,6 @@ from Hlt2Conf.lines.rd.builders.rd_prefilters import rd_prefilter, _RD_MONITORIN import Functors as F hlt2_lines = {} -PROCESS = "hlt2" -""" -Set persistreco=True to save the full event reconstruction for sprucing a given HLT2 line -""" ## B0 -> K* tau l @@ -73,7 +69,7 @@ def Hlt2_Bd2KstTauTau_OS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (K*->K+ pi-) (tau+->pi+pi+pi-) (tau-->pi-pi-pi+) + CC - + and for Bd -> (K*->K+ pi-) (tau-->pi-pi-pi+) (tau+->pi+pi+pi-) + CC """ kst = common_builder.make_rd_detached_kstar0s( @@ -111,7 +107,7 @@ def Hlt2_Bd2KstTauTau_SS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (K*->K+ pi-) (tau+->pi+pi+pi-) (tau+->pi-pi-pi+) + CC - + and for Bd -> (K*->K+ pi-) (tau-->pi-pi-pi+) (tau-->pi-pi-pi+) + CC """ kst = common_builder.make_rd_detached_kstar0s( @@ -149,7 +145,7 @@ def Hlt2_Bd2KstTauMu_OS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (K*->K+ pi-) (tau+->pi+pi+pi-) mu- + CC - + and for Bd -> (K*->K+ pi-) (tau-->pi-pi-pi+) mu+ + CC """ kst = common_builder.make_rd_detached_kstar0s( @@ -187,7 +183,7 @@ def Hlt2_Bd2KstTauMu_SS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (K*->K+ pi-) (tau+->pi+pi+pi-) mu+ + CC - + and for Bd -> (K*->K+ pi-) (tau-->pi-pi-pi+) mu- + CC """ kst = common_builder.make_rd_detached_kstar0s( @@ -225,7 +221,7 @@ def Hlt2_Bd2KstTauE_OS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (K*->K+ pi-) (tau+->pi+pi+pi-) e- + CC - + and for Bd -> (K*->K+ pi-) (tau-->pi-pi-pi+) e+ + CC """ kst = common_builder.make_rd_detached_kstar0s( @@ -263,7 +259,7 @@ def Hlt2_Bd2KstTauE_SS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (K*->K+ pi-) (tau+->pi+pi+pi-) e+ + CC - + and for Bd -> (K*->K+ pi-) (tau-->pi-pi-pi+) e- + CC """ kst = common_builder.make_rd_detached_kstar0s( @@ -302,7 +298,7 @@ def Hlt2_Bd2PhiTauTau_OS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (phi->K+ K-) (tau+->pi+pi+pi-) (tau-->pi-pi-pi+) + CC - + and for Bd -> (phi->K+ K-) (tau-->pi-pi-pi+) (tau+->pi+pi+pi-) + CC """ phi = builder.filter_rd_detached_phis() @@ -327,7 +323,7 @@ def Hlt2_Bd2PhiTauTau_SS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (phi->K+ K-) (tau+->pi+pi+pi-) (tau+->pi+pi+pi-) + CC - + and for Bd -> (phi->K+ K-) (tau-->pi-pi-pi+) (tau-->pi-pi-pi+) + CC """ phi = builder.filter_rd_detached_phis() @@ -352,7 +348,7 @@ def Hlt2_Bd2PhiTauMu_OS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (phi->K+ K-) (tau+->pi+pi+pi-) mu- + CC - + and for Bd -> (phi->K+ K-) (tau-->pi-pi-pi+) mu+ + CC """ phi = builder.filter_rd_detached_phis() @@ -377,7 +373,7 @@ def Hlt2_Bd2PhiTauMu_SS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (phi->K+ K-) (tau+->pi+pi+pi-) mu+ + CC - + and for Bd -> (phi->K+ K-) (tau-->pi-pi-pi+) mu- + CC """ phi = builder.filter_rd_detached_phis() @@ -402,7 +398,7 @@ def Hlt2_Bd2PhiTauE_OS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (phi->K+ K-) (tau+->pi+pi+pi-) e- + CC - + and for Bd -> (phi->K+ K-) (tau-->pi-pi-pi+) e+ + CC """ phi = builder.filter_rd_detached_phis() @@ -427,7 +423,7 @@ def Hlt2_Bd2PhiTauE_SS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (phi->K+ K-) (tau+->pi+pi+pi-) e+ + CC - + and for Bd -> (phi->K+ K-) (tau-->pi-pi-pi+) e- + CC """ phi = builder.filter_rd_detached_phis() @@ -448,12 +444,12 @@ def Hlt2_Bd2PhiTauE_SS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable def Hlt2_Bd2RhoTauTau_OS_ExclusiveLine( - name='Hlt2RD_BdToRhoTauTau_Rho2PiPi_TauTo3Pi_OS', + name='Hlt2RD_BdToRhoTauTau_RhoToPiPi_TauTo3Pi_OS', prescale=1, persistreco=True): """ HLT2 line for Bd -> (rho->pi+ pi-) (tau+->pi+pi+pi-) (tau-->pi-pi-pi+) + CC - + and for Bd -> (rho->pi+ pi-) (tau-->pi-pi-pi+) (tau+->pi+pi+pi-) + CC """ rho = builder.make_rd_detached_rhos() @@ -473,12 +469,12 @@ def Hlt2_Bd2RhoTauTau_OS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable def Hlt2_Bd2RhoTauTau_SS_ExclusiveLine( - name='Hlt2RD_BdToRhoTauTau_Rho2PiPi_TauTo3Pi_SS', + name='Hlt2RD_BdToRhoTauTau_RhoToPiPi_TauTo3Pi_SS', prescale=1, persistreco=True): """ HLT2 line for Bd -> (rho->pi+ pi-) (tau+->pi+pi+pi-) (tau+->pi+pi+pi-) + CC - + and for Bd -> (rho->pi+ pi-) (tau-->pi-pi-pi+) (tau-->pi-pi-pi+) + CC """ rho = builder.make_rd_detached_rhos() @@ -498,12 +494,12 @@ def Hlt2_Bd2RhoTauTau_SS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable def Hlt2_Bd2RhoTauMu_OS_ExclusiveLine( - name='Hlt2RD_BdToRhoTauMu_Rho2PiPi_TauTo3Pi_OS', + name='Hlt2RD_BdToRhoTauMu_RhoToPiPi_TauTo3Pi_OS', prescale=1, persistreco=True): """ HLT2 line for Bd -> (rho->pi+ pi-) (tau+->pi+pi+pi-) mu- + CC - + and for Bd -> (rho->pi+ pi-) (tau-->pi-pi-pi+) mu+ + CC """ rho = builder.make_rd_detached_rhos() @@ -523,12 +519,12 @@ def Hlt2_Bd2RhoTauMu_OS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable def Hlt2_Bd2RhoTauMu_SS_ExclusiveLine( - name='Hlt2RD_BdToRhoTauMu_Rho2PiPi_TauTo3Pi_SS', + name='Hlt2RD_BdToRhoTauMu_RhoToPiPi_TauTo3Pi_SS', prescale=1, persistreco=True): """ HLT2 line for Bd -> (rho->pi+ pi-) (tau+->pi+pi+pi-) mu+ + CC - + and for Bd -> (rho->pi+ pi-) (tau-->pi-pi-pi+) mu- + CC """ rho = builder.make_rd_detached_rhos() @@ -548,12 +544,12 @@ def Hlt2_Bd2RhoTauMu_SS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable def Hlt2_Bd2RhoTauE_OS_ExclusiveLine( - name='Hlt2RD_BdToRhoTauE_Rho2PiPi_TauTo3Pi_OS', + name='Hlt2RD_BdToRhoTauE_RhoToPiPi_TauTo3Pi_OS', prescale=1, persistreco=True): """ HLT2 line for Bd -> (rho->pi+ pi-) (tau+->pi+pi+pi-) e- + CC - + and for Bd -> (rho->pi+ pi-) (tau-->pi-pi-pi+) e+ + CC """ rho = builder.make_rd_detached_rhos() @@ -573,12 +569,12 @@ def Hlt2_Bd2RhoTauE_OS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable def Hlt2_Bd2RhoTauE_SS_ExclusiveLine( - name='Hlt2RD_BdToRhoTauE_Rho2PiPi_TauTo3Pi_SS', + name='Hlt2RD_BdToRhoTauE_RhoToPiPi_TauTo3Pi_SS', prescale=1, persistreco=True): """ HLT2 line for Bd -> (rho->pi+ pi-) (tau+->pi+pi+pi-) e+ + CC - + and for Bd -> (rho->pi+ pi-) (tau-->pi-pi-pi+) e- + CC """ rho = builder.make_rd_detached_rhos() @@ -604,7 +600,7 @@ def Hlt2_Bd2EtapTauTau_OS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (eta'->pi+ pi- gamma) (tau+->pi+pi+pi-) (tau-->pi-pi-pi+) + CC - + and for Bd -> (eta'->pi+ pi- gamma) (tau-->pi-pi-pi+) (tau+->pi+pi+pi-)+ CC """ etap = builder.make_rd_detached_etaps() @@ -629,7 +625,7 @@ def Hlt2_Bd2EtapTauTau_SS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (eta'->pi+ pi- gamma) (tau+->pi+pi+pi-) (tau+->pi+pi+pi-) + CC - + and for Bd -> (eta'->pi+ pi- gamma) (tau-->pi-pi-pi+) (tau-->pi-pi-pi+) + CC """ etap = builder.make_rd_detached_etaps() @@ -654,7 +650,7 @@ def Hlt2_Bd2EtapTauMu_OS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (eta'->pi+ pi- gamma) (tau+->pi+pi+pi-) mu- + CC - + and for Bd -> (eta'->pi+ pi- gamma) (tau-->pi-pi-pi+) mu+ + CC """ etap = builder.make_rd_detached_etaps() @@ -679,7 +675,7 @@ def Hlt2_Bd2EtapTauMu_SS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (eta'->pi+ pi- gamma) (tau+->pi+pi+pi-) mu+ + CC - + and for Bd -> (eta'->pi+ pi- gamma) (tau-->pi-pi-pi+) mu- + CC """ etap = builder.make_rd_detached_etaps() @@ -704,7 +700,7 @@ def Hlt2_Bd2EtapTauE_OS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (eta'->pi+ pi- gamma) (tau+->pi+pi+pi-) e- + CC - + and for Bd -> (eta'->pi+ pi- gamma) (tau-->pi-pi-pi+) e+ + CC """ etap = builder.make_rd_detached_etaps() @@ -729,7 +725,7 @@ def Hlt2_Bd2EtapTauE_SS_ExclusiveLine( persistreco=True): """ HLT2 line for Bd -> (eta'->pi+ pi- gamma) (tau+->pi+pi+pi-) e+ + CC - + and for Bd -> (eta'->pi+ pi- gamma) (tau-->pi-pi-pi+) e- + CC """ etap = builder.make_rd_detached_etaps() @@ -754,9 +750,9 @@ def Hlt2_Bd2KsTauTau_LL_OS_ExclusiveLine( prescale=1, persistreco=True): """ - HLT2 line for Bd -> (Kshort->pi+ pi-) (tau+->pi+pi+pi-) (tau-->pi-pi-pi+) + CC + HLT2 line for Bd -> (KS0->pi+ pi-) (tau+->pi+pi+pi-) (tau-->pi-pi-pi+) + CC - and for Bd -> (Kshort->pi+ pi-) (tau-->pi-pi-pi+) (tau+->pi+pi+pi-)+ CC + and for Bd -> (KS0->pi+ pi-) (tau-->pi-pi-pi+) (tau+->pi+pi+pi-)+ CC """ ks = common_builder.make_rd_ks0_lls(adocachi2cut=25., vchi2pdof_max=20.) dilepton = builder.make_dilepton_from_tauls(daughter_id="tau+") @@ -779,9 +775,9 @@ def Hlt2_Bd2KsTauTau_LL_SS_ExclusiveLine( prescale=1, persistreco=True): """ - HLT2 line for Bd -> (Kshort->pi+ pi-) (tau+->pi+pi+pi-) (tau+->pi+pi+pi-) + CC + HLT2 line for Bd -> (KS0->pi+ pi-) (tau+->pi+pi+pi-) (tau+->pi+pi+pi-) + CC - and for Bd -> (Kshort->pi+ pi-) (tau-->pi-pi-pi+) (tau-->pi-pi-pi+) + CC + and for Bd -> (KS0->pi+ pi-) (tau-->pi-pi-pi+) (tau-->pi-pi-pi+) + CC """ ks = common_builder.make_rd_ks0_lls(adocachi2cut=25., vchi2pdof_max=20.) dilepton = builder.make_dilepton_from_tauls(daughter_id="tau-") @@ -804,9 +800,9 @@ def Hlt2_Bd2KsTauMu_LL_OS_ExclusiveLine( prescale=1, persistreco=True): """ - HLT2 line for Bd -> (Kshort->pi+ pi-) (tau+->pi+pi+pi-) mu- + CC + HLT2 line for Bd -> (KS0->pi+ pi-) (tau+->pi+pi+pi-) mu- + CC - and for Bd -> (Kshort->pi+ pi-) (tau-->pi-pi-pi+) mu+ + CC + and for Bd -> (KS0->pi+ pi-) (tau-->pi-pi-pi+) mu+ + CC """ ks = common_builder.make_rd_ks0_lls(adocachi2cut=25., vchi2pdof_max=20.) dilepton = builder.make_dilepton_from_tauls(daughter_id="mu+") @@ -829,9 +825,9 @@ def Hlt2_Bd2KsTauMu_LL_SS_ExclusiveLine( prescale=1, persistreco=True): """ - HLT2 line for Bd -> (Kshort->pi+ pi-) (tau+->pi+pi+pi-) mu+ + CC + HLT2 line for Bd -> (KS0->pi+ pi-) (tau+->pi+pi+pi-) mu+ + CC - and for Bd -> (Kshort->pi+ pi-) (tau-->pi-pi-pi+) mu- + CC + and for Bd -> (KS0->pi+ pi-) (tau-->pi-pi-pi+) mu- + CC """ ks = common_builder.make_rd_ks0_lls(adocachi2cut=25., vchi2pdof_max=20.) dilepton = builder.make_dilepton_from_tauls(daughter_id="mu-") @@ -854,9 +850,9 @@ def Hlt2_Bd2KsTauE_LL_OS_ExclusiveLine( prescale=1, persistreco=True): """ - HLT2 line for Bd -> (Kshort->pi+ pi-) (tau+->pi+pi+pi-) e- + CC + HLT2 line for Bd -> (KS0->pi+ pi-) (tau+->pi+pi+pi-) e- + CC - and for Bd -> (Kshort->pi+ pi-) (tau-->pi-pi-pi+) e+ + CC + and for Bd -> (KS0->pi+ pi-) (tau-->pi-pi-pi+) e+ + CC """ ks = common_builder.make_rd_ks0_lls(adocachi2cut=25., vchi2pdof_max=20.) dilepton = builder.make_dilepton_from_tauls(daughter_id="e+") @@ -879,9 +875,9 @@ def Hlt2_Bd2KsTauE_LL_SS_ExclusiveLine( prescale=1, persistreco=True): """ - HLT2 line for Bd -> (Kshort->pi+ pi-) (tau+->pi+pi+pi-) e+ + CC + HLT2 line for Bd -> (KS0->pi+ pi-) (tau+->pi+pi+pi-) e+ + CC - and for Bd -> (Kshort->pi+ pi-) (tau-->pi-pi-pi+) e- + CC + and for Bd -> (KS0->pi+ pi-) (tau-->pi-pi-pi+) e- + CC """ ks = common_builder.make_rd_ks0_lls(adocachi2cut=25., vchi2pdof_max=20.) dilepton = builder.make_dilepton_from_tauls(daughter_id="e-") @@ -904,7 +900,7 @@ def Hlt2_Bu2KplusTauTau_OS_ExclusiveLine( name='Hlt2RD_BuToKplTauTau_TauTo3Pi_OS', prescale=1, persistreco=True): """ HLT2 line for B+ -> K+ (tau+->pi+pi+pi-) (tau-->pi-pi-pi+) + CC - + and for B+ -> K+ (tau-->pi-pi-pi+) (tau+->pi+pi+pi-) + CC """ kaon = common_builder.make_rd_has_rich_detached_kaons( @@ -928,7 +924,7 @@ def Hlt2_Bu2KplusTauTau_SS_ExclusiveLine( name='Hlt2RD_BuToKplTauTau_TauTo3Pi_SS', prescale=1, persistreco=True): """ HLT2 line for B+ -> K+ (tau+->pi+pi+pi-) (tau+->pi+pi+pi-) + CC - + and for B+ -> K+ (tau-->pi-pi-pi+) (tau-->pi-pi-pi+) + CC """ kaon = common_builder.make_rd_has_rich_detached_kaons( @@ -953,7 +949,7 @@ def Hlt2_Bu2KplusTauMu_OS_ExclusiveLine(name='Hlt2RD_BuToKplTauMu_TauTo3Pi_OS', persistreco=True): """ HLT2 line for B+ -> K+ (tau+->pi+pi+pi-) mu- + CC - + and for B+ -> K+ (tau-->pi-pi-pi+) mu+ + CC """ kaon = common_builder.make_rd_has_rich_detached_kaons( @@ -978,7 +974,7 @@ def Hlt2_Bu2KplusTauMu_SS_ExclusiveLine(name='Hlt2RD_BuToKplTauMu_TauTo3Pi_SS', persistreco=True): """ HLT2 line for B+ -> K+ (tau+->pi+pi+pi-) mu+ + CC - + and for B+ -> K+ (tau-->pi-pi-pi+) mu- + CC """ kaon = common_builder.make_rd_has_rich_detached_kaons( @@ -1003,7 +999,7 @@ def Hlt2_Bu2KplusTauE_OS_ExclusiveLine(name='Hlt2RD_BuToKplTauE_TauTo3Pi_OS', persistreco=True): """ HLT2 line for B+ -> K+ (tau+->pi+pi+pi-) e- + CC - + and for B+ -> K+ (tau-->pi-pi-pi+) e+ + CC """ kaon = common_builder.make_rd_has_rich_detached_kaons( @@ -1028,7 +1024,7 @@ def Hlt2_Bu2KplusTauE_SS_ExclusiveLine(name='Hlt2RD_BuToKplTauE_TauTo3Pi_SS', persistreco=True): """ HLT2 line for B+ -> K+ (tau+->pi+pi+pi-) e+ + CC - + and for B+ -> K+ (tau-->pi-pi-pi+) e- + CC """ kaon = common_builder.make_rd_has_rich_detached_kaons( @@ -1055,7 +1051,7 @@ def Hlt2_Bu2K1plusTauTau_OS_ExclusiveLine( persistreco=True): """ HLT2 line for B+ -> (K1+->pi+pi+pi-) (tau+->pi+pi+pi-) (tau-->pi-pi-pi+) + CC - + and for B+ -> (K1+->pi+pi+pi-) (tau-->pi-pi-pi+) (tau+->pi+pi+pi-) + CC """ k1 = builder.make_rd_detached_k1s() @@ -1080,7 +1076,7 @@ def Hlt2_Bu2K1plusTauTau_SS_ExclusiveLine( persistreco=True): """ HLT2 line for B+ -> (K1+->pi+pi+pi-) (tau+->pi+pi+pi-) (tau+->pi+pi+pi-) + CC - + and for B+ -> (K1+->pi+pi+pi-) (tau-->pi-pi-pi+) (tau-->pi-pi-pi+) + CC """ k1 = builder.make_rd_detached_k1s() @@ -1105,7 +1101,7 @@ def Hlt2_Bu2K1plusTauMu_OS_ExclusiveLine( persistreco=True): """ HLT2 line for B+ -> (K1+->pi+pi+pi-) (tau+->pi+pi+pi-) mu- + CC - + and for B+ -> (K1+->pi+pi+pi-) (tau-->pi-pi-pi+) mu+ + CC """ k1 = builder.make_rd_detached_k1s() @@ -1130,7 +1126,7 @@ def Hlt2_Bu2K1plusTauMu_SS_ExclusiveLine( persistreco=True): """ HLT2 line for B+ -> (K1+->pi+pi+pi-) (tau+->pi+pi+pi-) mu+ + CC - + and for B+ -> (K1+->pi+pi+pi-) (tau-->pi-pi-pi+) mu- + CC """ k1 = builder.make_rd_detached_k1s() @@ -1155,7 +1151,7 @@ def Hlt2_Bu2K1plusTauE_OS_ExclusiveLine( persistreco=True): """ HLT2 line for B+ -> (K1+->pi+pi+pi-) (tau+->pi+pi+pi-) e- + CC - + and for B+ -> (K1+->pi+pi+pi-) (tau-->pi-pi-pi+) e+ + CC """ k1 = builder.make_rd_detached_k1s() @@ -1180,7 +1176,7 @@ def Hlt2_Bu2K1plusTauE_SS_ExclusiveLine( persistreco=True): """ HLT2 line for B+ -> (K1+->pi+pi+pi-) (tau+->pi+pi+pi-) e+ + CC - + and for B+ -> (K1+->pi+pi+pi-) (tau-->pi-pi-pi+) e- + CC """ k1 = builder.make_rd_detached_k1s() @@ -1502,11 +1498,11 @@ def Hlt2_Bs2EtapTauE_SS_ExclusiveLine( ## Lb -> K p tau l @register_line_builder(hlt2_lines) @configurable -def Hlt2_Lambdab2KpTauTau_OS_ExclusiveLine( - name='Hlt2RD_LbToKpTauTau_TauTo3Pi_OS', prescale=1, persistreco=True): +def Hlt2_Lambdab2PKTauTau_OS_ExclusiveLine( + name='Hlt2RD_LbToPKTauTau_TauTo3Pi_OS', prescale=1, persistreco=True): """ HLT2 line for Lb -> p K- (tau+->pi+pi+pi-) (tau-->pi-pi-pi+) + CC - + and for Lb -> p K- (tau-->pi-pi-pi+) (tau+->pi+pi+pi-) + CC """ lst = builder.make_dihadron_from_pK() @@ -1525,11 +1521,11 @@ def Hlt2_Lambdab2KpTauTau_OS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable -def Hlt2_Lambdab2KpTauTau_SS_ExclusiveLine( - name='Hlt2RD_LbToKpTauTau_TauTo3Pi_SS', prescale=1, persistreco=True): +def Hlt2_Lambdab2PKTauTau_SS_ExclusiveLine( + name='Hlt2RD_LbToPKTauTau_TauTo3Pi_SS', prescale=1, persistreco=True): """ HLT2 line for Lb -> p K- (tau+->pi+pi+pi-) (tau+->pi+pi+pi-) + CC - + and for Lb -> p K- (tau-->pi-pi-pi+) (tau-->pi-pi-pi+) + CC """ lst = builder.make_dihadron_from_pK() @@ -1548,11 +1544,11 @@ def Hlt2_Lambdab2KpTauTau_SS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable -def Hlt2_Lambdab2KpTauMu_OS_ExclusiveLine( - name='Hlt2RD_LbToKpTauMu_TauTo3Pi_OS', prescale=1, persistreco=True): +def Hlt2_Lambdab2PKTauMu_OS_ExclusiveLine( + name='Hlt2RD_LbToPKTauMu_TauTo3Pi_OS', prescale=1, persistreco=True): """ HLT2 line for Lb -> p K- (tau+->pi+pi+pi-) mu- + CC - + and for Lb -> p K- (tau-->pi-pi-pi+) mu+ + CC """ lst = builder.make_dihadron_from_pK() @@ -1571,11 +1567,11 @@ def Hlt2_Lambdab2KpTauMu_OS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable -def Hlt2_Lambdab2KpTauMu_SS_ExclusiveLine( - name='Hlt2RD_LbToKpTauMu_TauTo3Pi_SS', prescale=1, persistreco=True): +def Hlt2_Lambdab2PKTauMu_SS_ExclusiveLine( + name='Hlt2RD_LbToPKTauMu_TauTo3Pi_SS', prescale=1, persistreco=True): """ HLT2 line for Lb -> p K- (tau+->pi+pi+pi-) mu+ + CC - + and for Lb -> p K- (tau-->pi-pi-pi+) mu- + CC """ lst = builder.make_dihadron_from_pK() @@ -1594,12 +1590,12 @@ def Hlt2_Lambdab2KpTauMu_SS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable -def Hlt2_Lambdab2KpTauE_OS_ExclusiveLine(name='Hlt2RD_LbToKpTauE_TauTo3Pi_OS', +def Hlt2_Lambdab2PKTauE_OS_ExclusiveLine(name='Hlt2RD_LbToPKTauE_TauTo3Pi_OS', prescale=1, persistreco=True): """ HLT2 line for Lb -> p K- (tau+->pi+pi+pi-) e- + CC - + and for Lb -> p K- (tau-->pi-pi-pi+) e+ + CC """ lst = builder.make_dihadron_from_pK() @@ -1618,12 +1614,12 @@ def Hlt2_Lambdab2KpTauE_OS_ExclusiveLine(name='Hlt2RD_LbToKpTauE_TauTo3Pi_OS', @register_line_builder(hlt2_lines) @configurable -def Hlt2_Lambdab2KpTauE_SS_ExclusiveLine(name='Hlt2RD_LbToKpTauE_TauTo3Pi_SS', +def Hlt2_Lambdab2PKTauE_SS_ExclusiveLine(name='Hlt2RD_LbToPKTauE_TauTo3Pi_SS', prescale=1, persistreco=True): """ HLT2 line for Lb -> p K- (tau+->pi+pi+pi-) e+ + CC - + and for Lb -> p K- (tau-->pi-pi-pi+) e- + CC """ lst = builder.make_dihadron_from_pK() @@ -1643,13 +1639,13 @@ def Hlt2_Lambdab2KpTauE_SS_ExclusiveLine(name='Hlt2RD_LbToKpTauE_TauTo3Pi_SS', ## Lambda_b -> Lambda (LL) tau l @register_line_builder(hlt2_lines) @configurable -def Hlt2_Lambdab2LambdaTauTau_OS_ExclusiveLine( - name='Hlt2RD_LbToLambdaTauTau_LambdaToPiP_TauTo3Pi_OS', +def Hlt2_Lambdab2LambdaTauTau_LL_OS_ExclusiveLine( + name="Hlt2RD_LbToLambdaTauTau_LambdaLLToPPi_TauTo3Pi_OS", prescale=1, persistreco=True): """ HLT2 line for Lb -> (L0->p pi-) (tau+->pi+pi+pi-) (tau-->pi-pi-pi+) + CC - + and for Lb -> (L0->p pi-) (tau-->pi-pi-pi+) (tau+->pi+pi+pi-) + CC """ lambda0 = common_builder.make_rd_lambda_lls( @@ -1669,13 +1665,13 @@ def Hlt2_Lambdab2LambdaTauTau_OS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable -def Hlt2_Lambdab2LambdaTauTau_SS_ExclusiveLine( - name='Hlt2RD_LbToLambdaTauTau_LambdaToPiP_TauTo3Pi_SS', +def Hlt2_Lambdab2LambdaTauTau_LL_SS_ExclusiveLine( + name='Hlt2RD_LbToLambdaTauTau_LambdaLLToPPi_TauTo3Pi_SS', prescale=1, persistreco=True): """ HLT2 line for Lb -> (L0->p pi-) (tau+->pi+pi+pi-) (tau+->pi+pi+pi-) + CC - + and for Lb -> (L0->p pi-) (tau-->pi-pi-pi+) (tau-->pi-pi-pi+) + CC """ lambda0 = common_builder.make_rd_lambda_lls( @@ -1695,13 +1691,13 @@ def Hlt2_Lambdab2LambdaTauTau_SS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable -def Hlt2_Lambdab2LambdaTauMu_OS_ExclusiveLine( - name='Hlt2RD_LbToLambdaTauMu_LambdaToPiP_TauTo3Pi_OS', +def Hlt2_Lambdab2LambdaTauMu_LL_OS_ExclusiveLine( + name='Hlt2RD_LbToLambdaTauMu_LambdaLLToPPi_TauTo3Pi_OS', prescale=1, persistreco=True): """ HLT2 line for Lb -> (L0->p pi-) (tau+->pi+pi+pi-) mu- + CC - + and for Lb -> (L0->p pi-) (tau-->pi-pi-pi+) mu+ + CC """ lambda0 = common_builder.make_rd_lambda_lls( @@ -1721,13 +1717,13 @@ def Hlt2_Lambdab2LambdaTauMu_OS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable -def Hlt2_Lambdab2LambdaTauMu_SS_ExclusiveLine( - name='Hlt2RD_LbToLambdaTauMu_LambdaToPiP_TauTo3Pi_SS', +def Hlt2_Lambdab2LambdaTauMu_LL_SS_ExclusiveLine( + name='Hlt2RD_LbToLambdaTauMu_LambdaLLToPPi_TauTo3Pi_SS', prescale=1, persistreco=True): """ HLT2 line for Lb -> (L0->p pi-) (tau+->pi+pi+pi-) mu+ + CC - + and for Lb -> (L0->p pi-) (tau-->pi-pi-pi+) mu- + CC """ lambda0 = common_builder.make_rd_lambda_lls( @@ -1747,8 +1743,8 @@ def Hlt2_Lambdab2LambdaTauMu_SS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable -def Hlt2_Lambdab2LambdaTauE_OS_ExclusiveLine( - name='Hlt2RD_LbToLambdaTauE_LambdaToPiP_TauTo3Pi_OS', +def Hlt2_Lambdab2LambdaTauE_LL_OS_ExclusiveLine( + name='Hlt2RD_LbToLambdaTauE_LambdaLLToPPi_TauTo3Pi_OS', prescale=1, persistreco=True): """ @@ -1773,8 +1769,8 @@ def Hlt2_Lambdab2LambdaTauE_OS_ExclusiveLine( @register_line_builder(hlt2_lines) @configurable -def Hlt2_Lambdab2LambdaTauE_SS_ExclusiveLine( - name='Hlt2RD_LbToLambdaTauE_LambdaToPiP_TauTo3Pi_SS', +def Hlt2_Lambdab2LambdaTauE_LL_SS_ExclusiveLine( + name='Hlt2RD_LbToLambdaTauE_LambdaLLToPPi_TauTo3Pi_SS', prescale=1, persistreco=True): """ diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xtaul_spruce.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xtaul_spruce.py index 1f29d332ce2f95301b36239682b68207e8c8b45c..dbc77fd22df82520a65b304276ecb04cace47b10 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xtaul_spruce.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xtaul_spruce.py @@ -8,10 +8,10 @@ # granted to it by virtue of its status as an Intergovernmental Organization # # or submit itself to any jurisdiction. # ############################################################################### -''' +''' Author: Tommaso Fulghesu Contact: tommaso.fulghesu@cern.ch -Date: 07/12/2021 +Date: 07/12/2021 ''' ###################################################################################### @@ -408,7 +408,7 @@ def Spruce_Bd2PhiTauE_SS_ExclusiveLine( @register_line_builder(sprucing_lines) @configurable def Spruce_Bd2RhoTauTau_OS_ExclusiveLine( - name='SpruceRD_BdToRhoTauTau_Rho2PiPi_TauTo3Pi_OS', prescale=1): + name='SpruceRD_BdToRhoTauTau_RhoToPiPi_TauTo3Pi_OS', prescale=1): """ Sprucing line for Bd -> (rho->pi+ pi-) (tau+->pi+pi+pi-) (tau-->pi-pi-pi+) + CC @@ -430,7 +430,7 @@ def Spruce_Bd2RhoTauTau_OS_ExclusiveLine( @register_line_builder(sprucing_lines) @configurable def Spruce_Bd2RhoTauTau_SS_ExclusiveLine( - name='SpruceRD_BdToRhoTauTau_Rho2PiPi_TauTo3Pi_SS', prescale=1): + name='SpruceRD_BdToRhoTauTau_RhoToPiPi_TauTo3Pi_SS', prescale=1): """ Sprucing line for Bd -> (rho->pi+ pi-) (tau+->pi+pi+pi-) (tau+->pi+pi+pi-) + CC @@ -452,7 +452,7 @@ def Spruce_Bd2RhoTauTau_SS_ExclusiveLine( @register_line_builder(sprucing_lines) @configurable def Spruce_Bd2RhoTauMu_OS_ExclusiveLine( - name='SpruceRD_BdToRhoTauMu_Rho2PiPi_TauTo3Pi_OS', prescale=1): + name='SpruceRD_BdToRhoTauMu_RhoToPiPi_TauTo3Pi_OS', prescale=1): """ Sprucing line for Bd -> (rho->pi+ pi-) (tau+->pi+pi+pi-) mu- + CC @@ -474,7 +474,7 @@ def Spruce_Bd2RhoTauMu_OS_ExclusiveLine( @register_line_builder(sprucing_lines) @configurable def Spruce_Bd2RhoTauMu_SS_ExclusiveLine( - name='SpruceRD_BdToRhoTauMu_Rho2PiPi_TauTo3Pi_SS', prescale=1): + name='SpruceRD_BdToRhoTauMu_RhoToPiPi_TauTo3Pi_SS', prescale=1): """ Sprucing line for Bd -> (rho->pi+ pi-) (tau+->pi+pi+pi-) mu+ + CC @@ -496,7 +496,7 @@ def Spruce_Bd2RhoTauMu_SS_ExclusiveLine( @register_line_builder(sprucing_lines) @configurable def Spruce_Bd2RhoTauE_OS_ExclusiveLine( - name='SpruceRD_BdToRhoTauE_Rho2PiPi_TauTo3Pi_OS', prescale=1): + name='SpruceRD_BdToRhoTauE_RhoToPiPi_TauTo3Pi_OS', prescale=1): """ Sprucing line for Bd -> (rho->pi+ pi-) (tau+->pi+pi+pi-) e- + CC @@ -518,7 +518,7 @@ def Spruce_Bd2RhoTauE_OS_ExclusiveLine( @register_line_builder(sprucing_lines) @configurable def Spruce_Bd2RhoTauE_SS_ExclusiveLine( - name='SpruceRD_BdToRhoTauE_Rho2PiPi_TauTo3Pi_SS', prescale=1): + name='SpruceRD_BdToRhoTauE_RhoToPiPi_TauTo3Pi_SS', prescale=1): """ Sprucing line for Bd -> (rho->pi+ pi-) (tau+->pi+pi+pi-) e+ + CC diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/b_to_xtaul_rd_builder.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/b_to_xtaul_rd_builder.py index bc36631a515cc95dcf9be1362e7c704ee4e684bc..bc0ace3e5cb98f85689f1e09877ccea2c137fbaf 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/b_to_xtaul_rd_builder.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/b_to_xtaul_rd_builder.py @@ -312,3 +312,26 @@ def make_beauty2xtaul(particles, DecayDescriptor=descriptors, CombinationCut=combination_code, CompositeCut=vertex_code) + + +def filter_BToTauTau( + ditaus=make_dilepton_from_tauls(parent_id="B_s0", daughter_id="tau+"), + name="filter_RD_B2tautau", + m_min=2 * GeV, + m_max=7 * GeV, + p_min=3 * GeV, + pt_min=1 * GeV, + bpvdira_min=0.995, + bpvfdchi2_min=225, + bpvipchi2_max=50, + chi2_max=90, + bpvfd_max=90 * mm): + pvs = make_pvs() + code = require_all( + in_range(m_min, F.MASS, m_max), F.P > p_min, F.PT > pt_min, + F.BPVDIRA(pvs) > bpvdira_min, + F.BPVFDCHI2(pvs) > bpvfdchi2_min, + F.BPVIPCHI2(pvs) < bpvipchi2_max, + F.CHI2() < chi2_max, + F.BPVFD(pvs) < bpvfd_max) + return ParticleFilter(ditaus, F.FILTER(code), name=name)