32 const bool overrideBeamPosition,
34 bool upstreamClusters,
36 bool disableRootOutput,
43 if (!(upstreamDigits || upstreamClusters)) {
46 if (!upstreamClusters) {
49 if (!disableRootOutput || clrofOnly) {
57 .runITSTracking =
true,
58 .itsStaggered = doStag,
59 .itsOverrBeamEst = overrideBeamPosition,
63 auto ggRequest = std::make_shared<o2::base::GRPGeomRequest>(
false,
true,
false,
true,
true,
67 ggRequest->addInput({
"itsTGeo",
"ITS",
"GEOMTGEO", 0, Lifetime::Condition,
framework::ccdbParamSpec(
"ITS/Config/Geometry")}, ggInputs);
70 static std::vector<InputSpec> policyData;
71 static std::shared_ptr<o2::gpu::GPURecoWorkflowSpec> task = std::make_shared<o2::gpu::GPURecoWorkflowSpec>(&policyData, cfg, std::vector<int>(), 0, ggRequest);
72 Inputs taskInputs = task->inputs();
73 Options taskOptions = task->options();
74 std::move(ggInputs.begin(), ggInputs.end(), std::back_inserter(taskInputs));
77 .
name =
"its-gpu-tracker",
79 .outputs = task->outputs(),
80 .algorithm =
AlgorithmSpec{adoptTask<o2::gpu::GPURecoWorkflowSpec>(task)},
81 .options = taskOptions});
83 specs.emplace_back(
o2::its::getTrackerSpec(useMC, doStag, useGeom, useTrig, trmode, overrideBeamPosition, dtype));
85 if (!disableRootOutput) {
framework::WorkflowSpec getWorkflow(bool useMC, bool doStag, TrackingMode::Type trmode, const bool overrideBeamPosition=false, bool upstreamDigits=false, bool upstreamClusters=false, bool clrofOnly=false, bool disableRootOutput=false, bool useGeom=false, int useTrig=0, bool useGPUWF=false, o2::gpu::gpudatatypes::DeviceType dType=o2::gpu::gpudatatypes::DeviceType::CPU)
framework::DataProcessorSpec getTrackerSpec(bool useMC, bool doStag, bool useGeom, int useTrig, TrackingMode::Type trMode, const bool overrBeamEst=false, o2::gpu::gpudatatypes::DeviceType dType=o2::gpu::gpudatatypes::DeviceType::CPU)