ATLAS Offline Software
Loading...
Searching...
No Matches
CUDASeedingAlgProviderTool.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 ACTSGPUPATTERNRECOGNITION_CUDASEEDINGALGPROVIDERTOOL_H
5#define ACTSGPUPATTERNRECOGNITION_CUDASEEDINGALGPROVIDERTOOL_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, IDeviceSeedingAlgProviderTool>
37{
38public:
39 using extends::extends;
41 virtual StatusCode initialize() override;
42
45
46 virtual std::pair<std::shared_ptr<const vecmem::copy>, std::shared_ptr<const traccc::device::triplet_seeding_algorithm>> getTripletSeedingAlgorithm(const EventContext& ctx, const traccc::seedfinder_config& seedfinder, const traccc::seedfilter_config& seedfilter) const override;
47 virtual std::pair<std::shared_ptr<const vecmem::copy>, std::shared_ptr<const traccc::device::gbts_seeding_algorithm>> getGBTSAlgorithm(const EventContext& ctx, const traccc::gbts_seedfinder_config& gbts_config) const override;
48
49
50private:
51
53 ToolHandle<AthDevice::IMemoryResourcesTool> m_MRs{
54 this, "MemoryResourcesTool", "",
55 "The memory resources tool to use for allocating memory on the device"};
56
58 ToolHandle<AthDevice::ICopyTool> m_copy{
59 this, "CopyProviderTool", "", "Vecmem copy provider tool"};
60
61 ToolHandle<AthCUDA::IStreamTool> m_streamTool{
62 this, "StreamTool", "", "CUDA stream provider tool"};
63
64};
65
66} // namespace ActsTrk
67
68#endif // ACTSGPUPATTERNRECOGNITION_CUDASEEDINGALGPROVIDERTOOL_H
Tool providing CUDA-based traccc seeding algorithm.
ToolHandle< AthDevice::IMemoryResourcesTool > m_MRs
virtual std::pair< std::shared_ptr< const vecmem::copy >, std::shared_ptr< const traccc::device::gbts_seeding_algorithm > > getGBTSAlgorithm(const EventContext &ctx, const traccc::gbts_seedfinder_config &gbts_config) const override
virtual StatusCode initialize() override
Function initializing the algorithm.
ToolHandle< AthCUDA::IStreamTool > m_streamTool
virtual std::pair< std::shared_ptr< const vecmem::copy >, std::shared_ptr< const traccc::device::triplet_seeding_algorithm > > getTripletSeedingAlgorithm(const EventContext &ctx, const traccc::seedfinder_config &seedfinder, const traccc::seedfilter_config &seedfilter) const override
Function constructing the traccc cuda seeding algorithm.
ToolHandle< AthDevice::ICopyTool > m_copy
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...