ATLAS Offline Software
Loading...
Searching...
No Matches
CUDAClusterizationAlgProviderTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef ACTSGPUDATAPREPARATION_CUDACLUSTERIZATIONALGPROVIDERTOOL_H
5#define ACTSGPUDATAPREPARATION_CUDACLUSTERIZATIONALGPROVIDERTOOL_H
6
7// Local include(s).
9
10// Framework include(s).
15#include "Gaudi/Property.h"
16#include "GaudiKernel/ToolHandle.h"
17
18namespace ActsTrk {
19
35 : public extends<AthAlgTool, IDeviceClusterizationAlgProviderTool> {
36 public:
37 using extends::extends;
39 virtual StatusCode initialize() override;
40
44 getClusterizationAlgorithm(const EventContext& ctx) const override;
45
50 const EventContext& ctx) const override;
51
52 private:
53 traccc::clustering_config m_clusteringConfig{};
54
56 Gaudi::Property<bool> m_sortCells{
57 this, "CellSorting", true,
58 "Whether to sort traccc cells on GPU prior to clusterization"};
59
61 ToolHandle<AthDevice::IMemoryResourcesTool> m_MRs{
62 this, "MemoryResourcesTool", "",
63 "The memory resources tool to use for allocating memory on the device"};
64
66 ToolHandle<AthDevice::ICopyTool> m_copy{this, "CopyProviderTool", "",
67 "Vecmem copy provider tool"};
68
69 ToolHandle<AthCUDA::IStreamTool> m_streamTool{this, "StreamTool", "",
70 "CUDA stream provider tool"};
71};
72
73} // namespace ActsTrk
74
75#endif // ACTSGPUDATAPREPARATION_CUDACLUSTERIZATIONALGPROVIDERTOOL_H
Tool providing CUDA-based traccc clusterization and measurement sorting algorithms.
virtual DeviceAlgorithmT< sorting_algorithm_type > getSortingAlgorithm(const EventContext &ctx) const override
Function constructing the traccc cuda measurement sorting algorithm Neccesary because the CKF require...
virtual StatusCode initialize() override
Function initializing the algorithm.
virtual DeviceAlgorithmT< traccc::device::clusterization_algorithm > getClusterizationAlgorithm(const EventContext &ctx) const override
Function constructing the traccc cuda clusterization algorithm.
ToolHandle< AthDevice::IMemoryResourcesTool > m_MRs
Convenience type for the "algorithm provider" tools.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...