See LHCBGAUSS1006 for a complete overview. An executive ‘summary’ follows.
When running Brunel before Tesla, the PersistReco raw bank,
DstData, is moved from
Unstripped/RawEvent. Tesla is not configured to look in the second location, so PersistReco truth matching can't happen, plus the second location is removed by the Stripping (micro)DST writer, so PersistReco candidates aren't available.
The fix is two-fold:
PersistReco/RawEventinstead, requiring a new raw event output format to be used by Brunel (see r 209297 and r 209298 in AppConfig).
- Have the PersistReco decoder look in the new location,
PersistReco/RawEvent, for the raw banks.
For Step 2, I've added
PersistReco/RawEvent to the list of default locations the
HltPackedDataDecoder looks in, and modified the behaviour of the decoder base class to remove some caching that assumed all raw banks required by a decoder would live in one raw event location (which isn't the case here).
Truth matching in performed in Tesla, which builds the various relations tables, but the tables weren't being persisted. This meant truth information wasn't available for ‘Pure’ Turbo nor for PersistReco.
This happened because the packing was being run before the tables were created. This has been fixed by moving the packing to after the relations building.
Propagation in the Stripping
To allow the usage of the PersistReco objects after the Stripping step, I've added
PersistReco/RawEvent to the list of locations that are always saved by both the DST and µDST writer.
Sorry for all the junk included in the MR