5#ifndef ATHEXCUDA_TRACKPARTICLECALIBRATOREXAMPLEALG_H
6#define ATHEXCUDA_TRACKPARTICLECALIBRATOREXAMPLEALG_H
13#include "GaudiKernel/ToolHandle.h"
38 using AthReentrantAlgorithm::AthReentrantAlgorithm;
47 virtual StatusCode
execute(
const EventContext& ctx)
const override;
57 this,
"InputContainer",
"InDetTrackParticles",
58 "The input track particle container"};
61 this,
"OutputContainer",
"CalibratedInDetTrackParticles",
62 "The output track particle container"};
65 ToolHandle<AthDevice::IMemoryResourceTool>
m_hostMR{
66 this,
"HostMR",
"",
"The host memory resource tool to use"};
69 this,
"DeviceMR",
"",
"The device memory resource tool to use"};
77 TrackParticleContainer::view& output);
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Example algorithm performing "track particle calibration".
ToolHandle< AthDevice::IMemoryResourceTool > m_deviceMR
Device memory resource tool to use.
virtual StatusCode execute(const EventContext &ctx) const override
Function executing the algorithm.
ToolHandle< AthDevice::IMemoryResourceTool > m_hostMR
Host memory resource tool to use.
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_inputKey
The input container.
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_outputKey
The output container.
virtual StatusCode initialize() override
Function initialising the algorithm.
An algorithm that can be simultaneously executed in multiple threads.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
StatusCode calibrateOnGPU(const TrackParticleContainer::const_view &input, TrackParticleContainer::view &output)
Perform the transformation on an NVIDIA GPU.