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