-
Notifications
You must be signed in to change notification settings - Fork 157
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!: seeding always sorts SPs #1910
Conversation
📊 Physics performance monitoring for 5d0dfc5Full report VertexingSeedingCKFAmbiguity resolutionTruth tracking (Kalman Filter)Truth tracking (GSF) |
Codecov Report
@@ Coverage Diff @@
## main #1910 +/- ##
==========================================
+ Coverage 49.53% 49.55% +0.02%
==========================================
Files 408 408
Lines 22705 22695 -10
Branches 10362 10356 -6
==========================================
Hits 11247 11247
+ Misses 4249 4239 -10
Partials 7209 7209
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
It doesn't seem to decrease the performance so I updated the root hashes |
This reverts commit c942f23.
…ms and tops (#1926) This is build on top of #1919 and also assumes the space points in the grid bins are already sorted in radius. Thus #1910 is required as well Idea here is that in a tt-bar sample the grid bins may be very populated. However, the grid collects space points according to their z-phi values, with no consideration for the r-coordinate. While looking for compatible bottoms and tops candidates we iterate on all the space points in the selected grid bins and this is a huge waste of time since just a few percentage of the space points are to be considerate. Of course, we check the distance of the candidate w.r.t. the middle space point... yet it is a O(N) operation. With this change I'm introducing here (excluding what's already in #1919) I first performs a binary search on the space points candidates to identify those in the proper radius range. This should be a O(logN) operation. And only then I run on them. Since `getCompatibleDoublets` is one of the main contributors in the seeding time, this may improve the CPU performance
Sorting has been shown to be less expensive then looping over all elements to select bottom and top sps for seeds. By sorting the SPs, we can avoid a considerable number of iterations, especially for high pile-up.
This PR removes the option to not sort the SPs during the seeding algorithm. @noemina