diff --git a/Hlt/RecoConf/python/RecoConf/hlt2_tracking.py b/Hlt/RecoConf/python/RecoConf/hlt2_tracking.py index 7c7ea16016c78b8a1eb10c40f6504bdb1b2157db..92ce4c901e5db580051b04caac9d5734ea30c885 100644 --- a/Hlt/RecoConf/python/RecoConf/hlt2_tracking.py +++ b/Hlt/RecoConf/python/RecoConf/hlt2_tracking.py @@ -35,6 +35,7 @@ from PyConf.Algorithms import ( PrLongLivedTracking, PrMatchNN, PrResidualPrUTHits, + PrResidualPrUTHits_v1Tracks, PrResidualSciFiHits, PrResidualSeedingLong, PrResidualVeloTracks, @@ -1463,7 +1464,7 @@ def make_pr_kf_light_reco_best_tracks( hits_ft=ft_hits, ) - best_down = make_TrackBestTrackCreator_tracks( + best_down1 = make_TrackBestTrackCreator_tracks( tracks=[fitted_down], name="TBTC_down_{hash}", get_ghost_tools=get_GhostProbabilityTools(track_type="Downstream"), @@ -1478,7 +1479,7 @@ def make_pr_kf_light_reco_best_tracks( seed_decloned_pr = PrCloneKillerSeedDown( TracksInContainer=seed_vs_bestlong, - TracksRefContainer=best_down, + TracksRefContainer=best_down1, ).TracksOutContainer seed_decloned = fromPrSeedingTracksV1Tracks( @@ -1486,6 +1487,7 @@ def make_pr_kf_light_reco_best_tracks( TrackAddClusterTool=clusters_on_track_tool(), ).OutputTracksLocation + # these are used by the monitoring/mcchecking seed_fitted = make_PrKalmanFilter_Seed_tracks( input_tracks=tracks["Seed"]["Pr"], hits_ft=ft_hits @@ -1538,6 +1540,34 @@ def make_pr_kf_light_reco_best_tracks( fit_tracks=False, )["Best"] + ### + best_for_ut_hits = TrackContainersMerger(InputLocations=[best_long, best_down1, best_up]).OutputLocation + + seed_for_leftover_down = { "Pr" : seed_decloned_pr, "v1" : seed_decloned } + + leftover_ut_hits = { "v1" : best_for_ut_hits } + + make_residual_uthits = partial(make_ReducePrUTHits_fromV1, leftover_ut_hits) + + + leftover_down = make_PrLongLivedTracking_tracks(seed_for_leftover_down, make_ut_hits = make_residual_uthits) + fitted_leftover_down = make_PrKalmanFilter_Downstream_tracks( + input_tracks=leftover_down["Pr"], + hits_ut=make_residual_uthits(), + hits_ft=ft_hits, + ) + + best_down2 = make_TrackBestTrackCreator_tracks( + tracks=[fitted_leftover_down], + name="TBTC_leftover_down_{hash}", + get_ghost_tools=get_GhostProbabilityTools(track_type="Downstream"), + do_not_refit=True, + fit_tracks=False, + )["Best"] + + best_down = TrackContainersMerger(InputLocations=[best_down1, best_down2]).OutputLocation + ### + velo_fitted = make_PrKalmanFilter_Velo_tracks( input_tracks=tracks["Velo"]["Pr"], hits_vp=vp_hits, @@ -1893,6 +1923,14 @@ def make_ReducePrUTHits_fromLong(input_tracks, make_ut_hits=make_PrStorePrUTHits TracksLocation=input_tracks["Pr"], PrUTHitsLocation=make_ut_hits() ).PrUTHitsOutput +@configurable +def make_ReducePrUTHits_fromV1(input_tracks, make_ut_hits=make_PrStorePrUTHits_hits): + """ + Function to remove PrUTHits used by Long tracks and create a new PrUTHits container for the residual PrUTHits, which are later used as input to PrLongLivedTracking or PrForwardTracking + """ + return PrResidualPrUTHits_v1Tracks( + TracksLocation=input_tracks["v1"], PrUTHitsLocation=make_ut_hits() + ).PrUTHitsOutput def get_fast_hlt2_tracks(): """Function to get fast set of tracks reconstructed in HLT2