You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After #3181 we have multiple context references in flight for track fitting and finding as they are bound in the algorithm options and propagation options.
(context if part of KalmanFitterOptions and PropagatorPlainOptions)
This is not necessarily bad as it consumed little space but might be a source of errors as users could provide two different context objects for a single track fit.
A proposed solution is to decouple the options from the context and always provide context references explicitly as a parameters and never bind to them inside options. This also has the benefit of not making the options non-copyable (in case of a reference) or non-movable (in case of a reference wrapper) or to deal with potentially uninitialized pointers to context objects. A series of PRs are open to showcase these proposed changes:
One downside of this solution is that we potentially end up with a bunch of function parameters. This could be mitigated by binding multiple context objects into a tuple-like struct.
Apart from that it becomes very clear which parts of the code require a context and how this is passed down.
The text was updated successfully, but these errors were encountered:
This issue/PR has been automatically marked as stale because it has not had recent activity. The stale label will be removed if any interaction occurs.
This issue/PR has been automatically marked as stale because it has not had recent activity. The stale label will be removed if any interaction occurs.
After #3181 we have multiple context references in flight for track fitting and finding as they are bound in the algorithm options and propagation options.
acts/Core/include/Acts/TrackFitting/KalmanFitter.hpp
Lines 126 to 130 in 05c0ebd
(context if part of
KalmanFitterOptions
andPropagatorPlainOptions
)This is not necessarily bad as it consumed little space but might be a source of errors as users could provide two different context objects for a single track fit.
A proposed solution is to decouple the options from the context and always provide context references explicitly as a parameters and never bind to them inside options. This also has the benefit of not making the options non-copyable (in case of a reference) or non-movable (in case of a reference wrapper) or to deal with potentially uninitialized pointers to context objects. A series of PRs are open to showcase these proposed changes:
PropagatorOptions
topropagate
#3378One downside of this solution is that we potentially end up with a bunch of function parameters. This could be mitigated by binding multiple context objects into a tuple-like struct.
Apart from that it becomes very clear which parts of the code require a context and how this is passed down.
The text was updated successfully, but these errors were encountered: