Check SciFi banks and sort them by hand
This will slow down the decoding quite a bit but we check for scenarios that should never happen and yet do in the data.
- if a bank is sent with no header (would create a segfault);
- if a bank does not have an even size;
- if a bank has an absurd number of clusters (> number of links * maximum number of clusters per link);
- if a link is larger than 24 (would create a segfault);
- if a link sent more than 24 clusters.
Additionally, we sort clusters directly. Unsorted clusters should only show up in station 3 but seem to rarely occur somewhere else. An issue will be created.
We keep small_vectors rather than static_vectors to avoid a segfault in case a link sent more than 24 clusters.
Each of these counters now comes with an histogram which helps locate the bank or unique link that was responsible.
Edited by Louis Henry