CaloEvent+CaloRec+CaloUtils+LArRecUtils: Faster variant of addUniqueCellNoKine.
The method addUniqueCellNoKine is used to add a cell to a cluster. Under the hood, it creates and ElementLink to push onto a list. We supported passing in either a pointer to the cell container or its SG key. In either case, to make an EL, we need to do a SG lookup to find the proxy. This requires taking out a lock on the store. This happens for every cell, and in some workloads, we were seeing significant lock contention due to this.
Add another variant of addUniqueCellNoKine that accepts an ElementLink to identify the cell container. (In principle, a DataLink might make more sense, but we can already create an ElementLink directly from another ElementLink, but not from a DataLink.) This allows us to then create the per-cell ElementLinks with no interaction with SG (or with thread-local storage).
Use it for tower building.
Merge request reports
Activity
This merge request affects 4 packages:
- Calorimeter/CaloEvent
- Calorimeter/CaloRec
- Calorimeter/CaloUtils
- LArCalorimeter/LArRecUtils
Affected files list will not be printed in this case
Adding @pavol as watcher
added Calorimeter JetEtmiss LAr master review-pending-level-1 labels
CI Result SUCCESS (hash e9ad69c3)Athena AthSimulation AthGeneration AnalysisBase externals cmake make required tests optional tests Full details available on this CI monitor view
Athena: number of compilation errors 0, warnings 0
AthSimulation: number of compilation errors 0, warnings 0
AthGeneration: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 24600]added review-approved label and removed review-pending-level-1 label
mentioned in commit 4c7e35d8
added sweep:ignore label