13
13
#include " traccc/seeding/detail/seeding_config.hpp"
14
14
#include " traccc/seeding/detail/spacepoint_grid.hpp"
15
15
#include " traccc/utils/algorithm.hpp"
16
+ #include " traccc/utils/memory_resource.hpp"
16
17
17
18
// VecMem include(s).
18
19
#include < vecmem/containers/data/vector_buffer.hpp>
19
- #include < vecmem/memory/memory_resource .hpp>
20
+ #include < vecmem/utils/copy .hpp>
20
21
21
22
// System include(s).
22
23
#include < functional>
@@ -25,27 +26,53 @@ namespace traccc::cuda {
25
26
26
27
// / Seed finding for cuda
27
28
class seed_finding
28
- : public algorithm<host_seed_collection(
29
- const spacepoint_container_types::view&, const sp_grid_const_view&)> {
29
+ : public algorithm<vecmem::data::vector_buffer<seed>(
30
+ const spacepoint_container_types::const_view&,
31
+ const sp_grid_const_view&)>,
32
+ public algorithm<vecmem::data::vector_buffer<seed>(
33
+ const spacepoint_container_types::buffer&, const sp_grid_buffer&)> {
30
34
31
35
public:
32
36
// / Constructor for the cuda seed finding
33
37
// /
34
38
// / @param config is seed finder configuration parameters
35
39
// / @param sp_grid spacepoint grid
36
40
// / @param mr vecmem memory resource
37
- seed_finding (const seedfinder_config& config, vecmem::memory_resource& mr);
41
+ seed_finding (const seedfinder_config& config,
42
+ const traccc::memory_resource& mr);
38
43
39
44
// / Callable operator for the seed finding
40
45
// /
41
- // / @return seed_collection is the vector of seeds per event
42
- output_type operator ()(const spacepoint_container_types::view& spacepoints,
43
- const sp_grid_const_view& g2_view) const override ;
46
+ // / @param spacepoints_view is a view of all spacepoints in the event
47
+ // / @param g2_view is a view of the spacepoint grid
48
+ // / @return a vector buffer of seeds
49
+ // /
50
+ vecmem::data::vector_buffer<seed> operator ()(
51
+ const spacepoint_container_types::const_view& spacepoints_view,
52
+ const sp_grid_const_view& g2_view) const override ;
53
+
54
+ // / Callable operator for the seed finding
55
+ // /
56
+ // / @param spacepoints_buffer is a buffer of all spacepoints in the event
57
+ // / @param g2_buffer is a buffer of the spacepoint grid
58
+ // / @return a vector buffer of seeds
59
+ // /
60
+ vecmem::data::vector_buffer<seed> operator ()(
61
+ const spacepoint_container_types::buffer& spacepoints_buffer,
62
+ const sp_grid_buffer& g2_buffer) const override ;
63
+
64
+ private:
65
+ // / Implementation for the public seed finding operators.
66
+ vecmem::data::vector_buffer<seed> operator ()(
67
+ const spacepoint_container_types::const_view& spacepoints_view,
68
+ const sp_grid_const_view& g2_view,
69
+ const std::vector<unsigned int >& grid_sizes) const ;
44
70
45
71
private:
46
72
seedfinder_config m_seedfinder_config;
47
73
seedfilter_config m_seedfilter_config;
48
- std::reference_wrapper<vecmem::memory_resource> m_mr;
74
+ traccc::memory_resource m_mr;
75
+ std::unique_ptr<vecmem::copy> m_copy;
49
76
};
50
77
51
78
} // namespace traccc::cuda
0 commit comments