ATLAS Offline Software
Public Member Functions | List of all members
CaloClusterGPUProcessor Class Referenceabstract

Base class for GPU-accelerated cluster processing tools to be called from CaloGPUHybridClusterProcessor. More...

#include <CaloClusterGPUProcessor.h>

Inheritance diagram for CaloClusterGPUProcessor:
Collaboration diagram for CaloClusterGPUProcessor:

Public Member Functions

virtual StatusCode execute (const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, CaloRecGPU::EventDataHolder &event_data, void *temporary_buffer) const =0
 Process the clusters on GPU. More...
 
virtual size_t size_of_temporaries () const
 The size (in bytes) of the temporary object(s) that the algorithm will use. More...
 
 DeclareInterfaceID (CaloClusterGPUProcessor, 1, 0)
 

Detailed Description

Base class for GPU-accelerated cluster processing tools to be called from CaloGPUHybridClusterProcessor.

Author
Nuno Fernandes nuno..nosp@m.dos..nosp@m.santo.nosp@m.s.fe.nosp@m.rnand.nosp@m.es@c.nosp@m.ern.c.nosp@m.h
Date
27 May 2022 This class defines an execute method that takes as an argument a EventContext, a CaloRecGPU::ConstantDataHolder and a CaloRecGPU::EventDataHolder.

Definition at line 26 of file CaloClusterGPUProcessor.h.

Member Function Documentation

◆ DeclareInterfaceID()

CaloClusterGPUProcessor::DeclareInterfaceID ( CaloClusterGPUProcessor  ,
,
 
)

◆ execute()

virtual StatusCode CaloClusterGPUProcessor::execute ( const EventContext &  ctx,
const CaloRecGPU::ConstantDataHolder constant_data,
CaloRecGPU::EventDataHolder event_data,
void *  temporary_buffer 
) const
pure virtual

Process the clusters on GPU.

Parameters
ctxThe event context.
constant_dataData held in GPU memory that is common to all events (cell noise and geometry).
event_dataData held in GPU memory that is specific to this event (including the description of the clusters themselves).
temporary_bufferA pointer to an \array in GPU memory that is at least as large as size_of_temporaries(), to hold temporary information for the algorithms. Given the way CUDA memory allocations work, casting this to a pointer (or a CaloRecGPU::Helpers::CUDA_kernel_object) to the intended type and then using it will be perfectly valid.

Implemented in TopoAutomatonClustering, BasicGPUClusterInfoCalculator, GPUClusterInfoAndMomentsCalculator, TopoAutomatonSplitting, CaloGPUOutput, and CaloCellsCounterGPU.

◆ size_of_temporaries()

virtual size_t CaloClusterGPUProcessor::size_of_temporaries ( ) const
inlinevirtual

The size (in bytes) of the temporary object(s) that the algorithm will use.

Reimplemented in BasicGPUClusterInfoCalculator.

Definition at line 48 of file CaloClusterGPUProcessor.h.

49  {
50  return 0;
51  };

The documentation for this class was generated from the following file: