Source code for Hlt2Conf.lines.rd.b_to_ll_LFV

###############################################################################
# (c) Copyright 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.                                       #
###############################################################################
'''
Author: Olaf Massen
Contact: olaf.massen@cern.ch
Date: 17/01/2022
'''

######################################################################################
####                                                                              ####
#### The following exlusive lines Yb -> l l cover the LFV decays:                 ####
####                                                                              ####
#### B_(s)0 -> tau (-> 3pi nu_tau) mu                                             ####
#### B_(s)0 -> tau (-> 3pi nu_tau) e                                              ####
####                                                                              ####
######################################################################################

from Moore.config import register_line_builder
from Moore.lines import Hlt2Line
from PyConf import configurable
from Hlt2Conf.lines.rd.builders.b_to_ll_LFV_builder import make_B_from_taumu, make_B_from_taue, make_taus, make_muons, make_electrons
from Hlt2Conf.lines.rd.builders.rd_prefilters import rd_prefilter, _VRD_MONITORING_VARIABLES
from Hlt2Conf.lines.rd.builders.rd_isolation import parent_isolation_output

hlt2_lines = {}


[docs]@register_line_builder(hlt2_lines) @configurable def Hlt2_Bs2TauMu_OS_ExclusiveLine(name='Hlt2RD_BsToTauMu_TauTo3Pi_OS', prescale=0.1): """ HLT2 line for B(s) -> (tau+->pi+pi+pi-) mu- + CC and for B(s) -> (tau-->pi-pi-pi+) mu+ + CC """ taus = make_taus() muons = make_muons() B_candidate = make_B_from_taumu(taus, muons, parent_id="B_s0") return Hlt2Line( name=name, prescale=prescale, extra_outputs=parent_isolation_output("B", B_candidate), algs=rd_prefilter() + [taus, B_candidate], monitoring_variables=_VRD_MONITORING_VARIABLES)
[docs]@register_line_builder(hlt2_lines) @configurable def Hlt2_Bs2TauE_OS_ExclusiveLine(name='Hlt2RD_BsToTauE_TauTo3Pi_OS', prescale=0.1): """ HLT2 line for B(s) -> (tau+->pi+pi+pi-) e- + CC and for B(s) -> (tau-->pi-pi-pi+) e+ + CC """ taus = make_taus() electrons = make_electrons() B_candidate = make_B_from_taue(taus, electrons, parent_id="B_s0") return Hlt2Line( name=name, prescale=prescale, extra_outputs=parent_isolation_output("B", B_candidate), algs=rd_prefilter() + [taus, B_candidate], monitoring_variables=_VRD_MONITORING_VARIABLES)