Use SciFi quarter-level cache in pattern recognition to allow proper alignment
The pattern recognition uses a cache to store geometric positions of the SciFi detector. The cache obtains position values from SciFi-layer objects which are not directly subject to the alignment. However, the code in the pattern recognition pretends via condition derivation that these values change with the conditions. Even worse, in reality the global z positions are simply taken from the geometry without alignment while the dxdy and dzdy are taken from a single module which is subject to alignment and then applied to the whole layer -- I consider this a bug. This set of merge requests fixes this by caching z, dxdy, dzdy by quarter which obtains these values by averaging over all modules in the quarter, i.e. takes into account the alignment. Sometimes it is still useful to use the constant positions directly from the geometry, which is provided via the layers and their lack of alignment is documented.
Preliminary tests (2022 data) show that this increases the number of reconstructed (i.e. after track fit) Long tracks by 4%
Goes with LHCb!4279 (merged), Detector!431 (merged) and Moore!2703 (merged)
Reference update mostly needed because https://gitlab.cern.ch/lhcb/Rec/-/blob/26053c8cf2c25d2d648db7f7c3920e912f059d96/Pr/PrAlgorithms/src/PrForwardTracking.cpp#L1895 rejects more VELO tracks early in the forward tracking leading to lots of counter changes.
Resolves #414 (closed)
See WP2 talk for more info on impact of this