Add ProtoParticle association algorithms
Introduce a new package, Rec/GlobalRecoMCTools
, which is home to three new algorithms and associated tests:
-
MergeLinksByKeysToVector
: Takes a list ofLinksByKeys
objects and outputs astd::vector<LinksByKey*>
referencing those objects. -
MergeRelationsTables
: Takes a list ofRelationWeighted1D
objects and outputs a single, mergedRelationWeighted1D
object. -
ProtoParticleAssociator
: Takes aProtoParticle
container and associations of a 'basic' object to anMCParticle
object, and outputsProtoParticle
toMCParticle
relations.
The first two will be used in Moore to produce unified output relations, rather than the more standard one-table-per-container logic we've had in the past.
The last algorithm is used to create direct proto-to-MC tables, using existing tables provided by Brunel. For example, Brunel outputs Track
to MCParticle
tables, so the ProtoParticleAssociator
takes ProtoParticle
objects which reference tracks, finds the MC association by going via the Track
object, and creates direct proto-to-MC relations. It does something similar in the CaloHypo
-to-MCParticle
case. This algorithm will be used in Moore to produce proto-to-MC relations for when Moore is running over Brunel output. See Moore#197 (closed) for more discussion on the general strategy for getting truth-matching in to Moore.