The current PV reconstruction relies on several hard-limits, namely: max_number_vertices, max_number_subclusters, max_number_of_clusters and max_number_clusteredges (see https://gitlab.cern.ch/lhcb/Allen/-/blob/master/device/PV/beamlinePV/include/PV_Definitions.cuh#L10). It would be desirable to remove all these limits in preparation for production, to minimise the risks of overflowing a buffer relying on these.
There are several techniques that can help with the removal of these limits, for that see the following discussion: !764 (comment 5232352)
Designs
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related or that one is blocking others.
Learn more.
I wanted to bump this issue because we're having issues with this in PbPb MC in events with large numbers of fake PVs. It looks like this is probably an issue with the beam conditions used to create the MB PbPb sample, but it'd still be nice if Allen didn't just crash on these pathological events.
You can find an old file with incorrect beam conditions here: /eos/lhcb/wg/rta/samples/mc/upgrade-202004-PbPb-EPOS-b-6_14fm/all_Gausstest_MB.mdf. Some of these events end up producing a lot of fake PVs. There are some new xdigi files here: /eos/lhcb/wg/IonPhysics/Simulations/PbPb_MB_EPOS_Upgrade. These have the correct beam position and could potentially fix the issue, but I haven't had a chance to test them.
I created !925 (closed) to at least try to avoid crashing when these limits are exceeded. This is done by overwriting the array with peaks, PVs, etc from the beginning when the limit is met, so this is only a temporary solution.
I also added contracts to the PV finding to make it easier to spot such cases