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

fix: use correct path length derivatives when computing the curvilinear covariance for a zero step propagation #2910

Conversation

goetzgaycken
Copy link
Contributor

The propagate can use curvilinear parametrisation for the returned parameters and covariance, However if the propagation step size is below the limit, the propagator does not compute the path length derivatives which leads to an incorrect covariance matrix when enabling curvilinear parameterization.

@github-actions github-actions bot added the Component - Core Affects the Core module label Jan 30, 2024
@goetzgaycken goetzgaycken changed the title fix: use correct path length derivatives when computing curvilinear coviance for a zero step propagation fix: use correct path length derivatives when computing the curvilinear covariance for a zero step propagation Jan 30, 2024
@paulgessinger
Copy link
Member

Thanks @goetzgaycken! This would have to be rebased on top of main itself, instead of v31.2.0, which should also resolve the conflict, I believe.

@paulgessinger
Copy link
Member

@beomki-yeo and @andiwand could you maybe have a look at this?

@goetzgaycken goetzgaycken force-pushed the fix_curvilinear_cov_for_zero_step_propagation branch 2 times, most recently from 560d9e7 to f9938dd Compare January 30, 2024 13:06
Copy link
Contributor

@andiwand andiwand left a comment

Choose a reason for hiding this comment

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

for my understanding: is the missing term from the covariance depending on the magnetic field? because I would have thought the contribution from the direction should be 0 since we always arrive perpendicular on the curvilinear surface

Core/include/Acts/Propagator/Propagator.ipp Outdated Show resolved Hide resolved
Core/include/Acts/Propagator/Propagator.ipp Outdated Show resolved Hide resolved
@goetzgaycken
Copy link
Contributor Author

for my understanding: is the missing term from the covariance depending on the magnetic field?

It depends on both the direction but also the cross product of the magnetic field and the time components on the propagation velocity. Even without a magnetic field a small correction results from the path length derivatives.

@goetzgaycken goetzgaycken force-pushed the fix_curvilinear_cov_for_zero_step_propagation branch from f9938dd to 8b49619 Compare January 31, 2024 09:32
@goetzgaycken
Copy link
Contributor Author

changes: f9938dd..8b49619 :

  • implemented @andiwand 's comment and moved the derivative computation to the stepper.
  • the unit test now compares the curvilinear covariance matrices of the explicit computation with small step propagation using eignstepper, and straightline stepper, where for the latter the magnetic field of the test data is forced to zero.

Propagation using the AtlasStepper and /MultiEigenStepperLoop have not been tested and/or fixed.

@goetzgaycken goetzgaycken force-pushed the fix_curvilinear_cov_for_zero_step_propagation branch 4 times, most recently from ae55147 to 62b007c Compare January 31, 2024 12:23
Copy link

codecov bot commented Jan 31, 2024

Codecov Report

Attention: Patch coverage is 41.93548% with 18 lines in your changes are missing coverage. Please review.

Project coverage is 48.82%. Comparing base (c3eea1c) to head (be0ac1d).

Files Patch % Lines
Core/include/Acts/Propagator/EigenStepper.ipp 29.41% 1 Missing and 11 partials ⚠️
.../include/Acts/Propagator/MultiEigenStepperLoop.hpp 0.00% 2 Missing ⚠️
Core/include/Acts/Propagator/Propagator.ipp 0.00% 1 Missing and 1 partial ⚠️
...re/include/Acts/Propagator/StraightLineStepper.hpp 80.00% 0 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2910      +/-   ##
==========================================
- Coverage   48.82%   48.82%   -0.01%     
==========================================
  Files         489      489              
  Lines       28860    28891      +31     
  Branches    13695    13711      +16     
==========================================
+ Hits        14092    14105      +13     
- Misses       4953     4957       +4     
- Partials     9815     9829      +14     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@goetzgaycken goetzgaycken force-pushed the fix_curvilinear_cov_for_zero_step_propagation branch from 62b007c to 5ec58b2 Compare January 31, 2024 17:39
@AJPfleger AJPfleger marked this pull request as ready for review February 6, 2024 16:44
@goetzgaycken goetzgaycken force-pushed the fix_curvilinear_cov_for_zero_step_propagation branch from 5ec58b2 to e53fd71 Compare February 7, 2024 08:22
@beomki-yeo
Copy link
Contributor

The PR looks good to me as long as the comments from others are resolved!

andiwand
andiwand previously approved these changes Feb 14, 2024
Copy link
Contributor

@andiwand andiwand left a comment

Choose a reason for hiding this comment

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

I left a few more comments and suggestions.

Generally I feel like there should be an easier solution to this but I also don't have a concrete idea for that so no objection from my side to merge this as it is since it fixes a problem.

@andiwand
Copy link
Contributor

andiwand commented Mar 1, 2024

@andiwand andiwand added this to the next milestone Mar 1, 2024
@goetzgaycken
Copy link
Contributor Author

goetzgaycken commented Mar 4, 2024

update from 5ec58b2 to 97a96a8

  • rebase to main of 2024-03-04 12:29
  • fixed :

@goetzgaycken there is a clang-tidy failure https://github.com/acts-project/acts/pull/2910/checks?check_run_id=21308679491 can you fix that?

Goetz Gaycken added 2 commits March 5, 2024 10:56
The test shows how to compute the Jacobian for the bound
to curvilinear conversion and compares the results from
a propagation with various step sizes.
@goetzgaycken goetzgaycken force-pushed the fix_curvilinear_cov_for_zero_step_propagation branch from 97a96a8 to 472d018 Compare March 5, 2024 09:56
@goetzgaycken
Copy link
Contributor Author

There seems to be a problem in "CI Bridge / build_linux_ubuntu". Though I do not see a particular what goes wrong exactly. Is this just an infrastructure problem ?

@paulgessinger
Copy link
Member

I think this is an OOM. I'm retrying.

@kodiakhq kodiakhq bot merged commit 8329f20 into acts-project:main Mar 20, 2024
54 checks passed
@acts-project-service
Copy link
Collaborator

acts-project-service commented Mar 20, 2024

🔴 Athena integration test results [8329f20]

Build job with this PR failed!

Please investigate the build job for the pipeline!

@acts-project-service acts-project-service added the Breaks Athena build This PR breaks the Athena build label Mar 20, 2024
@paulgessinger paulgessinger modified the milestones: next, v33.1.0 Mar 26, 2024
EleniXoch pushed a commit to EleniXoch/acts that referenced this pull request May 6, 2024
…ar covariance for a zero step propagation (acts-project#2910)

The propagate can use curvilinear parametrisation for the returned parameters and covariance, However if the propagation step size is below the limit, the propagator does not compute the path length derivatives which leads to an incorrect covariance matrix when enabling curvilinear parameterization.
asalzburger pushed a commit to asalzburger/acts that referenced this pull request May 21, 2024
…ar covariance for a zero step propagation (acts-project#2910)

The propagate can use curvilinear parametrisation for the returned parameters and covariance, However if the propagation step size is below the limit, the propagator does not compute the path length derivatives which leads to an incorrect covariance matrix when enabling curvilinear parameterization.
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 Component - Core Affects the Core module
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants