Skip to content
Snippets Groups Projects
Commit d38d628c authored by Rosen Matev's avatar Rosen Matev :sunny:
Browse files

Merge branch 'vlisovsk_rarebary' into 'master'

rare baryonic lines

See merge request !1153
parents 992466c8 7f359eaa
No related branches found
No related tags found
1 merge request!1153rare baryonic lines
Pipeline #3735069 passed
......@@ -19,6 +19,7 @@ from . import rare_tau_decay_lines
from . import RpK_lines
from . import b_to_hemu
from . import b_to_hemu_control_modes
from . import baryonic
from . import b_to_majolep_majo_to_leppi
from . import qqbar_to_ll
from . import b_to_ll_LFV
......@@ -35,6 +36,7 @@ all_lines.update(rare_tau_decay_lines.all_lines)
all_lines.update(RpK_lines.all_lines)
all_lines.update(b_to_hemu.all_lines)
all_lines.update(b_to_hemu_control_modes.all_lines)
all_lines.update(baryonic.all_lines)
all_lines.update(b_to_majolep_majo_to_leppi.all_lines)
all_lines.update(qqbar_to_ll.all_lines)
all_lines.update(b_to_ll_LFV.hlt2_lines)
......
###############################################################################
# (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. #
###############################################################################
"""
Definition of rare baryonic lines.
Inspired by the StrippingRareBaryonicMuMu in Run 2.
The following modes are included at the moment:
+ Xib- -> Xi- mumu
+ Omegab- -> Omega- mumu
and identical channels with the dielectron. LLL/DDL/DDD combinations are included.
For the Xi- and Omega- reconstruction, the decay modes to Lambda pi- (Lambda K-) are used.
Both long and downstream tracks are allowed in the Xi/Omega and Lambda decay, which results in three track type categories (LLL, DDL and DDD).
"""
from PyConf import configurable
from Moore.config import register_line_builder
from Moore.lines import Hlt2Line
from GaudiKernel.SystemOfUnits import GeV, MeV
from RecoConf.reconstruction_objects import make_pvs_v2 as make_pvs
#from Hlt2Conf.algorithms import ParticleContainersMerger
from .builders.rd_prefilters import rd_prefilter
from .builders.baryonic_builders import (
make_xim_to_lambda_pi_lll,
make_xim_to_lambda_pi_ddl,
make_xim_to_lambda_pi_ddd,
make_omegam_to_lambda_k_lll,
make_omegam_to_lambda_k_ddl,
make_omegam_to_lambda_k_ddd,
make_bhadron,
)
from .builders.rdbuilder_thor import make_rd_detached_dielectron, make_rd_detached_dimuon
all_lines = {}
@register_line_builder(all_lines)
@configurable
def Hlt2RD_XibmToXimMuMu_LLL_Line(name="Hlt2RD_XibmToXimMuMu_LLL_Line",
prescale=1):
descriptor = "[Xi_b- -> J/psi(1S) Xi-]cc"
pvs = make_pvs()
make_dimuon = make_rd_detached_dimuon(
name="rd_detached_dimuon_for_ximumu",
parent_id='J/psi(1S)',
pt_dimuon_min=0 * MeV,
pt_muon_min=250 * MeV,
p_muon_min=3000 * MeV,
ipchi2_muon_min=4.,
pidmu_muon_min=2.,
adocachi2cut_max=20.,
bpvvdchi2_min=20.,
vchi2pdof_max=10.,
am_min=200. * MeV,
am_max=5500. * MeV,
same_sign=False)
xis = make_xim_to_lambda_pi_lll(name="xim_lll", pvs=pvs)
xib = make_bhadron(
name="xib_to_ximumu_lll",
pvs=pvs,
dilepton=make_dimuon,
hadron=xis,
descriptor=descriptor)
return Hlt2Line(
name=name,
algs=rd_prefilter() + [make_dimuon, xis, xib],
prescale=prescale)
@register_line_builder(all_lines)
@configurable
def Hlt2RD_XibmToXimMuMu_DDL_Line(name="Hlt2RD_XibmToXimMuMu_DDL_Line",
prescale=1):
descriptor = "[Xi_b- -> J/psi(1S) Xi-]cc"
pvs = make_pvs()
make_dimuon = make_rd_detached_dimuon(
name="rd_detached_dimuon_for_ximumu",
parent_id='J/psi(1S)',
pt_dimuon_min=0 * MeV,
pt_muon_min=200 * MeV,
p_muon_min=3000 * MeV,
ipchi2_muon_min=4.,
pidmu_muon_min=2.,
adocachi2cut_max=20.,
bpvvdchi2_min=20.,
vchi2pdof_max=10.,
am_min=200. * MeV,
am_max=5500. * MeV,
same_sign=False)
xis = make_xim_to_lambda_pi_ddl(name="xim_ddl", pvs=pvs)
xib = make_bhadron(
name="xib_to_ximumu_ddl",
pvs=pvs,
dilepton=make_dimuon,
hadron=xis,
descriptor=descriptor,
vchi2pdof_max=18.,
dira_min=0.995)
return Hlt2Line(
name=name,
algs=rd_prefilter() + [make_dimuon, xis, xib],
prescale=prescale)
@register_line_builder(all_lines)
@configurable
def Hlt2RD_XibmToXimMuMu_DDD_Line(name="Hlt2RD_XibmToXimMuMu_DDD_Line",
prescale=1):
descriptor = "[Xi_b- -> J/psi(1S) Xi-]cc"
pvs = make_pvs()
make_dimuon = make_rd_detached_dimuon(
name="rd_detached_dimuon_for_ximumu",
parent_id='J/psi(1S)',
pt_dimuon_min=0 * MeV,
pt_muon_min=200 * MeV,
p_muon_min=3000 * MeV,
ipchi2_muon_min=4.,
pidmu_muon_min=2.,
adocachi2cut_max=20.,
bpvvdchi2_min=20.,
vchi2pdof_max=10.,
am_min=200. * MeV,
am_max=5500. * MeV,
same_sign=False)
xis = make_xim_to_lambda_pi_ddd(name="xim_ddd", pvs=pvs)
xib = make_bhadron(
name="xib_to_ximumu_ddd",
pvs=pvs,
dilepton=make_dimuon,
hadron=xis,
descriptor=descriptor,
vchi2pdof_max=18.,
dira_min=0.995)
return Hlt2Line(
name=name,
algs=rd_prefilter() + [make_dimuon, xis, xib],
prescale=prescale)
@register_line_builder(all_lines)
@configurable
def Hlt2RD_OmegabmToOmegamMuMu_LLL_Line(
name="Hlt2RD_OmegabmToOmegamMuMu_LLL_Line", prescale=1):
descriptor = "[Omega_b- -> J/psi(1S) Omega-]cc"
pvs = make_pvs()
make_dimuon = make_rd_detached_dimuon(
name="rd_detached_dimuon_for_ximumu",
parent_id='J/psi(1S)',
pt_dimuon_min=0 * MeV,
pt_muon_min=250 * MeV,
p_muon_min=3000 * MeV,
ipchi2_muon_min=4.,
pidmu_muon_min=2.,
adocachi2cut_max=20.,
bpvvdchi2_min=20.,
vchi2pdof_max=10.,
am_min=200. * MeV,
am_max=5500. * MeV,
same_sign=False)
omegas = make_omegam_to_lambda_k_lll(name="omegam_lll", pvs=pvs)
omegab = make_bhadron(
name="omegab_to_omegamumu_lll",
pvs=pvs,
dilepton=make_dimuon,
hadron=omegas,
descriptor=descriptor)
return Hlt2Line(
name=name,
algs=rd_prefilter() + [make_dimuon, omegas, omegab],
prescale=prescale)
@register_line_builder(all_lines)
@configurable
def Hlt2RD_OmegabmToOmegamMuMu_DDL_Line(
name="Hlt2RD_OmegabmToOmegamMuMu_DDL_Line", prescale=1):
descriptor = "[Omega_b- -> J/psi(1S) Omega-]cc"
pvs = make_pvs()
make_dimuon = make_rd_detached_dimuon(
name="rd_detached_dimuon_for_ximumu",
parent_id='J/psi(1S)',
pt_dimuon_min=0 * MeV,
pt_muon_min=250 * MeV, #going back to 250 as the rate is too high
p_muon_min=3000 * MeV,
ipchi2_muon_min=4.,
pidmu_muon_min=2.,
adocachi2cut_max=20.,
bpvvdchi2_min=20.,
vchi2pdof_max=10.,
am_min=200. * MeV,
am_max=5500. * MeV,
same_sign=False)
omegas = make_omegam_to_lambda_k_ddl(name="omegam_ddl", pvs=pvs)
omegab = make_bhadron(
name="omegab_to_omegamumu_ddl",
pvs=pvs,
dilepton=make_dimuon,
hadron=omegas,
descriptor=descriptor,
vchi2pdof_max=18., #going back to 16 as the rate is too high
dira_min=0.995)
return Hlt2Line(
name=name,
algs=rd_prefilter() + [make_dimuon, omegas, omegab],
prescale=prescale)
@register_line_builder(all_lines)
@configurable
def Hlt2RD_OmegabmToOmegamMuMu_DDD_Line(
name="Hlt2RD_OmegabmToOmegamMuMu_DDD_Line", prescale=1):
descriptor = "[Omega_b- -> J/psi(1S) Omega-]cc"
pvs = make_pvs()
make_dimuon = make_rd_detached_dimuon(
name="rd_detached_dimuon_for_ximumu",
parent_id='J/psi(1S)',
pt_dimuon_min=0 * MeV,
pt_muon_min=250 * MeV, #going back to 250 as the rate is too high
p_muon_min=3000 * MeV,
ipchi2_muon_min=4.,
pidmu_muon_min=2.,
adocachi2cut_max=20.,
bpvvdchi2_min=20.,
vchi2pdof_max=10.,
am_min=200. * MeV,
am_max=5500. * MeV,
same_sign=False)
omegas = make_omegam_to_lambda_k_ddd(name="omegam_ddd", pvs=pvs)
omegab = make_bhadron(
name="omegab_to_omegamumu_ddd",
pvs=pvs,
dilepton=make_dimuon,
hadron=omegas,
descriptor=descriptor,
vchi2pdof_max=18.,
dira_min=0.995)
return Hlt2Line(
name=name,
algs=rd_prefilter() + [make_dimuon, omegas, omegab],
prescale=prescale)
@register_line_builder(all_lines)
@configurable
def Hlt2RD_XibmToXimEE_LLL_Line(name="Hlt2RD_XibmToXimEE_LLL_Line",
prescale=1):
descriptor = "[Xi_b- -> J/psi(1S) Xi-]cc"
pvs = make_pvs()
make_dielectron = make_rd_detached_dielectron(
vfaspfchi2ndof_max=9.,
pid_e_min=2.,
pt_e_min=0.3 * GeV,
am_min=0 * MeV,
am_max=5500 * MeV,
pt_diE_min=0 * MeV)
xis = make_xim_to_lambda_pi_lll(name="xim_lll", pvs=pvs)
xib = make_bhadron(
name="xib_to_xiee_lll",
pvs=pvs,
dilepton=make_dielectron,
hadron=xis,
descriptor=descriptor)
return Hlt2Line(
name=name,
algs=rd_prefilter() + [make_dielectron, xis, xib],
prescale=prescale)
@register_line_builder(all_lines)
@configurable
def Hlt2RD_XibmToXimEE_DDL_Line(name="Hlt2RD_XibmToXimEE_DDL_Line",
prescale=1):
descriptor = "[Xi_b- -> J/psi(1S) Xi-]cc"
pvs = make_pvs()
make_dielectron = make_rd_detached_dielectron(
vfaspfchi2ndof_max=9.,
pid_e_min=2.,
pt_e_min=0.2 * GeV,
am_min=0 * MeV,
am_max=5500 * MeV,
pt_diE_min=0 * MeV)
xis = make_xim_to_lambda_pi_ddl(name="xim_ddl", pvs=pvs)
xib = make_bhadron(
name="xib_to_xiee_ddl",
pvs=pvs,
dilepton=make_dielectron,
hadron=xis,
descriptor=descriptor,
vchi2pdof_max=18.,
dira_min=0.995)
return Hlt2Line(
name=name,
algs=rd_prefilter() + [make_dielectron, xis, xib],
prescale=prescale)
@register_line_builder(all_lines)
@configurable
def Hlt2RD_XibmToXimEE_DDD_Line(name="Hlt2RD_XibmToXimEE_DDD_Line",
prescale=1):
descriptor = "[Xi_b- -> J/psi(1S) Xi-]cc"
pvs = make_pvs()
xis = make_xim_to_lambda_pi_ddd(name="xim_ddd", pvs=pvs)
make_dielectron = make_rd_detached_dielectron(
vfaspfchi2ndof_max=9.,
pid_e_min=2.,
pt_e_min=0.2 * GeV,
am_min=0 * MeV,
am_max=5500 * MeV,
pt_diE_min=0 * MeV)
xib = make_bhadron(
name="xib_to_xiee_ddd",
pvs=pvs,
dilepton=make_dielectron,
hadron=xis,
descriptor=descriptor,
vchi2pdof_max=18.,
dira_min=0.995)
return Hlt2Line(
name=name,
algs=rd_prefilter() + [make_dielectron, xis, xib],
prescale=prescale)
@register_line_builder(all_lines)
@configurable
def Hlt2RD_OmegabmToOmegamEE_LLL_Line(name="Hlt2RD_OmegabmToOmegamEE_LLL_Line",
prescale=1):
descriptor = "[Omega_b- -> J/psi(1S) Omega-]cc"
pvs = make_pvs()
omegas = make_omegam_to_lambda_k_lll(name="omegam_lll", pvs=pvs)
make_dielectron = make_rd_detached_dielectron(
vfaspfchi2ndof_max=9.,
pid_e_min=2.,
pt_e_min=0.3 * GeV,
am_min=0 * MeV,
am_max=5500 * MeV,
pt_diE_min=0 * MeV)
omegab = make_bhadron(
name="omegab_to_omegaee_lll",
pvs=pvs,
dilepton=make_dielectron,
hadron=omegas,
descriptor=descriptor)
return Hlt2Line(
name=name,
algs=rd_prefilter() + [make_dielectron, omegas, omegab],
prescale=prescale)
@register_line_builder(all_lines)
@configurable
def Hlt2RD_OmegabmToOmegamEE_DDL_Line(name="Hlt2RD_OmegabmToOmegamEE_DDL_Line",
prescale=1):
descriptor = "[Omega_b- -> J/psi(1S) Omega-]cc"
pvs = make_pvs()
make_dielectron = make_rd_detached_dielectron(
vfaspfchi2ndof_max=9.,
pid_e_min=2.,
pt_e_min=0.2 * GeV,
am_min=0 * MeV,
am_max=5500 * MeV,
pt_diE_min=0 * MeV)
omegas = make_omegam_to_lambda_k_ddl(name="omegam_ddl", pvs=pvs)
omegab = make_bhadron(
name="omegab_to_omegaee_ddl",
pvs=pvs,
dilepton=make_dielectron,
hadron=omegas,
descriptor=descriptor,
vchi2pdof_max=18.,
dira_min=0.995)
return Hlt2Line(
name=name,
algs=rd_prefilter() + [make_dielectron, omegas, omegab],
prescale=prescale)
@register_line_builder(all_lines)
@configurable
def Hlt2RD_OmegabmToOmegamEE_DDD_Line(name="Hlt2RD_OmegabmToOmegamEE_DDD_Line",
prescale=1):
descriptor = "[Omega_b- -> J/psi(1S) Omega-]cc"
pvs = make_pvs()
make_dielectron = make_rd_detached_dielectron(
vfaspfchi2ndof_max=9.,
pid_e_min=2.,
pt_e_min=0.2 * GeV,
am_min=0 * MeV,
am_max=5500 * MeV,
pt_diE_min=0 * MeV)
omegas = make_omegam_to_lambda_k_ddd(name="omegam_ddd", pvs=pvs)
omegab = make_bhadron(
name="omegab_to_omegaee_ddd",
pvs=pvs,
dilepton=make_dielectron,
hadron=omegas,
descriptor=descriptor,
vchi2pdof_max=18.,
dira_min=0.995)
return Hlt2Line(
name=name,
algs=rd_prefilter() + [make_dielectron, omegas, omegab],
prescale=prescale)
###############################################################################
# (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. #
###############################################################################
import Functors as F
from PyConf import configurable
from Functors.math import in_range
from GaudiKernel.SystemOfUnits import MeV, GeV, mm, ps
from Hlt2Conf.algorithms_thor import require_all, ParticleCombiner
from .rdbuilder_thor import make_rd_detached_pions, make_rd_detached_kaons, make_rd_lambda_lls, make_rd_lambda_dds, make_rd_detached_down_pions, make_rd_detached_down_kaons
@configurable
def make_xim_to_lambda_pi(
name,
lambdas,
pions,
pvs,
comb_m_min=1260 * MeV,
comb_m_max=1390 * MeV,
m_min=1272 * MeV,
m_max=1372 * MeV,
comb_p_min=9. * GeV,
p_min=9.5 * GeV,
docachi2_max=25.,
vchi2pdof_max=20.,
bpvvdz_min=1 * mm,
bpvdira_min=None,
):
"""
Make Xi- -> Lambda pi-.
"""
comb_cut = require_all(
in_range(comb_m_min, F.MASS, comb_m_max), F.P > comb_p_min,
F.MAXDOCACHI2CUT(docachi2_max))
vertex_cut = require_all(
in_range(m_min, F.MASS, m_max), F.P > p_min, F.CHI2DOF < vchi2pdof_max,
F.BPVVDZ(pvs) > bpvvdz_min)
if bpvdira_min is not None:
vertex_cut = require_all(
in_range(m_min, F.MASS, m_max), F.P > p_min,
F.CHI2DOF < vchi2pdof_max,
F.BPVVDZ(pvs) > bpvvdz_min,
F.BPVDIRA(pvs) > bpvdira_min)
return ParticleCombiner([lambdas, pions],
name=name,
DecayDescriptor="[Xi- -> Lambda0 pi-]cc",
CombinationCut=comb_cut,
CompositeCut=vertex_cut)
@configurable
def make_omegam_to_lambda_k(
name,
lambdas,
kaons,
pvs,
comb_m_min=1612 * MeV,
comb_m_max=1732 * MeV,
m_min=1622 * MeV,
m_max=1722 * MeV,
comb_p_min=9. * GeV,
p_min=9.5 * GeV,
docachi2_max=25.,
vchi2pdof_max=20.,
bpvvdz_min=0.5 * mm,
bpvdira_min=None,
):
"""
Make Omega- -> Lambda K-.
"""
comb_cut = require_all(
in_range(comb_m_min, F.MASS, comb_m_max), F.P > comb_p_min,
F.MAXDOCACHI2CUT(docachi2_max))
vertex_cut = require_all(
in_range(m_min, F.MASS, m_max), F.P > p_min, F.CHI2DOF < vchi2pdof_max,
F.BPVVDZ(pvs) > bpvvdz_min)
if bpvdira_min is not None:
vertex_cut = require_all(
in_range(m_min, F.MASS, m_max), F.P > p_min,
F.CHI2DOF < vchi2pdof_max,
F.BPVVDZ(pvs) > bpvvdz_min,
F.BPVDIRA(pvs) > bpvdira_min)
return ParticleCombiner([lambdas, kaons],
name=name,
DecayDescriptor="[Omega- -> Lambda0 K-]cc",
CombinationCut=comb_cut,
CompositeCut=vertex_cut)
def make_xim_to_lambda_pi_lll(
name,
pvs,
comb_m_min=1260 * MeV,
comb_m_max=1390 * MeV,
m_min=1272 * MeV,
m_max=1372 * MeV,
comb_p_min=9. * GeV,
p_min=9.5 * GeV,
docachi2_max=25.,
vchi2pdof_max=16.,
bpvvdz_min=1 * mm,
):
lambdas = make_rd_lambda_lls(bpvvdchi2_min=4., mass_window=35. * MeV)
pions = make_rd_detached_pions(
p_min=0., pt_min=0., mipchi2dvprimary_min=9., pid=None)
return make_xim_to_lambda_pi(name, pvs=pvs, lambdas=lambdas, pions=pions)
def make_xim_to_lambda_pi_ddl(
name,
pvs,
comb_m_min=1260 * MeV,
comb_m_max=1390 * MeV,
m_min=1272 * MeV,
m_max=1372 * MeV,
comb_p_min=9. * GeV,
p_min=9.5 * GeV,
docachi2_max=25.,
vchi2pdof_max=20.,
bpvvdz_min=1 * mm,
):
lambdas = make_rd_lambda_dds(
bpvvdchi2_min=10., vchi2pdof_max=18., mass_window=35. * MeV)
pions = make_rd_detached_pions(
p_min=0., pt_min=0., mipchi2dvprimary_min=9., pid=None)
return make_xim_to_lambda_pi(name, pvs=pvs, lambdas=lambdas, pions=pions)
def make_xim_to_lambda_pi_ddd(
name,
pvs,
comb_m_min=1260 * MeV,
comb_m_max=1390 * MeV,
m_min=1272 * MeV,
m_max=1372 * MeV,
comb_p_min=9. * GeV,
p_min=9.5 * GeV,
docachi2_max=25.,
vchi2pdof_max=20.,
bpvvdz_min=20 * mm,
bpvdira_min=0.997,
):
lambdas = make_rd_lambda_dds(
bpvvdchi2_min=10., vchi2pdof_max=18., mass_window=35. * MeV)
pions = make_rd_detached_down_pions(p_min=0., pt_min=0., pid=None)
return make_xim_to_lambda_pi(name, pvs=pvs, lambdas=lambdas, pions=pions)
def make_omegam_to_lambda_k_lll(
name,
pvs,
comb_m_min=1612 * MeV,
comb_m_max=1732 * MeV,
m_min=1622 * MeV,
m_max=1722 * MeV,
comb_p_min=9. * GeV,
p_min=9.5 * GeV,
docachi2_max=25.,
vchi2pdof_max=16.,
bpvvdz_min=0.5 * mm,
):
lambdas = make_rd_lambda_lls(bpvvdchi2_min=4., mass_window=35. * MeV)
kaons = make_rd_detached_kaons(
p_min=0., pt_min=0., mipchi2dvprimary_min=9., pid=(F.PID_K > -2.))
return make_omegam_to_lambda_k(name, pvs=pvs, lambdas=lambdas, kaons=kaons)
def make_omegam_to_lambda_k_ddl(
name,
pvs,
comb_m_min=1612 * MeV,
comb_m_max=1732 * MeV,
m_min=1622 * MeV,
m_max=1722 * MeV,
comb_p_min=9. * GeV,
p_min=9.5 * GeV,
docachi2_max=25.,
vchi2pdof_max=20.,
bpvvdz_min=0.5 * mm,
):
lambdas = make_rd_lambda_dds(
bpvvdchi2_min=10., vchi2pdof_max=18., mass_window=35. * MeV)
kaons = make_rd_detached_kaons(
p_min=0., pt_min=0., mipchi2dvprimary_min=9., pid=(F.PID_K > -2.))
return make_omegam_to_lambda_k(name, pvs=pvs, lambdas=lambdas, kaons=kaons)
def make_omegam_to_lambda_k_ddd(name,
pvs,
comb_m_min=1612 * MeV,
comb_m_max=1732 * MeV,
m_min=1622 * MeV,
m_max=1722 * MeV,
comb_p_min=9. * GeV,
p_min=9.5 * GeV,
docachi2_max=25.,
vchi2pdof_max=20.,
bpvvdz_min=20 * mm,
bpvltime_min=0 * ps,
bpvdira_min=0.997):
lambdas = make_rd_lambda_dds(
bpvvdchi2_min=10., vchi2pdof_max=18., mass_window=35. * MeV)
kaons = make_rd_detached_down_kaons(
p_min=0., pt_min=0., pid=(F.PID_K > -2.))
return make_omegam_to_lambda_k(name, pvs=pvs, lambdas=lambdas, kaons=kaons)
@configurable
def make_bhadron(pvs,
dilepton,
hadron,
descriptor,
name,
min_mass=4800 * MeV,
max_mass=7100 * MeV,
docachi2_max=25.,
vchi2pdof_max=16.,
ipchi2_max=25.,
bpvvdchi2_min=60.,
dira_min=0.9995):
'''Builder for b-hadron decaying to light hadron and dilepton.'''
name = "make_bhadron_for_" + name
combination_code = require_all(
in_range(min_mass * 0.9, F.MASS, max_mass * 1.1),
F.MAXDOCACHI2CUT(docachi2_max))
vertex_code = require_all(
in_range(min_mass, F.MASS, max_mass), F.CHI2 < vchi2pdof_max,
F.BPVDIRA(pvs) > dira_min,
F.BPVIPCHI2(pvs) < ipchi2_max,
F.BPVFDCHI2(pvs) > bpvvdchi2_min)
return ParticleCombiner([dilepton, hadron],
name=name,
DecayDescriptor=descriptor,
CombinationCut=combination_code,
CompositeCut=vertex_code)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment