Skip to content

Introduce flat container to replace the CaloClusterROI collection.

Originally there was the CaloClusterROI_Selector which creates CaloClusterROIs from selected calorimeter clusters. These objects are used in several algorithms. However none of the algorithms uses these CaloClusterROI objects directly. Most algorithms create flat vectors from the CaloClusterROI_Collection. The latter is done once per event which leads to lock contention in the InDetDenseEnvAmbiTrackSelectionTool.

This MR replace the CaloClusterROIs by something that can be directly used by the client algorithms. This avoids executing the same coordinate transformations and creation of the flat vectors at several places, and mitigates the lock contention (there is still a ReadHandle being created by the InDetDenseEnvAmbiTrackSelectionTool for each track).

Lock contention in the InDetDenseEnvAmbiTrackSelectionTool is significantly reduced (at large number of threads). And there seems to be a small overall improvement of 1-2%. However the latter may not be significant.

Edited by Goetz Gaycken

Merge request reports