Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ipolyako/Moore
  • qhan/Moore
  • allightb/Moore
  • gpietrzy/Moore
  • smaccoli/Moore
  • rmatev/Moore
  • bldelane/Moore
  • egranado/Moore
  • peilian/Moore
  • rcurrie/Moore
  • mstahl/Moore
  • jonrob/Moore
  • raaij/Moore
  • lhcb/Moore
14 results
Show changes
Commits on Source (47)
Showing
with 2384 additions and 766 deletions
......@@ -53,7 +53,7 @@ if bad_size:
result["validator.output"] = result.Quote(result_str)
countErrorLines({"FATAL":0,"ERROR":0,"WARNING":3})
countErrorLines({"FATAL":0,"ERROR":0,"WARNING":1})
</text></argument>
</extension>
......@@ -12,7 +12,7 @@
Run like any other options file:
./Moore/run gaudirun.py hlt2_example.py
./Moore/run gaudirun.py hlt2_b2oc.py
"""
from Moore import options, run_moore
from Moore.tcks import dump_hlt2_configuration
......@@ -34,121 +34,43 @@ from Hlt2Conf.lines.b_to_open_charm import all_lines
#from Hlt2Conf.lines.b_to_open_charm.hlt2_b2oc import BdToDsmK_DsmToHHH_hlt2_line
###############################################################################
# configure input data set (uncomment the "root:// .... " lines)
# configure input data set
###############################################################################
# TIP: to go from a BK path to a root-URL
# 1) lb-run LHCbDirac dirac-bookkeeping-get-files -B <BK path> # to get list of LFN's
# 2) lb-run LHCbDirac dirac-dms-lfn-accessURL --Protocol="xroot" -l <an LFN> # to get root-URL
# Update sample BK paths are:
# Without HLT1:
# /MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/<EVT NUMBER>/LDST
# After HLT1:
# /MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/Trig0x52000000/<EVT NUMBER>/LDST
input_files = [
# MinBias 30000000 BEFORE Hlt1
# sim+std://MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/30000000/LDST
# 'root://xrootd.echo.stfc.ac.uk/lhcb:prod/lhcb/MC/Upgrade/LDST/00069155/0000/00069155_00000878_2.ldst'
# MinBias 30000000 AFTER Hlt1
# evt+std://MC/Upgrade/Beam7000GeV-Upgrade-MagUp-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/Trig0x52000000/30000000/LDST
# 'root://xrootd.echo.stfc.ac.uk/lhcb:prod/lhcb/MC/Upgrade/LDST/00077381/0000/00077381_00000801_1.ldst'
# /MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/Trig0x52000000/30000000/LDST
# https://gitlab.cern.ch/lhcb-b2oc/b2ocupgrade/-/blob/master/Moore_input_files/min_bias.ldst has a large number
# of input files (>100) in a "ready to plug" format, here only the first 5 are listed
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000001_1.ldst',
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000002_1.ldst',
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000003_1.ldst',
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000004_1.ldst',
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000005_1.ldst',
# B2OC upgrade MC:
# Bu2DK_D2KsHH, 12165106
# evt+std://MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/12165106/LDST
# 'root://door05.pic.es:1094/pnfs/pic.es/data/lhcb/MC/Upgrade/LDST/00070352/0000/00070352_00000047_2.ldst'
# evt+std://MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/Trig0x52000000/12165106/LDST
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075817/0000/00075817_00000003_1.ldst'
# B2OC upgrade MC:
# DsK, 13264031
# /MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/Trig0x52000000/13264031/LDST
# /lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000001_1.ldst
# /lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000003_1.ldst
# /lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000004_1.ldst
# /lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000005_1.ldst
# /lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000006_1.ldst
# /lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000007_1.ldst
# /lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000009_1.ldst
# /lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000010_1.ldst
# /lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000011_1.ldst
# /lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000012_1.ldst
'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000001_1.ldst'
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000003_1.ldst',
# 'root://lhcbxrootd-kit.gridka.de//pnfs/gridka.de/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000004_1.ldst',
# 'root://lhcbxrootd-kit.gridka.de//pnfs/gridka.de/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000005_1.ldst',
# 'root://lhcbxrootd-kit.gridka.de//pnfs/gridka.de/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000006_1.ldst',
# 'root://lhcbxrootd-kit.gridka.de//pnfs/gridka.de/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000007_1.ldst',
# 'root://lhcbxrootd-kit.gridka.de//pnfs/gridka.de/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000009_1.ldst',
# 'root://ccxrootdlhcb.in2p3.fr//pnfs/in2p3.fr/data/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000010_1.ldst',
# 'root://ccxrootdlhcb.in2p3.fr//pnfs/in2p3.fr/data/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000011_1.ldst',
# 'root://ccxrootdlhcb.in2p3.fr//pnfs/in2p3.fr/data/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000012_1.ldst'
# B2OC upgrade MC:
# DDK, 11196010
# /MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/11196010/LDST
# /lhcb/MC/Upgrade/LDST/00074194/0000/00074194_00000109_2.ldst
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00074194/0000/00074194_00000109_2.ldst'
# B2OC upgrade MC:
# DDK, 11196010
# /MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/11196010/LDST
# /lhcb/MC/Upgrade/LDST/00074194/0000/00074194_00000109_2.ldst
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00074194/0000/00074194_00000109_2.ldst'
# B2OC upgrade MC:
# DDK, 11196010
# /MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/11196010/LDST
# /lhcb/MC/Upgrade/LDST/00074194/0000/00074194_00000109_2.ldst
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00074194/0000/00074194_00000109_2.ldst'
# B2OC upgrade MC:
# D*Kpi, 11164611
# /MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim10-Up03-OldP8Tuning/Reco-Up02/11164611/XDST
# /lhcb/MC/Upgrade/XDST/00102881/0000//00102881_00000001_2.xdst
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/XDST/00102881/0000/00102881_00000001_2.xdst'
# MC sample from hlt_example
# D*-tagged D0 to KK, 27163002
# sim+std://MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/27163002/LDST
# 'root://lhcbxrootd-kit.gridka.de//pnfs/gridka.de/lhcb/MC/Upgrade/LDST/00075807/0000/00075807_00000009_1.ldst'
# 'root://lhcbxrootd-kit.gridka.de//pnfs/gridka.de/lhcb/MC/Upgrade/LDST/00070317/0000/00070317_00000012_2.ldst'
# B2OC upgrade MC:
# B2DD 11296013
# /MC/Upgrade/Beam7000GeV-Upgrade-MagDown-Nu7.6-25ns-Pythia8/Sim09c-Up02/Reco-Up01/Trig0x52000000/11296013/LDST
# /lhcb/MC/Upgrade/LDST/00075825/0000/00075825_00000002_1.ldst
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075825/0000/00075825_00000002_1.ldst'
]
options.input_files = input_files
options.input_type = 'ROOT'
# List of available upgrade MC is on
# https://twiki.cern.ch/twiki/bin/viewauth/LHCbPhysics/B2OCUpgrade#Upgrade_MC_event_types_available
# Some locations are listed in
# https://gitlab.cern.ch/lhcb-b2oc/b2ocupgrade/-/blob/master/Moore_input_files/
# Uncomment the following lines to configure input data from grid locations
#input_files = [
# # MinBias 30000000 AFTER Hlt1
# 'root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/LDST/00075219/0000/00075219_00000001_1.ldst',
#]
#options.input_files = input_files
#options.input_type = 'ROOT'
#options.simulation = True
#options.data_type = 'Upgrade'
#options.dddb_tag = 'dddb-20171126'
#options.conddb_tag = 'sim-20171127-vc-md100'
# Configure input data from testfileDB
# Comment the next line if configure input data above
options.set_input_and_conds_from_testfiledb('upgrade_minbias_hlt1_filtered')
# When running from Upgrade MC,
# must use the post-juggling locations of the raw event
options.input_raw_format = 4.3
# When running from Upgrade MC, must use the post-juggling locations of the raw
# event
# Write the output file
###options.output_file = 'hlt2_b2oc_lines.dst'
###options.output_type = 'ROOT'
###############################################################################
# Set a reasonable number of events
###############################################################################
options.evt_max = 100
options.evt_max = 1000
options.simulation = True
options.data_type = 'Upgrade'
options.dddb_tag = 'dddb-20171126'
options.conddb_tag = 'sim-20171127-vc-md100'
# Write the output file
options.output_file = 'hlt2_b2oc_lines.dst'
options.output_type = 'ROOT'
def make_lines():
......
......@@ -21,10 +21,10 @@ from RecoConf.reconstruction_objects import reconstruction
from Hlt2Conf.lines.b_to_open_charm import sprucing_lines
input_files = ['hlt2_2or3bodytopo_fromfile.dst']
input_files = ['hlt2_2or3bodytopo_fromfile.mdf']
options.input_files = input_files
options.input_type = 'ROOT'
options.input_type = 'MDF'
options.evt_max = -1
options.simulation = True
......
......@@ -21,10 +21,10 @@ from RecoConf.reconstruction_objects import reconstruction
from Hlt2Conf.lines.b_to_open_charm import sprucing_lines
input_files = ['hlt2_2or3bodytopo_realtime.dst']
input_files = ['hlt2_2or3bodytopo_realtime.mdf']
options.input_files = input_files
options.input_type = 'ROOT'
options.input_type = 'MDF'
options.evt_max = -1
options.simulation = True
......
......@@ -10,67 +10,62 @@
###############################################################################
"""Configuration file of a throughput test using ThOr-based selection algorithms.
"""
from PyConf.application import all_nodes_and_algs
from Moore import options, run_moore
from RecoConf.global_tools import stateProvider_with_simplified_geom, trackMasterExtrapolator_with_simplified_geom
from RecoConf.reconstruction_objects import reconstruction
from RecoConf.hlt2_global_reco import reconstruction as hlt2_reconstruction, make_fastest_reconstruction
from Hlt2Conf.lines import all_lines
# Several B2OC lines must be excluded because they could not be
# fully converted to ThOr yet. The reasons for this are explained in
# https://gitlab.cern.ch/lhcb/Moore/-/merge_requests/1033
from Hlt2Conf.lines.b_to_open_charm import all_lines as b2oc_lines
from Hlt2Conf.lines.charm.hyperons import all_lines as hyperons_lines
b2oc_exclusions = [
# b_to_dhhh.py
'Hlt2B2OC_BuToD0PiPiPi_D0ToHH_Line',
'Hlt2B2OC_BuToD0KPiPi_D0ToHH_Line',
'Hlt2B2OC_BuToD0KKPi_D0ToKPi_Line',
'Hlt2B2OC_BuToD0PbarPPi_D0ToKPi_Line',
'Hlt2B2OC_BdToDmPiPiPi_DmToPimPimKp_Line',
'Hlt2B2OC_BdToDmKPiPi_DmToPimPimKp_Line',
'Hlt2B2OC_BdToDmKKPi_DmToPimPimKp_Line',
'Hlt2B2OC_BdToDmPbarPPi_DmToPimPimKp_Line',
'Hlt2B2OC_BdToDmKmPipPip_DmToPimPimKp_Line',
'Hlt2B2OC_BdToDsmPiPiPi_DsmToKmKpPim_Line',
'Hlt2B2OC_BdToDsmKPiPi_DsmToKmKpPim_Line',
'Hlt2B2OC_BdToDsmKKPi_DsmToKmKpPim_Line',
'Hlt2B2OC_BdToDsmPbarPPi_DsmToKmKpPim_Line',
# bbaryon_to_cbaryon_hhh.py
'Hlt2B2OC_LbToLcpPiPiPi_LcpToPKPi_Line',
'Hlt2B2OC_LbToLcpKPiPi_LcpToPKPi_Line',
'Hlt2B2OC_LbToLcpKKPi_LcpToPKPi_Line',
'Hlt2B2OC_LbToLcpPbarPPi_LcpToPKPi_Line',
'Hlt2B2OC_Xib0ToXicpPiPiPi_XicpToPKPi_Line',
'Hlt2B2OC_Xib0ToXicpKPiPi_XicpToPKPi_Line',
'Hlt2B2OC_Xib0ToXicpKKPi_XicpToPKPi_Line',
'Hlt2B2OC_Xib0ToXicpPbarPPi_XicpToPKPi_Line',
'Hlt2B2OC_XibmToXic0PiPiPi_Xic0ToPKKPi_Line',
'Hlt2B2OC_XibmToXic0KPiPi_Xic0ToPKKPi_Line',
'Hlt2B2OC_XibmToXic0KKPi_Xic0ToPKKPi_Line',
'Hlt2B2OC_XibmToXic0PbarPPi_Xic0ToPKKPi_Line',
'Hlt2B2OC_OmbmToOmc0PiPiPi_Omc0ToPKKPi_Line',
'Hlt2B2OC_OmbmToOmc0KPiPi_Omc0ToPKKPi_Line',
'Hlt2B2OC_OmbmToOmc0KKPi_Omc0ToPKKPi_Line',
'Hlt2B2OC_OmbmToOmc0PbarPPi_Omc0ToPKKPi_Line',
# hlt2_b2oc.py
'Hlt2B2OC_BdToDmPi_DmToPimPimKp_Line',
'Hlt2B2OC_BdToDmK_DmToPimPimKp_Line'
]
def get_all_algs_cpp_types(top_node):
return [alg.type() for alg in all_nodes_and_algs(top_node, True)[1]]
def is_DVCommonBase_alg(alg):
# a Gaudi::Property registers it's owner and appends it to the doc string
# e.g. the doc of ModifyLocations in DVCommonBase is:
# ' if set to false, does not append /Particles to outputParticles location [DVCommonBase<GaudiAlgorithm>] '
# so as a proxy if something inherits from DVCommonBase we check if we can find this property
return '[DVCommonBase<' in alg._propertyDocDct.get("ModifyLocations", "")
def check_for_known_issues(line):
all_algs = get_all_algs_cpp_types(line.node)
# filter out lines which will crash in multi threaded mode
# this check is likely incomplete....
# what else is not thread safe?
# For now we just look for anything that inherits from DVCommonBase
return [a for a in all_algs if is_DVCommonBase_alg(a)]
def make_lines():
lines = []
for (name, builder) in b2oc_lines.items():
# Ignore B2OC lines that use LoKi functors
if (name in b2oc_exclusions):
continue
# Also exclude B2OC lines that use the Ks makers
if ('Ks' in name):
continue
lines.append(builder())
lines.extend([builder() for builder in hyperons_lines.values()])
filtered = []
def filtered_add(builders, lines, filtered):
# Several B2OC lines must be excluded because they could not be
# fully converted to ThOr yet. The reasons for this are explained in
# https://gitlab.cern.ch/lhcb/Moore/-/merge_requests/1033
# Other lines also still use non-thread safe combiners or filters
# thus we don't actually use all lines but reject the problematic ones
for builder in builders:
line = builder()
if not (reason := check_for_known_issues(line)):
lines.append(line)
else:
filtered.append((line.name, reason))
filtered_add(all_lines.values(), lines, filtered)
print(f"Running test with {len(lines)} lines")
print(f"Following {len(filtered)} lines were automatically excluded:")
print(
"Name of Line ---- list of found algos that are known to be not thread safe"
)
for l, r in filtered:
print(f"{l} ---- {r}")
return lines
......@@ -78,6 +73,9 @@ public_tools = [
trackMasterExtrapolator_with_simplified_geom(),
stateProvider_with_simplified_geom()
]
options.scheduler_legacy_mode = False
with reconstruction.bind(from_file=False),\
hlt2_reconstruction.bind(make_reconstruction=make_fastest_reconstruction):
config = run_moore(options, make_lines, public_tools)
......@@ -18,7 +18,6 @@ from . import spruce_b2oc
from . import b_to_dhhh
from . import b_to_dd
from . import b_to_ddh
from . import b_to_dx_ltu
from . import bbaryon_to_cbaryon_d
from . import bbaryon_to_cbaryon_dh
from . import bbaryon_to_cbaryon_h
......@@ -33,7 +32,6 @@ all_lines = {}
all_lines.update(b_to_dhhh.all_lines)
all_lines.update(b_to_dd.all_lines)
all_lines.update(b_to_ddh.all_lines)
all_lines.update(b_to_dx_ltu.all_lines)
all_lines.update(bbaryon_to_cbaryon_d.all_lines)
all_lines.update(bbaryon_to_cbaryon_dh.all_lines)
all_lines.update(bbaryon_to_cbaryon_h.all_lines)
......
###############################################################################
# (c) Copyright 2019 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 B2OC BToLcpbarh lines
"""
from __future__ import absolute_import, division, print_function
from Hlt2Conf.lines.b_to_open_charm.utils import check_process
from Hlt2Conf.lines.b_to_open_charm.builders import basic_builder
from Hlt2Conf.lines.b_to_open_charm.builders import cbaryon_builder
from Hlt2Conf.lines.b_to_open_charm.builders import b_builder
###########################################################
# Form the B+ -> Lcbar- p+ pi+, Lcbar- --> pbar K+ pi-
##########################################################
@check_process
def make_BuToLcmPPi_LcmToPKPi(process):
if process == 'spruce':
pion = basic_builder.make_soft_pions(pi_pidk_max=None)
proton = basic_builder.make_soft_protons(p_pidp_min=None)
lc = cbaryon_builder.make_lc_to_pkpi(
pi_pidk_max=None, k_pidk_min=None, p_pidp_min=None)
elif process == 'hlt2':
pion = basic_builder.make_soft_pions()
proton = basic_builder.make_soft_protons()
lc = cbaryon_builder.make_lc_to_pkpi()
line_alg = b_builder.make_b2chh(
particles=[proton, pion, lc],
descriptors=['[B+ -> p+ pi+ Lambda_c~-]cc'])
return line_alg
###########################################################
# Form the B+ -> Lcbar- p+ K+, Lcbar- --> pbar K+ pi-
##########################################################
@check_process
def make_BuToLcmPK_LcmToPKPi(process):
if process == 'spruce':
kaon = basic_builder.make_soft_kaons(k_pidk_min=None)
proton = basic_builder.make_soft_protons(p_pidp_min=None)
lc = cbaryon_builder.make_lc_to_pkpi(
pi_pidk_max=None, k_pidk_min=None, p_pidp_min=None)
elif process == 'hlt2':
kaon = basic_builder.make_soft_kaons()
proton = basic_builder.make_soft_protons()
lc = cbaryon_builder.make_lc_to_pkpi()
line_alg = b_builder.make_b2chh(
particles=[proton, kaon, lc],
descriptors=['[B+ -> p+ K+ Lambda_c~-]cc'])
return line_alg
......@@ -15,9 +15,9 @@ from __future__ import absolute_import, division, print_function
from Moore.config import HltLine, register_line_builder
from Hlt2Conf.lines.b_to_open_charm.prefilters import b2oc_prefilters
from Hlt2Conf.algorithms import ParticleContainersMerger
from PyConf import configurable
from Hlt2Conf.lines.b_to_open_charm.prefilters import b2oc_prefilters
from Hlt2Conf.lines.b_to_open_charm.builders import d_builder
from Hlt2Conf.lines.b_to_open_charm.builders import b_builder
......@@ -30,7 +30,6 @@ all_lines = {}
@register_line_builder(all_lines)
@configurable
def BdToDpDm_DpToHHH_line(name='Hlt2B2OC_BdToDpDm_DpToHHH_Line', prescale=1):
d = d_builder.make_dplus_to_hhh()
line_alg = b_builder.make_b2x(
......@@ -40,7 +39,6 @@ def BdToDpDm_DpToHHH_line(name='Hlt2B2OC_BdToDpDm_DpToHHH_Line', prescale=1):
@register_line_builder(all_lines)
@configurable
def BdToDspDsm_DspToHHH_line(name='Hlt2B2OC_BdToDspDsm_DspToHHH_Line',
prescale=1):
ds = d_builder.make_dsplus_to_hhh()
......@@ -51,7 +49,6 @@ def BdToDspDsm_DspToHHH_line(name='Hlt2B2OC_BdToDspDsm_DspToHHH_Line',
@register_line_builder(all_lines)
@configurable
def BdToDspDm_DspToHHH_DmToHHH_line(
name='Hlt2B2OC_BdToDspDm_DspToHHH_DmToHHH_Line', prescale=1):
ds = d_builder.make_dsplus_to_hhh()
......@@ -63,7 +60,6 @@ def BdToDspDm_DspToHHH_DmToHHH_line(
@register_line_builder(all_lines)
@configurable
def BdToDstpDm_DstpToD0Pi_D0ToHH_DmToHHH_line(
name='Hlt2B2OC_BdToDstpDm_DstpToD0Pi_D0ToHH_DmToHHH_Line', prescale=1):
dzero = d_builder.make_dzero_to_hh()
......@@ -76,7 +72,6 @@ def BdToDstpDm_DstpToD0Pi_D0ToHH_DmToHHH_line(
@register_line_builder(all_lines)
@configurable
def BdToDstpDm_DstpToD0Pi_D0ToHHHH_DmToHHH_line(
name='Hlt2B2OC_BdToDstpDm_DstpToD0Pi_D0ToHHHH_DmToHHH_Line',
prescale=1):
......@@ -90,7 +85,6 @@ def BdToDstpDm_DstpToD0Pi_D0ToHHHH_DmToHHH_line(
@register_line_builder(all_lines)
@configurable
def BdToDstpDsm_DstpToD0Pi_D0ToHH_DsmToHHH_line(
name='Hlt2B2OC_BdToDstpDsm_DstpToD0Pi_D0ToHH_DsmToHHH_Line',
prescale=1):
......@@ -104,7 +98,6 @@ def BdToDstpDsm_DstpToD0Pi_D0ToHH_DsmToHHH_line(
@register_line_builder(all_lines)
@configurable
def BdToDstpDsm_DstpToD0Pi_D0ToHHHH_DsmToHHH_line(
name='Hlt2B2OC_BdToDstpDsm_DstpToD0Pi_D0ToHHHH_DsmToHHH_Line',
prescale=1):
......@@ -118,7 +111,6 @@ def BdToDstpDsm_DstpToD0Pi_D0ToHHHH_DsmToHHH_line(
@register_line_builder(all_lines)
@configurable
def BdToDstpDstm_DstpToD0Pi_D0ToHH_line(
name='Hlt2B2OC_BdToDstpDstm_DstpToD0Pi_D0ToHH_Line', prescale=1):
dzero_hh = d_builder.make_dzero_to_hh()
......@@ -130,7 +122,6 @@ def BdToDstpDstm_DstpToD0Pi_D0ToHH_line(
@register_line_builder(all_lines)
@configurable
def BdToDstpDstm_DstpToD0Pi_D0ToHH_D0ToHHHH_line(
name='Hlt2B2OC_BdToDstpDstm_DstpToD0Pi_D0ToHH_D0ToHHHH_Line',
prescale=1):
......@@ -146,7 +137,6 @@ def BdToDstpDstm_DstpToD0Pi_D0ToHH_D0ToHHHH_line(
@register_line_builder(all_lines)
@configurable
def BdToDstpDstm_DstpToD0Pi_D0ToHHHH_line(
name='Hlt2B2OC_BdToDstpDstm_DstpToD0Pi_D0ToHHHH_Line', prescale=1):
dzero_hhhh = d_builder.make_dzero_to_hhhh()
......@@ -162,34 +152,16 @@ def BdToDstpDstm_DstpToD0Pi_D0ToHHHH_line(
# B decaying to two neutral charm mesons
##############################################
#@register_line_builder(all_lines)
#@configurable
#def BdToD0D0_D0ToHH_D0ToHHHH_line(
# name='Hlt2B2OC_BdToD0D0_D0ToHH_D0ToHHHH_Line', prescale=1):
# dzero_hh = d_builder.make_dzero_to_hh()
# dzero_hhhh = d_builder.make_dzero_to_hhhh()
# line_alg = b_builder.make_b2x(
# particles=[dzero_hh, dzero_hhhh], descriptors=['B0 -> D0 D0'])
# return HltLine(
# name=name, prescale=prescale, algs=b2oc_prefilters() + [line_alg])
@register_line_builder(all_lines)
@configurable
def BdToD0D0_D0ToHH_line(name='Hlt2B2OC_BdToD0D0_D0ToHH_Line', prescale=1):
def BdToD0D0_D0ToHHorHHHH_line(name='Hlt2B2OC_BdToD0D0_D0ToHHorHHHH_Line',
prescale=1):
dzero_hh = d_builder.make_dzero_to_hh()
line_alg = b_builder.make_b2x(
particles=[dzero_hh, dzero_hh], descriptors=['B0 -> D0 D0'])
return HltLine(
name=name, prescale=prescale, algs=b2oc_prefilters() + [line_alg])
@register_line_builder(all_lines)
@configurable
def BdToD0D0_D0ToHHHH_line(name='Hlt2B2OC_BdToD0D0_D0ToHHHH_Line', prescale=1):
dzero_hhhh = d_builder.make_dzero_to_hhhh()
dzero = ParticleContainersMerger([dzero_hh, dzero_hhhh],
name='B2OCD02HHorHHHHMerger')
line_alg = b_builder.make_b2x(
particles=[dzero_hhhh, dzero_hhhh], descriptors=['B0 -> D0 D0'])
particles=[dzero, dzero], descriptors=['B0 -> D0 D0'])
return HltLine(
name=name, prescale=prescale, algs=b2oc_prefilters() + [line_alg])
......@@ -200,7 +172,6 @@ def BdToD0D0_D0ToHHHH_line(name='Hlt2B2OC_BdToD0D0_D0ToHHHH_Line', prescale=1):
@register_line_builder(all_lines)
@configurable
def BuToD0Dp_D0ToHH_DpToHHH_line(name='Hlt2B2OC_BuToD0Dp_D0ToHH_DpToHHH_Line',
prescale=1):
dzero = d_builder.make_dzero_to_hh()
......@@ -212,7 +183,6 @@ def BuToD0Dp_D0ToHH_DpToHHH_line(name='Hlt2B2OC_BuToD0Dp_D0ToHH_DpToHHH_Line',
@register_line_builder(all_lines)
@configurable
def BuToD0Dsp_D0ToHH_DspToHHH_line(
name='Hlt2B2OC_BuToD0Dsp_D0ToHH_DspToHHH_Line', prescale=1):
dzero = d_builder.make_dzero_to_hh()
......@@ -224,7 +194,6 @@ def BuToD0Dsp_D0ToHH_DspToHHH_line(
@register_line_builder(all_lines)
@configurable
def BuToD0Dp_D0ToHHHH_DpToHHH_line(
name='Hlt2B2OC_BuToD0Dp_D0ToHHHH_DpToHHH_Line', prescale=1):
dzero = d_builder.make_dzero_to_hhhh()
......@@ -236,7 +205,6 @@ def BuToD0Dp_D0ToHHHH_DpToHHH_line(
@register_line_builder(all_lines)
@configurable
def BuToD0Dsp_D0ToHHHH_DspToHHH_line(
name='Hlt2B2OC_BuToD0Dsp_D0ToHHHH_DspToHHH_Line', prescale=1):
dzero = d_builder.make_dzero_to_hhhh()
......@@ -253,7 +221,6 @@ def BuToD0Dsp_D0ToHHHH_DspToHHH_line(
@register_line_builder(all_lines)
@configurable
def BcToD0Dp_D0ToHH_DpToHHH_line(name='Hlt2B2OC_BcToD0Dp_D0ToHH_DpToHHH_Line',
prescale=1):
dzero = d_builder.make_dzero_to_hh()
......@@ -265,7 +232,6 @@ def BcToD0Dp_D0ToHH_DpToHHH_line(name='Hlt2B2OC_BcToD0Dp_D0ToHH_DpToHHH_Line',
@register_line_builder(all_lines)
@configurable
def BcToD0Dsp_D0ToHH_DspToHHH_line(
name='Hlt2B2OC_BcToD0Dsp_D0ToHH_DspToHHH_Line', prescale=1):
dzero = d_builder.make_dzero_to_hh()
......@@ -278,7 +244,6 @@ def BcToD0Dsp_D0ToHH_DspToHHH_line(
@register_line_builder(all_lines)
@configurable
def BcToD0Dp_D0ToHHHH_DpToHHH_line(
name='Hlt2B2OC_BcToD0Dp_D0ToHHHH_DpToHHH_Line', prescale=1):
dzero = d_builder.make_dzero_to_hhhh()
......@@ -290,7 +255,6 @@ def BcToD0Dp_D0ToHHHH_DpToHHH_line(
@register_line_builder(all_lines)
@configurable
def BcToD0Dsp_D0ToHHHH_DspToHHH_line(
name='Hlt2B2OC_BcToD0Dsp_D0ToHHHH_DspToHHH_Line', prescale=1):
dzero = d_builder.make_dzero_to_hhhh()
......@@ -303,7 +267,6 @@ def BcToD0Dsp_D0ToHHHH_DspToHHH_line(
@register_line_builder(all_lines)
@configurable
def BcToDstD0_DstToD0Pi_D0ToHH_D0ToHH_line(
name='Hlt2B2OC_BcToDstD0_DstToD0Pi_D0ToHH_D0ToHH_Line', prescale=1):
dzero = d_builder.make_dzero_to_hh()
......@@ -316,7 +279,6 @@ def BcToDstD0_DstToD0Pi_D0ToHH_D0ToHH_line(
@register_line_builder(all_lines)
@configurable
def BcToDstD0_DstToD0Pi_D0ToHH_D0ToHHHH_line(
name='Hlt2B2OC_BcToDstD0_DstToD0Pi_D0ToHH_D0ToHHHH_Line', prescale=1):
dzero1 = d_builder.make_dzero_to_hhhh()
......@@ -330,7 +292,6 @@ def BcToDstD0_DstToD0Pi_D0ToHH_D0ToHHHH_line(
@register_line_builder(all_lines)
@configurable
def BcToDstD0_D0ToHH_DstToD0Pi_D0ToHHHH_line(
name='Hlt2B2OC_BcToDstD0_DstToD0Pi_D0ToHHHH_D0ToHH_Line', prescale=1):
dzero1 = d_builder.make_dzero_to_hh()
......@@ -344,7 +305,6 @@ def BcToDstD0_D0ToHH_DstToD0Pi_D0ToHHHH_line(
@register_line_builder(all_lines)
@configurable
def BcToDstD0_D0ToHHHH_DstToD0Pi_D0ToHHHH_line(
name='Hlt2B2OC_BcToDstD0_DstToD0Pi_D0ToHHHH_D0ToHHHH_Line',
prescale=1):
......
......@@ -16,8 +16,7 @@ from __future__ import absolute_import, division, print_function
from Moore.config import HltLine, register_line_builder
from Hlt2Conf.lines.b_to_open_charm.prefilters import b2oc_prefilters
from PyConf import configurable
from Hlt2Conf.lines.b_to_open_charm.utils import check_process
from Hlt2Conf.lines.b_to_open_charm.builders import basic_builder
from Hlt2Conf.lines.b_to_open_charm.builders import d_builder
......@@ -27,7 +26,6 @@ all_lines = {}
@register_line_builder(all_lines)
@configurable
def BuToDpDmPi_DpToHHH_line(name='Hlt2B2OC_BuToDpDmPi_DpToHHH_Line',
prescale=1):
pion = basic_builder.make_tight_pions()
......@@ -38,10 +36,8 @@ def BuToDpDmPi_DpToHHH_line(name='Hlt2B2OC_BuToDpDmPi_DpToHHH_Line',
name=name, prescale=prescale, algs=b2oc_prefilters() + [line_alg])
@configurable
@check_process
def make_BdToD0D0Kst_D0ToHH(process):
assert process in ['hlt2', 'spruce'
], 'Line must be defined as Hlt2 or Sprucing line!'
if process == 'spruce':
kst = basic_builder.make_kstar0(am_min=600, am_max=1600)
d = d_builder.make_dzero_to_hh()
......@@ -54,10 +50,8 @@ def make_BdToD0D0Kst_D0ToHH(process):
return line_alg
#@configurable
#@check_process
#def make_BdToD0D0Kst_D0ToHH_D0ToHHHH(process):
# assert process in ['hlt2', 'spruce'
# ], 'Line must be defined as Hlt2 or Sprucing line!'
# if process == 'spruce':
# kst = basic_builder.make_kstar0(am_min=600, am_max=1600)
# dhh = d_builder.make_dzero_to_hh()
......@@ -72,10 +66,8 @@ def make_BdToD0D0Kst_D0ToHH(process):
# return line_alg
@configurable
@check_process
def make_BdToD0D0Kst_D0ToHHHH(process):
assert process in ['hlt2', 'spruce'
], 'Line must be defined as Hlt2 or Sprucing line!'
if process == 'spruce':
kst = basic_builder.make_kstar0(am_min=600, am_max=1600)
dhhhh = d_builder.make_dzero_to_hhhh()
......@@ -89,7 +81,6 @@ def make_BdToD0D0Kst_D0ToHHHH(process):
@register_line_builder(all_lines)
@configurable
def BdToDstD0K_DstToD0Pi_D0ToHH_D0ToHH_line(
name='Hlt2B2OC_BdToDstD0K_DstToD0Pi_D0ToHH_D0ToHH_Line', prescale=1):
kaon = basic_builder.make_tight_kaons()
......
###############################################################################
# (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 B2OC selections for the Dh topology
Non trivial imports:
basic builders for D mesons and h, prefilters, BDT post filter
Returns:
every function returns a line_alg
"""
from __future__ import absolute_import, division, print_function
from Hlt2Conf.lines.b_to_open_charm.utils import check_process
from Hlt2Conf.lines.b_to_open_charm.builders import basic_builder
from Hlt2Conf.lines.b_to_open_charm.builders import d_builder
from Hlt2Conf.lines.b_to_open_charm.builders import b_builder
##############################################
# B0->D*munu, D*->D0pi
##############################################
@check_process
def make_BdToDstmMuNu_DstmToD0Pi_D0ToKsLLHH(process):
muon = basic_builder.make_muons()
dzero = d_builder.make_dzero_to_kshh(
pi_pidk_max=20, k_pidk_min=-10, k_shorts=basic_builder.make_ks_LL())
dzerost = d_builder.make_dstar_to_dzeropi(dzero)
line_alg = b_builder.make_b2x(
particles=[dzerost, muon],
descriptors=['B0 -> D*(2010)- mu+', 'B0 -> D*(2010)+ mu-'])
return line_alg
@check_process
def make_BdToDstmMuNu_DstmToD0Pi_D0ToKsDDHH(process):
muon = basic_builder.make_muons()
dzero = d_builder.make_dzero_to_kshh(
pi_pidk_max=20, k_pidk_min=-10, k_shorts=basic_builder.make_ks_DD())
dzerost = d_builder.make_dstar_to_dzeropi(dzero)
line_alg = b_builder.make_b2x(
particles=[dzerost, muon],
descriptors=['B0 -> D*(2010)- mu+', 'B0 -> D*(2010)+ mu-'])
return line_alg
@check_process
def make_BdToDstmMuNu_DstmToD0Pi_D0ToHHHH(process):
muon = basic_builder.make_muons()
dzero = d_builder.make_dzero_to_hhhh(pi_pidk_max=20, k_pidk_min=-10)
dzerost = d_builder.make_dstar_to_dzeropi(dzero)
line_alg = b_builder.make_b2x(
particles=[dzerost, muon],
descriptors=['B0 -> D*(2010)- mu+', 'B0 -> D*(2010)+ mu-'])
return line_alg
......@@ -13,25 +13,17 @@
"""
from __future__ import absolute_import, division, print_function
from Moore.config import HltLine, register_line_builder
from Hlt2Conf.lines.b_to_open_charm.prefilters import b2oc_prefilters
from PyConf import configurable
from Hlt2Conf.lines.b_to_open_charm.utils import check_process
from Hlt2Conf.lines.b_to_open_charm.builders import basic_builder
from Hlt2Conf.lines.b_to_open_charm.builders import d_builder
from Hlt2Conf.lines.b_to_open_charm.builders import b_builder
all_lines = {}
@register_line_builder(all_lines)
@configurable
def BdToDsmK_DsmToHHH_ltu_line(name='Hlt2B2OC_BdToDsmK_DsmToHHH_LTU_Line',
prescale=0.1):
@check_process
def BdToDsmK_DsmToHHH_ltu(process):
kaon = basic_builder.make_tight_kaons()
d = d_builder.make_dsplus_to_hhh()
line_alg = b_builder.make_lifetime_unbiased_b2x(
particles=[d, kaon], descriptors=['[B0 -> D_s- K+]cc'])
return HltLine(
name=name, prescale=prescale, algs=b2oc_prefilters() + [line_alg])
return line_alg
......@@ -17,8 +17,6 @@ from Moore.config import HltLine, register_line_builder
from Hlt2Conf.lines.b_to_open_charm.prefilters import b2oc_prefilters
from PyConf import configurable
from Hlt2Conf.lines.b_to_open_charm.builders import cbaryon_builder
from Hlt2Conf.lines.b_to_open_charm.builders import b_builder
from Hlt2Conf.lines.b_to_open_charm.builders import d_builder
......@@ -30,7 +28,6 @@ all_lines = {}
# NB: Here, D0 == K- pi+ AND K+ pi- (provides a WS sample)
##########################################################
@register_line_builder(all_lines)
@configurable
def XibcpToLcpD0_LcpToPKPi_D0ToKPi_line(
name='Hlt2B2OC_XibcpToLcpD0_LcpToPKPi_D0ToKPi_Line', prescale=1):
......@@ -48,7 +45,6 @@ def XibcpToLcpD0_LcpToPKPi_D0ToKPi_line(
# NB: Here, D0 == K- pi+ AND K+ pi- (provides a WS sample)
######################################################################
@register_line_builder(all_lines)
@configurable
def Ombc0ToXic0D0_Xic0ToPKKPi_D0ToKPi_line(
name='Hlt2B2OC_Ombc0ToXic0D0_Xic0ToPKKPi_D0ToKPi_Line', prescale=1):
......@@ -66,7 +62,6 @@ def Ombc0ToXic0D0_Xic0ToPKKPi_D0ToKPi_line(
# Can we use only the CF Ds decay here?
#########################################################################
@register_line_builder(all_lines)
@configurable
def LbToLcpDsm_LcpToPKPi_DsmToHHH_line(
name='Hlt2B2OC_LbToLcpDsm_LcpToPKPi_DsmToHHH_Line', prescale=1):
cmeson = d_builder.make_dsplus_to_hhh()
......@@ -82,7 +77,6 @@ def LbToLcpDsm_LcpToPKPi_DsmToHHH_line(
# Form the Lambda_b0 -> Lambda_c+ D-, Lambda_c+ -> pK- pi+, D- -> K+ pi- pi-
#############################################################################
@register_line_builder(all_lines)
@configurable
def LbToLcpDm_LcpToPKPi_DmToPimPimKp_line(
name='Hlt2B2OC_LbToLcpDm_LcpToPKPi_DmToPimPimKp_Line', prescale=1):
cmeson = d_builder.make_dplus_to_kmpippip()
......
......@@ -17,8 +17,6 @@ from Moore.config import HltLine, register_line_builder
from Hlt2Conf.lines.b_to_open_charm.prefilters import b2oc_prefilters
from PyConf import configurable
from Hlt2Conf.lines.b_to_open_charm.builders import basic_builder
from Hlt2Conf.lines.b_to_open_charm.builders import cbaryon_builder
from Hlt2Conf.lines.b_to_open_charm.builders import b_builder
......@@ -31,7 +29,6 @@ all_lines = {}
# NB: Here, D0 == K- pi+ AND K+ pi-
##########################################################
@register_line_builder(all_lines)
@configurable
def Xibc0ToLcpD0Pi_LcpToPKPi_D0ToKPi_line(
name='Hlt2B2OC_Xibc0ToLcpD0Pi_LcpToPKPi_D0ToKPi_Line', prescale=1):
......@@ -52,7 +49,6 @@ def Xibc0ToLcpD0Pi_LcpToPKPi_D0ToKPi_line(
# NB: Here, D0 == K- pi+ AND K+ pi- (provides a WS sample)
######################################################################
@register_line_builder(all_lines)
@configurable
def Ombc0ToLcpD0K_LcpToPKPi_D0ToKPi_line(
name='Hlt2B2OC_Ombc0ToLcpD0K_LcpToPKPi_D0ToKPi_Line', prescale=1):
......
......@@ -17,8 +17,6 @@ from Moore.config import HltLine, register_line_builder
from Hlt2Conf.lines.b_to_open_charm.prefilters import b2oc_prefilters
from PyConf import configurable
from Hlt2Conf.lines.b_to_open_charm.builders import basic_builder
from Hlt2Conf.lines.b_to_open_charm.builders import cbaryon_builder
from Hlt2Conf.lines.b_to_open_charm.builders import b_builder
......@@ -29,7 +27,6 @@ all_lines = {}
# Form the Lb->LcPi
##############################################
@register_line_builder(all_lines)
@configurable
def LbToLcpPi_LcpToPKPi_line(name='Hlt2B2OC_LbToLcpPi_LcpToPKPi_Line',
prescale=1):
......@@ -46,7 +43,6 @@ def LbToLcpPi_LcpToPKPi_line(name='Hlt2B2OC_LbToLcpPi_LcpToPKPi_Line',
# Form the Xib0 -> Xic+ Pi-
##############################################
@register_line_builder(all_lines)
@configurable
def Xib0ToXicpPi_XicpToPKPi_line(name='Hlt2B2OC_Xib0ToXicpPi_XicpToPKPi_Line',
prescale=1):
......@@ -62,7 +58,6 @@ def Xib0ToXicpPi_XicpToPKPi_line(name='Hlt2B2OC_Xib0ToXicpPi_XicpToPKPi_Line',
# Form the Xib- -> Xic0 Pi-
##############################################
@register_line_builder(all_lines)
@configurable
def XibmToXic0Pi_Xic0ToPKKPi_line(
name='Hlt2B2OC_XibmToXic0Pi_Xic0ToPKKPi_Line', prescale=1):
......@@ -78,7 +73,6 @@ def XibmToXic0Pi_Xic0ToPKKPi_line(
# Form the Omegab- -> Omegac0 Pi-
##############################################
@register_line_builder(all_lines)
@configurable
def OmbmToOmc0Pi_Omc0ToPKKPi_line(
name='Hlt2B2OC_OmbmToOmc0Pi_Omc0ToPKKPi_Line', prescale=1):
......@@ -96,7 +90,6 @@ def OmbmToOmc0Pi_Omc0ToPKKPi_line(
# Form the Lb->LcK
##############################################
@register_line_builder(all_lines)
@configurable
def LbToLcpK_LcpToPKPi_line(name='Hlt2B2OC_LbToLcpK_LcpToPKPi_Line',
prescale=1):
......@@ -113,7 +106,6 @@ def LbToLcpK_LcpToPKPi_line(name='Hlt2B2OC_LbToLcpK_LcpToPKPi_Line',
# Form the Xib0 -> Xic+ K-
##############################################
@register_line_builder(all_lines)
@configurable
def Xib0ToXicpK_XicpToPKPi_line(name='Hlt2B2OC_Xib0ToXicpK_XicpToPKPi_Line',
prescale=1):
......@@ -129,7 +121,6 @@ def Xib0ToXicpK_XicpToPKPi_line(name='Hlt2B2OC_Xib0ToXicpK_XicpToPKPi_Line',
# Form the Xib- -> Xic0 K-
##############################################
@register_line_builder(all_lines)
@configurable
def XibmToXic0K_Xic0ToPKKPi_line(name='Hlt2B2OC_XibmToXic0K_Xic0ToPKKPi_Line',
prescale=1):
......@@ -145,7 +136,6 @@ def XibmToXic0K_Xic0ToPKKPi_line(name='Hlt2B2OC_XibmToXic0K_Xic0ToPKKPi_Line',
# Form the Omegab- -> Omegac0 K-
##############################################
@register_line_builder(all_lines)
@configurable
def OmbmToOmc0K_Omc0ToPKKPi_line(name='Hlt2B2OC_OmbmToOmc0K_Omc0ToPKKPi_Line',
prescale=1):
......@@ -161,7 +151,6 @@ def OmbmToOmc0K_Omc0ToPKKPi_line(name='Hlt2B2OC_OmbmToOmc0K_Omc0ToPKKPi_Line',
# Form the Xi_bc+ -> Xi_cc++ Pi-, Xi_cc++ --> Xic+ pi+
##########################################################
@register_line_builder(all_lines)
@configurable
def XibcpToXiccppPi_XiccppToXicpPi_XicpToPKPi_line(
name='Hlt2B2OC_XibcpToXiccppPi_XiccppToXicpPi_XicpToPKPi_Line',
prescale=1):
......@@ -178,7 +167,6 @@ def XibcpToXiccppPi_XiccppToXicpPi_XicpToPKPi_line(
# Form the Xi_bc+ -> Xi_cc++ Pi-, Xi_cc++ --> Lc+ K- pi+ pi+
################################################################
@register_line_builder(all_lines)
@configurable
def XibcpToXiccppPi_XiccppToLcpKPiPi_LcpToPKPi_line(
name='Hlt2B2OC_XibcpToXiccppPi_XiccppToLcpKPiPi_LcpToPKPi_Line',
prescale=1):
......@@ -195,7 +183,6 @@ def XibcpToXiccppPi_XiccppToLcpKPiPi_LcpToPKPi_line(
# Form the Xi_bc0 -> Xi_cc+ Pi-, Xi_cc+ --> Xic0 pi+
##########################################################
@register_line_builder(all_lines)
@configurable
def Xibc0ToXiccpPi_XiccpToXic0Pi_Xic0ToPKKPi_line(
name='Hlt2B2OC_Xibc0ToXiccpPi_XiccpToXic0Pi_Xic0ToPKKPi_Line',
prescale=1):
......@@ -212,7 +199,6 @@ def Xibc0ToXiccpPi_XiccpToXic0Pi_Xic0ToPKKPi_line(
# Form the Xi_bc0 -> Xi_cc+ Pi-, Xi_cc+ --> Lc+ K- pi+
##########################################################
@register_line_builder(all_lines)
@configurable
def Xibc0ToXiccpPi_XiccpToLcpKmPip_LcpToPKPi_line(
name='Hlt2B2OC_Xibc0ToXiccpPi_XiccpToLcpKmPip_LcpToPKPi_Line',
prescale=1):
......@@ -229,7 +215,6 @@ def Xibc0ToXiccpPi_XiccpToLcpKmPip_LcpToPKPi_line(
# Form the Xi_bc0 -> Xi_cc+ Pi-, Xi_cc+ --> D+ p K-
##########################################################
@register_line_builder(all_lines)
@configurable
def Xibc0ToXiccpPi_XiccpToPDpKm_DpToPipPipKm_line(
name='Hlt2B2OC_Xibc0ToXiccpPi_XiccpToPDpKm_DpToPipPipKm_Line',
prescale=1):
......@@ -246,7 +231,6 @@ def Xibc0ToXiccpPi_XiccpToPDpKm_DpToPipPipKm_line(
# Form the Xi_bc0 -> Xi_c+ Pi-, Xi_c+ --> p K- pi+
##########################################################
@register_line_builder(all_lines)
@configurable
def Xibc0ToXicpPi_XicpToPKPi_line(
name='Hlt2B2OC_Xibc0ToXicpPi_XicpToPKPi_Line', prescale=1):
......@@ -262,7 +246,6 @@ def Xibc0ToXicpPi_XicpToPKPi_line(
# Form the Xi_bc0 -> Lc+ K-, Lc+ --> p K- pi+
##########################################################
@register_line_builder(all_lines)
@configurable
def Xibc0ToLcpK_LcpToPKPi_line(name='Hlt2B2OC_Xibc0ToLcpK_LcpToPKPi_Line',
prescale=1):
......@@ -278,7 +261,6 @@ def Xibc0ToLcpK_LcpToPKPi_line(name='Hlt2B2OC_Xibc0ToLcpK_LcpToPKPi_Line',
# Form the Xi_bc+ -> Xi_c0 Pi+, Xi_c0 --> p K- K- pi+
##########################################################
@register_line_builder(all_lines)
@configurable
def XibcpToXic0Pi_Xic0ToPKKPi_line(
name='Hlt2B2OC_XibcpToXic0Pi_Xic0ToPKKPi_Line', prescale=1):
......@@ -294,7 +276,6 @@ def XibcpToXic0Pi_Xic0ToPKKPi_line(
# Form the Xi_bc0 -> Lc+ Pi-, Lc+ --> p K- pi+
##########################################################
@register_line_builder(all_lines)
@configurable
def Xibc0ToLcpPi_LcpToPKPi_line(name='Hlt2B2OC_Xibc0ToLcpPi_LcpToPKPi_Line',
prescale=1):
......@@ -310,7 +291,6 @@ def Xibc0ToLcpPi_LcpToPKPi_line(name='Hlt2B2OC_Xibc0ToLcpPi_LcpToPKPi_Line',
# Form the Omega_bc0 -> Xi_c+ K-, Xi_c+ --> p K- pi+
##############################################################
@register_line_builder(all_lines)
@configurable
def Ombc0ToXicpK_XicpToPKPi_line(name='Hlt2B2OC_Ombc0ToXicpK_XicpToPKPi_Line',
prescale=1):
......
......@@ -16,12 +16,12 @@ from __future__ import absolute_import, division, print_function
from Moore.config import HltLine, register_line_builder
from Hlt2Conf.lines.b_to_open_charm.prefilters import b2oc_prefilters
from PyConf import configurable
from Hlt2Conf.lines.b_to_open_charm.utils import check_process
from Hlt2Conf.lines.b_to_open_charm.builders import basic_builder
from Hlt2Conf.lines.b_to_open_charm.builders import cbaryon_builder
from Hlt2Conf.lines.b_to_open_charm.builders import b_builder
all_lines = {}
......@@ -29,7 +29,6 @@ all_lines = {}
# Form the Xi_bc0 -> Xi_c0 Pi- Pi+, Xi_c0 --> p K- K- pi+
##########################################################
@register_line_builder(all_lines)
@configurable
def Xibc0ToXic0PiPi_Xic0ToPKKPi_line(
name='Hlt2B2OC_XibcToXic0PiPi_Xic0ToPKKPi_Line', prescale=1):
......@@ -46,7 +45,6 @@ def Xibc0ToXic0PiPi_Xic0ToPKKPi_line(
# Form the Xi_bc+ -> Lc+ K- Pi+, Lc+ --> p K- pi+
##########################################################
@register_line_builder(all_lines)
@configurable
def XibcpToLcpKmPip_LcpToPKPi_line(
name='Hlt2B2OC_XibcpToLcpKmPip_LcpToPKPi_Line', prescale=1):
......@@ -64,7 +62,6 @@ def XibcpToLcpKmPip_LcpToPKPi_line(
# Form the Xi_bc+ -> Xic+ Pi- Pi+, Xic+ --> p K- pi+
##########################################################
@register_line_builder(all_lines)
@configurable
def XibcpToXicpPiPi_XicpToPKPi_line(
name='Hlt2B2OC_XibcpToXicpPiPi_XicpToPKPi_Line', prescale=1):
......@@ -81,7 +78,6 @@ def XibcpToXicpPiPi_XicpToPKPi_line(
# Form the Xi_bc+ -> Lc+ Pi- Pi+, Lc+ --> p K- pi+
##########################################################
@register_line_builder(all_lines)
@configurable
def XibcpToLcpPiPi_LcpToPKPi_line(
name='Hlt2B2OC_XibcpToLcpPiPi_LcpToPKPi_Line', prescale=1):
......@@ -98,7 +94,6 @@ def XibcpToLcpPiPi_LcpToPKPi_line(
# Form the Omega_bc0 -> Xi_c0 K- Pi+, Xi_c0 --> p K- K- pi+
##############################################################
@register_line_builder(all_lines)
@configurable
def Ombc0ToXic0KmPip_Xic0ToPKKPi_line(
name='Hlt2B2OC_Ombc0ToXic0KmPip_Xic0ToPKKPi_Line', prescale=1):
......@@ -110,3 +105,118 @@ def Ombc0ToXic0KmPip_Xic0ToPKKPi_line(
descriptors=['[Omega_bc0 -> Xi_c0 K- pi+]cc'])
return HltLine(
name=name, prescale=prescale, algs=b2oc_prefilters() + [line_alg])
##############################################
# XibToLchh lines
##############################################
##############################################################
# Form the Xi_b-(Om_b-) --> Lc+ pi- pi-, Lc+ --> p K- pi+
##############################################################
@check_process
def make_XibmToLcpPiPi_LcpToPKPi(process):
if process == 'spruce':
pion = basic_builder.make_soft_pions(pi_pidk_max=None)
lc = cbaryon_builder.make_lc_to_pkpi(
pi_pidk_max=None, k_pidk_min=None, p_pidp_min=None)
elif process == 'hlt2':
pion = basic_builder.make_soft_pions()
lc = cbaryon_builder.make_lc_to_pkpi()
line_alg = b_builder.make_xib2lchh(
particles=[pion, pion, lc],
descriptors=['[Xi_b- -> pi- pi- Lambda_c+]cc'])
return line_alg
##############################################################
# Form the Xi_b-(Om_b-) --> Lc+ K- pi-, Lc+ --> p K- pi+
##############################################################
@check_process
def make_XibmToLcpKPi_LcpToPKPi(process):
if process == 'spruce':
pion = basic_builder.make_soft_pions(pi_pidk_max=None)
kaon = basic_builder.make_soft_kaons(k_pidk_min=None)
lc = cbaryon_builder.make_lc_to_pkpi(
pi_pidk_max=None, k_pidk_min=None, p_pidp_min=None)
elif process == 'hlt2':
pion = basic_builder.make_soft_pions()
kaon = basic_builder.make_soft_kaons()
lc = cbaryon_builder.make_lc_to_pkpi()
line_alg = b_builder.make_xib2lchh(
particles=[kaon, pion, lc],
descriptors=['[Xi_b- -> K- pi- Lambda_c+]cc'])
return line_alg
##############################################################
# Form the Xi_b-(Om_b-) --> Lc+ K- K-, Lc+ --> p K- pi+
##############################################################
@check_process
def make_XibmToLcpKK_LcpToPKPi(process):
if process == 'spruce':
kaon = basic_builder.make_soft_kaons(k_pidk_min=None)
lc = cbaryon_builder.make_lc_to_pkpi(
pi_pidk_max=None, k_pidk_min=None, p_pidp_min=None)
elif process == 'hlt2':
kaon = basic_builder.make_soft_kaons()
lc = cbaryon_builder.make_lc_to_pkpi()
line_alg = b_builder.make_xib2lchh(
particles=[kaon, kaon, lc],
descriptors=['[Xi_b- -> K- K- Lambda_c+]cc'])
return line_alg
##############################################################
# Form the Xi_b-(Om_b-) --> Xi_c+ Pi- Pi-, Xi_c+ --> p K- pi+
##############################################################
@check_process
def make_XibmToXicpPiPi_XicpToPKPi(process):
if process == 'spruce':
pion = basic_builder.make_soft_pions(pi_pidk_max=None)
xic = cbaryon_builder.make_xicp_to_pkpi(
pi_pidk_max=None, k_pidk_min=None, p_pidp_min=None)
elif process == 'hlt2':
pion = basic_builder.make_soft_pions()
xic = cbaryon_builder.make_xicp_to_pkpi()
line_alg = b_builder.make_xib2lchh(
particles=[pion, pion, xic],
descriptors=['[Xi_b- -> pi- pi- Xi_c+]cc'])
return line_alg
##############################################################
# Form the Xi_b-(Om_b-) --> Xi_c+ K- Pi-, Xi_c+ --> p K- pi+
##############################################################
@check_process
def make_XibmToXicpKPi_XicpToPKPi(process):
if process == 'spruce':
pion = basic_builder.make_soft_pions(pi_pidk_max=None)
kaon = basic_builder.make_soft_kaons(k_pidk_min=None)
xic = cbaryon_builder.make_xicp_to_pkpi(
pi_pidk_max=None, k_pidk_min=None, p_pidp_min=None)
elif process == 'hlt2':
pion = basic_builder.make_soft_pions()
kaon = basic_builder.make_soft_kaons()
xic = cbaryon_builder.make_xicp_to_pkpi()
line_alg = b_builder.make_xib2lchh(
particles=[kaon, pion, xic], descriptors=['[Xi_b- -> K- pi- Xi_c+]cc'])
return line_alg
##############################################################
# Form the Xi_b-(Om_b-) --> Xi_c+ K- K-, Xi_c+ --> p K- pi+
##############################################################
@check_process
def make_XibmToXicpKK_XicpToPKPi(process):
if process == 'spruce':
kaon = basic_builder.make_soft_kaons(k_pidk_min=None)
xic = cbaryon_builder.make_xicp_to_pkpi(
pi_pidk_max=None, k_pidk_min=None, p_pidp_min=None)
elif process == 'hlt2':
kaon = basic_builder.make_soft_kaons()
xic = cbaryon_builder.make_xicp_to_pkpi()
line_alg = b_builder.make_xib2lchh(
particles=[kaon, kaon, xic], descriptors=['[Xi_b- -> K- K- Xi_c+]cc'])
return line_alg
......@@ -17,8 +17,6 @@ from Moore.config import HltLine, register_line_builder
from Hlt2Conf.lines.b_to_open_charm.prefilters import b2oc_prefilters
from PyConf import configurable
from Hlt2Conf.lines.b_to_open_charm.builders import basic_builder
from Hlt2Conf.lines.b_to_open_charm.builders import b_builder
from Hlt2Conf.lines.b_to_open_charm.builders import d_builder
......@@ -30,7 +28,6 @@ all_lines = {}
# NB: Here, D0 == K- pi+ AND K+ pi-
##########################################################
@register_line_builder(all_lines)
@configurable
def XibcpToPD0_D0ToKPi_line(name='Hlt2B2OC_XibcpToPD0_D0ToKPi_Line',
prescale=1):
......