GPUClusterSorter Node1 GPUClusterSorter - m_cutClustersInAbsE - m_clusterETThreshold + GPUClusterSorter() + initialize() + initialize_non_CUDA() + initialize_CUDA() + execute() + finalize() + ~GPUClusterSorter() Node2 extends< AthAlgTool, CaloClusterGPUProcessor >     Node2->Node1 Node3 CaloGPUTimed # m_measureTimes # m_timeFileName # CaloGPUTimed() # record_times() # record_times() # record_times() # print_times() - record_times_helper() - record_times_helper() - record_times_helper() Node3->Node1 Node4 std::shared_mutex     Node4->Node3 #m_timeMutex Node5 std::vector< size_t > + elements + elements   Node5->Node3 #ATLAS_THREAD_SAFE Node6 CaloGPUCUDAInitialization   + handle() + ~CaloGPUCUDAInitialization() # initialize_non_CUDA() # initialize_CUDA() # initialize() Node6->Node1 Node7 IIncidentListener     Node7->Node6 Node8 ServiceHandle< IGPUKernel SizeOptimizerSvc >     Node8->Node1 -m_kernelSizeOptimizer