File indexing completed on 2026-07-26 08:22:23
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include "traccc/clusterization/measurement_creation_algorithm.hpp"
0010 #include "traccc/clusterization/sparse_ccl_algorithm.hpp"
0011 #include "traccc/edm/silicon_cell_collection.hpp"
0012 #include "traccc/edm/silicon_cluster_collection.hpp"
0013 #include "traccc/geometry/detector_design_description.hpp"
0014
0015
0016 #include <vecmem/memory/host_memory_resource.hpp>
0017
0018
0019 #include <gtest/gtest.h>
0020
0021 TEST(algorithms, seq_single_module) {
0022
0023 vecmem::host_memory_resource resource;
0024
0025 traccc::host::sparse_ccl_algorithm cc(resource);
0026 traccc::host::measurement_creation_algorithm mc(resource);
0027
0028
0029 traccc::edm::silicon_cell_collection::host cells{resource};
0030 cells.push_back({1, 0, 1.f, 0.f, 0});
0031 cells.push_back({8, 4, 2.f, 0.f, 0});
0032 cells.push_back({10, 4, 3.f, 0.f, 0});
0033 cells.push_back({9, 5, 4.f, 0.f, 0});
0034 cells.push_back({10, 5, 5.f, 0.f, 0});
0035 cells.push_back({12, 12, 6.f, 0.f, 0});
0036 cells.push_back({3, 13, 7.f, 0.f, 0});
0037 cells.push_back({11, 13, 8.f, 0.f, 0});
0038 cells.push_back({4, 14, 9.f, 0.f, 0});
0039
0040
0041
0042 static constexpr std::size_t NMODULES = 1;
0043 traccc::detector_design_description::host det_desc{resource};
0044 traccc::detector_conditions_description::host det_cond{resource};
0045 det_desc.resize(NMODULES);
0046 det_cond.resize(NMODULES);
0047 for (std::size_t i = 0; i < NMODULES; ++i) {
0048 det_cond.module_to_design_id()[i] = static_cast<unsigned int>(i);
0049 det_cond.geometry_id()[i] = detray::geometry::identifier{i};
0050 det_cond.acts_geometry_id()[i] = i;
0051 det_cond.measurement_translation()[i] = {0.f, 0.f};
0052
0053 std::vector<traccc::scalar, std::pmr::polymorphic_allocator<traccc::scalar>>
0054 bin_edges_x(10001), bin_edges_y(10001);
0055 std::iota(bin_edges_x.begin(), bin_edges_x.end(), -0.5f);
0056 std::iota(bin_edges_y.begin(), bin_edges_y.end(), -0.5f);
0057 det_desc.bin_edges_x().back().assign(bin_edges_x.begin(),
0058 bin_edges_x.end());
0059
0060 det_desc.bin_edges_y().back().assign(bin_edges_y.begin(),
0061 bin_edges_y.end());
0062 det_desc.dimensions()[i] = 2;
0063 det_desc.subspace()[i] = {0, 1};
0064 det_desc.design_id()[i] = static_cast<int>(i);
0065 }
0066
0067 auto cells_data = vecmem::get_data(cells);
0068 auto clusters = cc(cells_data, vecmem::get_data(det_cond));
0069 EXPECT_EQ(clusters.size(), 4u);
0070
0071 auto clusters_data = vecmem::get_data(clusters);
0072 auto det_desc_data = vecmem::get_data(det_desc);
0073 auto det_cond_data = vecmem::get_data(det_cond);
0074 auto measurements =
0075 mc(cells_data, clusters_data, det_desc_data, det_cond_data);
0076
0077 EXPECT_EQ(measurements.size(), 4u);
0078 }