Allow relations table cloning without cloning source ProtoParticle objects
This MR adds two things:
- A flag on the base relations table cloner that makes cloning the 'from' (proto)particles optional; and
- A new cloner algorithm
CopyProtoParticle2MCRelations
that can copyProtoParticle
toMCParticle
relations tables, supplementing the existingCopyParticle2MCRelations
relations table cloner.
The need for these two things comes from Tesla, where we want to support microDST-like cloning of the MC event.
Tesla already puts all of its particles and proto-particles under /Event/Turbo
, so we don't need a cloner to copy them there. But we do want a cloner to copy the MC particles there. So, Tesla makes PP2MCP
relations tables in /Event/Relations
, and then the new CopyProtoParticle2MCRelations
cloner can take those tables as inputs, copying the MCParticle
objects that are referenced within, without also requiring that the reference ProtoParticle
objects are also cloned.
/cc @gcorti (who I've spoken to about this) @jonrob (who I think has worked on microDST cloners before) @rmatev and @raaij (who helped with the implementation)