14 std::shared_ptr<GraphConstructionBase> graphConstructor,
15 std::vector<std::shared_ptr<EdgeClassificationBase>> edgeClassifiers,
16 std::shared_ptr<TrackBuildingBase> trackBuilder,
17 std::unique_ptr<const Acts::Logger>
logger)
19 m_graphConstructor(graphConstructor),
20 m_edgeClassifiers(edgeClassifiers),
21 m_trackBuilder(trackBuilder) {
23 throw std::invalid_argument(
"Missing graph construction module");
26 throw std::invalid_argument(
"Missing track building module");
30 [](
const auto &
a) {
return static_cast<bool>(
a); })) {
31 throw std::invalid_argument(
"Missing graph construction module");
36 std::vector<float> &features, std::vector<int> &spacepointIDs,
38 auto t0 = std::chrono::high_resolution_clock::now();
40 (*m_graphConstructor)(features, spacepointIDs.size(), deviceHint);
41 auto t1 = std::chrono::high_resolution_clock::now();
43 if (timing !=
nullptr) {
49 std::any edge_weights;
53 t0 = std::chrono::high_resolution_clock::now();
54 auto [newNodes, newEdges, newWeights] =
56 t1 = std::chrono::high_resolution_clock::now();
58 if (timing !=
nullptr) {
69 t0 = std::chrono::high_resolution_clock::now();
72 std::move(edge_weights), spacepointIDs, deviceHint);
73 t1 = std::chrono::high_resolution_clock::now();
75 if (timing !=
nullptr) {