Loading [MathJax]/jax/output/SVG/config.js
 |
ATLAS Offline Software
|
#include <FPGATrackSimNNTrackTool.h>
|
Gaudi::Property< double > | m_chi2_scalefactor { this, "Chi2ScaleFactor", 40 / (1 - 0.1), "Scale factor to use in converting to a chi2, Nominal chi2ndof cut is 40 and we want to use NN>0.0075 (or NN<(1-0.0075)" } |
|
Gaudi::Property< unsigned int > | m_minNumberOfRealHitsInATrack { this, "MinNumberOfRealHitsInATrack", 4, "Minimum number of real hits in a track candidate to process" } |
|
Gaudi::Property< bool > | m_doGNNTracking { this, "doGNNTracking", false, "Flag to turn on GNN Tracking configuration for road-to-track" } |
|
TString | m_fileName |
|
|
ServiceHandle< IFPGATrackSimBankSvc > | m_FPGATrackSimBank { this,"FPGATrackSimBankSvc","FPGATrackSimBankSvc" } |
|
ToolHandle< IFPGATrackSimRoadFilterTool > | m_spRoadFilterTool {this, "SPRoadFilterTool", "FPGATrackSimSpacepointRoadFilterTool", "Spacepoint Road Filter Tool"} |
|
Gaudi::Property< bool > | m_doRegionalMapping { this, "RegionalMapping", false, "Use the sub-region maps to define the sector" } |
|
Gaudi::Property< bool > | m_doEtaPatternConsts { this, "doEtaPatternConsts", false, "Whether to use the eta pattern tool for constant generation" } |
|
Gaudi::Property< bool > | m_useSpacePoints { this, "useSpacePoints", false, "Whether we are using spacepoints." } |
|
Gaudi::Property< bool > | m_useSectors { this, "useSectors", false, "Will reverse calculate the sector for track-fitting purposes" } |
|
Gaudi::Property< bool > | m_idealGeoRoads { this, "IdealGeoRoads", true, "Set sectors to use ideal geometry fit constants" } |
|
Gaudi::Property< bool > | m_isSecondStage { this, "isSecondStage", true, "Is this the second stage?" } |
|
Gaudi::Property< bool > | m_do2ndStage {this, "Do2ndStageTrackFit", false, "Do 2nd stage track fit"} |
|
Definition at line 37 of file FPGATrackSimNNTrackTool.h.
◆ FPGATrackSimNNTrackTool()
FPGATrackSimNNTrackTool::FPGATrackSimNNTrackTool |
( |
const std::string & |
algname, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
ifc |
|
) |
| |
◆ compute_truth()
Definition at line 530 of file FPGATrackSimNNTrackTool.cxx.
531 std::vector<FPGATrackSimMultiTruth> mtv;
541 if (
layer <
t.getFPGATrackSimHits().size())
542 mtv.push_back(
t.getFPGATrackSimHits().at(
layer).getTruth());
546 mtv.back().assign_equal_normalization();
556 const bool ok = mt.best(tbarcode, tfrac);
558 t.setEventIndex(tbarcode.first);
559 t.setBarcode(tbarcode.second);
560 t.setBarcodeFrac(tfrac);
◆ getInputNodesDims()
const std::vector<int64_t>& OnnxRuntimeBase::getInputNodesDims |
( |
| ) |
|
|
inlineinherited |
◆ getOutputNodesDims()
const std::vector<int64_t>& OnnxRuntimeBase::getOutputNodesDims |
( |
| ) |
|
|
inlineinherited |
◆ getTracks_1st()
Definition at line 100 of file FPGATrackSimNNTrackTool.cxx.
106 for (
auto const &iroad : roads) {
108 double y = iroad->getY();
138 std::vector<std::vector<int>> combs;
139 std::vector<std::shared_ptr<const FPGATrackSimHit>> all_hits;
142 std::vector<std::shared_ptr<const FPGATrackSimHit>> all_pixel_hits;
143 std::vector<std::shared_ptr<const FPGATrackSimHit>> all_strip_hits;
144 size_t pixelCount = 0;
147 if (iroad->getNHits() > 40)
continue;
150 all_hits.insert(all_hits.end(), iroad->getHits(
layer).begin(), iroad->getHits(
layer).end());
153 for (
const auto& hit : all_hits) {
159 if (pixelCount < 1)
continue;
168 for (
size_t icomb = 0; icomb < combs.size(); icomb++) {
169 std::vector<std::shared_ptr<const FPGATrackSimHit>> hit_list;
172 for (
const auto &hit : all_hits) {
174 hit_list.push_back(hit);
182 std::vector<int>
const &hit_indices = combs[icomb];
188 if (hit_indices[
layer] >= 0) {
190 std::shared_ptr<const FPGATrackSimHit> hit = iroad->getHits(
layer)[hit_indices[
layer]];
193 hit_list.push_back(hit);
203 std::sort(hit_list.begin(), hit_list.end(),
204 [](std::shared_ptr<const FPGATrackSimHit> &hit1, std::shared_ptr<const FPGATrackSimHit> &hit2) {
205 double rho1 = std::hypot(hit1->getX(), hit1->getY());
206 double rho2 = std::hypot(hit2->getX(), hit2->getY());
210 std::vector<float> inputTensorValues;
215 double rotateAngle = 0;
216 bool gotSecondSP =
false;
220 int missingHits = 10;
223 for (
const auto &hit : hit_list) {
225 if (missingHits <= 0)
break;
226 if(hit->
isPixel()) missingHits-= 2;
227 else if(hit->
isStrip()) missingHits-= 1;
246 if (flipZ)
zf =
z0 * -1;
259 float xf_scaled = (xf + tmp_xf) / (2.*
getXScale());
260 float yf_scaled = (yf + tmp_yf) / (2.*
getYScale());
261 float zf_scaled = (
zf + tmp_zf) / (2.*
getZScale());
264 inputTensorValues.push_back(xf_scaled);
265 inputTensorValues.push_back(yf_scaled);
266 inputTensorValues.push_back(zf_scaled);
275 inputTensorValues.push_back(xf_scaled);
276 inputTensorValues.push_back(yf_scaled);
277 inputTensorValues.push_back(zf_scaled);
294 float nn_val = NNoutput[0];
301 for (
const auto &ihit : hit_list) {
302 unsigned int layer = ihit->getLayer();
307 for (
unsigned ihit = 0; ihit < hit_list.size(); ihit++) {
319 tracks.push_back(track_cand);
323 for (
auto&
track : tracks) {
337 return StatusCode::SUCCESS;
◆ getTracks_2nd()
Definition at line 340 of file FPGATrackSimNNTrackTool.cxx.
346 for (
auto const &iroad : roads) {
348 double y = iroad->getY();
378 std::vector<std::vector<int>> combs =
382 for (
size_t icomb = 0; icomb < combs.size(); icomb++) {
385 std::vector<int>
const &hit_indices = combs[icomb];
386 std::vector<std::shared_ptr<const FPGATrackSimHit>> hit_list;
392 if (hit_indices[
layer] >= 0) {
394 std::shared_ptr<const FPGATrackSimHit> hit = iroad->getHits(
layer)[hit_indices[
layer]];
397 hit_list.push_back(hit);
406 std::sort(hit_list.begin(), hit_list.end(),
407 [](std::shared_ptr<const FPGATrackSimHit> &hit1, std::shared_ptr<const FPGATrackSimHit> &hit2) {
408 double rho1 = std::hypot(hit1->getX(), hit1->getY());
409 double rho2 = std::hypot(hit2->getX(), hit2->getY());
413 std::vector<float> inputTensorValues;
418 double rotateAngle = 0;
419 bool gotSecondSP =
false;
425 for (
const auto &hit : hit_list) {
443 if (flipZ)
zf =
z0 * -1;
456 float xf_scaled = (xf + tmp_xf) / (2.*
getXScale());
457 float yf_scaled = (yf + tmp_yf) / (2.*
getYScale());
458 float zf_scaled = (
zf + tmp_zf) / (2.*
getZScale());
461 inputTensorValues.push_back(xf_scaled);
462 inputTensorValues.push_back(yf_scaled);
463 inputTensorValues.push_back(zf_scaled);
472 inputTensorValues.push_back(xf_scaled);
473 inputTensorValues.push_back(yf_scaled);
474 inputTensorValues.push_back(zf_scaled);
489 float nn_val = NNoutput[0];
495 for (
unsigned ihit = 0; ihit < hit_list.size(); ihit++) {
507 tracks.push_back(track_cand);
511 for (
auto&
track : tracks) {
525 return StatusCode::SUCCESS;
◆ getXScale()
static float FPGATrackSimNNTrackTool::getXScale |
( |
| ) |
|
|
inlinestatic |
◆ getYScale()
static float FPGATrackSimNNTrackTool::getYScale |
( |
| ) |
|
|
inlinestatic |
◆ getZScale()
static float FPGATrackSimNNTrackTool::getZScale |
( |
| ) |
|
|
inlinestatic |
◆ initialize() [1/2]
StatusCode FPGATrackSimNNTrackTool::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 25 of file FPGATrackSimNNTrackTool.cxx.
34 ATH_MSG_ERROR(
"Path to 1st stage NN-based fake track removal ONNX file is empty! If you want to run this pipeline, you need to provide an input file.");
35 return StatusCode::FAILURE;
42 ATH_MSG_INFO(
"Path 1st stage to NN-based track parameter estimation ONNX file is empty! Estimation is not run...");
50 ATH_MSG_ERROR(
"Path to 2nd stage NN-based fake track 1st stage removal ONNX file is empty! If you want to run this pipeline, you need to provide an input file.");
51 return StatusCode::FAILURE;
58 ATH_MSG_INFO(
"Path to 2nd stage NN-based track parameter estimation 2nd ONNX file is empty! Estimation is not run...");
62 return StatusCode::SUCCESS;
◆ initialize() [2/2]
void OnnxRuntimeBase::initialize |
( |
TString |
fileName | ) |
|
|
inherited |
Definition at line 16 of file OnnxRuntimeBase.cxx.
20 m_env = std::make_unique< Ort::Env >(ORT_LOGGING_LEVEL_WARNING,
"");
23 Ort::SessionOptions session_options;
25 session_options.SetIntraOpNumThreads(1);
26 session_options.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_ENABLE_EXTENDED);
30 Ort::AllocatorWithDefaultOptions allocator;
32 size_t numInputNodes =
m_session->GetInputCount();
34 for (
size_t i = 0;
i < numInputNodes;
i++)
37 char* input_name =
new char[strlen(
name.get()) + 1];
38 strcpy(input_name,
name.get());
43 Ort::TypeInfo inputTypeInfo =
m_session->GetInputTypeInfo(
i);
44 auto tensorInfo = inputTypeInfo.GetTensorTypeAndShapeInfo();
49 size_t numOutputNodes =
m_session->GetOutputCount();
51 for (
size_t i = 0;
i < numOutputNodes;
i++)
54 char* output_name =
new char[strlen(
name.get()) + 1];
55 strcpy(output_name,
name.get());
59 Ort::TypeInfo outputTypeInfo =
m_session->GetOutputTypeInfo(
i);
60 auto tensorInfo = outputTypeInfo.GetTensorTypeAndShapeInfo();
◆ matchIdealGeoSector()
Definition at line 36 of file FPGATrackSimTrackingToolBase.cxx.
46 double qoverpt =
r.getY()*0.001;
48 qoverpt = std::abs(qoverpt);
52 const std::vector<double> &qoverpt_bins = sectorbank->
getQOverPtBins();
53 auto bounds = std::equal_range(qoverpt_bins.begin(), qoverpt_bins.end(), qoverpt);
57 sectorbin = std::clamp(sectorbin, 0, 10 *
static_cast<int>(qoverpt_bins.size() - 2));
61 int subregion =
r.getSubRegion();
65 std::vector<module_t> modules(
r.getNLayers(), -1);
67 for (
unsigned int il = 0;
il <
r.getNLayers();
il++) {
68 if (
r.getNHits_layer()[
il] == 0) {
71 wc_layers |= (0x1 <<
il);
73 std::unique_ptr<FPGATrackSimHit> wcHit = std::make_unique<FPGATrackSimHit>();
83 r.setHits(
il,{std::move(wcHit)});
86 modules[
il]= sectorbin;
89 r.setWCLayers(wc_layers);
100 r.setSectorBin(sectorbin);
◆ OnnxRuntimeBase() [1/2]
OnnxRuntimeBase::OnnxRuntimeBase |
|
private |
◆ OnnxRuntimeBase() [2/2]
OnnxRuntimeBase::OnnxRuntimeBase |
|
private |
◆ runONNXInference() [1/2]
std::vector< std::vector< float > > OnnxRuntimeBase::runONNXInference |
( |
NetworkBatchInput & |
inputTensorValues | ) |
const |
|
inherited |
Definition at line 78 of file OnnxRuntimeBase.cxx.
80 int batchSize = inputTensorValues.rows();
86 if (inputNodeDims[0] == -1)
88 inputNodeDims[0] = batchSize;
90 if (outputNodeDims[0] == -1)
92 outputNodeDims[0] = batchSize;
95 if(inputNodeDims[1]*inputNodeDims[2] != inputTensorValues.cols() && inputNodeDims[1] != inputTensorValues.cols())
97 throw std::runtime_error(
"runONNXInference: feature size doesn't match the input size: inputSize required: " +
std::to_string(inputNodeDims[1]*inputNodeDims[2]) +
" inputSize provided: " +
std::to_string(inputTensorValues.cols()));
100 if (batchSize != 1 && (inputNodeDims[0] != batchSize || outputNodeDims[0] != batchSize))
102 throw std::runtime_error(
"runONNXInference: batch size doesn't match the input or output node size");
107 Ort::MemoryInfo memoryInfo = Ort::MemoryInfo::CreateCpu(OrtArenaAllocator, OrtMemTypeDefault);
108 Ort::Value inputTensor = Ort::Value::CreateTensor<float>(memoryInfo, inputTensorValues.data(), inputTensorValues.size(),inputNodeDims.data(), inputNodeDims.size());
110 if (!inputTensor.IsTensor())
112 throw std::runtime_error(
"runONNXInference: conversion of input to Tensor failed. ");
115 Ort::RunOptions run_options;
116 std::vector<Ort::Value> outputTensors =
122 if (!outputTensors[0].IsTensor() || (outputTensors.size() !=
m_outputNodeNames.size())) {
123 throw std::runtime_error(
"runONNXInference: calculation of output failed. ");
127 float* outputTensor = outputTensors.front().GetTensorMutableData<
float>();
129 std::vector<std::vector<float>> outputTensorValues(batchSize, std::vector<float>(outputNodeDims[1], -1));
130 for (
int i = 0;
i < outputNodeDims[0];
i++)
132 for (
int j = 0; j < ((outputNodeDims.size() > 1) ? outputNodeDims[1] : 1); j++)
134 outputTensorValues[
i][j] = outputTensor[
i * outputNodeDims[1] + j];
138 return outputTensorValues;
◆ runONNXInference() [2/2]
std::vector< float > OnnxRuntimeBase::runONNXInference |
( |
std::vector< float > & |
inputTensorValues | ) |
const |
|
inherited |
Definition at line 66 of file OnnxRuntimeBase.cxx.
69 for (
size_t i = 0;
i < inputTensorValues.size();
i++) {
70 vectorInput(0,
i) = inputTensorValues[
i];
73 return vectorOutput[0];
◆ runONNXInferenceMultilayerOutput()
std::map< int, Eigen::MatrixXf > OnnxRuntimeBase::runONNXInferenceMultilayerOutput |
( |
NetworkBatchInput & |
inputTensorValues | ) |
const |
|
inherited |
Definition at line 144 of file OnnxRuntimeBase.cxx.
146 const int batchSize = inputTensorValues.rows();
152 if (inputNodeDims[0] == -1)
154 inputNodeDims[0] = batchSize;
156 if (outputNodeDims[0] == -1)
158 outputNodeDims[0] = batchSize;
161 if(inputNodeDims[1] != inputTensorValues.cols())
163 throw std::runtime_error(
"runONNXInference: feature size doesn't match the input size: inputSize required: " +
std::to_string(inputNodeDims[1]) +
" inputSize provided: " +
std::to_string(inputTensorValues.cols()));
166 if (batchSize != 1 &&(inputNodeDims[0] != batchSize || outputNodeDims[0] != batchSize))
168 throw std::runtime_error(
"runONNXInference: batch size doesn't match the input or output node size");
172 Ort::MemoryInfo memoryInfo = Ort::MemoryInfo::CreateCpu(OrtArenaAllocator, OrtMemTypeDefault);
173 Ort::Value inputTensor = Ort::Value::CreateTensor<float>(memoryInfo, inputTensorValues.data(), inputTensorValues.size(), inputNodeDims.data(), inputNodeDims.size());
175 if (!inputTensor.IsTensor())
177 throw std::runtime_error(
"runONNXInference: conversion of input to Tensor failed. ");
180 Ort::RunOptions run_options;
181 std::vector<Ort::Value> outputTensors =
187 if (!outputTensors[0].IsTensor() || (outputTensors.size() !=
m_outputNodeNames.size())) {
188 throw std::runtime_error(
"runONNXInference: calculation of output failed. ");
192 std::map<int, Eigen::MatrixXf> outputTensorMap;
193 size_t numOutputNodes =
m_session->GetOutputCount();
194 for (
size_t i=0;
i<numOutputNodes;
i++){
197 float*
output = outputTensors.at(
i).GetTensorMutableData<
float>();
198 Ort::TypeInfo outputTypeInfo =
m_session->GetOutputTypeInfo(
i);
199 auto outputTensorInfo = outputTypeInfo.GetTensorTypeAndShapeInfo();
202 outputNodeDims = outputTensorInfo.GetShape();
204 int nNodes = outputNodeDims.size() > 1 ? outputNodeDims[1] : 1;
205 Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic> batchMatrix(batchSize, nNodes);
206 for (
int j = 0; j < batchSize; j++)
208 Eigen::VectorXf
vec(nNodes);
209 for (
int k = 0;
k<nNodes;
k++)
211 float val =
output[j * outputNodeDims[1] +
k];
214 batchMatrix.row(j) =
vec;
216 outputTensorMap[
i] = std::move(batchMatrix);
218 return outputTensorMap;
◆ setRoadSectors()
StatusCode FPGATrackSimTrackingToolBase::setRoadSectors |
( |
std::vector< std::shared_ptr< const FPGATrackSimRoad >> & |
roads | ) |
|
|
inherited |
Definition at line 11 of file FPGATrackSimTrackingToolBase.cxx.
13 for (
auto& road: roads)
15 std::shared_ptr<FPGATrackSimRoad> nonConstRoad = std::const_pointer_cast<FPGATrackSimRoad>(road);
27 std::vector<std::shared_ptr<const FPGATrackSimRoad>> postfilter_roads;
29 roads = std::move(postfilter_roads);
31 return StatusCode::SUCCESS;
◆ setTrackParameters_1st()
void FPGATrackSimNNTrackTool::setTrackParameters_1st |
( |
FPGATrackSimTrack & |
track, |
|
|
std::vector< float > |
inputTensorValues |
|
) |
| |
|
private |
Definition at line 65 of file FPGATrackSimNNTrackTool.cxx.
67 ATH_MSG_DEBUG(
"Running NN-based track parameter estimation!");
71 for (
unsigned int i = 0;
i < paramNNoutput.size();
i++) {
75 track.setQOverPt(paramNNoutput[0]);
76 track.setEta(paramNNoutput[1]);
77 track.setPhi(paramNNoutput[2]);
78 track.setD0(paramNNoutput[3]);
79 track.setZ0(paramNNoutput[4]);
◆ setTrackParameters_2nd()
void FPGATrackSimNNTrackTool::setTrackParameters_2nd |
( |
FPGATrackSimTrack & |
track, |
|
|
std::vector< float > |
inputTensorValues |
|
) |
| |
|
private |
Definition at line 82 of file FPGATrackSimNNTrackTool.cxx.
84 ATH_MSG_DEBUG(
"Running NN-based track parameter estimation!");
88 for (
unsigned int i = 0;
i < paramNNoutput.size();
i++) {
92 track.setQOverPt(paramNNoutput[0]);
93 track.setEta(paramNNoutput[1]);
94 track.setPhi(paramNNoutput[2]);
95 track.setD0(paramNNoutput[3]);
96 track.setZ0(paramNNoutput[4]);
◆ m_barcode
std::vector<int> FPGATrackSimNNTrackTool::m_barcode |
|
private |
◆ m_barcodefrac
std::vector<float> FPGATrackSimNNTrackTool::m_barcodefrac |
|
private |
◆ m_chi2_scalefactor
Gaudi::Property<double> FPGATrackSimNNTrackTool::m_chi2_scalefactor { this, "Chi2ScaleFactor", 40 / (1 - 0.1), "Scale factor to use in converting to a chi2, Nominal chi2ndof cut is 40 and we want to use NN>0.0075 (or NN<(1-0.0075)" } |
◆ m_do2ndStage
Gaudi::Property<bool> FPGATrackSimTrackingToolBase::m_do2ndStage {this, "Do2ndStageTrackFit", false, "Do 2nd stage track fit"} |
|
protectedinherited |
◆ m_doEtaPatternConsts
Gaudi::Property<bool> FPGATrackSimTrackingToolBase::m_doEtaPatternConsts { this, "doEtaPatternConsts", false, "Whether to use the eta pattern tool for constant generation" } |
|
protectedinherited |
◆ m_doGNNTracking
Gaudi::Property<bool> FPGATrackSimNNTrackTool::m_doGNNTracking { this, "doGNNTracking", false, "Flag to turn on GNN Tracking configuration for road-to-track" } |
◆ m_doRegionalMapping
Gaudi::Property<bool> FPGATrackSimTrackingToolBase::m_doRegionalMapping { this, "RegionalMapping", false, "Use the sub-region maps to define the sector" } |
|
protectedinherited |
◆ m_env
std::unique_ptr< Ort::Env > OnnxRuntimeBase::m_env |
|
privateinherited |
◆ m_etamodule
std::vector<unsigned int> FPGATrackSimNNTrackTool::m_etamodule |
|
private |
◆ m_etawidth
std::vector<unsigned int> FPGATrackSimNNTrackTool::m_etawidth |
|
private |
◆ m_eventindex
std::vector<int> FPGATrackSimNNTrackTool::m_eventindex |
|
private |
◆ m_fakeNN_1st
◆ m_fakeNN_2nd
◆ m_fileName
TString OnnxRuntimeBase::m_fileName |
|
inherited |
◆ m_FPGATrackSimBank
◆ m_FPGATrackSimMapping
◆ m_ID
std::vector<unsigned int> FPGATrackSimNNTrackTool::m_ID |
|
private |
◆ m_idealGeoRoads
Gaudi::Property<bool> FPGATrackSimTrackingToolBase::m_idealGeoRoads { this, "IdealGeoRoads", true, "Set sectors to use ideal geometry fit constants" } |
|
protectedinherited |
◆ m_input_node_dims
std::vector<int64_t> FPGATrackSimNNTrackTool::m_input_node_dims |
|
private |
◆ m_input_node_names
std::vector<const char*> FPGATrackSimNNTrackTool::m_input_node_names |
|
private |
◆ m_inputNodeDims
std::vector<int64_t> OnnxRuntimeBase::m_inputNodeDims |
|
privateinherited |
◆ m_inputNodeNames
std::vector<const char*> OnnxRuntimeBase::m_inputNodeNames |
|
privateinherited |
◆ m_isBarrel
std::vector<unsigned int> FPGATrackSimNNTrackTool::m_isBarrel |
|
private |
◆ m_isPixel
std::vector<unsigned int> FPGATrackSimNNTrackTool::m_isPixel |
|
private |
◆ m_isSecondStage
Gaudi::Property<bool> FPGATrackSimTrackingToolBase::m_isSecondStage { this, "isSecondStage", true, "Is this the second stage?" } |
|
protectedinherited |
◆ m_layer
std::vector<unsigned int> FPGATrackSimNNTrackTool::m_layer |
|
private |
◆ m_minNumberOfRealHitsInATrack
Gaudi::Property<unsigned int> FPGATrackSimNNTrackTool::m_minNumberOfRealHitsInATrack { this, "MinNumberOfRealHitsInATrack", 4, "Minimum number of real hits in a track candidate to process" } |
◆ m_output_node_names
std::vector<const char*> FPGATrackSimNNTrackTool::m_output_node_names |
|
private |
◆ m_outputNodeDims
std::vector<int64_t> OnnxRuntimeBase::m_outputNodeDims |
|
privateinherited |
◆ m_outputNodeNames
std::vector<const char*> OnnxRuntimeBase::m_outputNodeNames |
|
privateinherited |
◆ m_paramNN_1st
◆ m_paramNN_2nd
◆ m_phimodule
std::vector<unsigned int> FPGATrackSimNNTrackTool::m_phimodule |
|
private |
◆ m_phiwidth
std::vector<unsigned int> FPGATrackSimNNTrackTool::m_phiwidth |
|
private |
◆ m_session
std::unique_ptr<Ort::Session> OnnxRuntimeBase::m_session |
|
privateinherited |
◆ m_spRoadFilterTool
◆ m_tHistSvc
ServiceHandle<ITHistSvc> FPGATrackSimNNTrackTool::m_tHistSvc {this, "THistSvc","THistSvc"} |
|
private |
◆ m_truth_barcode
std::vector<int> FPGATrackSimNNTrackTool::m_truth_barcode |
|
private |
◆ m_truth_d0
std::vector<float> FPGATrackSimNNTrackTool::m_truth_d0 |
|
private |
◆ m_truth_eta
std::vector<float> FPGATrackSimNNTrackTool::m_truth_eta |
|
private |
◆ m_truth_eventindex
std::vector<int> FPGATrackSimNNTrackTool::m_truth_eventindex |
|
private |
◆ m_truth_pdg
std::vector<float> FPGATrackSimNNTrackTool::m_truth_pdg |
|
private |
◆ m_truth_phi
std::vector<float> FPGATrackSimNNTrackTool::m_truth_phi |
|
private |
◆ m_truth_pt
std::vector<float> FPGATrackSimNNTrackTool::m_truth_pt |
|
private |
◆ m_truth_q
std::vector<int> FPGATrackSimNNTrackTool::m_truth_q |
|
private |
◆ m_truth_z0
std::vector<float> FPGATrackSimNNTrackTool::m_truth_z0 |
|
private |
◆ m_useParamNN_1st
bool FPGATrackSimNNTrackTool::m_useParamNN_1st = true |
|
private |
◆ m_useParamNN_2nd
bool FPGATrackSimNNTrackTool::m_useParamNN_2nd = true |
|
private |
◆ m_useSectors
Gaudi::Property<bool> FPGATrackSimTrackingToolBase::m_useSectors { this, "useSectors", false, "Will reverse calculate the sector for track-fitting purposes" } |
|
protectedinherited |
◆ m_useSpacePoints
Gaudi::Property<bool> FPGATrackSimTrackingToolBase::m_useSpacePoints { this, "useSpacePoints", false, "Whether we are using spacepoints." } |
|
protectedinherited |
◆ m_x
std::vector<float> FPGATrackSimNNTrackTool::m_x |
|
private |
◆ m_y
std::vector<float> FPGATrackSimNNTrackTool::m_y |
|
private |
◆ m_z
std::vector<float> FPGATrackSimNNTrackTool::m_z |
|
private |
The documentation for this class was generated from the following files:
void setHitMap(unsigned int v)
constexpr int SUBREGION_SECTOR_OFFSET
std::vector< float > runONNXInference(std::vector< float > &inputTensorValues) const
uint32_t getNLogiLayers() const
std::unique_ptr< Ort::Env > m_env
void setHoughXBin(unsigned v)
void setFirstSectorID(int v)
std::vector< int64_t > m_outputNodeDims
void setFPGATrackSimHit(unsigned i, const FPGATrackSimHit &hit)
void setOrigChi2(float v)
const std::vector< double > & getQOverPtBins() const
std::vector< int64_t > m_inputNodeDims
uint32_t getCoordOffset(size_t logiLayer) const
std::unique_ptr< Ort::Session > m_session
ONNX runtime session / model properties.
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
void setDetType(SiliconTech detType)
void setHoughYBin(unsigned v)
std::vector< const char * > m_inputNodeNames
sector_t findSector(std::vector< module_t > const &modules) const
std::pair< unsigned long, unsigned long > Barcode
double chi2(TH1 *h0, TH1 *h1)
std::vector< std::vector< int > > getComboIndices(std::vector< size_t > const &sizes)
Given a vector of sizes (of arrays), generates a vector of all combinations of indices to index one e...
void setTrackStage(TrackStage v)
constexpr int QPT_SECTOR_OFFSET
std::string to_string(const DetectorType &type)
std::vector< const char * > m_outputNodeNames
accumulate
Update flags based on parser line args.
void setLayer(unsigned v)
void setSector(sector_t sector)
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
bool isAbsQOverPtBinning() const
void setSubRegion(unsigned v)
void setNLayers(int)
set the number of layers in the track.
const std::vector< std::vector< std::shared_ptr< const FPGATrackSimHit > > > & getAllHits() const
Eigen::Matrix< float, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > NetworkBatchInput
void setHitType(HitType type)