32 const bool overrideBeamPosition,
34 bool upstreamClusters,
35 bool disableRootOutput,
42 if (!(upstreamDigits || upstreamClusters)) {
45 if (!upstreamClusters) {
48 if (!disableRootOutput) {
56 .runITSTracking =
true,
57 .itsStaggered = doStag,
58 .itsOverrBeamEst = overrideBeamPosition,
62 auto ggRequest = std::make_shared<o2::base::GRPGeomRequest>(
false,
true,
false,
true,
true,
66 ggRequest->addInput({
"itsTGeo",
"ITS",
"GEOMTGEO", 0, Lifetime::Condition,
framework::ccdbParamSpec(
"ITS/Config/Geometry")}, ggInputs);
69 static std::vector<InputSpec> policyData;
70 static std::shared_ptr<o2::gpu::GPURecoWorkflowSpec> task = std::make_shared<o2::gpu::GPURecoWorkflowSpec>(&policyData, cfg, std::vector<int>(), 0, ggRequest);
71 Inputs taskInputs = task->inputs();
72 Options taskOptions = task->options();
73 std::move(ggInputs.begin(), ggInputs.end(), std::back_inserter(taskInputs));
76 .
name =
"its-gpu-tracker",
78 .outputs = task->outputs(),
79 .algorithm =
AlgorithmSpec{adoptTask<o2::gpu::GPURecoWorkflowSpec>(task)},
80 .options = taskOptions});
82 specs.emplace_back(
o2::its::getTrackerSpec(useMC, doStag, useGeom, useTrig, trmode, overrideBeamPosition, dtype));
84 if (!disableRootOutput) {
static const TrackerParamConfig & Instance()
std::vector< ConfigParamSpec > ccdbParamSpec(std::string const &path, int runDependent, std::vector< CCDBMetadata > metadata={}, int qrate=0)
std::vector< DataProcessorSpec > WorkflowSpec
std::vector< ConfigParamSpec > Options
std::vector< InputSpec > Inputs
o2::framework::DataProcessorSpec getIRFrameWriterSpec(const std::string &spec, const std::string &defFileName="o2_irframe.root", const std::string &devName="irframe-writer")
framework::WorkflowSpec getWorkflow(bool useMC, bool doStag, TrackingMode::Type trmode, const bool overrideBeamPosition=false, bool upstreamDigits=false, bool upstreamClusters=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)
o2::framework::DataProcessorSpec getTrackWriterSpec(bool useMC)
framework::DataProcessorSpec getITSDigitReaderSpec(bool useMC=true, bool doStag=false, bool useCalib=false, bool useTriggers=true, std::string defname="itsdigits.root")
framework::DataProcessorSpec getITSClusterWriterSpec(bool useMC, bool doStag)
framework::DataProcessorSpec getITSClustererSpec(bool useMC, bool doStag)