ATLAS Offline Software
Loading...
Searching...
No Matches
InDet::SiGNNTrackFinderTool Class Reference

InDet::SiGNNTrackFinderTool is a tool that produces track candidates with graph neural networks-based pipeline using 3D space points as inputs. More...

#include <SiGNNTrackFinderTool.h>

Inheritance diagram for InDet::SiGNNTrackFinderTool:
Collaboration diagram for InDet::SiGNNTrackFinderTool:

Public Member Functions

 SiGNNTrackFinderTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize () override
virtual StatusCode getTracks (const std::vector< const Trk::SpacePoint * > &spacepoints, std::vector< std::vector< uint32_t > > &tracks, std::unordered_map< int, std::unordered_map< int, float > > *edgeMap=nullptr) const override
 Get track candidates from a list of space points.
virtual MsgStream & dump (MsgStream &out) const override
virtual std::ostream & dump (std::ostream &out) const override

Protected Member Functions

 SiGNNTrackFinderTool ()=delete
 SiGNNTrackFinderTool (const SiGNNTrackFinderTool &)=delete
SiGNNTrackFinderTooloperator= (const SiGNNTrackFinderTool &)=delete

Exa.TrkX pipeline configurations, which will not be changed after construction

StringProperty m_inputMLModuleDir {this, "inputMLModelDir", ""}
UnsignedIntegerProperty m_embeddingDim {this, "embeddingDim", 8}
FloatProperty m_rVal {this, "rVal", 0.12}
UnsignedIntegerProperty m_knnVal {this, "knnVal", 1000}
FloatProperty m_filterCut {this, "filterCut", 0.05}
FloatProperty m_ccCut {this, "ccCut", 0.01}
FloatProperty m_walkMin {this, "walkMin", 0.1}
FloatProperty m_walkMax {this, "walkMax", 0.6}
StringProperty m_embeddingFeatureNames
StringProperty m_embeddingFeatureScales
StringProperty m_filterFeatureNames
StringProperty m_filterFeatureScales
StringProperty m_gnnFeatureNames
StringProperty m_gnnFeatureScales
ToolHandle< AthOnnx::IOnnxRuntimeInferenceToolm_embedSessionTool
ToolHandle< AthOnnx::IOnnxRuntimeInferenceToolm_filterSessionTool
ToolHandle< AthOnnx::IOnnxRuntimeInferenceToolm_gnnSessionTool
ToolHandle< ISpacepointFeatureToolm_spacepointFeatureTool
std::vector< std::string > m_embeddingFeatureNamesVec
std::vector< float > m_embeddingFeatureScalesVec
std::vector< std::string > m_filterFeatureNamesVec
std::vector< float > m_filterFeatureScalesVec
std::vector< std::string > m_gnnFeatureNamesVec
std::vector< float > m_gnnFeatureScalesVec
void initTrainedModels ()
MsgStream & dumpevent (MsgStream &out) const

Detailed Description

InDet::SiGNNTrackFinderTool is a tool that produces track candidates with graph neural networks-based pipeline using 3D space points as inputs.

Author
xiang.nosp@m.yang.nosp@m..ju@c.nosp@m.ern..nosp@m.ch

Definition at line 31 of file SiGNNTrackFinderTool.h.

Constructor & Destructor Documentation

◆ SiGNNTrackFinderTool() [1/3]

InDet::SiGNNTrackFinderTool::SiGNNTrackFinderTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 15 of file SiGNNTrackFinderTool.cxx.

16 :
17 base_class(type, name, parent)
18 {
19 declareInterface<IGNNTrackFinder>(this);
20 }

◆ SiGNNTrackFinderTool() [2/3]

InDet::SiGNNTrackFinderTool::SiGNNTrackFinderTool ( )
protecteddelete

◆ SiGNNTrackFinderTool() [3/3]

InDet::SiGNNTrackFinderTool::SiGNNTrackFinderTool ( const SiGNNTrackFinderTool & )
protecteddelete

Member Function Documentation

◆ dump() [1/2]

MsgStream & InDet::SiGNNTrackFinderTool::dump ( MsgStream & out) const
overridevirtual

Definition at line 62 of file SiGNNTrackFinderTool.cxx.

63{
64 out<<std::endl;
65 return dumpevent(out);
66}
MsgStream & dumpevent(MsgStream &out) const

◆ dump() [2/2]

std::ostream & InDet::SiGNNTrackFinderTool::dump ( std::ostream & out) const
overridevirtual

Definition at line 68 of file SiGNNTrackFinderTool.cxx.

69{
70 return out;
71}

◆ dumpevent()

MsgStream & InDet::SiGNNTrackFinderTool::dumpevent ( MsgStream & out) const
protected

Definition at line 73 of file SiGNNTrackFinderTool.cxx.

74{
75 out<<"|---------------------------------------------------------------------|"
76 <<std::endl;
77 out<<"| Number output tracks | "<<std::setw(12)
78 <<" |"<<std::endl;
79 out<<"|---------------------------------------------------------------------|"
80 <<std::endl;
81 return out;
82}

◆ getTracks()

StatusCode InDet::SiGNNTrackFinderTool::getTracks ( const std::vector< const Trk::SpacePoint * > & spacepoints,
std::vector< std::vector< uint32_t > > & tracks,
std::unordered_map< int, std::unordered_map< int, float > > * edgeMap = nullptr ) const
overridevirtual

Get track candidates from a list of space points.

Parameters
spacepointsa list of spacepoints as inputs to the GNN-based track finder.
tracksa list of track candidates.
Returns

Definition at line 84 of file SiGNNTrackFinderTool.cxx.

88{
89 int64_t numSpacepoints = (int64_t)spacepoints.size();
90 std::vector<float> eNodeFeatures;
91 std::vector<float> fNodeFeatures;
92 std::vector<float> gNodeFeatures;
93 std::vector<uint32_t> spacepointIDs;
94 std::vector<int> regions;
95
96 int sp_idx = 0;
97 for(const auto& sp: spacepoints){
98 auto featureMap = m_spacepointFeatureTool->getFeatures(sp);
99 regions.push_back(featureMap["region"]);
100 // fill embedding node features.
101 for(size_t i = 0; i < m_embeddingFeatureNamesVec.size(); i++){
102 eNodeFeatures.push_back(
104 }
105
106 // fill filtering node features.
107 for(size_t i = 0; i < m_filterFeatureNamesVec.size(); i++){
108 fNodeFeatures.push_back(
110 }
111
112 // fill gnn node features.
113 for(size_t i = 0; i < m_gnnFeatureNamesVec.size(); i++){
114 gNodeFeatures.push_back(
115 featureMap[m_gnnFeatureNamesVec[i]] / m_gnnFeatureScalesVec[i]);
116 }
117
118 spacepointIDs.push_back(sp_idx++);
119 }
120 // ************
121 // Embedding
122 // ************
123 std::vector<int64_t> eInputShape{numSpacepoints, (long int) m_embeddingFeatureNamesVec.size()};
124 std::vector<Ort::Value> eInputTensor;
125 ATH_CHECK( m_embedSessionTool->addInput(eInputTensor, eNodeFeatures, 0, numSpacepoints) );
126
127 std::vector<Ort::Value> eOutputTensor;
128 std::vector<float> eOutputData;
129 ATH_CHECK( m_embedSessionTool->addOutput(eOutputTensor, eOutputData, 0, numSpacepoints) );
130
131 ATH_CHECK( m_embedSessionTool->inference(eInputTensor, eOutputTensor) );
132
133 // ************
134 // Building Edges
135 // ************
136 std::vector<int64_t> senders;
137 std::vector<int64_t> receivers;
138 ExaTrkXUtils::buildEdges(eOutputData, senders, receivers, numSpacepoints, m_embeddingDim, m_rVal, m_knnVal);
139 int64_t numEdges = senders.size();
140
141 // clean up embedding data.
142 eNodeFeatures.clear();
143 eInputTensor.clear();
144 eOutputData.clear();
145 eOutputTensor.clear();
146
147 // sort the edge list and remove duplicate edges.
148 std::vector<std::pair<int64_t, int64_t>> edgePairs;
149 for(int64_t idx = 0; idx < numEdges; idx ++ ) {
150 edgePairs.push_back({senders[idx], receivers[idx]});
151 }
152 std::sort(edgePairs.begin(), edgePairs.end());
153 edgePairs.erase(std::unique(edgePairs.begin(), edgePairs.end()), edgePairs.end());
154
155 // random shuffle the edge list.
156 std::random_device rd;
157 std::mt19937 rdm_gen(rd());
158 std::random_shuffle(edgePairs.begin(), edgePairs.end());
159
160 // sort the edge list by the sender * numSpacepoints + receiver.
161 std::sort(edgePairs.begin(), edgePairs.end(),
162 [numSpacepoints](const std::pair<int64_t, int64_t>& a, const std::pair<int64_t, int64_t>& b){
163 return a.first * numSpacepoints + a.second < b.first * numSpacepoints + b.second;
164 });
165
166 // convert the edge list to senders and receivers.
167 senders.clear();
168 receivers.clear();
169 for(const auto& edge: edgePairs){
170 senders.push_back(edge.first);
171 receivers.push_back(edge.second);
172 }
173
174 edgePairs.clear();
175
176 // ************
177 // Filtering
178 // ************
179 std::vector<Ort::Value> fInputTensor;
180 ATH_CHECK( m_filterSessionTool->addInput(fInputTensor, fNodeFeatures, 0, numSpacepoints) );
181
182 std::vector<int64_t> edgeList(numEdges * 2);
183 std::copy(senders.begin(), senders.end(), edgeList.begin());
184 std::copy(receivers.begin(), receivers.end(), edgeList.begin() + senders.size());
185
186
187 ATH_CHECK( m_filterSessionTool->addInput(fInputTensor, edgeList, 1, numEdges) );
188
189 std::vector<float> fOutputData;
190 std::vector<Ort::Value> fOutputTensor;
191 ATH_CHECK( m_filterSessionTool->addOutput(fOutputTensor, fOutputData, 0, numEdges) );
192
193 ATH_CHECK( m_filterSessionTool->inference(fInputTensor, fOutputTensor) );
194
195 // apply sigmoid to the filtering output data
196 // and remove edges with score < filterCut
197 // and sort the edge list so that sender idx < receiver.
198 std::vector<int64_t> rowIndices;
199 std::vector<int64_t> colIndices;
200 for (int64_t i = 0; i < numEdges; i++){
201 float v = 1.f / (1.f + std::exp(-fOutputData[i])); // sigmoid, float type
202 if (v >= m_filterCut){
203 auto src = edgeList[i];
204 auto dst = edgeList[numEdges + i];
205 if (src > dst) {
206 std::swap(src, dst);
207 }
208 rowIndices.push_back(src);
209 colIndices.push_back(dst);
210 };
211 };
212 int64_t numEdgesAfterF = rowIndices.size();
213
214 // clean up filtering data.
215 fNodeFeatures.clear();
216 fInputTensor.clear();
217 fOutputData.clear();
218 fOutputTensor.clear();
219 // clean up sender and receiver list.
220 senders.clear();
221 receivers.clear();
222
223 std::vector<int64_t> edgesAfterFiltering(numEdgesAfterF * 2);
224 std::copy(rowIndices.begin(), rowIndices.end(), edgesAfterFiltering.begin());
225 std::copy(colIndices.begin(), colIndices.end(), edgesAfterFiltering.begin() + senders.size());
226
227 // ************
228 // GNN
229 // ************
230
231 // use the same features for regions (2, 6)
232 for(size_t idx = 0; idx < static_cast<size_t>(numSpacepoints); idx++){
233 if (regions[idx] == 2 || regions[idx] == 6){
234 for(size_t i = 4; i < m_gnnFeatureNamesVec.size(); i++){
235 gNodeFeatures[idx * m_gnnFeatureNamesVec.size() + i] = gNodeFeatures[idx * m_gnnFeatureNamesVec.size() + i % 4];
236 }
237 }
238 }
239
240 std::vector<Ort::Value> gInputTensor;
241 ATH_CHECK( m_gnnSessionTool->addInput(gInputTensor, gNodeFeatures, 0, numSpacepoints) );
242 ATH_CHECK( m_gnnSessionTool->addInput(gInputTensor, edgesAfterFiltering, 1, numEdgesAfterF) );
243
244 // calculate the edge features.
245 std::vector<float> gnnEdgeFeatures;
246 ExaTrkXUtils::calculateEdgeFeatures(gNodeFeatures, numSpacepoints, rowIndices, colIndices, gnnEdgeFeatures);
247 ATH_CHECK( m_gnnSessionTool->addInput(gInputTensor, gnnEdgeFeatures, 2, numEdgesAfterF) );
248
249 // gnn outputs
250 std::vector<float> gOutputData;
251 std::vector<Ort::Value> gOutputTensor;
252 ATH_CHECK( m_gnnSessionTool->addOutput(gOutputTensor, gOutputData, 0, numEdgesAfterF) );
253
254 ATH_CHECK( m_gnnSessionTool->inference(gInputTensor, gOutputTensor) );
255 // apply sigmoid to the gnn output data
256 for(auto& v : gOutputData){
257 v = 1.f / (1.f + std::exp(-v));
258 };
259
260 // clean up GNN data.
261 gNodeFeatures.clear();
262 gInputTensor.clear();
263 edgesAfterFiltering.clear();
264
265 // ************
266 // Track Labeling with cugraph::connected_components
267 // ************
268 tracks.clear();
270 numSpacepoints,
271 rowIndices, colIndices, gOutputData,
272 tracks, m_ccCut, m_walkMin, m_walkMax
273 );
274
275 return StatusCode::SUCCESS;
276}
#define ATH_CHECK
Evaluate an expression and check for errors.
static Double_t sp
static Double_t a
static const std::vector< std::string > regions
std::vector< float > m_gnnFeatureScalesVec
ToolHandle< AthOnnx::IOnnxRuntimeInferenceTool > m_filterSessionTool
ToolHandle< ISpacepointFeatureTool > m_spacepointFeatureTool
UnsignedIntegerProperty m_knnVal
UnsignedIntegerProperty m_embeddingDim
std::vector< float > m_filterFeatureScalesVec
std::vector< std::string > m_embeddingFeatureNamesVec
ToolHandle< AthOnnx::IOnnxRuntimeInferenceTool > m_embedSessionTool
std::vector< std::string > m_gnnFeatureNamesVec
std::vector< float > m_embeddingFeatureScalesVec
ToolHandle< AthOnnx::IOnnxRuntimeInferenceTool > m_gnnSessionTool
std::vector< std::string > m_filterFeatureNamesVec
void CCandWalk(vertex_t numSpacepoints, const std::vector< int64_t > &rowIndices, const std::vector< int64_t > &colIndices, const std::vector< weight_t > &edgeWeights, std::vector< std::vector< uint32_t > > &tracks, float ccCut, float walkMin, float walkMax)
void calculateEdgeFeatures(const std::vector< float > &gNodeFeatures, int64_t numSpacepoints, const std::vector< int64_t > &rowIndices, const std::vector< int64_t > &colIndices, std::vector< float > &edgeFeatures)
void buildEdges(const std::vector< float > &embedFeatures, std::vector< int64_t > &senders, std::vector< int64_t > &receivers, int64_t numSpacepoints, int embeddingDim, float rVal, int kVal)
DataModel_detail::iterator< DVL > unique(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of unique for DataVector/List.
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
void swap(ElementLinkVector< DOBJ > &lhs, ElementLinkVector< DOBJ > &rhs)

◆ initialize()

StatusCode InDet::SiGNNTrackFinderTool::initialize ( )
overridevirtual

Definition at line 22 of file SiGNNTrackFinderTool.cxx.

22 {
23 ATH_CHECK( m_embedSessionTool.retrieve() );
24 m_embedSessionTool->printModelInfo();
25
26 ATH_CHECK( m_filterSessionTool.retrieve() );
27 m_filterSessionTool->printModelInfo();
28
29 ATH_CHECK( m_gnnSessionTool.retrieve() );
30 m_gnnSessionTool->printModelInfo();
31
32 // tokenize the feature names by comma and push to the vector
33 auto split_fn = [](const std::string& s, auto convert_fn) {
34 using ReturnType = std::decay_t<decltype(convert_fn(std::declval<std::string>()))>;
35 std::vector<ReturnType> tokens;
36 std::string token;
37 std::istringstream tokenStream(s);
38 while (std::getline(tokenStream, token, ',')) {
39 token = token.substr(token.find_first_not_of(" "), token.find_last_not_of(" ") + 1);
40 tokens.push_back(convert_fn(token));
41 }
42 return tokens;
43 };
44 auto convert_to_float = [](const std::string& s) -> float { return std::stof(s); };
45 auto convert_to_str = [](const std::string& s) -> std::string { return s; };
46
47 m_embeddingFeatureNamesVec = split_fn(m_embeddingFeatureNames, convert_to_str);
48 m_embeddingFeatureScalesVec = split_fn(m_embeddingFeatureScales, convert_to_float);
50
51 m_filterFeatureNamesVec = split_fn(m_filterFeatureNames, convert_to_str);
52 m_filterFeatureScalesVec = split_fn(m_filterFeatureScales, convert_to_float);
54
55 m_gnnFeatureNamesVec = split_fn(m_gnnFeatureNames, convert_to_str);
56 m_gnnFeatureScalesVec = split_fn(m_gnnFeatureScales, convert_to_float);
57 assert(m_gnnFeatureNamesVec.size() == m_gnnFeatureScalesVec.size());
58
59 return StatusCode::SUCCESS;
60}

◆ initTrainedModels()

void InDet::SiGNNTrackFinderTool::initTrainedModels ( )
protected

◆ operator=()

SiGNNTrackFinderTool & InDet::SiGNNTrackFinderTool::operator= ( const SiGNNTrackFinderTool & )
protecteddelete

Member Data Documentation

◆ m_ccCut

FloatProperty InDet::SiGNNTrackFinderTool::m_ccCut {this, "ccCut", 0.01}
protected

Definition at line 71 of file SiGNNTrackFinderTool.h.

71{this, "ccCut", 0.01};

◆ m_embeddingDim

UnsignedIntegerProperty InDet::SiGNNTrackFinderTool::m_embeddingDim {this, "embeddingDim", 8}
protected

Definition at line 67 of file SiGNNTrackFinderTool.h.

67{this, "embeddingDim", 8};

◆ m_embeddingFeatureNames

StringProperty InDet::SiGNNTrackFinderTool::m_embeddingFeatureNames
protected
Initial value:
{
this, "EmbeddingFeatureNames",
"r, phi, z, cluster_x_1, cluster_y_1, cluster_z_1, cluster_x_2, cluster_y_2, cluster_z_2, count_1, charge_count_1, loc_eta_1, loc_phi_1, localDir0_1, localDir1_1, localDir2_1, lengthDir0_1, lengthDir1_1, lengthDir2_1, glob_eta_1, glob_phi_1, eta_angle_1, phi_angle_1, count_2, charge_count_2, loc_eta_2, loc_phi_2, localDir0_2, localDir1_2, localDir2_2, lengthDir0_2, lengthDir1_2, lengthDir2_2, glob_eta_2, glob_phi_2, eta_angle_2, phi_angle_2",
"Feature names for the Embedding model"}

Definition at line 75 of file SiGNNTrackFinderTool.h.

75 {
76 this, "EmbeddingFeatureNames",
77 "r, phi, z, cluster_x_1, cluster_y_1, cluster_z_1, cluster_x_2, cluster_y_2, cluster_z_2, count_1, charge_count_1, loc_eta_1, loc_phi_1, localDir0_1, localDir1_1, localDir2_1, lengthDir0_1, lengthDir1_1, lengthDir2_1, glob_eta_1, glob_phi_1, eta_angle_1, phi_angle_1, count_2, charge_count_2, loc_eta_2, loc_phi_2, localDir0_2, localDir1_2, localDir2_2, lengthDir0_2, lengthDir1_2, lengthDir2_2, glob_eta_2, glob_phi_2, eta_angle_2, phi_angle_2",
78 "Feature names for the Embedding model"};

◆ m_embeddingFeatureNamesVec

std::vector<std::string> InDet::SiGNNTrackFinderTool::m_embeddingFeatureNamesVec
private

Definition at line 118 of file SiGNNTrackFinderTool.h.

◆ m_embeddingFeatureScales

StringProperty InDet::SiGNNTrackFinderTool::m_embeddingFeatureScales
protected
Initial value:
{
this, "EmbeddingFeatureScales",
"1000, 3.14, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1, 1, 3.14, 3.14, 1, 1, 1, 1, 1, 1, 3.14, 3.14, 3.14, 3.14, 1, 1, 3.14, 3.14, 1, 1, 1, 1, 1, 1, 3.14, 3.14, 3.14, 3.14",
"Feature scales for the Embedding model"}

Definition at line 79 of file SiGNNTrackFinderTool.h.

79 {
80 this, "EmbeddingFeatureScales",
81 "1000, 3.14, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1, 1, 3.14, 3.14, 1, 1, 1, 1, 1, 1, 3.14, 3.14, 3.14, 3.14, 1, 1, 3.14, 3.14, 1, 1, 1, 1, 1, 1, 3.14, 3.14, 3.14, 3.14",
82 "Feature scales for the Embedding model"};

◆ m_embeddingFeatureScalesVec

std::vector<float> InDet::SiGNNTrackFinderTool::m_embeddingFeatureScalesVec
private

Definition at line 119 of file SiGNNTrackFinderTool.h.

◆ m_embedSessionTool

ToolHandle< AthOnnx::IOnnxRuntimeInferenceTool > InDet::SiGNNTrackFinderTool::m_embedSessionTool
private
Initial value:
{
this, "Embedding", "AthOnnx::OnnxRuntimeInferenceTool"
}

Definition at line 106 of file SiGNNTrackFinderTool.h.

106 {
107 this, "Embedding", "AthOnnx::OnnxRuntimeInferenceTool"
108 };

◆ m_filterCut

FloatProperty InDet::SiGNNTrackFinderTool::m_filterCut {this, "filterCut", 0.05}
protected

Definition at line 70 of file SiGNNTrackFinderTool.h.

70{this, "filterCut", 0.05};

◆ m_filterFeatureNames

StringProperty InDet::SiGNNTrackFinderTool::m_filterFeatureNames
protected
Initial value:
{
this, "FilterFeatureNames",
"r, phi, z, cluster_x_1, cluster_y_1, cluster_z_1, cluster_x_2, cluster_y_2, cluster_z_2, count_1, charge_count_1, loc_eta_1, loc_phi_1, localDir0_1, localDir1_1, localDir2_1, lengthDir0_1, lengthDir1_1, lengthDir2_1, glob_eta_1, glob_phi_1, eta_angle_1, phi_angle_1, count_2, charge_count_2, loc_eta_2, loc_phi_2, localDir0_2, localDir1_2, localDir2_2, lengthDir0_2, lengthDir1_2, lengthDir2_2, glob_eta_2, glob_phi_2, eta_angle_2, phi_angle_2",
"Feature names for the Filtering model"}

Definition at line 84 of file SiGNNTrackFinderTool.h.

84 {
85 this, "FilterFeatureNames",
86 "r, phi, z, cluster_x_1, cluster_y_1, cluster_z_1, cluster_x_2, cluster_y_2, cluster_z_2, count_1, charge_count_1, loc_eta_1, loc_phi_1, localDir0_1, localDir1_1, localDir2_1, lengthDir0_1, lengthDir1_1, lengthDir2_1, glob_eta_1, glob_phi_1, eta_angle_1, phi_angle_1, count_2, charge_count_2, loc_eta_2, loc_phi_2, localDir0_2, localDir1_2, localDir2_2, lengthDir0_2, lengthDir1_2, lengthDir2_2, glob_eta_2, glob_phi_2, eta_angle_2, phi_angle_2",
87 "Feature names for the Filtering model"};

◆ m_filterFeatureNamesVec

std::vector<std::string> InDet::SiGNNTrackFinderTool::m_filterFeatureNamesVec
private

Definition at line 120 of file SiGNNTrackFinderTool.h.

◆ m_filterFeatureScales

StringProperty InDet::SiGNNTrackFinderTool::m_filterFeatureScales
protected
Initial value:
{
this, "FilterFeatureScales",
"1000, 3.14, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1, 1, 3.14, 3.14, 1, 1, 1, 1, 1, 1, 3.14, 3.14, 3.14, 3.14, 1, 1, 3.14, 3.14, 1, 1, 1, 1, 1, 1, 3.14, 3.14, 3.14, 3.14",
"Feature scales for the Filtering model"}

Definition at line 88 of file SiGNNTrackFinderTool.h.

88 {
89 this, "FilterFeatureScales",
90 "1000, 3.14, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1, 1, 3.14, 3.14, 1, 1, 1, 1, 1, 1, 3.14, 3.14, 3.14, 3.14, 1, 1, 3.14, 3.14, 1, 1, 1, 1, 1, 1, 3.14, 3.14, 3.14, 3.14",
91 "Feature scales for the Filtering model"};

◆ m_filterFeatureScalesVec

std::vector<float> InDet::SiGNNTrackFinderTool::m_filterFeatureScalesVec
private

Definition at line 121 of file SiGNNTrackFinderTool.h.

◆ m_filterSessionTool

ToolHandle< AthOnnx::IOnnxRuntimeInferenceTool > InDet::SiGNNTrackFinderTool::m_filterSessionTool
private
Initial value:
{
this, "Filtering", "AthOnnx::OnnxRuntimeInferenceTool"
}

Definition at line 109 of file SiGNNTrackFinderTool.h.

109 {
110 this, "Filtering", "AthOnnx::OnnxRuntimeInferenceTool"
111 };

◆ m_gnnFeatureNames

StringProperty InDet::SiGNNTrackFinderTool::m_gnnFeatureNames
protected
Initial value:
{
this, "GNNFeatureNames",
"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",
"Feature names for the GNN model"}

Definition at line 93 of file SiGNNTrackFinderTool.h.

93 {
94 this, "GNNFeatureNames",
95 "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",
96 "Feature names for the GNN model"};

◆ m_gnnFeatureNamesVec

std::vector<std::string> InDet::SiGNNTrackFinderTool::m_gnnFeatureNamesVec
private

Definition at line 122 of file SiGNNTrackFinderTool.h.

◆ m_gnnFeatureScales

StringProperty InDet::SiGNNTrackFinderTool::m_gnnFeatureScales
protected
Initial value:
{
this, "GNNFeatureScales",
"1000.0, 3.14159265359, 1000.0, 1.0, 1000.0, 3.14159265359, 1000.0, 1.0, 1000.0, 3.14159265359, 1000.0, 1.0",
"Feature scales for the GNN model"}

Definition at line 97 of file SiGNNTrackFinderTool.h.

97 {
98 this, "GNNFeatureScales",
99 "1000.0, 3.14159265359, 1000.0, 1.0, 1000.0, 3.14159265359, 1000.0, 1.0, 1000.0, 3.14159265359, 1000.0, 1.0",
100 "Feature scales for the GNN model"};

◆ m_gnnFeatureScalesVec

std::vector<float> InDet::SiGNNTrackFinderTool::m_gnnFeatureScalesVec
private

Definition at line 123 of file SiGNNTrackFinderTool.h.

◆ m_gnnSessionTool

ToolHandle< AthOnnx::IOnnxRuntimeInferenceTool > InDet::SiGNNTrackFinderTool::m_gnnSessionTool
private
Initial value:
{
this, "GNN", "AthOnnx::OnnxRuntimeInferenceTool"
}

Definition at line 112 of file SiGNNTrackFinderTool.h.

112 {
113 this, "GNN", "AthOnnx::OnnxRuntimeInferenceTool"
114 };

◆ m_inputMLModuleDir

StringProperty InDet::SiGNNTrackFinderTool::m_inputMLModuleDir {this, "inputMLModelDir", ""}
protected

Definition at line 66 of file SiGNNTrackFinderTool.h.

66{this, "inputMLModelDir", ""};

◆ m_knnVal

UnsignedIntegerProperty InDet::SiGNNTrackFinderTool::m_knnVal {this, "knnVal", 1000}
protected

Definition at line 69 of file SiGNNTrackFinderTool.h.

69{this, "knnVal", 1000};

◆ m_rVal

FloatProperty InDet::SiGNNTrackFinderTool::m_rVal {this, "rVal", 0.12}
protected

Definition at line 68 of file SiGNNTrackFinderTool.h.

68{this, "rVal", 0.12};

◆ m_spacepointFeatureTool

ToolHandle<ISpacepointFeatureTool> InDet::SiGNNTrackFinderTool::m_spacepointFeatureTool
private
Initial value:
{
this, "SpacepointFeatureTool", "InDet::SpacepointFeatureTool"}

Definition at line 115 of file SiGNNTrackFinderTool.h.

115 {
116 this, "SpacepointFeatureTool", "InDet::SpacepointFeatureTool"};

◆ m_walkMax

FloatProperty InDet::SiGNNTrackFinderTool::m_walkMax {this, "walkMax", 0.6}
protected

Definition at line 73 of file SiGNNTrackFinderTool.h.

73{this, "walkMax", 0.6};

◆ m_walkMin

FloatProperty InDet::SiGNNTrackFinderTool::m_walkMin {this, "walkMin", 0.1}
protected

Definition at line 72 of file SiGNNTrackFinderTool.h.

72{this, "walkMin", 0.1};

The documentation for this class was generated from the following files: