diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/generic_lines_thor/builders/bs_builders.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/generic_lines_thor/builders/bs_builders.py index 1a9bfe7fdbe13016248366c4cb9a1da3385e2520..955cf7432703b5ce95efd94a4a2f980488896b29 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/generic_lines_thor/builders/bs_builders.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/generic_lines_thor/builders/bs_builders.py @@ -11,9 +11,10 @@ import Functors as F from Functors.math import in_range -from GaudiKernel.SystemOfUnits import GeV, MeV +from GaudiKernel.SystemOfUnits import GeV, MeV, ps from Hlt2Conf.algorithms_thor import ParticleFilter, ParticleCombiner, require_all from Hlt2Conf.standard_particles import make_long_kaons, make_long_muons, make_long_electrons_with_brem +from RecoConf.reconstruction_objects import make_pvs_v2 as make_pvs def make_mass_constrained_jpsi2mumu(name='MassConstrJpsi2MuMuMaker', @@ -93,12 +94,15 @@ def make_bs2jpsiphi(name="Bs2JPsiPhiCombiner", am_max=5600 * MeV, am_min_vtx=5100 * MeV, am_max_vtx=5600 * MeV, - vtx_chi2pdof=20): + vtx_chi2pdof=20, + bpvltime_min=0.01 * ps): phi = make_phi() jpsi = jpsi_maker() + pvs = make_pvs() combination_code = require_all(in_range(am_min, F.MASS, am_max)) vertex_code = require_all( - in_range(am_min_vtx, F.MASS, am_max_vtx), F.CHI2DOF < vtx_chi2pdof) + in_range(am_min_vtx, F.MASS, am_max_vtx), F.CHI2DOF < vtx_chi2pdof, + F.BPVLTIME(pvs) > bpvltime_min) return ParticleCombiner( name=name, Inputs=[jpsi, phi], diff --git a/Hlt/Hlt2Conf/tests/options/thor/loki_comparison.py b/Hlt/Hlt2Conf/tests/options/thor/loki_comparison.py index 09335ce391afef40cf47650b13a1479b03679e4e..e8fd3017031302a46f0b81996488c806fb6eecf3 100644 --- a/Hlt/Hlt2Conf/tests/options/thor/loki_comparison.py +++ b/Hlt/Hlt2Conf/tests/options/thor/loki_comparison.py @@ -27,7 +27,7 @@ import math import Functors as F import Functors.math as fmath -from GaudiKernel.SystemOfUnits import GeV, MeV, mm, mrad +from GaudiKernel.SystemOfUnits import GeV, MeV, mm, mrad, ps from Hlt2Conf.algorithms import ( ParticleCombinerWithPVs as ParticleCombinerLoKi, ParticleFilterWithPVs as ParticleFilterLoKi, @@ -220,7 +220,7 @@ def make_lines(): "BPVIPCHI2": (F.BPVIPCHI2(pvs_v2) < 16, "BPVIPCHI2() < 16"), "BPVCORRM": (F.BPVCORRM(pvs_v2) > 3 * GeV, "BPVCORRM() > 3 * GeV"), # The ThOr implementation has known problems; see Rec#204 - # "BPVLTIME": (F.BPVLTIME(pvs_v2) > 1 * ps, "BPVLTIME() > 1 * ps"), + "BPVLTIME": (F.BPVLTIME(pvs_v2) > 1 * ps, "BPVLTIME() > 1 * ps"), "ETA": (F.ETA > 3.45, "ETA > 3.45"), "MASS": (F.MASS > 3 * GeV, "M > 3 * GeV"), } diff --git a/Hlt/Hlt2Conf/tests/options/thor/loki_comparison_check.py b/Hlt/Hlt2Conf/tests/options/thor/loki_comparison_check.py index 6db1a8c43acd9413133dd330da61773b15a15f39..daeef69306eb83a63b511432f86701691736fc91 100644 --- a/Hlt/Hlt2Conf/tests/options/thor/loki_comparison_check.py +++ b/Hlt/Hlt2Conf/tests/options/thor/loki_comparison_check.py @@ -97,6 +97,8 @@ for functor_name in sorted(combiner_counters): print("Checking vertex counters") for functor_name in sorted(vertex_counters): + if functor_name == "BPVLTIME": #known differences in lifetime functor, return to testing later + continue # Strip off the efficiency percentage as they are formatted differently # between the two algorithms loki_eff = vertex_counters[functor_name]["LoKi"]["#pass mother cut"][:-1] diff --git a/Hlt/Moore/python/Moore/qmtest/exclusions.py b/Hlt/Moore/python/Moore/qmtest/exclusions.py index 800ab99bd2247ee9abfb9634c4bd605d3ebc709b..9335ffb297ed80ae780bbe4bf9d2be12cfc14694 100644 --- a/Hlt/Moore/python/Moore/qmtest/exclusions.py +++ b/Hlt/Moore/python/Moore/qmtest/exclusions.py @@ -40,6 +40,8 @@ remove_known_warnings = LineSkipper(regexps=[ # expected WARNINGs from MuonUTTracking when extrapolation is failed r"ToolSvc.LoKi::VertexFitter +WARNING LoKi::VertexFitter:: Error from Kalman-step, skip *", r"MuonUTTracking +WARNING Could not propagate state to VELO!", + # expected WARNINGs from ThorBPVLTIME + r"ThOrCompareBPVLTIMEVertex +WARNING Lifetime fit did not converge. Aborting.", ]) preprocessor = remove_known_warnings + LineSkipper(regexps=[