Source code for pipeline.TrackBuilding.edges2tracks
"""
"""
import scipy.sparse as sps
import numpy as np
import torch
[docs]def build_tracks_from_edges(edge_index: torch.Tensor, n_hits: int) -> torch.Tensor:
row, col = edge_index.cpu()
edge_attr = np.ones(row.size(0))
sparse_edges = sps.coo_matrix(
(edge_attr, (row.numpy(), col.numpy())), (n_hits, n_hits)
)
_, candidate_labels = sps.csgraph.connected_components(
sparse_edges, directed=False, return_labels=True
)
return torch.from_numpy(candidate_labels).to(edge_index.device)