Skip to content

Support RelatedInfo cloning in Turbo

Alex Pearce requested to merge apearce-lbhlt-421 into 2018-patches

RelatedInfo algorithms take a Particle container location as input and deduce their output location from that. Given a Particle container at SomeAlgorithm/Particles, a dependent RelatedInfo algorithm called Foo will create a RelatedInfo map at SomeAlgorithm/Foo.

For persisting Particle objects in the Turbo stream, we copy them to /Event/Turbo/Hlt2LineName/Particles from where ever they are initially created. The set of these locations is given to the HltLinePersistenceSvc, and this set is used by various cloners to copy Particle dependencies (such as P2PV relations). This manual setting of an output location is against the general philosophy of bindMembers, so we have to do a bit of manual fiddling to accomplish it.

For similar reasons, this MR adds a dirty hack that forces each RelatedInfo algorithm belonging to a line to take the /Event/Turbo location as input, such that the output is created under /Event/Turbo/Hlt2LineName/<RelatedInfoName>. This allows us to use the CopyParticle2RelatedInfoFromLinePersistenceLocations algorithm, introduced in Phys!302 (merged), to copy the RelatedInfo maps.

Towards fixing LBHLT-421.

Merge request reports