Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
FPGATrackSimGNNEdgeClassifierTool.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 #ifndef FPGATRACKSIMGNNEDGECLASSIFIERTOOL_H
4 #define FPGATRACKSIMGNNEDGECLASSIFIERTOOL_H
5 
18 
21 
23 #include <onnxruntime_cxx_api.h>
24 
26 {
27  public:
28 
30  // AthAlgTool
31 
32  FPGATrackSimGNNEdgeClassifierTool(const std::string&, const std::string&, const IInterface*);
33 
34  virtual StatusCode initialize() override;
35 
37  // Functions
38 
39  virtual StatusCode scoreEdges(const std::vector<std::shared_ptr<FPGATrackSimGNNHit>> & hits, std::vector<std::shared_ptr<FPGATrackSimGNNEdge>> & edges);
40 
41  private:
42 
44  // Handles
45 
46  ToolHandle<AthOnnx::IOnnxRuntimeInferenceTool> m_GNNInferenceTool {this, "GNNInferenceTool", "AthOnnx::OnnxRuntimeInferenceTool"};
47 
49  // Helpers
50 
51  std::vector<float> getNodeFeatures(const std::vector<std::shared_ptr<FPGATrackSimGNNHit>> & hits);
52  std::vector<int64_t> getEdgeList(const std::vector<std::shared_ptr<FPGATrackSimGNNEdge>> & edges);
53  std::vector<float> getEdgeFeatures(const std::vector<std::shared_ptr<FPGATrackSimGNNEdge>> & edges);
54 
55  StringArrayProperty m_gnnFeatureNamesVec{
56  this, "GNNFeatureNames",
57  {"r", "phi", "z", "eta", "cluster_r_1", "cluster_phi_1", "cluster_z_1", "cluster_eta_1", "cluster_r_2", "cluster_phi_2", "cluster_z_2", "cluster_eta_2"},
58  "Feature names for the GNN model"};
59  FloatArrayProperty m_gnnFeatureScalesVec{
60  this, "GNNFeatureScales",
61  {1000.0, 3.14159265359, 1000.0, 1.0, 1000.0, 3.14159265359, 1000.0, 1.0, 1000.0, 3.14159265359, 1000.0, 1.0},
62  "Feature scales for the GNN model"};
63 
64 };
65 
66 
67 #endif // FPGATRACKSIMGNNEDGECLASSIFIERTOOL_H
FPGATrackSimGNNEdgeClassifierTool::FPGATrackSimGNNEdgeClassifierTool
FPGATrackSimGNNEdgeClassifierTool(const std::string &, const std::string &, const IInterface *)
Definition: FPGATrackSimGNNEdgeClassifierTool.cxx:8
FPGATrackSimGNNEdgeClassifierTool::scoreEdges
virtual StatusCode scoreEdges(const std::vector< std::shared_ptr< FPGATrackSimGNNHit >> &hits, std::vector< std::shared_ptr< FPGATrackSimGNNEdge >> &edges)
Definition: FPGATrackSimGNNEdgeClassifierTool.cxx:23
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
IOnnxRuntimeInferenceTool.h
FPGATrackSimGNNEdgeClassifierTool::m_gnnFeatureNamesVec
StringArrayProperty m_gnnFeatureNamesVec
Definition: FPGATrackSimGNNEdgeClassifierTool.h:55
FPGATrackSimGNNEdge.h
FPGATrackSim-specific class to represent an edge as a connection between two hits in the detector use...
FPGATrackSimGNNEdgeClassifierTool::m_gnnFeatureScalesVec
FloatArrayProperty m_gnnFeatureScalesVec
Definition: FPGATrackSimGNNEdgeClassifierTool.h:59
FPGATrackSimGNNEdgeClassifierTool::getNodeFeatures
std::vector< float > getNodeFeatures(const std::vector< std::shared_ptr< FPGATrackSimGNNHit >> &hits)
Definition: FPGATrackSimGNNEdgeClassifierTool.cxx:53
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
FPGATrackSimGNNEdgeClassifierTool::getEdgeFeatures
std::vector< float > getEdgeFeatures(const std::vector< std::shared_ptr< FPGATrackSimGNNEdge >> &edges)
Definition: FPGATrackSimGNNEdgeClassifierTool.cxx:98
FPGATrackSimGNNEdgeClassifierTool
Definition: FPGATrackSimGNNEdgeClassifierTool.h:26
FPGATrackSimGNNHit.h
FPGATrackSim-specific class to represent an hit in the detector used for GNN pattern recognition.
FPGATrackSimGNNEdgeClassifierTool::getEdgeList
std::vector< int64_t > getEdgeList(const std::vector< std::shared_ptr< FPGATrackSimGNNEdge >> &edges)
Definition: FPGATrackSimGNNEdgeClassifierTool.cxx:81
FPGATrackSimGNNEdgeClassifierTool::initialize
virtual StatusCode initialize() override
Definition: FPGATrackSimGNNEdgeClassifierTool.cxx:11
FPGATrackSimGNNEdgeClassifierTool::m_GNNInferenceTool
ToolHandle< AthOnnx::IOnnxRuntimeInferenceTool > m_GNNInferenceTool
Definition: FPGATrackSimGNNEdgeClassifierTool.h:46
AthAlgTool
Definition: AthAlgTool.h:26