Allow for PersistReco-specific CaloCluster and CaloHypo cloners
We need PersistReco-specific Calo cloners because of the way the Calo cloners work. By default, associated digits are cloned depending on the charge of the Particle
object passed down from a parent ParticleCloner
tool, but when we clone whole containers of CaloHypo
and CaloCluster
objects, there is no parent Particle
, and so we must instead force the cloning of associated digits.
This MR also implments running cloners in a specific order, cloning all containers of a given type in one go, so that explicit cloners override the behaviour of implicit cloners (cloners used by other cloners higher up in the object dependency tree).
/cc @rmatev