Skip to content
Snippets Groups Projects

rare baryonic lines

Merged Vitalii Lisovskyi requested to merge vlisovsk_rarebary into master
Files
3
###############################################################################
# (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)
+1
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)
Loading