Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
12 #ifndef EFTRACKING_FPGA_INTEGRATION_BENCHMARKALG_H
13 #define EFTRACKING_FPGA_INTEGRATION_BENCHMARKALG_H
24 #include "GaudiKernel/ServiceHandle.h"
25 #include "GaudiKernel/IChronoSvc.h"
38 using IntegrationBase::IntegrationBase;
42 StatusCode runPassThrough(std::vector<uint64_t> &pixelChainOutput, std::vector<uint64_t> &stripChainOutput,
const EventContext &ctx)
const;
43 StatusCode runDataPrep(std::vector<uint64_t> &pixelChainOutput, std::vector<uint64_t> &stripChainOutput,
const EventContext &ctx)
const;
47 "ChronoStatSvc",
name()};
53 "Tool for creating xAOD cluster containers"};
56 this,
"TestVectorTool",
"TestVectorTool",
"Tool for preparing test vectors"};
59 this,
"FPGADataFormatTool",
"FPGADataFormatTool",
"Tool for formatting FPGA data"};
62 this,
"InputPixelClusterKey",
"ITkPixelClusters",
"Key to access input pixel clusters"};
65 this,
"InputStripClusterKey",
"ITkStripClusters",
"Key to access input strip clusters"};
72 this,
"xclbin",
"",
"xclbin path and name"};
75 this,
"EDMPrepKernelName",
"",
"Name of the FPGA kernel"};
78 this,
"PixelClusterKernelName",
"",
"Name of the pixel clustering kernel"};
81 this,
"StripClusterKernelName",
"",
"Name of the strip clustering kernel"};
84 this,
"PixelL2GKernelName",
"",
"Name of the pixel L2G kernel"};
87 this,
"StripL2GKernelName",
"",
"Name of the strip L2G kernel"};
90 this,
"runPassThrough",
true,
"Run the pass-through kernel"};
106 #endif // EFTRACKING_FPGA_INTEGRATION_BENCHMARKALG_H
Gaudi::Property< std::string > m_edmKernelName
Name of the FPGA kernel.
The base class for the EFTracking FPGA integration development.
std::atomic< cl_ulong > m_stripClusteringTime
Time for strip clustering.
ServiceHandle< IChronoSvc > m_chronoSvc
Service for timing the algorithm.
Gaudi::Property< std::string > m_pixelL2GKernelName
Name of the pixel L2G kernel.
std::atomic< cl_ulong > m_pixelL2GTime
Time for pixel L2G.
virtual StatusCode initialize() override final
Detect the OpenCL devices and prepare OpenCL context.
SG::ReadHandleKey< xAOD::PixelClusterContainer > m_inputPixelClusterKey
Key to access input pixel clusters.
virtual StatusCode finalize() override final
SG::ReadHandleKey< PixelRDO_Container > m_pixelRDOKey
virtual StatusCode execute(const EventContext &ctx) const override final
Should be overriden by derived classes to perform meaningful work.
std::atomic< cl_ulong > m_stripOutputTime
Time for strip output buffer read.
SG::ReadHandleKey< SCT_RDO_Container > m_stripRDOKey
This is the class for the benchmark algorithm specific to the FPGA integration and output conversion.
::StatusCode StatusCode
StatusCode definition for legacy code.
std::atomic< cl_ulong > m_pixelInputTime
Time for pixel input buffer write.
Gaudi::Property< std::string > m_stripL2GKernelName
Name of the strip L2G kernelS.
ToolHandle< FPGADataFormatTool > m_FPGADataFormatTool
Tool for formatting FPGA data.
Gaudi::Property< std::string > m_xclbin
Path and name of the xclbin file.
ToolHandle< TestVectorTool > m_testVectorTool
Tool for preparing test vectors.
Gaudi::Property< std::string > m_stripClusterKernelName
Name of the strip clustering kernel.
ToolHandle< xAODClusterMaker > m_xaodClusterMaker
Tool for creating xAOD containers.
std::atomic< ulonglong > m_numEvents
Number of events processed.
std::atomic< cl_ulong > m_kernelTime
Time for kernel execution.
SG::ReadHandleKey< xAOD::StripClusterContainer > m_inputStripClusterKey
Key to access input strip clusters.
std::atomic< cl_ulong > m_stripInputTime
Time for strip input buffer write.
Gaudi::Property< std::string > m_pixelClusterKernelName
Name of the pixel clustering kernel.
StatusCode runPassThrough(std::vector< uint64_t > &pixelChainOutput, std::vector< uint64_t > &stripChainOutput, const EventContext &ctx) const
std::atomic< cl_ulong > m_pixelClusteringTime
Time for pixel clustering.
std::atomic< cl_ulong > m_pixelOutputTime
Time for pixel output buffer read.
std::atomic< cl_ulong > m_stripL2GTime
Time for strip L2G.
std::atomic< cl_ulong > m_edmPrepTime
Time for EDM preparation.
Gaudi::Property< bool > m_runPassThrough
Run the pass-through kernel.
StatusCode runDataPrep(std::vector< uint64_t > &pixelChainOutput, std::vector< uint64_t > &stripChainOutput, const EventContext &ctx) const