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

test: Hacky two way CKF #2717

Closed
wants to merge 5 commits into from
Closed

Conversation

andiwand
Copy link
Contributor

Not meant for merging but just wanted to put it out so we can easily display and discuss the code and results.

This is a very early attempt to use our existing CKF in both directions.

First we run the CKF with forward propagation with smoothing and then use the smoothed params to run an additional backward propagation for each forward track. Afterwards we can reverse the backward track states and modify the parent index that it becomes a single, longer track.

For now I drafted this in a new algorithm but I think we can extend the existing track finding algorithm to optionally do that and add a config with which direction to start.

Discovered problems

  • CKF does not produce tracks without smoothing turned on

Discovered difficulties

  • accessing the nth track state is a bit cumbersome

cc @noemina @paulgessinger

@github-actions github-actions bot added Component - Examples Affects the Examples module Track Finding labels Nov 22, 2023
Copy link

codecov bot commented Nov 22, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (51828bd) 49.50% compared to head (1f19caf) 49.50%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2717   +/-   ##
=======================================
  Coverage   49.50%   49.50%           
=======================================
  Files         475      475           
  Lines       26975    26975           
  Branches    12454    12454           
=======================================
  Hits        13355    13355           
  Misses       4762     4762           
  Partials     8858     8858           

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

@andiwand
Copy link
Contributor Author

closing after demonstration is finished

@andiwand andiwand closed this Nov 27, 2023
kodiakhq bot pushed a commit that referenced this pull request Mar 28, 2024
After #2539 I want to finally refactor the CKF and remove the smoothing and the reference surface targeting from the core algorithm in order to make it more composable and less complicated.

Before the CKF was basically only usable with smoothing turned on otherwise we would not receive any tracks. Now it always runs without smoothing and the user can decide what and how to smooth. Afterwards the user can decide which track state they want to extrapolate to a reference surface if necessary.

IMO this makes the algorithm flow much easier to comprehend and gives the user more flexibility. This also makes an implementation of a two way finding easier as discovered in #2717

blocked by
- #2723

---

Users can smooth and extrapolate tracks after the CKF returns them. Extrapolation can be achieved using the `Propagator` while smoothing can be done by the `GainMatrixSmoother`.

For convenience this PR also includes helper functions to smooth and extrapolate single tracks or a whole track container.

Example of smoothing and extrapolating tracks after the CKF

https://github.com/acts-project/acts/blob/98186891d4bdc5b211f6af3e96ca59ace7c315cc/Examples/Algorithms/TrackFinding/src/TrackFindingAlgorithm.cpp#L172-L189
andiwand added a commit that referenced this pull request Apr 11, 2024
Resurrect #2717 from @andiwand, updating to the latest `main`, and
removing earlier test (`MyTrackFindingAlgorithm`).

blocked by
- #3074
- #3075
- #3076
- #3077
- #3078
- #3086

---------

Co-authored-by: andiwand <[email protected]>
Co-authored-by: Tim Adye <[email protected]>
Ragansu pushed a commit to Ragansu/acts that referenced this pull request Apr 19, 2024
Resurrect acts-project#2717 from @andiwand, updating to the latest `main`, and
removing earlier test (`MyTrackFindingAlgorithm`).

blocked by
- acts-project#3074
- acts-project#3075
- acts-project#3076
- acts-project#3077
- acts-project#3078
- acts-project#3086

---------

Co-authored-by: andiwand <[email protected]>
Co-authored-by: Tim Adye <[email protected]>
EleniXoch pushed a commit to EleniXoch/acts that referenced this pull request May 6, 2024
…ject#2722)

After acts-project#2539 I want to finally refactor the CKF and remove the smoothing and the reference surface targeting from the core algorithm in order to make it more composable and less complicated.

Before the CKF was basically only usable with smoothing turned on otherwise we would not receive any tracks. Now it always runs without smoothing and the user can decide what and how to smooth. Afterwards the user can decide which track state they want to extrapolate to a reference surface if necessary.

IMO this makes the algorithm flow much easier to comprehend and gives the user more flexibility. This also makes an implementation of a two way finding easier as discovered in acts-project#2717

blocked by
- acts-project#2723

---

Users can smooth and extrapolate tracks after the CKF returns them. Extrapolation can be achieved using the `Propagator` while smoothing can be done by the `GainMatrixSmoother`.

For convenience this PR also includes helper functions to smooth and extrapolate single tracks or a whole track container.

Example of smoothing and extrapolating tracks after the CKF

https://github.com/acts-project/acts/blob/98186891d4bdc5b211f6af3e96ca59ace7c315cc/Examples/Algorithms/TrackFinding/src/TrackFindingAlgorithm.cpp#L172-L189
EleniXoch pushed a commit to EleniXoch/acts that referenced this pull request May 6, 2024
Resurrect acts-project#2717 from @andiwand, updating to the latest `main`, and
removing earlier test (`MyTrackFindingAlgorithm`).

blocked by
- acts-project#3074
- acts-project#3075
- acts-project#3076
- acts-project#3077
- acts-project#3078
- acts-project#3086

---------

Co-authored-by: andiwand <[email protected]>
Co-authored-by: Tim Adye <[email protected]>
asalzburger pushed a commit to asalzburger/acts that referenced this pull request May 21, 2024
…ject#2722)

After acts-project#2539 I want to finally refactor the CKF and remove the smoothing and the reference surface targeting from the core algorithm in order to make it more composable and less complicated.

Before the CKF was basically only usable with smoothing turned on otherwise we would not receive any tracks. Now it always runs without smoothing and the user can decide what and how to smooth. Afterwards the user can decide which track state they want to extrapolate to a reference surface if necessary.

IMO this makes the algorithm flow much easier to comprehend and gives the user more flexibility. This also makes an implementation of a two way finding easier as discovered in acts-project#2717

blocked by
- acts-project#2723

---

Users can smooth and extrapolate tracks after the CKF returns them. Extrapolation can be achieved using the `Propagator` while smoothing can be done by the `GainMatrixSmoother`.

For convenience this PR also includes helper functions to smooth and extrapolate single tracks or a whole track container.

Example of smoothing and extrapolating tracks after the CKF

https://github.com/acts-project/acts/blob/98186891d4bdc5b211f6af3e96ca59ace7c315cc/Examples/Algorithms/TrackFinding/src/TrackFindingAlgorithm.cpp#L172-L189
asalzburger pushed a commit to asalzburger/acts that referenced this pull request May 21, 2024
Resurrect acts-project#2717 from @andiwand, updating to the latest `main`, and
removing earlier test (`MyTrackFindingAlgorithm`).

blocked by
- acts-project#3074
- acts-project#3075
- acts-project#3076
- acts-project#3077
- acts-project#3078
- acts-project#3086

---------

Co-authored-by: andiwand <[email protected]>
Co-authored-by: Tim Adye <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component - Examples Affects the Examples module Track Finding
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant