ATLAS Offline Software
Loading...
Searching...
No Matches
CUDAClusterizationAlgProviderTool.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5// Local include(s).
7
8// Athena Acts include(s).
10
11// Traccc include(s).
12#include "traccc/cuda/clusterization/clusterization_algorithm.hpp"
13#include "traccc/cuda/clusterization/measurement_sorting_algorithm.hpp"
14
15namespace ActsTrk {
16
18{
19 ATH_MSG_DEBUG("Initializing.");
20
21 ATH_CHECK(m_MRs.retrieve());
22 ATH_CHECK(m_copy.retrieve());
23 ATH_CHECK(m_streamTool.retrieve());
24
26
27 ATH_MSG_DEBUG("Successfully initialized");
28 return StatusCode::SUCCESS;
29}
30
33{
34
35 ATH_MSG_VERBOSE("Constructing CUDA traccc clusterization algorithm");
36 auto copy = m_copy->copy(ctx);
37
38 return {copy, std::make_shared<traccc::cuda::clusterization_algorithm>(
39 traccc::memory_resource{m_MRs->mainMR(), m_MRs->hostMR()},
40 *copy,
41 traccc::cuda::stream_wrapper{m_streamTool->stream(ctx)},
43 makeActsAthenaLogger(this, "TracccClusterizationCUDA"))};
44
45}
46
49{
50
51 ATH_MSG_VERBOSE("Constructing CUDA traccc measurement sorting algorithm");
52 auto copy = m_copy->copy(ctx);
53
54 return {copy, std::make_shared<traccc::cuda::measurement_sorting_algorithm>(
55 traccc::memory_resource{m_MRs->mainMR(), m_MRs->hostMR()},
56 *copy,
57 traccc::cuda::stream_wrapper{m_streamTool->stream(ctx)},
58 makeActsAthenaLogger(this, "TracccMeasurementSortingCUDA"))};
59
60}
61
62} // namespace ActsTrk
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x,...)
#define ATH_MSG_VERBOSE(x,...)
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
Definition Logger.cxx:64
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...