diff --git a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingConfigParam.h b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingConfigParam.h index d3a3035bd63cc..36a5fd63b12d1 100644 --- a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingConfigParam.h +++ b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingConfigParam.h @@ -78,6 +78,8 @@ struct TrackerParamConfig : public o2::conf::ConfigurableParamHelpergetX(), v->getY()); } mMeanVertex = v; } @@ -73,7 +75,7 @@ class ITSTrackingInterface bool mRunVertexer = true; bool mCosmicsProcessing = false; int mUseTriggers = 0; - TrackingMode mMode = TrackingMode::Sync; + TrackingMode mMode = TrackingMode::Unset; bool mOverrideBeamEstimation = false; const o2::itsmft::TopologyDictionary* mDict = nullptr; std::unique_ptr mTracker = nullptr; diff --git a/Detectors/ITSMFT/ITS/tracking/src/Vertexer.cxx b/Detectors/ITSMFT/ITS/tracking/src/Vertexer.cxx index 1c6464a08dc3b..acc59a66a7c2c 100644 --- a/Detectors/ITSMFT/ITS/tracking/src/Vertexer.cxx +++ b/Detectors/ITSMFT/ITS/tracking/src/Vertexer.cxx @@ -91,7 +91,7 @@ void Vertexer::getGlobalConfiguration() verPar.PhiBins = vc.PhiBins; TimeFrameGPUParameters tfGPUpar; - tfGPUpar.nROFsPerChunk = grc.nROFsPerChunk; + // tfGPUpar.nROFsPerChunk = grc.nROFsPerChunk; mTraits->updateVertexingParameters(verPar, tfGPUpar); } diff --git a/Detectors/ITSMFT/ITS/workflow/src/RecoWorkflow.cxx b/Detectors/ITSMFT/ITS/workflow/src/RecoWorkflow.cxx index 93f85e0679c44..dc75d90150eb8 100644 --- a/Detectors/ITSMFT/ITS/workflow/src/RecoWorkflow.cxx +++ b/Detectors/ITSMFT/ITS/workflow/src/RecoWorkflow.cxx @@ -58,7 +58,35 @@ framework::WorkflowSpec getWorkflow(bool useMC, } if (!trmode.empty()) { if (useCAtracker) { - specs.emplace_back(o2::its::getTrackerSpec(useMC, useGeom, useTrig, trmode, overrideBeamPosition, dtype)); + if (useGPUWF) { + o2::gpu::GPURecoWorkflowSpec::Config cfg; + cfg.runITSTracking = true; + cfg.itsTriggerType = useTrig; + cfg.itsOverrBeamEst = overrideBeamPosition; + + Inputs ggInputs; + auto ggRequest = std::make_shared(false, true, false, true, true, + useGeom ? o2::base::GRPGeomRequest::Aligned : o2::base::GRPGeomRequest::None, + ggInputs, true); + if (!useGeom) { + ggRequest->addInput({"itsTGeo", "ITS", "GEOMTGEO", 0, Lifetime::Condition, framework::ccdbParamSpec("ITS/Config/Geometry")}, ggInputs); + } + + auto task = std::make_shared(&gPolicyData, cfg, std::vector(), 0, ggRequest); + gTask = task; + Inputs taskInputs = task->inputs(); + Options taskOptions = task->options(); + std::move(ggInputs.begin(), ggInputs.end(), std::back_inserter(taskInputs)); + + specs.emplace_back(DataProcessorSpec{ + "its-tracker", + taskInputs, + task->outputs(), + AlgorithmSpec{adoptTask(task)}, + taskOptions}); + } else { + specs.emplace_back(o2::its::getTrackerSpec(useMC, useGeom, useTrig, trmode, overrideBeamPosition, dtype)); + } } else { specs.emplace_back(o2::its::getCookedTrackerSpec(useMC, useGeom, useTrig, trmode)); }