Skip to content

Acts TrackFinding: fix index out of bounds with useCache

Tim Adye requested to merge adye/athena:adye-ckf43 into main
  • TrackFindingMeasurements::addMeasurements now uses a simple index counter instead of measurement->index() when creating MeasurementRangeList. index() gives the index into the owning collection, whereas we want the index into the input collection. These will be different if the input collection is a view.
    • Restore the ITkConversionStripClusters_InView input collection, which previously crashed with an index out of bounds in the Acts Conversion pass when flags.Acts.useCache=True:
      ActsConversionTrackFindingAlg FATAL  Standard std::exception is caught
      ActsConversionTrackFindingAlg ERROR SG::ExcBadForwardLink: ForwardIndexingPolicy: internal link state of 'DataVector<xAOD::UncalibratedMeasurement_v1>' is invalid: m_index = 142136 is >= data container size = 4910
  • Fix the measurementOffsets (used by TrackStatePrinter) if there were more than 2 input collections.
  • Respect EnableITkPixel and EnableITkStrip also for measurements in the Acts Main and Conversion passes. If either had been set False, there would have been a mismatch in HandleKeyArray sizes.

CC: @cvarni, @goetz

Merge request reports