Class Acts::ExaTrkXTrackFindingOnnx

class ExaTrkXTrackFindingOnnx : public Acts::ExaTrkXTrackFindingBase

Implementation of the Exa.TrkX track finding algorithm based on ONNX.

Uses cugraph as graph library.

Public Functions

ExaTrkXTrackFindingOnnx(const Config &config, std::unique_ptr<const Logger> _logger = Acts::getDefaultLogger("ETXTrkFnd", Logging::INFO))

Constructor of the track finding module.

  • config – is the config struct to configure the module

  • _logger – A logger instance



inline const Config &config() const

Return the configuration object of the track finding module.

virtual std::optional<ExaTrkXTime> getTracks(std::vector<float> &inputValues, std::vector<int> &spacepointIDs, std::vector<std::vector<int>> &trackCandidates, const Logger &logger = getDummyLogger(), bool recordTiming = false) const override

Run the inference.


The input values are not const, because the ONNX API takes only non-const pointers.

  • inputValues – Spacepoint data as a flattened NxD array, where D is the dimensionality of a spacepoint (usually 3, but additional information like cell information can be provided).

  • spacepointIDs – The corresponding spacepoint IDs

  • trackCandidates – This vector is filled with the tracks as vectors of spacepoint IDs

  • logger – If provided, logging is enabled

  • recordTiming – If enabled, returns a ExaTrkXTime object with measured timings

struct Config

Configuration struct for the track finding.

Public Members

int embeddingDim = 8
float filterCut = 0.21
int knnVal = 500
std::string modelDir
float rVal = 1.6
int64_t spacepointFeatures = 3