|
18 | 18 | #include "GPUChain.h" |
19 | 19 | #include "GPUDataTypesIO.h" |
20 | 20 | #include "GPUDataTypesConfig.h" |
21 | | -#include <atomic> |
22 | 21 | #include <mutex> |
23 | 22 | #include <functional> |
24 | 23 | #include <array> |
@@ -70,6 +69,7 @@ struct CfFragment; |
70 | 69 | class GPUTPCClusterFinder; |
71 | 70 | struct GPUSettingsProcessing; |
72 | 71 | struct GPUSettingsRec; |
| 72 | +struct GPUTPCExtraADC; |
73 | 73 |
|
74 | 74 | class GPUChainTracking : public GPUChain |
75 | 75 | { |
@@ -302,13 +302,15 @@ class GPUChainTracking : public GPUChain |
302 | 302 | int32_t RunChainFinalize(); |
303 | 303 | void OutputSanityCheck(); |
304 | 304 | int32_t RunTPCTrackingSectors_internal(); |
305 | | - int32_t RunTPCClusterizer_prepare(bool restorePointers); |
| 305 | + int32_t RunTPCClusterizer_prepare(bool restorePointers, const GPUTPCExtraADC& extraADCs); |
306 | 306 | #ifdef GPUCA_TPC_GEOMETRY_O2 |
307 | | - std::pair<uint32_t, uint32_t> RunTPCClusterizer_transferZS(int32_t iSector, const CfFragment& fragment, int32_t lane); |
| 307 | + std::pair<uint32_t, uint32_t> RunTPCClusterizer_transferZS(int32_t iSector, const CfFragment& fragment, int32_t lane, const GPUTPCExtraADC& extraADCs); |
308 | 308 | void RunTPCClusterizer_compactPeaks(GPUTPCClusterFinder& clusterer, GPUTPCClusterFinder& clustererShadow, int32_t stage, bool doGPU, int32_t lane); |
309 | 309 | std::pair<uint32_t, uint32_t> TPCClusterizerDecodeZSCount(uint32_t iSector, const CfFragment& fragment); |
310 | 310 | std::pair<uint32_t, uint32_t> TPCClusterizerDecodeZSCountUpdate(uint32_t iSector, const CfFragment& fragment); |
311 | 311 | void TPCClusterizerEnsureZSOffsets(uint32_t iSector, const CfFragment& fragment); |
| 312 | + void TPCClusterizerTransferExtraADC(GPUTPCClusterFinder& clusterer, GPUTPCClusterFinder& clustererShadow, int lane, const GPUTPCExtraADC& extraADCs); |
| 313 | + void TPCClusterizerCheckExtraADCZeros(GPUTPCClusterFinder& clusterer, GPUTPCClusterFinder& clustererShadow, int lane, const GPUTPCExtraADC& extraADCs); |
312 | 314 | #endif |
313 | 315 | void RunTPCTrackingMerger_MergeBorderTracks(int8_t withinSector, int8_t mergeMode, GPUReconstruction::krnlDeviceType deviceType); |
314 | 316 | void RunTPCTrackingMerger_Resolve(int8_t useOrigTrackParam, int8_t mergeAll, GPUReconstruction::krnlDeviceType deviceType); |
|
0 commit comments