![]() |
ATLAS Offline Software
|
Sorts clusters by ET (with possible cut) and creates the list of cells per cluster. More...
#include <GPUClusterSorter.h>
Public Member Functions | |
| GPUClusterSorter (const std::string &type, const std::string &name, const IInterface *parent) | |
| virtual StatusCode | initialize () override |
| virtual StatusCode | initialize_non_CUDA () override |
| Initialization that does not invoke CUDA functions. | |
| virtual StatusCode | initialize_CUDA () override |
| Initialization that invokes CUDA functions. | |
| virtual StatusCode | execute (const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, CaloRecGPU::EventDataHolder &event_data, void *temporary_buffer) const override |
| virtual StatusCode | finalize () override |
| virtual | ~GPUClusterSorter ()=default |
| void | handle (const Incident &incident) override |
Protected Member Functions | |
| void | record_times (const size_t event_num, const std::vector< size_t > ×) const |
| template<class ... Args> | |
| void | record_times (const size_t event_num, const size_t &value) const |
| template<class ... Args> | |
| void | record_times (const size_t event_num, const size_t &value, Args &&... args) const |
| void | print_times (const std::string &header, const size_t time_size) const |
Protected Attributes | |
| std::shared_mutex | m_timeMutex |
| Mutex that is locked when recording times. | |
| std::vector< size_t > m_times | ATLAS_THREAD_SAFE |
| Vector to hold execution times to be recorded if necessary. | |
| std::vector< size_t > m_eventNumbers | ATLAS_THREAD_SAFE |
| Vector to hold the event numbers to be recorded if necessary. | |
| Gaudi::Property< bool > | m_measureTimes |
If true, times are recorded to the file given by m_timeFileName. | |
| Gaudi::Property< std::string > | m_timeFileName |
| File to which times should be saved. | |
Private Member Functions | |
| void | record_times_helper (const size_t) const |
| template<class Arg> | |
| void | record_times_helper (const size_t index, Arg &&arg) const |
| template<class ... Args> | |
| void | record_times_helper (size_t index, Args &&... args) const |
Private Attributes | |
| Gaudi::Property< bool > | m_cutClustersInAbsE {this, "ClusterCutsInAbsEt", true, "Do cluster cuts in Abs Et instead of Et"} |
if set to true cluster cuts are on \(|E|_\perp\), if false on \(E_\perp\). | |
| Gaudi::Property< float > | m_clusterETThreshold {this, "ClusterEtorAbsEtCut", 0.*CLHEP::MeV, "Cluster E_t or Abs E_t cut"} |
| \(E_\perp\) cut on the clusters. | |
| ServiceHandle< IGPUKernelSizeOptimizerSvc > | m_kernelSizeOptimizer { this, "KernelSizeOptimizer", "GPUKernelSizeOptimizerSvc", "CUDA kernel size optimization service." } |
| Handle to the CUDA kernel block and grid size optimization service. | |
Sorts clusters by ET (with possible cut) and creates the list of cells per cluster.
Definition at line 33 of file GPUClusterSorter.h.
| GPUClusterSorter::GPUClusterSorter | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Definition at line 16 of file GPUClusterSorter.cxx.
|
virtualdefault |
|
overridevirtual |
Definition at line 34 of file GPUClusterSorter.cxx.
|
overridevirtual |
Definition at line 74 of file GPUClusterSorter.cxx.
|
inlineoverrideinherited |
Definition at line 66 of file CaloGPUCUDAInitialization.h.
|
inlineoverridevirtual |
Reimplemented from CaloGPUCUDAInitialization.
Definition at line 40 of file GPUClusterSorter.h.
|
overridevirtual |
Initialization that invokes CUDA functions.
Reimplemented from CaloGPUCUDAInitialization.
Definition at line 28 of file GPUClusterSorter.cxx.
|
overridevirtual |
Initialization that does not invoke CUDA functions.
Reimplemented from CaloGPUCUDAInitialization.
Definition at line 22 of file GPUClusterSorter.cxx.
|
inlineprotectedinherited |
Definition at line 143 of file CaloGPUTimed.h.
|
inlineprotectedinherited |
Definition at line 105 of file CaloGPUTimed.h.
|
inlineprotectedinherited |
Definition at line 124 of file CaloGPUTimed.h.
|
inlineprotectedinherited |
Definition at line 86 of file CaloGPUTimed.h.
|
inlineprivateinherited |
Definition at line 70 of file CaloGPUTimed.h.
|
inlineprivateinherited |
Definition at line 64 of file CaloGPUTimed.h.
|
inlineprivateinherited |
Definition at line 79 of file CaloGPUTimed.h.
|
mutableprotectedinherited |
Vector to hold execution times to be recorded if necessary.
Definition at line 35 of file CaloGPUTimed.h.
|
mutableprotectedinherited |
Vector to hold the event numbers to be recorded if necessary.
Definition at line 40 of file CaloGPUTimed.h.
|
private |
\(E_\perp\) cut on the clusters.
The clusters have to pass this cut (which is on \(E_\perp\) or \(|E|_\perp\) of the cluster depending on the above switch) in order to be inserted into the CaloClusterContainer.
Definition at line 73 of file GPUClusterSorter.h.
|
private |
if set to true cluster cuts are on \(|E|_\perp\), if false on \(E_\perp\).
Default is true.
Definition at line 64 of file GPUClusterSorter.h.
|
private |
Handle to the CUDA kernel block and grid size optimization service.
Definition at line 76 of file GPUClusterSorter.h.
|
protectedinherited |
If true, times are recorded to the file given by m_timeFileName.
Defaults to false.
Definition at line 46 of file CaloGPUTimed.h.
|
protectedinherited |
File to which times should be saved.
Definition at line 50 of file CaloGPUTimed.h.
|
mutableprotectedinherited |
Mutex that is locked when recording times.
Definition at line 32 of file CaloGPUTimed.h.