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
12
13#include "vecmem/utils/cuda/copy.hpp"
14
15#include <memory>
16#include <string>
17
18namespace ActsTrk {
19
21 : public extends<AthAlgTool, IDeviceClusterizationAlgProviderTool>
22{
23public:
24 using extends::extends;
25 virtual StatusCode initialize() override;
26 virtual StatusCode finalize() override;
27
28 virtual std::pair<std::shared_ptr<const vecmem::copy>, std::shared_ptr<const traccc::device::clusterization_algorithm>> getClusterizationAlgorithm(const EventContext& ctx) const override;
29
30 virtual std::pair<std::shared_ptr<const vecmem::copy>, std::shared_ptr<const IDeviceClusterizationAlgProviderTool::sorting_algorithm_type>>
31 getSortingAlgorithm(const EventContext& ctx) const override;
32
33
34private:
35
36 traccc::clustering_config m_clusteringConfig{};
37
38 ToolHandle<AthDevice::IMemoryResourceTool> m_hostMR{
39 this, "HostMR", "", "Host memory resource tool"};
40 ToolHandle<AthDevice::IMemoryResourceTool> m_deviceMR{
41 this, "DeviceMR", "", "Device memory resource tool"};
42 ToolHandle<AthDevice::ICopyTool> m_copy{
43 this, "CopyProviderTool", "", "Vecmem copy provider tool"};
44 ToolHandle<AthCUDA::IStreamTool> m_streamTool{
45 this, "StreamTool", "", "CUDA stream provider tool"};
46
47};
48
49} // namespace ActsTrk
50
51#endif // ACTSGPUDATAPREPARATION_CUDACLUSTERIZATIONALGPROVIDERTOOL_H
ToolHandle< AthDevice::IMemoryResourceTool > m_hostMR
virtual std::pair< std::shared_ptr< const vecmem::copy >, std::shared_ptr< const traccc::device::clusterization_algorithm > > getClusterizationAlgorithm(const EventContext &ctx) const override
virtual std::pair< std::shared_ptr< const vecmem::copy >, std::shared_ptr< const IDeviceClusterizationAlgProviderTool::sorting_algorithm_type > > getSortingAlgorithm(const EventContext &ctx) const override
ToolHandle< AthDevice::IMemoryResourceTool > m_deviceMR
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...