Update HepMcParticleLink to handle creation with GenParticle::id() as well as barcodes
-
Review changes -
-
Download -
Patches
-
Plain diff
Transient HepMcParticleLink objects can now be built using either GenParticle::id()
or the GenParticle
barcode Attribute as the unique ID for the particle.
Eventually support for the barcode-based syntax will be restricted to legacy TP converter code. Until the migration is complete it is better to explicitly force the use of HepMcParticleLink::IS_BARCODE
and HepMcParticleLink::IS_ID
in the constructors in an attempt to ensure that the correct input is being provided.
HepMcParticleLink TP converters work for most use-cases. Some awkwardness for links to GenParticles that have been cut from the McEventCollection
, mostly in deciding whether the unique ID is a barcode or an id. The value is preserved though, so the links can still be used to group EDM objects linked to the same truth particle.
Added HepMcParticleLink_p3
and HepMcParticleLinkCnv_p3
- based on GenParticle::id()
. This works as well as the existing HepMcParticleLink_p1/p2
versions. New persistent versions of other EDM classes which depend on HepMcParticleLink will be added in future merge requests.
Output matches except for the output of DetailedTrackTruthBuilder
. This relies on sorting by HepMcParticleLinks. The old implementation sorted based on barcode, whereas the new implementation sorts based on GenParticle::id()
. In some cases (quasi-stable particle simulation) the barcode-based ordering of GenParticles sometimes differs from the id-based ordering. This means that some objects appear in a different order in the output containers. I don't think that this is an issue, but I need to discuss with Tracking experts.
Once these changes are merged then it becomes simpler to migrate clients to be id()
-based. It should be possible to do this in multiple smaller merge requests.
Merge request reports
- version 2658ca1649
- version 25726bb789
- version 2438f92953
- version 2393ff26a9
- version 224e84f98f
- version 21f8b50e6e
- version 20fcf2080f
- version 195f58519f
- version 18f0dedad9
- version 17b7977e9c
- version 1639dee743
- version 15ba62897d
- version 148c2158c8
- version 139ac3900e
- version 126bf098c9
- version 117e923c2d
- version 10877e914f
- version 98d47d6e3
- version 864573326
- version 7acad61d3
- version 6fea062bf
- version 5e25cc26b
- version 4e823847b
- version 39f2fd055
- version 20f859e94
- version 1c82f419d
- main (base)
- latest versionb32d79283 commits,
- version 2658ca16492 commits,
- version 25726bb7891 commit,
- version 2438f929534 commits,
- version 2393ff26a94 commits,
- version 224e84f98f1 commit,
- version 21f8b50e6e3 commits,
- version 20fcf2080f3 commits,
- version 195f58519f1 commit,
- version 18f0dedad91 commit,
- version 17b7977e9c1 commit,
- version 1639dee7431 commit,
- version 15ba62897d1 commit,
- version 148c2158c813 commits,
- version 139ac3900e13 commits,
- version 126bf098c913 commits,
- version 117e923c2d13 commits,
- version 10877e914f13 commits,
- version 98d47d6e312 commits,
- version 86457332611 commits,
- version 7acad61d310 commits,
- version 6fea062bf10 commits,
- version 5e25cc26b8 commits,
- version 4e823847b5 commits,
- version 39f2fd0552 commits,
- version 20f859e942 commits,
- version 1c82f419d1 commit,
- Side-by-side
- Inline