Intermediate P2PV relations tables are not created/persisted
Selection algorithms in HLT2 are currently configured not to put on the TES the P2PV relations tables they may create during execution. This means they are not persisted. P2PV relations must then be re-built in downstream jobs, potentially resulting in different relations.
We do force P2PV relations table creation when persisting the top level line candidate, e.g. the B^{+}
in B^{+} \to J/\psi K^{+}
, but we do not do this for intermediate objects in the decay chain, e.g. for the J/\psi
.
I believe the algorithms are configured not to create tables to reduce the number of hidden data dependencies, but now we want these objects to be persisted and so should be creating them.
The simplest solution is to force relations table creation on any of the with-PV algorithm configurations, e.g. ParticleFilterWithPVs
and ParticleCombinerWithPVs
. This introduces some inefficiency as the tables are usually only created on demand, but it's a hit we should just take for now and revisit once we have selection benchmarking in place.