5#ifndef EFTRACKING_XRT_ALGORITHM
6#define EFTRACKING_XRT_ALGORITHM
13#include "Gaudi/Property.h"
14#include "Gaudi/Parsers/Factory.h"
16#include "GaudiKernel/ServiceHandle.h"
17#include "GaudiKernel/IChronoSvc.h"
21#include "xrt/xrt_bo.h"
22#include "xrt/xrt_device.h"
23#include "xrt/xrt_kernel.h"
47 "AthXRT::DeviceMgmtSvc",
48 "The XRT device manager service to use"
79 Gaudi::Property<std::vector<std::tuple<std::string, int, std::string, int>>>
m_sharedInterfaces {
97 "Capacity of xrt buffers in terms of 64bit words."
100 std::map<std::string, std::unique_ptr<xrt::kernel>>
m_kernels{};
101 std::map<std::string, std::unique_ptr<xrt::run>>
m_runs{};
An algorithm that can be simultaneously executed in multiple threads.
Gaudi::Property< std::vector< std::tuple< std::string, std::string, int > > > m_vSizeInterfaces
SG::ReadHandleKeyArray< std::vector< unsigned long > > m_vSizeDataStreamKeys
Gaudi::Property< std::vector< std::tuple< std::string, std::string, int > > > m_inputInterfaces
std::map< std::string, std::unique_ptr< xrt::kernel > > m_kernels
std::vector< xrt::bo > m_inputBuffers ATLAS_THREAD_SAFE
std::map< std::string, std::unique_ptr< xrt::run > > m_runs
StatusCode execute(const EventContext &ctx) const override final
Gaudi::Property< std::vector< std::vector< std::string > > > m_kernelOrder
SG::ReadHandleKeyArray< std::vector< unsigned long > > m_inputDataStreamKeys
Keys to access encoded 64bit words following the EFTracking specification.
Gaudi::Property< std::vector< std::tuple< std::string, int, std::string, int > > > m_sharedInterfaces
Gaudi::Property< std::vector< std::tuple< std::string, std::string, int > > > m_outputInterfaces
ServiceHandle< AthXRT::IDeviceMgmtSvc > m_DeviceMgmtSvc
SG::WriteHandleKeyArray< std::vector< unsigned long > > m_outputDataStreamKeys
Gaudi::Property< std::size_t > m_bufferSize
StatusCode initialize() override final
EFTrackingXrtAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
ServiceHandle< IChronoSvc > m_chronoSvc
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
HandleKeyArray< WriteHandle< T >, WriteHandleKey< T >, Gaudi::DataHandle::Writer > WriteHandleKeyArray