File ExaTrkXTrackFinding.hpp

namespace Acts


This file is foreseen for the Geometry module to replace Extent

class ExaTrkXTrackFinding
#include <Acts/Plugins/ExaTrkX/ExaTrkXTrackFinding.hpp>

Class implementing the Exa.TrkX track finding algorithm.

It holds the required ONNX objects.

Public Functions

ExaTrkXTrackFinding(const Config &config)

Constructor of the track finding module.


config – is the config struct to configure the module

virtual ~ExaTrkXTrackFinding() = default
inline const Config &config() const

Return the configuration object of the track finding module.

void getTracks(std::vector<float> &input_values, std::vector<uint32_t> &spacepointIDs, std::vector<std::vector<uint32_t>> &trackCandidates) const

Do the track finding.


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

  • input_values[in] Packed spacepoints in the form [ r1, phi1, z1, r2, phi2, z2, … ]

  • spacepointIDs[in] corresponding spacepoint IDs to the input_values.

  • trackCandidates[out] nested vector containing the spacepoint ids of the found tracks

Private Functions

void buildEdges(std::vector<float> &embedFeatures, std::vector<int64_t> &edgeList, int64_t numSpacepoints) const
void runSessionWithIoBinding(Ort::Session &sess, std::vector<const char*> &inputNames, std::vector<Ort::Value> &inputData, std::vector<const char*> &outputNames, std::vector<Ort::Value> &outputData) const

Private Members

std::unique_ptr<Ort::Session> e_sess
std::unique_ptr<Ort::Session> f_sess
std::unique_ptr<Ort::Session> g_sess
Config m_cfg
std::unique_ptr<Ort::Env> m_env
struct Config
#include <Acts/Plugins/ExaTrkX/ExaTrkXTrackFinding.hpp>

Configuration struct for the track finding.

Public Members

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