15#ifndef GPUO2INTERFACE_H
16#define GPUO2INTERFACE_H
28template <
typename value_T>
34struct ClusterNativeAccess;
50class GPUReconstruction;
51class GPUChainTracking;
53struct GPUO2InterfaceConfiguration;
54struct GPUInterfaceOutputs;
55struct GPUInterfaceInputUpdate;
56struct GPUTrackingOutputs;
58struct GPUNewCalibValues;
60struct GPUO2Interface_processingContext;
61struct GPUO2Interface_Internals;
73 void Clear(
bool clearOutputs, uint32_t iThread = 0);
75 void DumpSettings(uint32_t iThread,
const char* dir =
"");
94 bool mContinuous =
false;
96 uint32_t mNContexts = 0;
97 std::unique_ptr<GPUO2Interface_processingContext[]> mCtx;
99 std::unique_ptr<GPUO2InterfaceConfiguration> mConfig;
101 std::unique_ptr<GPUO2Interface_Internals> mInternals;
int32_t unregisterMemoryForGPU(const void *ptr)
const o2::base::Propagator * GetDeviceO2Propagator(int32_t iThread=0) const
int32_t Initialize(const GPUO2InterfaceConfiguration &config)
void GetITSTraits(o2::its::TrackerTraits< 7 > *&trackerTraits, o2::its::VertexerTraits< 7 > *&vertexerTraits, o2::its::TimeFrame< 7 > *&timeFrame)
void DumpSettings(uint32_t iThread, const char *dir="")
void setErrorCodeOutput(std::vector< std::array< uint32_t, 4 > > *v)
void UseGPUPolynomialFieldInPropagator(o2::base::Propagator *prop) const
const GPUO2InterfaceConfiguration & getConfig() const
void DumpEvent(int32_t nEvent, GPUTrackingInOutPointers *data, uint32_t iThread, const char *dir="")
int32_t RunTracking(GPUTrackingInOutPointers *data, GPUInterfaceOutputs *outputs=nullptr, uint32_t iThread=0, GPUInterfaceInputUpdate *inputUpdateCallback=nullptr)
int32_t registerMemoryForGPU(const void *ptr, size_t size)
void Clear(bool clearOutputs, uint32_t iThread=0)
int32_t UpdateCalibration(const GPUCalibObjectsConst &newCalib, const GPUNewCalibValues &newVals, uint32_t iThread=0)
Global TPC definitions and constants.