Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor!: Return all track states from Core CKF #3391

Conversation

andiwand
Copy link
Contributor

@andiwand andiwand commented Jul 16, 2024

Since the Core CKF is growing into its own components which is then absorbed by a track finding algorithm it also allows us to extend tracks into different regions of the detector. While extending tracks we map want to keep eventual holes/material/outliers states at the end or beginning of the track. For this reason the CKF is modified to return all the states it found.

For convenience of the user I added helper functions which allow to trim tracks. This is then exercised in the Examples track finding.

blocked by

@andiwand andiwand added this to the next milestone Jul 16, 2024
@github-actions github-actions bot added Component - Core Affects the Core module Track Finding labels Jul 16, 2024
Copy link

github-actions bot commented Jul 16, 2024

📊: Physics performance monitoring for baa41c7

Full contents

physmon summary

@andiwand
Copy link
Contributor Author

Discussed this briefly with @noemina - Potentially this should rather be a flag and this flag also toggles if we store anything before the first measurement. In this case we can also store holes at the end of the track.

cc @paulgessinger

@andiwand andiwand added the 🚧 WIP Work-in-progress label Jul 16, 2024
@paulgessinger paulgessinger modified the milestones: next, v36.0.0 Jul 18, 2024
@andiwand andiwand marked this pull request as draft July 23, 2024 08:56
@andiwand andiwand changed the title refactor: Keep outliers and material states at the end of track in Core CKF refactor: Return all track states from Core CKF Aug 2, 2024
@github-actions github-actions bot added the Component - Examples Affects the Examples module label Aug 2, 2024
@andiwand andiwand modified the milestones: next, v37.0.0 Aug 28, 2024
@andiwand andiwand changed the title refactor: Return all track states from Core CKF refactor!: Return all track states from Core CKF Aug 28, 2024
@andiwand andiwand mentioned this pull request Aug 29, 2024
@timadye
Copy link
Contributor

timadye commented Sep 25, 2024

I have checked #3644, #3648, and #3391 (this PR) and compared against main (65aff94). I rebased #3644 and merged #3391 with main to allow a fair comparison. With 100 ttbar_pu200 events, full_chain_itk.py gave the following results:

CPU [s/ev] speedup efficiency fake rate
main 1.72 99.19% 3.03%
#3648 1.69 1.4% 99.19% 3.02%
#3644 1.72 -0.4% 99.27% 3.43%
#3391 1.70 0.8% 99.27% 3.42%

where the CPU time is just for TrackFindingAlgorithm and is with 8 threads on the same machine. The speedup in each case is relative to main.

trackeff_vs_eta
fakerate_vs_eta
nHoles_vs_eta
nOutliers_vs_eta

I think this shows that the tracking performance changes come from #3644, while #3648 improves the speed slightly. #3391 includes the changes from the other two, but doesn't have any additional effect on CPU or performance.

@andiwand
Copy link
Contributor Author

Should we go ahead with #3391 and dump #3644 and #3648 @timadye ? Or do you prefer to merge them sequentially #3644 #3648 #3391?

@timadye
Copy link
Contributor

timadye commented Sep 25, 2024

I think it is cleaner to merge #3644 and #3648 (can be done in parallel), then #3391.

kodiakhq bot pushed a commit that referenced this pull request Sep 25, 2024
Currently CKF tracks can have outliers at the back because the measurement flag is also set for outliers as they contains such information. An additional check is introduced to reject outliers.

This is an attempt to also understand the output changes of #3391 better
paulgessinger pushed a commit that referenced this pull request Sep 26, 2024
…e CKF (#3648)

Currently CKF tracks can have material states before any measurement was
found. This is not true for outliers and holes. The logic is reworked so
material, outliers and holes are handled in the same way if we have not
found any measurements yet.

This is an attempt to also understand the output changes of
#3391 better
@andiwand andiwand removed the 🛑 blocked This item is blocked by another item label Sep 26, 2024
@andiwand
Copy link
Contributor Author

@timadye the physmon diff disappeared now

@timadye
Copy link
Contributor

timadye commented Sep 26, 2024

With 100 ttbar_pu200 events running full_chain_itk.py, #3391 TrackFindingAlgorithm is 1% faster than its base main (495c60d). I don't see any appreciable change in the efficiency or fakes.

@andiwand
Copy link
Contributor Author

With 100 ttbar_pu200 events running full_chain_itk.py, #3470 TrackFindingAlgorithm is 1% faster than its base main (495c60d). I don't see any appreciable change in the efficiency or fakes.

@timadye is this meant for #3470 or this PR ( #3391 ) ?

@timadye
Copy link
Contributor

timadye commented Sep 27, 2024

@timadye is this meant for #3470 or this PR ( #3391 ) ?

sorry for the typo. I have fixed the original comment. It was #3391.

@acts-project-service acts-project-service added the Breaks Athena build This PR breaks the Athena build label Sep 27, 2024
Copy link

sonarcloud bot commented Sep 27, 2024

@acts-project-service acts-project-service added the Fails Athena tests This PR causes a failure in the Athena tests label Sep 27, 2024
@kodiakhq kodiakhq bot merged commit 2196648 into acts-project:main Sep 27, 2024
46 checks passed
@andiwand andiwand deleted the refactor-ckf-keep-outliers-material-end-of-track branch September 27, 2024 21:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Breaks Athena build This PR breaks the Athena build Changes Performance Component - Core Affects the Core module Component - Examples Affects the Examples module Fails Athena tests This PR causes a failure in the Athena tests Track Finding
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants