Update Moore-Allen python interface to use V3 converters rather than V2.
Related
Follow evolution of the Gaudi-Allen converters in Allen!1124 (merged). Also depends on Rec!3370 (merged).
Part of resolution to Allen#371.
Description
Allen!1124 (merged) implements new converters from Allen track views to LHCb::Event::v3::Tracks. It also removes the converters from Allen tracks to LHCb::Event::v2::Tracks. This MR implements the changes necessary updates to the python configuration interface to Moore, Hlt/RecoConf/python/RecoConf/hlt1_allen.py.
make_allen_velo_tracks()
Among the python wrappers for conversion of Allen tracks, make_allen_velo_tracks() has undergone the most significant changes.
For LHCb::Event::v3::Tracks, the track type is a property of the container rather than of individual tracks. In order to preserve the distinction between Velo and VeloBackward tracks, the new GaudiAllenVeloToV3Tracks converter in Allen!1124 (merged) produces two separate output containers---one for the tracks that were marked as VeloBackward and another for the remaining Velo tracks. Handles for these containers are available through the new v3fwd and v3bwd keys of the dictionary returned by make_allen_velo_tracks().
The two LHCb::Event::v3::Tracks output containers of GaudiAllenVeloToV3Tracks are separatly converted to LHCb::Event::v1::Tracks (keyed container). The converted LHCb::Event::v1::Tracks are merged to provide the v1keyed handle of the dictionary returned by make_allen_velo_tracks(). This should produce output that contains the same set of tracks as the old v1keyed output, although in a different order due to the tracks being sorted by forward/backward.
Hopefully, the following diagram illustrates the changes.
flowchart TD
subgraph New conversion flow
sn([GaudiAllenVeloToV3Tracks]) --> v3f[v3fwd]
sn --> v3b[v3bwd]
v3f -- fromV3TrackV1Track --> m([TrackContainersMerger])
v3b -- fromV3TrackV1Track --> m
m --> v1kn[v1keyed]
v1kn -- fromV1TrackV2Track --> v2n[v2]
v2n -- fromV2TrackV1TrackVector --> v1n[v1]
end
subgraph Old conversion flow
so([GaudiAllenVeloToV2Tracks]) --> v2o[v2]
v2o -- fromV2TrackV1TrackVector --> v1o[v1]
v1o -- fromVectorLHCbTrack --> v1ko[v1keyed]
end
make_allen_velo_ut_tracks(), make_allen_forward_tracks(), and make_allen_seed_and_match_tracks_no_ut()
The modifications to the single-container conversion chains are more straightforward. These should preserve the order of the tracks through conversion.
Hopefully, the following diagram illustrates the changes.
flowchart TD
subgraph New conversion flow
sn([GaudiAllen.*ToV3Tracks]) --> v3n[v3]
v3n -- fromV3TrackV1Track --> v1kn[v1keyed]
v1kn -- fromV1TrackV2Track --> v2n[v2]
v2n -- fromV2TrackV1TrackVector --> v1n[v1]
end
subgraph Old conversion flow
so([GaudiAllen.*ToV2Tracks]) --> v2o[v2]
v2o -- fromV2TrackV1TrackVector --> v1o[v1]
v1o -- fromVectorLHCbTrack --> v1ko[v1keyed]
end