Following ATLASRECTS-6813 the tool updated here was implicated in crashes seen on pilot runs without solenoid. While there may be other underlying issues, some the updates here should at least avoid the crashes and also address a few features that were not understood.
- The problem in the ticket was that the extrapolation on to
(trkTrack->perigeeParameters())->associatedSurface()was failing, but it wasn't clear why exactly this extra extrapolation was needed
- My best guess was that it is to account for the fact that the starting point (from
trkTrack->perigeeParameters()) for the extrapolation to the pixel barrel layers may not always be at a lower radius, and so it should start from a consistent point so that the extrapolation direction is always the right one. However, I don't think how this was done was fully correct, since it just used the same surface as the starting parameter always anyway.
- This update then tries to do this in a consistent way, by checking the radius of the starting parameter and comparing to the target surface to decide the extrapolation direction, and whether to add or subtract noise
In addition, a few other updates aiming towards making this more flexible in future, since at the moment this wouldn't work for ITk. Making the radii layers configurable goes part way towards addressing this, but other updates (e.g. to make the naming more appropriate for ITk, and allow 5 pixel layers) will come later.
While this I don't think counts as Frozen Tier0 breaking since this is not a fundamental input into anything, it will potentially slightly changes the results for these validation dectorations. The clients of this I think are pixel and CTIDE, so probably @stsuno @battagl and @srettie should comment on what they think.