FPGATrackSim: C++ changes necessary to make second stage algorithm work
This is a component of the "second stage" changes in !74968, to add support for running an additional extrapolation algorithm after the first track-finding and fitting pass. These are the C++ changes necessary to make the second stage flow work-- note that this still doesn't include the Python configuration support to actually run it.
The most consequential change included here is that now the data preparation algorithm/pipeline will process all the hits, and only pass the ones that fall within the first stage layers to LogicalHitsProcessAlg, and pass the rest to the SecondStageAlg. The output ROOT files that get created will, therefore, now include all hits that are part of either stage. Further, we have remapped the default layer assignments-- we now assume that layers 0-8 are the first stage and layers 9-13 are the second stage regardless of what physical layers they correspond to. That means that the plane map for region 0 now looks like this:
region 0
pixel 0 -1 0 plane1 -1 plane2 9
pixel 0 -1 1 plane1 -1 plane2 10
pixel 0 -1 2 plane1 -1 plane2 11
pixel 0 -1 3 plane1 -1 plane2 12
pixel 0 -1 4 plane1 0 plane2 0
...
SCT 0 -1 0 stereo 0 plane1 1 plane2 1
SCT 0 -1 1 stereo 1 plane1 2 plane2 2
SCT 0 -1 2 stereo 0 plane1 3 plane2 3
SCT 0 -1 3 stereo 1 plane1 4 plane2 4
SCT 0 -1 4 stereo 0 plane1 5 plane2 5
SCT 0 -1 5 stereo 1 plane1 6 plane2 6
SCT 0 -1 6 stereo 0 plane1 7 plane2 7
SCT 0 -1 7 stereo 1 plane1 8 plane2 8
The map maker has been updated accordingly, but we'll need to also update the maps on cvmfs once this gets merged. Tagging @imaznas and @wcastigl for the mapping pieces of this, @acamplan for the test vector implications, and @jahreda for review.