-
Notifications
You must be signed in to change notification settings - Fork 168
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
Redundancy of bound and curvilinear state #2812
Comments
Curvilinear state is just a special case of bound state where the surface normal vector is direction. I suppose we can make our interface smarter with surface normal vector argument. (ex) put a surface normal vector for bound state and put a track direction for curvilinear state) |
Just want to add that in curvilinear the plane rotation around the normal is also fixed. |
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. |
I noticed that the concept of a curvilinear surface is a quite spread over the codebase and I wanted to improve this. Here I introduce a surface like class which does not actually inherit from `Acts::Surface` but shares some of the functionality. This way the jacobians are put in a single place and can be used from somewhere else in an expressive fashion. Afterwards it might make sense to let the `CurvilinearTrackParameters` depend on this special surface instead of a `PlaneSurface` or to merge them with `BoundTrackParameters` completely. related issues - #2812 blocked by - #2789 - #2782 - #2781 - #2811
I noticed that the concept of a curvilinear surface is a quite spread over the codebase and I wanted to improve this. Here I introduce a surface like class which does not actually inherit from `Acts::Surface` but shares some of the functionality. This way the jacobians are put in a single place and can be used from somewhere else in an expressive fashion. Afterwards it might make sense to let the `CurvilinearTrackParameters` depend on this special surface instead of a `PlaneSurface` or to merge them with `BoundTrackParameters` completely. related issues - acts-project#2812 blocked by - acts-project#2789 - acts-project#2782 - acts-project#2781 - acts-project#2811
I noticed that the concept of a curvilinear surface is a quite spread over the codebase and I wanted to improve this. Here I introduce a surface like class which does not actually inherit from `Acts::Surface` but shares some of the functionality. This way the jacobians are put in a single place and can be used from somewhere else in an expressive fashion. Afterwards it might make sense to let the `CurvilinearTrackParameters` depend on this special surface instead of a `PlaneSurface` or to merge them with `BoundTrackParameters` completely. related issues - acts-project#2812 blocked by - acts-project#2789 - acts-project#2782 - acts-project#2781 - acts-project#2811
After having a deeper look at this it seems to me that this is an optimization step. We are basically doing the same math but with less expressions in case of the curvilinear surface. |
I noticed that the concept of a curvilinear surface is a quite spread over the codebase and I wanted to improve this. Here I introduce a surface like class which does not actually inherit from `Acts::Surface` but shares some of the functionality. This way the jacobians are put in a single place and can be used from somewhere else in an expressive fashion. Afterwards it might make sense to let the `CurvilinearTrackParameters` depend on this special surface instead of a `PlaneSurface` or to merge them with `BoundTrackParameters` completely. related issues - acts-project#2812 blocked by - acts-project#2789 - acts-project#2782 - acts-project#2781 - acts-project#2811
While refactoring the
CovarianceEngine
and theJacobianEngine
I noticed that we duplicate quite some code for handling bound and curvilinear states as they are very similar.I am not sure if that is based on performance reasons or if this is just grown historically.
In any case I think we could remove the duplication by merging the concept or we could split the curvilinear parameters from the bound parameters which would remove the dependency on a shared pointer surface under the hood.
Ultimately this depends on the performance implications of merging them I guess since this would be the most general and easiest solution IMO.
The text was updated successfully, but these errors were encountered: