ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Calorimeter
CaloRecGPU
src
GPUClusterSorter.h
Go to the documentation of this file.
1
//
2
// Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
//
4
// Dear emacs, this is -*- c++ -*-
5
//
6
7
8
#ifndef CALORECGPU_GPUCLUSTERSORTER_H
9
#define CALORECGPU_GPUCLUSTERSORTER_H
10
11
#include "
CxxUtils/checker_macros.h
"
12
13
#include "
AthenaBaseComps/AthAlgTool.h
"
14
#include "
CaloRecGPU/CaloClusterGPUProcessor.h
"
15
#include "
CaloRecGPU/CaloGPUTimed.h
"
16
#include "
GPUClusterSorterImpl.h
"
17
#include "
CaloRecGPU/CaloGPUCUDAInitialization.h
"
18
19
#include "
AthCUDAInterfaces/IStreamTool.h
"
20
21
#include "GaudiKernel/ServiceHandle.h"
22
23
#include "
CaloRecGPU/IGPUKernelSizeOptimizerSvc.h
"
24
25
#include "CLHEP/Units/SystemOfUnits.h"
26
33
34
35
class
GPUClusterSorter
:
36
public
extends<AthAlgTool, CaloClusterGPUProcessor>,
public
CaloGPUTimed
,
public
CaloGPUCUDAInitialization
37
{
38
public
:
39
40
GPUClusterSorter
(
const
std::string &
type
,
const
std::string & name,
const
IInterface * parent);
41
42
virtual
StatusCode
initialize
()
override
43
{
44
return
CaloGPUCUDAInitialization::initialize
();
45
}
46
47
virtual
StatusCode
initialize_non_CUDA
()
override
;
48
49
virtual
StatusCode
initialize_CUDA
()
override
;
50
51
virtual
StatusCode
execute
(
const
EventContext & ctx,
52
const
CaloRecGPU::ConstantDataHolder
& constant_data,
53
CaloRecGPU::EventDataHolder
& event_data,
54
void
* temporary_buffer)
const override
;
55
56
virtual
StatusCode
finalize
()
override
;
57
58
virtual
~GPUClusterSorter
() =
default
;
59
60
private
:
61
66
Gaudi::Property<bool>
m_cutClustersInAbsE
{
this
,
"ClusterCutsInAbsEt"
,
true
,
"Do cluster cuts in Abs Et instead of Et"
};
67
74
75
Gaudi::Property<float>
m_clusterETThreshold
{
this
,
"ClusterEtorAbsEtCut"
, 0.*CLHEP::MeV,
"Cluster E_t or Abs E_t cut"
};
76
78
ServiceHandle<IGPUKernelSizeOptimizerSvc>
m_kernelSizeOptimizer
{
this
,
"KernelSizeOptimizer"
,
"GPUKernelSizeOptimizerSvc"
,
"CUDA kernel size optimization service."
};
79
81
ToolHandle<AthCUDA::IStreamTool>
m_streamTool
{
this
,
"StreamTool"
,
""
,
"CUDA stream tool."
};
82
83
};
84
85
#endif
//CALORECGPU_GPUCLUSTERSORTER_H
AthAlgTool.h
CaloClusterGPUProcessor.h
CaloGPUCUDAInitialization.h
CaloGPUTimed.h
IStreamTool.h
GPUClusterSorterImpl.h
IGPUKernelSizeOptimizerSvc.h
checker_macros.h
Define macros for attributes used to control the static checker.
CaloGPUCUDAInitialization
Base class to provide some basic common infrastructure for initializing CUDA only at the right place ...
Definition
CaloGPUCUDAInitialization.h:28
CaloGPUCUDAInitialization::initialize
virtual StatusCode initialize()
Definition
CaloGPUCUDAInitialization.h:44
CaloGPUTimed::CaloGPUTimed
CaloGPUTimed(T *ptr)
Definition
CaloGPUTimed.h:55
CaloRecGPU::ConstantDataHolder
Holds CPU and GPU versions of the geometry and cell noise information, which are assumed to be consta...
Definition
DataHolders.h:27
CaloRecGPU::EventDataHolder
Holds the mutable per-event information (clusters and cells) and provides utilities to convert betwee...
Definition
DataHolders.h:73
GPUClusterSorter::execute
virtual StatusCode execute(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, CaloRecGPU::EventDataHolder &event_data, void *temporary_buffer) const override
Definition
GPUClusterSorter.cxx:35
GPUClusterSorter::m_clusterETThreshold
Gaudi::Property< float > m_clusterETThreshold
cut on the clusters.
Definition
GPUClusterSorter.h:75
GPUClusterSorter::m_cutClustersInAbsE
Gaudi::Property< bool > m_cutClustersInAbsE
if set to true cluster cuts are on , if false on .
Definition
GPUClusterSorter.h:66
GPUClusterSorter::m_streamTool
ToolHandle< AthCUDA::IStreamTool > m_streamTool
Tool providing the CUDA stream to use.
Definition
GPUClusterSorter.h:81
GPUClusterSorter::initialize_CUDA
virtual StatusCode initialize_CUDA() override
Initialization that invokes CUDA functions.
Definition
GPUClusterSorter.cxx:29
GPUClusterSorter::m_kernelSizeOptimizer
ServiceHandle< IGPUKernelSizeOptimizerSvc > m_kernelSizeOptimizer
Handle to the CUDA kernel block and grid size optimization service.
Definition
GPUClusterSorter.h:78
GPUClusterSorter::~GPUClusterSorter
virtual ~GPUClusterSorter()=default
GPUClusterSorter::GPUClusterSorter
GPUClusterSorter(const std::string &type, const std::string &name, const IInterface *parent)
Definition
GPUClusterSorter.cxx:16
GPUClusterSorter::finalize
virtual StatusCode finalize() override
Definition
GPUClusterSorter.cxx:77
GPUClusterSorter::initialize
virtual StatusCode initialize() override
Definition
GPUClusterSorter.h:42
GPUClusterSorter::initialize_non_CUDA
virtual StatusCode initialize_non_CUDA() override
Initialization that does not invoke CUDA functions.
Definition
GPUClusterSorter.cxx:22
ServiceHandle
Definition
ClusterMakerTool.h:36
type
Generated on
for ATLAS Offline Software by
1.17.0