Skip to content
Snippets Groups Projects
Commit d0163bf2 authored by Patrick Koppenburg's avatar Patrick Koppenburg :leaves:
Browse files

Merge branch 'dfazzini_update_lhcbint_test' into 'master'

Update options for LHCb integration tests

See merge request !883
parents 8f2c39cd 1eef6f70
No related branches found
No related tags found
2 merge requests!1103Draft: Add AnalysisHelpers to DaVinci Stack,!883Update options for LHCb integration tests
Pipeline #5409846 passed
###############################################################################
# (c) Copyright 2022-2023 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. #
###############################################################################
"""
Test for checking the correct processing of Hlt2 .dst file where packed reco
objects are persisted by means of a pass through line.
"""
from PyConf.reading import get_particles
import Functors as F
from FunTuple import FunTuple_Particles as Funtuple
from FunTuple import FunctorCollection
import FunTuple.functorcollections as FC
from DaVinci import Options, make_config
from DaVinci.algorithms import add_filter
def main(options: Options):
line_bd2dspi = 'Hlt2B2OC_BdToDsmPi_DsmToKpKmPim'
data_bd2dspi = get_particles(f"/Event/HLT2/{line_bd2dspi}/Particles")
fields_dspi = {
'B0': "[B0 -> D_s- pi+]CC",
'Ds': "[B0 -> ^D_s- pi+]CC",
'pip': "[B0 -> D_s- ^pi+]CC",
}
#FunTuple: make functor collection from the imported functor library Kinematic
variables_all = FC.Kinematics()
variables = FunctorCollection({
'LOKI_daug1_PT': F.CHILD(1, F.PT),
'LOKI_daug2_PT': F.CHILD(2, F.PT),
})
variables_extra = FunctorCollection({
'LOKI_NTRCKS_ABV_THRSHLD':
'NINTREE(ISBASIC & (PT > 15*MeV))'
})
variables += variables_extra
#FunTuple: associate functor collections to field name
variables_dspi = {
'ALL': variables_all, #adds variables to all fields
'B0': variables,
'Ds': variables_extra,
'pip': variables_extra,
}
tuple_bd2dspi = Funtuple(
name="B0DsPi_Tuple",
tuple_name="DecayTree",
fields=fields_dspi,
variables=variables_dspi,
inputs=data_bd2dspi)
filter_bd2dspi = add_filter("HDRFilter_B0DsPi",
f"HLT_PASS('{line_bd2dspi}')")
algs = {
"B0DsPi": [filter_bd2dspi, tuple_bd2dspi],
}
return make_config(options, algs)
......@@ -21,16 +21,21 @@ from PyConf.reading import get_particles
def main(options: Options):
line_bd2dsk = 'SpruceB2OC_BdToDsmK_DsmToHHH_FEST'
data_bd2dsk = get_particles(f"/Event/Spruce/{line_bd2dsk}/Particles")
process = options.input_process
line = 'SpruceB2OC_BdToDsmK_DsmToHHH_FEST' if process == "Spruce" else 'Hlt2Charm_D0ToKmPip' #'Hlt2B2CC_BuToJpsiKplus_JpsiToMuMu_Tight'
prefix = "Spruce" if process == "Spruce" else "HLT2"
b_name = "B0" if process == "Spruce" else "D0" #"B+"
daug1_name = "D_s-" if process == "Spruce" else "K-" #"J/psi(1S)"
daug2_name = "K+" if process == "Spruce" else "pi+"
fields_dsk = {
'B0': "[B0 -> D_s- K+]CC",
'Ds': "[B0 -> ^D_s- K+]CC",
'Kp': "[B0 -> D_s- ^K+]CC"
data = get_particles(f"/Event/{prefix}/{line}/Particles")
fields = {
'B': f"[{b_name} -> {daug1_name} {daug2_name}]CC",
'daug1': f"[{b_name} -> ^{daug1_name} {daug2_name}]CC",
'daug2': f"[{b_name} -> {daug1_name} ^{daug2_name}]CC"
}
variables = FunctorCollection({
variables_b = FunctorCollection({
'LOKI_daug1_PT': F.CHILD(1, F.PT),
'LOKI_daug2_PT': F.CHILD(2, F.PT),
})
......@@ -39,30 +44,27 @@ def main(options: Options):
'LOKI_NTRCKS_ABV_THRSHLD':
'NINTREE(ISBASIC & (PT > 15*MeV))'
})
variables += variables_extra
variables_b += variables_extra
#FunTuple: make functor collection from the imported functor library Kinematics
variables_all = FC.Kinematics()
#FunTuple: associate functor collections to field (branch) name
variables_dsk = {
variables = {
'ALL': variables_all, #adds variables to all fields
'B0': variables,
'Ds': variables_extra,
'Kp': variables_extra
'B': variables_b,
'daug1': variables_extra,
'daug2': variables_extra
}
tuple_bd2dsk = Funtuple(
name="B0DsK_Tuple",
tuple_dv = Funtuple(
name=f"Tuple_{process.lower()}",
tuple_name="DecayTree",
fields=fields_dsk,
variables=variables_dsk,
inputs=data_bd2dsk)
fields=fields,
variables=variables,
inputs=data)
filter_bd2dsk = add_filter("HDRFilter_B0DsK", f"HLT_PASS('{line_bd2dsk}')")
algs = {
"B0DsK": [filter_bd2dsk, tuple_bd2dsk],
}
filter_dv = add_filter("HDRFilter_DV", f"HLT_PASS('{line}')")
algs = [filter_dv, tuple_dv]
return make_config(options, algs)
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