-
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
Estimate Track Parameters from Seeds use only one surface. What about strips? #1895
Comments
Currently, In general, you can get the bound track parameter from the seed with the following steps;
The difficult part is that ACTS propagator does not take a free track parameter as an input argument (it only takes bound track parameter AFAIK, fix me if it is wrong). I didn't like that so I added another constructor in detray stepper and propagator to take free track parameter as an input. (I added it for the same purpose you have) Check the detray code here: https://github.com/acts-project/detray/blob/main/core/include/detray/propagator/base_stepper.hpp . (Also you have to be careful when you do covariant transport for the propagator fed with free track parameter input; as it starts from the free track parameter, you should not include jacobian for bound_to_free coordinate transformation in calculating the transport jacobian) Thing is that writing the extrapolation code might be a heavy task - I know how to do it in detray but have no idea with ACTS code; Other experts might know how to do it... |
BTW it is nice that you brought it up - we need to do refactor |
Hello, I'm not fully sure I understand the comment of @beomki-yeo. The vector of parameters returned by the estimator is bound to the surface it is referenced to, in this case the one of the bottom space point. @CarloVarni in my opinion, one possible simple extension could be to just pass a custom surface constructed around the 3D bottom space point. In the case of a 2 strip cross formed by an axial-stereo pair, I'd construct an axial-oriented surface with translation equal to the location of the 3D space point. You'd have loc0/loc1 = 0 and the rest should be well defined. I don't think the interface should be changed in this case. |
Possibly I was wrong, but isn't a spacepoint from multiple strips bound to any surface? |
Ah indeed. Starting from a curvilinear surface sounds much better |
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. |
The estimation of track parameters from seed uses space point information, but also uses a surface to perform a global-to-local transformation of the bottom space point coordinate. It also checks that the bottom space point lies on the provided surface:
https://github.com/acts-project/acts/blob/main/Core/include/Acts/Seeding/EstimateTrackParamsFromSeed.hpp#L156
This may be appropriate for pixels, since there is only one surface. But does it apply also to strips and overlap strips? We are only using one surface in that function, but the space point is constructed from multiple 1D measurements. In the strip overlap case these measurements are not even back-to-back.
Or in general, what would be the appropriate procedure in cases in which we have 3D space point positions starting from multiple measurements?
/cc @noemina @paulgessinger
The text was updated successfully, but these errors were encountered: