add ActsTrkFinding to use ACTS CKF
A first implementation of ActsTrkFinding/TrackFindingAlg
and ActsTrkFindingTool/TrackFindingTool
to use Acts::CombinatorialKalmanFilter
from Athena.
- With
--preInclude ActsInterop.ActsCIFlags.actsValidateTracksFlags
:- replaces Athena track finding with Acts track finding. Subsequent steps use Acts
Trk::Track
outputs, so default IDPVM can be used for performance studies.- It looks good so far, with one big exception: a large loss of efficiency in the barrel, probably due to loss of most strip hits.
- also replaces the Acts clusterization with the Athena clusterization in the Acts workflow. This is needed to create PRD links, which are needed while we use
Trk::Track
as output of the track finding.
- replaces Athena track finding with Acts track finding. Subsequent steps use Acts
- To-do following this MR:
- fix strip hit association
- revisit tool interface, or move tool functionality into algorithm.
- improve
Trk::Track
creation or replace with newActs::Track
. ForTrk::Track
:- does not add outliers from reverse filtering - is this needed?
- uses legacy Athena enums,
Trk::TrackInfo::TrackFitter::KalmanFitter
andTrk::TrackInfo::TrackPatternRecoInfo::SiSPSeededFinder
- only works with Athena clusterization
- Unlike Athena algorithm, no additional fit required after Acts CKF. We should disable the global Chi^2 fit in the ambiguity solver.
- are we using the correct TSOS to calculate the track parameters?
Implements ATLIDTRKCP-355. Details and performance discussed here.
Merge request reports
Activity
assigned to @adye
added 1 commit
- 33ff3fd7 - get geometry and B-field based on ActsKalmanFitter
added 1 commit
- e9b45cb3 - Fix interface to ACTS CKF. Now it compiles!, but doesn't run, or I/O seeds/tracks
In order to test this implementation within athena, as discussed in our chat (with @pagessin), we could think of making the ACTS CKF pluggable. It requires a tool that
public extends<AthAlgTool, ISiTrackMaker>
and implements the functions needed in SiSPSeededTrackFinder::newStrategy. This would probably need some gymnastic to convert from the current to the new EDS. Is this something you plan to add in this MR as well?added 1 commit
- 6af142bf - fix TrackFindingTool's tool setup. Now compiles and runs, 'just' doesn't see input seeds.
Is this something you plan to add in this MR as well?
I think it would be good if this MR can be merged with something that works, even if not the final interface. So I would prefer to make the new interface as a separate MR.
However, if the new frozen T0 policy means this can't be merged anyway, then we could continue development in this MR.
Another issue is that I am working with 23.0.9 at the moment. At some point I will have to update to be compatible with Carlo's updates for v21.0.0/v21.1.0. I know there are some changes in the ACTS CKF API because I had to remove those to get it to compile in 23.0.9. There are probably some EDM changes I'll need to update too.
Maybe now Carlo's MRs have been merged, I should update sooner rather than later. It's not in a 23.0.X release yet, so I'll need to use a nightly which isn't as stable.
added 1 commit
- 697d1370 - read pixel/strip clusters and convert measurements to sourcelinks for CKF....
added ACTS label
- Resolved by Tim Adye
- Resolved by Tim Adye
- Resolved by Tim Adye
- Resolved by Tim Adye
- Resolved by Tim Adye
- Resolved by Tim Adye
- Resolved by Tim Adye
Hi @adye from a first look I have a few comments on the code.
Concerning the support for the ATLAS interface, I'd suggest to follow the same approach used for the Seeding (see https://gitlab.cern.ch/atlas/athena/-/blob/master/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/src/SiSpacePointsSeedMaker.h)