Source code for Hlt2Conf.lines.inclusive_detached_dilepton.cutbased_dilepton_trigger

###############################################################################
# (c) Copyright 2022-24 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 the cut-based inclusive detached dilepton trigger lines
"""

from Moore.config import Hlt2Line, register_line_builder

from Hlt2Conf.lines.rd.builders.rd_prefilters import rd_prefilter, _RD_MONITORING_VARIABLES

from Hlt2Conf.lines.inclusive_detached_dilepton.cutbased_dilepton_builders import (
    make_inclusive_cut_dilepton_plus_tracks, make_inclusive_cut_dielectron,
    make_inclusive_cut_electronmuon, make_inclusive_cut_dimuon,
    _single_fake_prescale, _double_fake_prescale)

from RecoConf.reconstruction_objects import make_pvs

all_lines = {}

################################################
# 2-body inclusive cut-based dilepton lines    #
################################################

####################################
# 2-body lines (opposite-sign)     #
####################################


[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectron(name="Hlt2CutBasedInclDielectron", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body dielectron events with opposite-sign electrons, e.g. B_s0 -> e+ e- Line categories: - 2-body - dielectron """ dielectrons = make_inclusive_cut_dielectron(parent_id="B_s0") return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuon(name="Hlt2CutBasedInclElectronMuon", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body electron-muon events with opposite-sign leptons, e.g. B_s0 -> e+ mu- Line categories: - 2-body - electron-muon """ electronmuons = make_inclusive_cut_electronmuon(parent_id='B_s0') return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [electronmuons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuon(name="Hlt2CutBasedInclDimuon", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body dimuon events with opposite-sign muon, e.g. B_s0 -> mu+ mu- Line categories: - 2-body - dimuon """ dimuons = make_inclusive_cut_dimuon(parent_id='B_s0') return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
############################################ # 2-body single fake lines (opposite-sign) # ############################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronFakeE(name="Hlt2CutBasedInclDielectronFakeE", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body dielectron events with opposite-sign electrons, e.g. B_s0 -> e+ e- Line categories: - 2-body - dielectron - fake e """ dielectrons = make_inclusive_cut_dielectron( parent_id="B_s0", fake_electrons=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeE(name="Hlt2CutBasedInclElectronMuonFakeE", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body electron-muon events with opposite-sign electrons, e.g. B_s0 -> mu+ e- Line categories: - 2-body - electron-muon - fake e """ dileptons = make_inclusive_cut_electronmuon( parent_id="B_s0", fake_electrons=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeMu( name="Hlt2CutBasedInclElectronMuonFakeMu", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body electron-muon events with opposite-sign electrons, e.g. B_s0 -> mu+ e- Line categories: - 2-body - electron-muon - fake mu """ dileptons = make_inclusive_cut_electronmuon(parent_id="B_s0", fake_muons=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonFakeMu(name="Hlt2CutBasedInclDimuonFakeMu", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body dimuon events with opposite-sign electrons, e.g. B_s0 -> mu+ mu- Line categories: - 2-body - dimuon - fake mu """ dimuons = make_inclusive_cut_dimuon(parent_id="B_s0", fake_muons=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
############################################ # 2-body double fake lines (opposite-sign) # ############################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronFakeEE(name="Hlt2CutBasedInclDielectronFakeEE", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body dielectron events with opposite-sign electrons, e.g. B_s0 -> e+ e- Line categories: - 2-body - dielectron - fake ee """ dielectrons = make_inclusive_cut_dielectron( parent_id="B_s0", fake_electrons=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeEMu( name="Hlt2CutBasedInclElectronMuonFakeEMu", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body electron-muon events with opposite-sign electrons, e.g. B_s0 -> mu+ e- Line categories: - 2-body - electron-muon - fake emu """ dileptons = make_inclusive_cut_electronmuon( parent_id="B_s0", fake_electrons=1, fake_muons=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonFakeMuMu(name="Hlt2CutBasedInclDimuonFakeMuMu", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body dimuon events with opposite-sign electrons, e.g. B_s0 -> mu+ mu- Line categories: - 2-body - dimuon - fake mumu """ dimuons = make_inclusive_cut_dimuon(parent_id="B_s0", fake_muons=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
############################# # 2-body lines (same-sign) # #############################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronSS(name="Hlt2CutBasedInclDielectronSS", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body dielectron events with same-sign electrons, e.g. B_s0 -> e+ e+ Line categories: - 2-body - dielectron - same-sign """ dielectrons = make_inclusive_cut_dielectron( parent_id='B_s0', same_sign=True) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonSS(name="Hlt2CutBasedInclElectronMuonSS", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body electron-muon events with same-sign leptons, e.g. B_s0 -> e+ mu+ Line categories: - 2-body - electron-muon - same-sign """ electronmuons = make_inclusive_cut_electronmuon( parent_id='B_s0', same_sign=True) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [electronmuons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonSS(name="Hlt2CutBasedInclDimuonSS", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body dimuon events with same-sign muons, e.g. B_s0 -> mu+ mu+ Line categories: - 2-body - dimuon - same-sign """ dimuons = make_inclusive_cut_dimuon(parent_id='B_s0', same_sign=True) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
######################################## # 2-body single fake lines (same-sign) # ########################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronFakeESS(name="Hlt2CutBasedInclDielectronFakeESS", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body dielectron events with opposite-sign electrons, e.g. B_s0 -> e+ e- Line categories: - 2-body - dielectron - same-sign - fake e """ dielectrons = make_inclusive_cut_dielectron( parent_id="B_s0", same_sign=True, fake_electrons=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeESS( name="Hlt2CutBasedInclElectronMuonFakeESS", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body electron-muon events with opposite-sign electrons, e.g. B_s0 -> mu+ e- Line categories: - 2-body - electron-muon - same-sign - fake e """ dileptons = make_inclusive_cut_electronmuon( parent_id="B_s0", same_sign=True, fake_electrons=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeMuSS( name="Hlt2CutBasedInclElectronMuonFakeMuSS", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body electron-muon events with opposite-sign electrons, e.g. B_s0 -> mu+ e- Line categories: - 2-body - electron-muon - same-sign - fake mu """ dileptons = make_inclusive_cut_electronmuon( parent_id="B_s0", same_sign=True, fake_muons=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonFakeMuSS(name="Hlt2CutBasedInclDimuonFakeMuSS", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body dimuon events with opposite-sign electrons, e.g. B_s0 -> mu+ mu- Line categories: - 2-body - dimuon - same-sign - fake mu """ dimuons = make_inclusive_cut_dimuon( parent_id="B_s0", same_sign=True, fake_muons=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
######################################## # 2-body double fake lines (same-sign) # ########################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronFakeEESS( name="Hlt2CutBasedInclDielectronFakeEESS", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body dielectron events with opposite-sign electrons, e.g. B_s0 -> e+ e- Line categories: - 2-body - dielectron - same-sign - fake ee """ dielectrons = make_inclusive_cut_dielectron( parent_id="B_s0", same_sign=True, fake_electrons=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeEMuSS( name="Hlt2CutBasedInclElectronMuonFakeEMuSS", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body electron-muon events with opposite-sign electrons, e.g. B_s0 -> mu+ e- Line categories: - 2-body - electron-muon - same-sign - fake emu """ dileptons = make_inclusive_cut_electronmuon( parent_id="B_s0", same_sign=True, fake_electrons=1, fake_muons=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonFakeMuMuSS(name="Hlt2CutBasedInclDimuonFakeMuMuSS", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 2-body dimuon events with opposite-sign electrons, e.g. B_s0 -> mu+ mu- Line categories: - 2-body - dimuon - same-sign - fake mumu """ dimuons = make_inclusive_cut_dimuon( parent_id="B_s0", same_sign=True, fake_muons=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons], persistreco=persistreco, prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, )
################################################ # 3-body inclusive cut-based dilepton lines # ################################################ #################################### # 3-body lines (opposite-sign) # ####################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronPlusTrack( name="Hlt2CutBasedInclDielectronPlusTrack", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body dielectron events with opposite-sign electrons, e.g. B+ -> J/psi(1S) (-> e+ e-) pi+ Line categories: - 3-body - dielectron """ pvs = make_pvs() dielectrons = make_inclusive_cut_dielectron(parent_id='J/psi(1S)') Bs = make_inclusive_cut_dilepton_plus_tracks( dielectrons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonPlusTrack( name="Hlt2CutBasedInclElectronMuonPlusTrack", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body electron-muon events with opposite-sign leptons, e.g. B+ -> J/psi(1S) (-> e+ mu-) pi+ Line categories: - 3-body - electron-muon """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon(parent_id='J/psi(1S)') Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonPlusTrack(name="Hlt2CutBasedInclDimuonPlusTrack", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body dimuon events with opposite-sign muon, e.g. B+ -> J/psi(1S) (-> mu+ mu-) pi+ Line categories: - 3-body - dimuon """ pvs = make_pvs() dimuons = make_inclusive_cut_dimuon(parent_id='J/psi(1S)') Bs = make_inclusive_cut_dilepton_plus_tracks( dimuons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
############################################ # 3-body single fake lines (opposite-sign) # ############################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronFakeEPlusTrack( name="Hlt2CutBasedInclDielectronFakeEPlusTrack", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body dielectron events with opposite-sign electrons, e.g. B+ -> J/psi(1S) (-> e+ e-) pi+ Line categories: - 3-body - dielectron - fake e """ pvs = make_pvs() dielectrons = make_inclusive_cut_dielectron( parent_id="J/psi(1S)", fake_electrons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dielectrons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeEPlusTrack( name="Hlt2CutBasedInclElectronMuonFakeEPlusTrack", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body electron-muon events with opposite-sign leptons, e.g. B+ -> J/psi(1S) (-> e+ mu-) pi+ Line categories: - 3-body - electron-muon - fake e """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id="J/psi(1S)", fake_electrons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeMuPlusTrack( name="Hlt2CutBasedInclElectronMuonFakeMuPlusTrack", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body electron-muon events with opposite-sign leptons, e.g. B+ -> J/psi(1S) (-> e+ mu-) pi+ Line categories: - 3-body - electron-muon - fake mu """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id="J/psi(1S)", fake_muons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonFakeMuPlusTrack( name="Hlt2CutBasedInclDimuonFakeMuPlusTrack", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body dimuon events with opposite-sign muons, e.g. B_s0 -> e+ e- Line categories: - 3-body - dielectron - single fake mu """ pvs = make_pvs() dimuons = make_inclusive_cut_dimuon(parent_id="J/psi(1S)", fake_muons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dimuons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
############################################ # 3-body double fake lines (opposite-sign) # ############################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronFakeEEPlusTrack( name="Hlt2CutBasedInclDielectronFakeEEPlusTrack", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body dielectron events with opposite-sign electrons, e.g. B+ -> J/psi(1S) (-> e+ e-) pi+ Line categories: - 3-body - dielectron - fake ee """ pvs = make_pvs() dielectrons = make_inclusive_cut_dielectron( parent_id="J/psi(1S)", fake_electrons=2) Bs = make_inclusive_cut_dilepton_plus_tracks( dielectrons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeEMuPlusTrack( name="Hlt2CutBasedInclElectronMuonFakeEMuPlusTrack", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body electron-muon events with opposite-sign leptons, e.g. B+ -> J/psi(1S) (-> mu+ e-) pi+ Line categories: - 3-body - electron-muon - fake emu """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id="J/psi(1S)", fake_electrons=1, fake_muons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonFakeMuMuPlusTrack( name="Hlt2CutBasedInclDimuonFakeMuMuPlusTrack", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body dimuon events with opposite-sign muons, e.g. B+ -> J/psi(1S) (-> mu+ mu-) pi+ Line categories: - 3-body - dimuon - fake mumu """ pvs = make_pvs() dimuons = make_inclusive_cut_dimuon(parent_id="J/psi(1S)", fake_muons=2) Bs = make_inclusive_cut_dilepton_plus_tracks( dimuons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
#################################### # 3-body lines (same-sign) # ####################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronPlusTrackSS( name="Hlt2CutBasedInclDielectronPlusTrackSS", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body dielectron events with opposite-sign electrons, e.g. B+ -> J/psi(1S) (-> e+ e+) pi+ Line categories: - 3-body - dielectron """ pvs = make_pvs() dielectrons = make_inclusive_cut_dielectron( parent_id='J/psi(1S)', same_sign=True) Bs = make_inclusive_cut_dilepton_plus_tracks( dielectrons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonPlusTrackSS( name="Hlt2CutBasedInclElectronMuonPlusTrackSS", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body electron-muon events with opposite-sign leptons, e.g. B+ -> J/psi(1S) (-> e+ mu+) pi+ Line categories: - 3-body - electron-muon """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id='J/psi(1S)', same_sign=True) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonPlusTrackSS(name="Hlt2CutBasedInclDimuonPlusTrackSS", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body dimuon events with opposite-sign muon, e.g. B+ -> J/psi(1S) (-> mu+ mu+) pi+ Line categories: - 3-body - dimuon """ pvs = make_pvs() dimuons = make_inclusive_cut_dimuon(parent_id='J/psi(1S)', same_sign=True) Bs = make_inclusive_cut_dilepton_plus_tracks( dimuons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
############################################ # 3-body single fake lines (same-sign) # ############################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronFakeEPlusTrackSS( name="Hlt2CutBasedInclDielectronFakeEPlusTrackSS", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body dielectron events with opposite-sign electrons, e.g. B+ -> J/psi(1S) (-> e+ e+) pi+ Line categories: - 3-body - dielectron - fake e """ pvs = make_pvs() dielectrons = make_inclusive_cut_dielectron( parent_id='J/psi(1S)', same_sign=True, fake_electrons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dielectrons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeEPlusTrackSS( name="Hlt2CutBasedInclElectronMuonFakeEPlusTrackSS", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body electron-muon events with opposite-sign leptons, e.g. B+ -> J/psi(1S) (-> e+ mu+) pi+ Line categories: - 3-body - electron-muon - fake e """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id='J/psi(1S)', same_sign=True, fake_electrons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeMuPlusTrackSS( name="Hlt2CutBasedInclElectronMuonFakeMuPlusTrackSS", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body electron-muon events with opposite-sign leptons, e.g. B+ -> J/psi(1S) (-> e+ mu+) pi+ Line categories: - 3-body - electron-muon - fake mu """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id='J/psi(1S)', same_sign=True, fake_muons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonFakeMuPlusTrackSS( name="Hlt2CutBasedInclDimuonFakeMuPlusTrackSS", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body dimuon events with opposite-sign muons, e.g. B+ -> J/psi(1S) (-> mu+ mu+) pi+ Line categories: - 3-body - dielectron - single fake mu """ pvs = make_pvs() dimuons = make_inclusive_cut_dimuon( parent_id='J/psi(1S)', same_sign=True, fake_muons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dimuons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
############################################ # 3-body double fake lines (same-sign) # ############################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronFakeEEPlusTrackSS( name="Hlt2CutBasedInclDielectronFakeEEPlusTrackSS", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body dielectron events with opposite-sign electrons, e.g. B+ -> J/psi(1S) (-> e+ e+) pi+ Line categories: - 3-body - dielectron - fake ee """ pvs = make_pvs() dielectrons = make_inclusive_cut_dielectron( parent_id='J/psi(1S)', same_sign=True, fake_electrons=2) Bs = make_inclusive_cut_dilepton_plus_tracks( dielectrons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeEMuPlusTrackSS( name="Hlt2CutBasedInclElectronMuonFakeEMuPlusTrackSS", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body electron-muon events with opposite-sign leptons, e.g. B+ -> J/psi(1S) (-> e+ mu+) pi+ Line categories: - 3-body - electron-muon - fake emu """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id='J/psi(1S)', same_sign=True, fake_electrons=1, fake_muons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonFakeMuMuPlusTrackSS( name="Hlt2CutBasedInclDimuonFakeMuMuPlusTrackSS", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 3-body dimuon events with opposite-sign muons, e.g. B+ -> J/psi(1S) (-> mu+ mu+) pi+ Line categories: - 3-body - dimuon - fake mumu """ pvs = make_pvs() dimuons = make_inclusive_cut_dimuon( parent_id='J/psi(1S)', same_sign=True, fake_muons=2) Bs = make_inclusive_cut_dilepton_plus_tracks( dimuons, pvs, DecayDescriptor='[B+ -> J/psi(1S) pi+]cc', n_tracks=1) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
################################################ # 4-body inclusive cut-based dilepton lines # ################################################ #################################### # 4-body lines (opposite-sign) # ####################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronPlusTwoTrack( name="Hlt2CutBasedInclDielectronPlusTwoTrack", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body dielectron events with opposite-sign electrons, e.g. B_s0 -> J/psi(1S) (-> e+ e-) pi+ Line categories: - 4-body - dielectron """ pvs = make_pvs() dielectrons = make_inclusive_cut_dielectron(parent_id='J/psi(1S)') Bs = make_inclusive_cut_dilepton_plus_tracks( dielectrons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonPlusTwoTrack( name="Hlt2CutBasedInclElectronMuonPlusTwoTrack", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body electron-muon events with opposite-sign leptons, e.g. B_s0 -> J/psi(1S) (-> e+ mu-) pi+ Line categories: - 4-body - electron-muon """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon(parent_id='J/psi(1S)') Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonPlusTwoTrack( name="Hlt2CutBasedInclDimuonPlusTwoTrack", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body dimuon events with opposite-sign muon, e.g. B_s0 -> J/psi(1S) (-> mu+ mu-) pi+ Line categories: - 4-body - dimuon """ pvs = make_pvs() dimuons = make_inclusive_cut_dimuon(parent_id='J/psi(1S)') Bs = make_inclusive_cut_dilepton_plus_tracks( dimuons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
############################################ # 4-body single fake lines (opposite-sign) # ############################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronFakeEPlusTwoTrack( name="Hlt2CutBasedInclDielectronFakeEPlusTwoTrack", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body dielectron events with opposite-sign electrons, e.g. B_s0 -> J/psi(1S) (-> e+ e-) pi+ Line categories: - 4-body - dielectron - fake e """ pvs = make_pvs() dielectrons = make_inclusive_cut_dielectron( parent_id="J/psi(1S)", fake_electrons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dielectrons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeEPlusTwoTrack( name="Hlt2CutBasedInclElectronMuonFakeEPlusTwoTrack", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body electron-muon events with opposite-sign leptons, e.g. B_s0 -> J/psi(1S) (-> e+ mu-) pi+ Line categories: - 4-body - electron-muon - fake e """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id="J/psi(1S)", fake_electrons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeMuPlusTwoTrack( name="Hlt2CutBasedInclElectronMuonFakeMuPlusTwoTrack", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body electron-muon events with opposite-sign leptons, e.g. B_s0 -> J/psi(1S) (-> e+ mu-) pi+ Line categories: - 4-body - electron-muon - fake mu """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id="J/psi(1S)", fake_muons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonFakeMuPlusTwoTrack( name="Hlt2CutBasedInclDimuonFakeMuPlusTwoTrack", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body dimuon events with opposite-sign muons, e.g. B_s0 -> e+ e- Line categories: - 4-body - dielectron - single fake mu """ pvs = make_pvs() dimuons = make_inclusive_cut_dimuon(parent_id="J/psi(1S)", fake_muons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dimuons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
############################################ # 4-body double fake lines (opposite-sign) # ############################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronFakeEEPlusTwoTrack( name="Hlt2CutBasedInclDielectronFakeEEPlusTwoTrack", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body dielectron events with opposite-sign electrons, e.g. B_s0 -> J/psi(1S) (-> e+ e-) pi+ Line categories: - 4-body - dielectron - fake ee """ pvs = make_pvs() dielectrons = make_inclusive_cut_dielectron( parent_id="J/psi(1S)", fake_electrons=2) Bs = make_inclusive_cut_dilepton_plus_tracks( dielectrons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeEMuPlusTwoTrack( name="Hlt2CutBasedInclElectronMuonFakeEMuPlusTwoTrack", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body electron-muon events with opposite-sign leptons, e.g. B_s0 -> J/psi(1S) (-> mu+ e-) pi+ Line categories: - 4-body - electron-muon - fake emu """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id="J/psi(1S)", fake_electrons=1, fake_muons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonFakeMuMuPlusTwoTrack( name="Hlt2CutBasedInclDimuonFakeMuMuPlusTwoTrack", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body dimuon events with opposite-sign muons, e.g. B_s0 -> J/psi(1S) (-> mu+ mu-) pi+ Line categories: - 4-body - dimuon - fake mumu """ pvs = make_pvs() dimuons = make_inclusive_cut_dimuon(parent_id="J/psi(1S)", fake_muons=2) Bs = make_inclusive_cut_dilepton_plus_tracks( dimuons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
################################ # 4-body lines (same-sign) # ################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronPlusTwoTrackSS( name="Hlt2CutBasedInclDielectronPlusTwoTrackSS", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body dielectron events with same-sign electrons, e.g. B_s0 -> J/psi(1S) (-> e+ e+) pi+ pi- Line categories: - 4-body - dielectron """ pvs = make_pvs() dielectrons = make_inclusive_cut_dielectron(parent_id='J/psi(1S)') Bs = make_inclusive_cut_dilepton_plus_tracks( dielectrons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonPlusTwoTrackSS( name="Hlt2CutBasedInclElectronMuonPlusTwoTrackSS", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body electron-muon events with same-sign leptons, e.g. B_s0 -> J/psi(1S) (-> e+ mu+) pi+ pi- Line categories: - 4-body - electron-muon """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon(parent_id='J/psi(1S)') Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonPlusTwoTrackSS( name="Hlt2CutBasedInclDimuonPlusTwoTrackSS", prescale=1, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body dimuon events with same-sign muon, e.g. B_s0 -> J/psi(1S) (-> mu+ mu+) pi+ pi- Line categories: - 4-body - dimuon """ pvs = make_pvs() dimuons = make_inclusive_cut_dimuon(parent_id='J/psi(1S)') Bs = make_inclusive_cut_dilepton_plus_tracks( dimuons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
######################################## # 4-body single fake lines (same-sign) # ########################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronFakeEPlusTwoTrackSS( name="Hlt2CutBasedInclDielectronFakeEPlusTwoTrackSS", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body dielectron events with same-sign electrons, e.g. B_s0 -> J/psi(1S) (-> e+ e+) pi+ pi- Line categories: - 4-body - dielectron - fake e """ pvs = make_pvs() dielectrons = make_inclusive_cut_dielectron( parent_id="J/psi(1S)", fake_electrons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dielectrons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeEPlusTwoTrackSS( name="Hlt2CutBasedInclElectronMuonFakeEPlusTwoTrackSS", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body electron-muon events with same-sign leptons, e.g. B_s0 -> J/psi(1S) (-> e+ mu+) pi+ pi- Line categories: - 4-body - electron-muon - fake e """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id="J/psi(1S)", fake_electrons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeMuPlusTwoTrackSS( name="Hlt2CutBasedInclElectronMuonFakeMuPlusTwoTrackSS", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body electron-muon events with same-sign leptons, e.g. B_s0 -> J/psi(1S) (-> e+ mu+) pi+ pi- Line categories: - 4-body - electron-muon - fake mu """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id="J/psi(1S)", fake_muons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonFakeMuPlusTwoTrackSS( name="Hlt2CutBasedInclDimuonFakeMuPlusTwoTrackSS", prescale=_single_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body dimuon events with same-sign muons, e.g. B_s0 -> e+ e+ Line categories: - 4-body - dielectron - single fake mu """ pvs = make_pvs() dimuons = make_inclusive_cut_dimuon(parent_id="J/psi(1S)", fake_muons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dimuons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
######################################## # 4-body double fake lines (same-sign) # ########################################
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDielectronFakeEEPlusTwoTrackSS( name="Hlt2CutBasedInclDielectronFakeEEPlusTwoTrackSS", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body dielectron events with same-sign electrons, e.g. B_s0 -> J/psi(1S) (-> e+ e+) pi+ pi- Line categories: - 4-body - dielectron - fake ee """ pvs = make_pvs() dielectrons = make_inclusive_cut_dielectron( parent_id="J/psi(1S)", fake_electrons=2) Bs = make_inclusive_cut_dilepton_plus_tracks( dielectrons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dielectrons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclElectronMuonFakeEMuPlusTwoTrackSS( name="Hlt2CutBasedInclElectronMuonFakeEMuPlusTwoTrackSS", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body electron-muon events with same-sign leptons, e.g. B_s0 -> J/psi(1S) (-> e+ mu+) pi+ Line categories: - 4-body - electron-muon - fake emu """ pvs = make_pvs() dileptons = make_inclusive_cut_electronmuon( parent_id="J/psi(1S)", fake_electrons=1, fake_muons=1) Bs = make_inclusive_cut_dilepton_plus_tracks( dileptons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dileptons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)
[docs]@register_line_builder(all_lines) def Hlt2CutBasedInclDimuonFakeMuMuPlusTwoTrackSS( name="Hlt2CutBasedInclDimuonFakeMuMuPlusTwoTrackSS", prescale=_double_fake_prescale, persistreco=True): """ HLT2 line for cut-based inclusive selection of 4-body dimuon events with same-sign muons, e.g. B_s0 -> J/psi(1S) (-> mu+ mu+) pi+ Line categories: - 4-body - dimuon - fake mumu """ pvs = make_pvs() dimuons = make_inclusive_cut_dimuon(parent_id="J/psi(1S)", fake_muons=2) Bs = make_inclusive_cut_dilepton_plus_tracks( dimuons, pvs, DecayDescriptor='[B_s0 -> J/psi(1S) pi+ pi-]cc', n_tracks=2) return Hlt2Line( name=name, algs=rd_prefilter(require_GEC=True) + [dimuons, Bs], prescale=prescale, monitoring_variables=_RD_MONITORING_VARIABLES, persistreco=persistreco)