18 namespace Acts::Sycl {
19 template <
typename external_spacepo
int_t>
26 m_wrappedQueue(std::move(wrappedQueue)) {
51 seedFilterConfig.deltaInvHelixDiameter,
52 seedFilterConfig.impactWeightFactor,
53 seedFilterConfig.deltaRMin,
54 seedFilterConfig.compatSeedWeight,
56 seedFilterConfig.compatSeedLimit,
60 template <
typename external_spacepo
int_t>
61 template <
typename sp_range_t>
62 std::vector<Acts::Seed<external_spacepoint_t>>
64 sp_range_t bottomSPs, sp_range_t middleSPs, sp_range_t topSPs)
const {
65 std::vector<Seed<external_spacepoint_t>> outputVec;
71 std::vector<detail::DeviceSpacePoint> deviceBottomSPs;
72 std::vector<detail::DeviceSpacePoint> deviceMiddleSPs;
73 std::vector<detail::DeviceSpacePoint> deviceTopSPs;
75 std::vector<const Acts::InternalSpacePoint<external_spacepoint_t>*>
77 std::vector<const Acts::InternalSpacePoint<external_spacepoint_t>*>
79 std::vector<const Acts::InternalSpacePoint<external_spacepoint_t>*> topSPvec;
81 for (
auto SP : bottomSPs) {
82 bottomSPvec.push_back(SP);
83 deviceBottomSPs.push_back(
85 SP->varianceR(), SP->varianceZ()});
88 for (
auto SP : middleSPs) {
89 middleSPvec.push_back(SP);
90 deviceMiddleSPs.push_back(
92 SP->varianceR(), SP->varianceZ()});
95 for (
auto SP : topSPs) {
96 topSPvec.push_back(SP);
97 deviceTopSPs.push_back(
99 SP->varianceR(), SP->varianceZ()});
102 std::vector<std::vector<detail::SeedData>> seeds;
106 deviceBottomSPs, deviceMiddleSPs, deviceTopSPs,
112 float, std::unique_ptr<const InternalSeed<external_spacepoint_t>>>>
114 for (
size_t mi = 0; mi < seeds.size(); ++mi) {
116 for (
size_t j = 0; j < seeds[mi].size(); ++j) {
117 auto& bottomSP = *(bottomSPvec[seeds[mi][j].bottom]);
118 auto& middleSP = *(middleSPvec[mi]);
119 auto& topSP = *(topSPvec[seeds[mi][j].top]);
120 float weight = seeds[mi][j].weight;
122 seedsPerSPM.emplace_back(std::make_pair(
124 bottomSP, middleSP, topSP, 0)));
126 m_config.seedFilter->filterSeeds_1SpFixed(seedsPerSPM, outputVec);