|
ATLAS Offline Software
|
Go to the documentation of this file.
17 declareInterface<CaloClusterGPUProcessor> (
this);
36 return StatusCode::SUCCESS;
44 return StatusCode::SUCCESS;
51 return StatusCode::SUCCESS;
57 return StatusCode::SUCCESS;
Gaudi::Property< bool > m_skipInvalidClusters
If false, do the moment calculation even for invalid clusters (which may waste computation).
Gaudi::Property< bool > m_measureTimes
If true, synchronize the kernel calls to ensure accurate per-step/per-tool time measurements.
virtual StatusCode initialize_non_CUDA() override
Initialization that does not invoke CUDA functions.
virtual StatusCode finalize() override
ClusterMomentsCalculator::CMCOptionsHolder m_options
Options for the algorithm, held in a GPU-friendly way.
void sendToGPU(const bool clear_CPU=false)
GPUClusterInfoAndMomentsCalculator(const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize_CUDA() override
Initialization that invokes CUDA functions.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< bool > m_twoGaussianNoise
if set to true use 2-gaussian noise description for TileCal
Gaudi::Property< double > m_maxAxisAngle
the maximal allowed deviation from the IP-to-ClusterCenter-axis.
Gaudi::Property< double > m_minBadLArQuality
the minimal cell quality in the LAr for declaring a cell bad
ServiceHandle< IGPUKernelSizeOptimizerSvc > m_kernelSizeOptimizer
Handle to the CUDA kernel block and grid size optimization service.
Gaudi::Property< bool > m_absOpt
if set to true use abs E value of cells to calculate cluster moments
void register_kernels(IGPUKernelSizeOptimizer &optimizer)
Gaudi::Property< double > m_minLLongitudinal
the minimal in the definition of the Longitudinal moment
Gaudi::Property< double > m_minRLateral
the minimal in the definition of the Lateral moment
virtual StatusCode execute(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, CaloRecGPU::EventDataHolder &event_data, void *temporary_buffer) const override
Process the clusters on GPU.
CaloRecGPU::Helpers::CPU_object< ClusterMomentCalculationOptions > m_options
Gaudi::Property< double > m_etaInnerWheel
Transition from outer to inner wheel in EME2.
void calculateClusterPropertiesAndMoments(CaloRecGPU::EventDataHolder &holder, const CaloRecGPU::ConstantDataHolder &instance_data, const CMCOptionsHolder &options, const IGPUKernelSizeOptimizer &optimizer, const bool synchronize=false, CaloRecGPU::CUDA_Helpers::CUDAStreamPtrHolder stream={}, const bool defer_instead_of_oversize=false)