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)