diff --git a/Hlt/Moore/python/Moore/qmtest/exclusions.py b/Hlt/Moore/python/Moore/qmtest/exclusions.py
index 4ebf9c483614bc57820744f365a0280931235ffd..a57b4bf440edf6a9fee84b8114310fbdec8569a7 100644
--- a/Hlt/Moore/python/Moore/qmtest/exclusions.py
+++ b/Hlt/Moore/python/Moore/qmtest/exclusions.py
@@ -32,6 +32,10 @@ remove_known_warnings = LineSkipper(regexps=[
# https://gitlab.cern.ch/lhcb/Moore/-/merge_requests/783#note_4406625
(r"ToolSvc.IdealStateCreator +WARNING Extrapolation of True State from"
r" z = 9[2-4][0-9.]+ to z = 9[2-4][0-9.]+ failed!"),
+ # also due to TrackResChecker see
+ # https://gitlab.cern.ch/lhcb/Rec/-/merge_requests/2788#note_5399928
+ (r"ToolSvc.TrackMasterExtrapolator +WARNING Suppressing message: "
+ r"'Protect against absurd tracks. See debug for details'"),
# Until tck is implemented HltPackedDataDecoder/HltDecReportsDecoder will raise warning
r"HltPackedDataDecoder +WARNING TCK in rawbank seems to be 0 .*",
r"HltPackedDataDe...WARNING TCK in rawbank seems to be 0 .*",
diff --git a/Hlt/RecoConf/options/hlt2_pr_kf_tool_example.py b/Hlt/RecoConf/options/hlt2_pr_kf_tool_example.py
index 017b966dff52d6b7bad457368a5d4ecc597fa6f9..7f11b2661af5fb67440fd98b8951359499c12ca0 100644
--- a/Hlt/RecoConf/options/hlt2_pr_kf_tool_example.py
+++ b/Hlt/RecoConf/options/hlt2_pr_kf_tool_example.py
@@ -15,7 +15,8 @@ from PyConf.Algorithms import (
TrackContainersMerger, PrCloneKillerLong, PrCloneKillerDown,
TrackBestTrackCreator, PrKalmanFilterToolExampleAlgo,
PrKalmanFilterToolExampleAlgo_Downstream,
- PrKalmanFilterToolExampleAlgo_Velo, PrKalmanFilterToolExampleAlgo_V1)
+ PrKalmanFilterToolExampleAlgo_Velo, PrKalmanFilterToolExampleAlgo_V1,
+ PrKalmanFilterToolExampleAlgo_Seed)
from PyConf.Tools import (TrackMasterExtrapolator, KalmanFilterTool)
from RecoConf.hlt1_tracking import (
make_VeloClusterTrackingSIMD_hits, make_PrStorePrUTHits_hits,
@@ -122,11 +123,27 @@ def make_pr_kf_tool_light_reco_best_tracks(
name="PrKalmanFilterToolVelo",
Input=tracks["Velo"]["Pr"]).Output
+ fitted_seed = PrKalmanFilterToolExampleAlgo_Seed(
+ HitsVP=vp_hits,
+ HitsUT=ut_hits,
+ HitsFT=ft_hits,
+ TrackFitter=KalmanFilterTool(
+ ReferenceExtrapolator=TrackMasterExtrapolator(
+ MaterialLocator=get_global_materiallocator()),
+ MaxChi2PreOutlierRemoval=20,
+ MaxChi2=max_chi2),
+ name="PrKalmanFilterToolSeed",
+ Input=tracks['Seed']['Pr']).Output
+
+ best_seed = tbtc_template(
+ name="TBTC_seed", TracksInContainers=[fitted_seed]).TracksOutContainer
+
return {
'BestLong': best_long,
'BestDownstream': best_down,
'SeedDecloned': best_seed,
- 'BestVelo': best_velo
+ 'BestVelo': best_velo,
+ 'BestSeed': best_seed,
}
@@ -162,6 +179,18 @@ def make_refit_kf_tool_light_reco_best_tracks(
name="PrKalmanFilterToolDownV1",
Input=tracks['BestDownstream']).Output
+ best_seed_refit = PrKalmanFilterToolExampleAlgo_V1(
+ HitsVP=vp_hits,
+ HitsUT=ut_hits,
+ HitsFT=ft_hits,
+ TrackFitter=KalmanFilterTool(
+ ReferenceExtrapolator=TrackMasterExtrapolator(
+ MaterialLocator=get_global_materiallocator()),
+ MaxChi2PreOutlierRemoval=20,
+ MaxChi2=max_chi2_v1),
+ name="PrKalmanFilterToolSeedV1",
+ Input=tracks['BestSeed']).Output
+
best_velo_refit = PrKalmanFilterToolExampleAlgo_V1(
HitsVP=vp_hits,
HitsUT=ut_hits,
@@ -177,7 +206,8 @@ def make_refit_kf_tool_light_reco_best_tracks(
return {
'BestLongRefit': best_long_refit,
'BestDownstreamRefit': best_down_refit,
- 'BestVeloRefit': best_velo_refit
+ 'BestVeloRefit': best_velo_refit,
+ 'BestSeedRefit': best_seed_refit,
}
@@ -198,8 +228,14 @@ def pr_kf_tool_test():
hlt2_tracks = track_dict
out_track_types = {
"Best": [
- "BestLong", "BestDownstream", "BestVelo", "BestLongRefit",
- "BestDownstreamRefit", "BestVeloRefit"
+ "BestLong",
+ "BestDownstream",
+ "BestVelo",
+ "BestLongRefit",
+ "BestDownstreamRefit",
+ "BestVeloRefit",
+ "BestSeed",
+ "BestSeedRefit",
]
}
@@ -215,6 +251,9 @@ def pr_kf_tool_test():
resolutions_down = monitor_track_resolution(
best_tracks['BestDownstream'], per_hit_resolutions=True, suffix="Down")
+ resolutions_seed = monitor_track_resolution(
+ best_tracks['BestSeed'], per_hit_resolutions=True, suffix="Seed")
+
resolutions_velo = monitor_track_resolution(
best_tracks['BestVelo'], per_hit_resolutions=True, suffix="Velo")
@@ -228,14 +267,25 @@ def pr_kf_tool_test():
per_hit_resolutions=True,
suffix="DownRefit")
+ resolutions_refit_seed = monitor_track_resolution(
+ best_tracks['BestSeedRefit'],
+ per_hit_resolutions=True,
+ suffix="SeedRefit")
+
resolutions_refit_velo = monitor_track_resolution(
best_tracks['BestVeloRefit'],
per_hit_resolutions=True,
suffix="VeloRefit")
data += [
- resolutions_velo, resolutions_refit_velo, resolutions_long,
- resolutions_refit_long, resolutions_down, resolutions_refit_down
+ resolutions_velo,
+ resolutions_refit_velo,
+ resolutions_long,
+ resolutions_refit_long,
+ resolutions_down,
+ resolutions_refit_down,
+ resolutions_seed,
+ resolutions_refit_seed,
]
return Reconstruction('hlt2_reco_pr_kf_tool', data, reco_prefilters())
diff --git a/Hlt/RecoConf/options/pr_kf_velo_only.py b/Hlt/RecoConf/options/pr_kf_special_only.py
similarity index 64%
rename from Hlt/RecoConf/options/pr_kf_velo_only.py
rename to Hlt/RecoConf/options/pr_kf_special_only.py
index 9d2c019f40bdc068bfea0d18e0cf58fea9ed3940..99b4b45c6b53b45bb1aabc3d47a7e932bd7a4063 100644
--- a/Hlt/RecoConf/options/pr_kf_velo_only.py
+++ b/Hlt/RecoConf/options/pr_kf_special_only.py
@@ -14,13 +14,16 @@ from RecoConf.hlt1_tracking import (
all_velo_track_types, make_VeloClusterTrackingSIMD_hits,
make_PrStorePrUTHits_hits, make_PrStoreSciFiHits_hits,
TrackMasterExtrapolator, get_global_materiallocator)
-from PyConf.Algorithms import PrKalmanFilter_Velo
+from RecoConf.hlt2_tracking import make_PrHybridSeeding_tracks
+from PyConf.Algorithms import (PrKalmanFilter_Velo, PrKalmanFilter_Seed)
from RecoConf.mc_checking import monitor_track_resolution
-def pr_kf_velo_test():
+def pr_kf_special_test():
velo_tracks = all_velo_track_types()
+ scifi_tracks = make_PrHybridSeeding_tracks()
+
vp_hits = make_VeloClusterTrackingSIMD_hits()
ut_hits = make_PrStorePrUTHits_hits()
ft_hits = make_PrStoreSciFiHits_hits()
@@ -35,11 +38,24 @@ def pr_kf_velo_test():
ReferenceExtrapolator=TrackMasterExtrapolator(
MaterialLocator=get_global_materiallocator())).Output
+ fitted_seed = PrKalmanFilter_Seed(
+ MaxChi2=2.8,
+ MaxChi2PreOutlierRemoval=20,
+ Input=scifi_tracks['Pr'],
+ HitsVP=vp_hits,
+ HitsUT=ut_hits,
+ HitsFT=ft_hits,
+ ReferenceExtrapolator=TrackMasterExtrapolator(
+ MaterialLocator=get_global_materiallocator())).Output
+
fitted_velo_dict = {"v1": fitted_velo}
- resolutions = monitor_track_resolution(
- fitted_velo_dict, per_hit_resolutions=True)
+ fitted_seed_dict = {"v1": fitted_seed}
+ resolutions_velo = monitor_track_resolution(
+ fitted_velo_dict, per_hit_resolutions=True, suffix="Velo")
+ resolutions_seed = monitor_track_resolution(
+ fitted_seed_dict, per_hit_resolutions=True, suffix="Seed")
- return Reconstruction('my_reco', [resolutions])
+ return Reconstruction('my_reco', [resolutions_velo, resolutions_seed])
-run_reconstruction(options, pr_kf_velo_test)
+run_reconstruction(options, pr_kf_special_test)
diff --git a/Hlt/RecoConf/tests/qmtest/hlt2_reco_full_geometry.qmt b/Hlt/RecoConf/tests/qmtest/hlt2_reco_full_geometry.qmt
index 8ec874196c4d46b2e285f5af660e9026e811d0cd..a1a616e640221c4935fae75c6aa40af470e02a3f 100644
--- a/Hlt/RecoConf/tests/qmtest/hlt2_reco_full_geometry.qmt
+++ b/Hlt/RecoConf/tests/qmtest/hlt2_reco_full_geometry.qmt
@@ -30,10 +30,7 @@ validateWithReference(preproc = ref_preprocessor, counter_preproc = counter_prep
from Moore.qmtest.exclusions import remove_known_warnings
-# Ideally we should limit the frequency of "absurd tracks" warnings to about
-# 1 in 1000 events. For now, we check for an exact number since it is easier.
-# ToolSvc.TrackMasterExtrapolator WARNING Suppressing message: 'Protect against absurd tracks. See debug for details'
-countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 1},
+countErrorLines({"FATAL": 0, "ERROR": 0, "WARNING": 0},
stdout=remove_known_warnings(stdout))
diff --git a/Hlt/RecoConf/tests/qmtest/pr_kf_velo_only.qmt b/Hlt/RecoConf/tests/qmtest/pr_kf_special_only.qmt
similarity index 91%
rename from Hlt/RecoConf/tests/qmtest/pr_kf_velo_only.qmt
rename to Hlt/RecoConf/tests/qmtest/pr_kf_special_only.qmt
index de20435ebbc348f0b4550fad0839f99b8b48e077..3ea46e1442cb8f8a39e822ab5260306e5085b41c 100644
--- a/Hlt/RecoConf/tests/qmtest/pr_kf_velo_only.qmt
+++ b/Hlt/RecoConf/tests/qmtest/pr_kf_special_only.qmt
@@ -17,10 +17,10 @@ Make sure HLT2 configures, runs on digi as input and reconstruction does not cha
2400
$MOOREROOT/tests/options/default_input_and_conds_hlt2.py
- $RECOCONFROOT/options/pr_kf_velo_only.py
+ $RECOCONFROOT/options/pr_kf_special_only.py
true
-../refs/pr_kf_velo_only.ref
+../refs/pr_kf_special_only.ref
../refs/empty.ref