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!: Add ability to copy Tracks between containers #1980

Merged
merged 5 commits into from
Mar 27, 2023

Conversation

paulgessinger
Copy link
Member

@paulgessinger paulgessinger commented Mar 22, 2023

This preserves the dynamic columns if the backend supports this. Also adds a method to the TrackContainer layer that should ensure the backend copies the types using the correct types.

This PR also switches the TrackSelector algorithm to use this, instead of copying the input tracks and removing the discarded tracks. In my testing, this brings the selector performance back in line with expectations on ttbar.

BREAKING CHANGE: TrackContainer backends needs to implement these methods:

  • copyDynamicFrom_impl
  • ensureDynamicColumns_impl

@paulgessinger paulgessinger added this to the next milestone Mar 22, 2023
Also allow to ensure matching dynamic columns
I didn't add this to the container itself because I'm not sure this
being available is an assumption we should make (not sure though).
@paulgessinger
Copy link
Member Author

fyi @tboldagh

@codecov
Copy link

codecov bot commented Mar 22, 2023

Codecov Report

Merging #1980 (6034147) into main (e3818b0) will increase coverage by 0.05%.
The diff coverage is 57.14%.

@@            Coverage Diff             @@
##             main    #1980      +/-   ##
==========================================
+ Coverage   49.75%   49.80%   +0.05%     
==========================================
  Files         413      413              
  Lines       23526    23596      +70     
  Branches    10652    10676      +24     
==========================================
+ Hits        11705    11753      +48     
- Misses       4338     4342       +4     
- Partials     7483     7501      +18     
Impacted Files Coverage Δ
...re/include/Acts/EventData/VectorTrackContainer.hpp 53.08% <ø> (+0.97%) ⬆️
Core/src/EventData/VectorTrackContainer.cpp 36.06% <36.36%> (+2.73%) ⬆️
...re/include/Acts/EventData/detail/DynamicColumn.hpp 55.00% <64.70%> (+23.00%) ⬆️
Core/include/Acts/EventData/Track.hpp 88.30% <76.47%> (-0.89%) ⬇️

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

Copy link
Contributor

@Corentin-Allaire Corentin-Allaire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. I don't have much comment on this; I guess we can wait until tomorrow in case someone else wants to say something. If not, I can approve it tomorrow afternoon.

Concerning the selector, I guess the difference is that since you only copy the correct entry instead of removing the incorrect one, you don't have to resize after every deletion ?

@github-actions
Copy link

github-actions bot commented Mar 22, 2023

📊 Physics performance monitoring for 6034147

Full report
Seeding: seeded, truth estimated, orthogonal
CKF: seeded, truth smeared, truth estimated, orthogonal
IVF: seeded, truth smeared, truth estimated, orthogonal
Ambiguity resolution: seeded, orthogonal
Truth tracking
Truth tracking (GSF)

Vertexing

Vertexing vs. mu
IVF seeded

IVF truth_smeared

IVF truth_estimated

IVF orthogonal

Seeding

Seeding seeded

Seeding truth_estimated

Seeding orthogonal

CKF

CKF seeded

CKF truth_smeared

CKF truth_estimated

CKF orthogonal

Ambiguity resolution

seeded

Truth tracking (Kalman Filter)

Truth tracking

Truth tracking (GSF)

Truth tracking

Copy link
Contributor

@tboldagh tboldagh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. I have a few comments that could help with readability.

@paulgessinger paulgessinger changed the title refactor: Add ability to copy Tracks between containers refactor!: Add ability to copy Tracks between containers Mar 23, 2023
@paulgessinger
Copy link
Member Author

Looks good to me. I don't have much comment on this; I guess we can wait until tomorrow in case someone else wants to say something. If not, I can approve it tomorrow afternoon.

Concerning the selector, I guess the difference is that since you only copy the correct entry instead of removing the incorrect one, you don't have to resize after every deletion ?

Exactly. Also we only keep 1% of tracks for ttbar, so it's overall many fewer operations.

@paulgessinger
Copy link
Member Author

@tboldagh @Corentin-Allaire @CarloVarni can we get this in?

@tboldagh
Copy link
Contributor

@tboldagh @Corentin-Allaire @CarloVarni can we get this in?

Yes from my side.

@Corentin-Allaire
Copy link
Contributor

@tboldagh @Corentin-Allaire @CarloVarni can we get this in?

Also yes from mine !

@CarloVarni
Copy link
Collaborator

fine by me

@kodiakhq kodiakhq bot merged commit 4d1a846 into acts-project:main Mar 27, 2023
1 check passed
@paulgessinger paulgessinger modified the milestones: next, v24.0.0 Mar 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants