ROBDataProviderSvc: Filter bad ROBs before checking ROB contents
ROBDataProviderSvc offers a few properties to configure filtering out some bad data - specific ROBFragments with specific types of "being bad".
If we want to filter ROBFragments with specific status word (the filterRobWithStatus
/ filterSubDetWithStatus
properties) because we know the data are corrupted, we need to do this before we filter on ROBFragments with empty ROD data (the filterEmptyROB
property). This is because checking the latter requires reading the ROD header which may be corrupted or missing. This MR swaps the order of these two checks.
The missing ROD header is the cause of the Tier-0 reconstruction failures described in ATDSUPPORT-303 and this MR allows to work around the issue using the filtering options. Before this MR, the jobs crash on the ROD size check.