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 <Gaudi/Property.h>
16#include <memory>
17#include <string>
18
19namespace ActsTrk {
20
36 : public extends<AthAlgTool, IDeviceClusterizationAlgProviderTool>
37{
38public:
39 using extends::extends;
41 virtual StatusCode initialize() override;
42
45 virtual std::pair<std::shared_ptr<const vecmem::copy>, std::shared_ptr<const traccc::device::clusterization_algorithm>> getClusterizationAlgorithm(const EventContext& ctx) const override;
46
50 virtual std::pair<std::shared_ptr<const vecmem::copy>, std::shared_ptr<const IDeviceClusterizationAlgProviderTool::sorting_algorithm_type>>
51 getSortingAlgorithm(const EventContext& ctx) const override;
52
53
54private:
55
56 traccc::clustering_config m_clusteringConfig{};
57
59 Gaudi::Property<bool> m_sortCells{this, "CellSorting", true,
60 "Whether to sort traccc cells on GPU prior to clusterization"};
61
62 ToolHandle<AthDevice::IMemoryResourcesTool> m_MRs{
63 this, "MemoryResourcesTool", "",
64 "The memory resources tool to use for allocating memory on the device"};
65
67 ToolHandle<AthDevice::ICopyTool> m_copy{
68 this, "CopyProviderTool", "", "Vecmem copy provider tool"};
69
70 ToolHandle<AthCUDA::IStreamTool> m_streamTool{
71 this, "StreamTool", "", "CUDA stream provider tool"};
72
73};
74
75} // namespace ActsTrk
76
77#endif // ACTSGPUDATAPREPARATION_CUDACLUSTERIZATIONALGPROVIDERTOOL_H
Tool providing CUDA-based traccc clusterization and measurement sorting algorithms.
virtual StatusCode initialize() override
Function initializing the algorithm.
virtual std::pair< std::shared_ptr< const vecmem::copy >, std::shared_ptr< const traccc::device::clusterization_algorithm > > getClusterizationAlgorithm(const EventContext &ctx) const override
Function constructing the traccc cuda clusterization algorithm.
virtual std::pair< std::shared_ptr< const vecmem::copy >, std::shared_ptr< const IDeviceClusterizationAlgProviderTool::sorting_algorithm_type > > getSortingAlgorithm(const EventContext &ctx) const override
Function constructing the traccc cuda measurement sorting algorithm Neccesary because the CKF require...
ToolHandle< AthDevice::IMemoryResourcesTool > m_MRs
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...