barcode -> ID migration for HGTD/InDet/MuonDigitization (2nd attempt)
The first attempt at this !69655 (merged) caused issues in the case that pile-up background HITS with intact truth information and using a barcode-based persistent were read into a pile-up digitization job. In this case there was no way for the initial HepMcParticleLink member variables of the transient hit classes generated from the persistent classes to know whether they should be linking to an event other than the first event in the McEventCollection (The hard-scatter GenEvent is always first in the McEventCollection). This meant that calls to HepMcParticleLink::id()
would return zero as the links often appear to be invalid.
This second version of the migration is less aggressive as it allows the possibility of barcode-based inputs. It avoids the issue seen in ATLSWUPGR-242 according to my local tests, but I will avoid marking the merge request as ready until we have a CI test to catch such an issue.