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

feat: fix compilation for Acts versions from v36 up to v38 #1715

Open
wants to merge 11 commits into
base: main
Choose a base branch
from

Conversation

wdconinc
Copy link
Contributor

@wdconinc wdconinc commented Jan 16, 2025

Briefly, what does this PR introduce?

This adapts our tracking algorithms to any Acts version between v36 and v38.

The commits in this branch are topologically ordered with reference to the commit message title, Acts PR number, and version validity. All commits compile individually, but no event-for-event validation has been performed. See also #1525.

The support for mulitple versions is done by somewhat extensive use of preprocessor directives based on Acts_VERSION_MAJOR and Acts_VERSION_MINOR.

Builds with: (to be completed)

Needs:

What kind of change does this PR introduce?

  • Bug fix (issue #__)
  • New feature (issue: Acts versions are released faster than we can keep up with)
  • Documentation update
  • Other: __

Please check if this PR fulfills the following:

  • Tests for the changes have been added
  • Documentation has been added / updated
  • Changes have been communicated to collaborators

Does this PR introduce breaking changes? What changes might users need to make to their code?

No.

Does this PR change default behavior?

No.

@github-actions github-actions bot added the topic: tracking Relates to tracking reconstruction label Jan 16, 2025
@veprbl
Copy link
Member

veprbl commented Feb 21, 2025

if (!track.hasReferenceSurface()) {
ACTS_WARNING("Track has no reference surface.");
continue;
}
Copy link
Member

Choose a reason for hiding this comment

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

Where did this come from? Upstream code only has a ACTS_ERROR("Track has no reference surface"); but in a different context.

Copy link
Member

Choose a reason for hiding this comment

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

Also, to simply continue here is not correct. We tried that before, and this is what was implemented instead: #1677

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the careful review. Segfaults happen two lines below this even with the #1677 treatment included (which has always been in this branch for testing since it well predates it). I guess that means even with a successful extrapolation we now have referenceSurfacePtrs that are null and the check in #1677 is insufficient.

Suggestion: revert this, and I'll dig into it more.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Actually, it may be that in #1677 we should have had the addition to failed tracks also in the smoothing step.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

At least this is an easy to reproduce issue, since it segfaults out on the very first event (and presumably every event).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

#1741 doesn't address the underlying issue, but is a sensible fix anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: infrastructure topic: tracking Relates to tracking reconstruction
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants