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: Write smoothed states in GX2F #3584

Merged
merged 5 commits into from
Sep 3, 2024

Conversation

andiwand
Copy link
Contributor

@andiwand andiwand commented Sep 2, 2024

The global chi2 fitter should write smoothed states like the other fitters since the states will contain information about previous and following measurements.

Apart from that I explicitly bound I renamed the free function updateCovariancePredicted to updateGx2fCovariance because it is too generic for the public Acts namespace and bound the implementation explicitly to the namespace to avoid linker errors while renaming.

Copy link

github-actions bot commented Sep 2, 2024

📊: Physics performance monitoring for 1d6573c

Full contents

physmon summary

@AJPfleger
Copy link
Contributor

The GX2F states are a hard prediction of a propagation with the fitted parameters.

There was a similar discussion in the beginning of the GX2F-development. The GX2F doesn't do any filtering or smoothing, therefore those states don't exist. Of course the predicted in the GX2F has a slightly different meaning than in the KF. But we decided to not create a new type gx2f-states and overload the meaning of predicted.

An idea on how to have a common set of resulting parameters would be to rework the naming completely, e.g. having for the best fit a set called finalised-states.

@andiwand
Copy link
Contributor Author

andiwand commented Sep 2, 2024

I think predicted is the worst choice of the three and smoothed is the best because in after fitting the states should be similar to those of a KF smoothed states. So IMO in terms of signal processing it does exactly smoothing and nothing else.

An idea on how to have a common set of resulting parameters would be to rework the naming completely, e.g. having for the best fit a set called finalised-states.

This is what we call smoothed states in the current terminology.

@AJPfleger
Copy link
Contributor

As far as I remember, in signal processing terms smoothing is used to reduce random fluctuations of a signal, basically all noise, that cannot be caught by frequency based filters.

In the best interpretation, the GX2F does not do any of this. In the worst, it does the exact opposite, be introducing additional scattering angles that make the final trajectory less smooth.

@AJPfleger
Copy link
Contributor

In today's meeting, we converged to the following resolution: We rename to smoothed, because the resulting states should be the same as the resulting KF-states. We need to write into the documentation, that smoothed means finalised for some fitters and should be used for all trackstates, that come back nicely, even if the fitter is not doing any explicit smoothing.

@andiwand
Copy link
Contributor Author

andiwand commented Sep 2, 2024

I don't think there is a good definition of what smoothing is but in the KF formalism it means reversing the filtering process to inform "past" states with "future" measurements.

Currently we keep 3 track states in our EDM

  • predicted - basically an extrapolation from a previous filtered/smoothed state
  • filtered - combines the previous best knowledge with the current measurement
  • smoothed - combines all measurements in an optimal estimate for the current state

Given these three as a choice for the GX2F only the smoothed makes sense IMO because we the information of all measurements to derive the state. For linear systems this state of the GX2F should be equivalent to the KF smoothed state.

@github-actions github-actions bot added the Component - Examples Affects the Examples module label Sep 3, 2024
@andiwand andiwand marked this pull request as ready for review September 3, 2024 08:39
Copy link
Contributor

@AJPfleger AJPfleger 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 now :)
Let's not forget to add the meaning of smoothed to the documentation.

Copy link

sonarcloud bot commented Sep 3, 2024

@kodiakhq kodiakhq bot merged commit c3cbc93 into acts-project:main Sep 3, 2024
42 checks passed
@github-actions github-actions bot removed the automerge label Sep 3, 2024
@andiwand andiwand deleted the gx2f-write-smoothed-states branch September 3, 2024 13:16
kodiakhq bot pushed a commit that referenced this pull request Sep 5, 2024
…Writer` (#3561)

Deduplicating the unbiased states in `RootTrackStatesWriter` by only deriving them from the smoothed states. I believe for other states than smoothed this formalism does not make sense.

blocked by
- #3584
@paulgessinger paulgessinger modified the milestones: next, v37.0.0 Oct 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component - Core Affects the Core module Component - Examples Affects the Examples module Track Fitting
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants