From 2208b8d447ca96cffdacaac1bd8f290f7a52fd8e Mon Sep 17 00:00:00 2001 From: Matteo Concas Date: Fri, 12 Apr 2024 16:05:00 +0200 Subject: [PATCH 1/4] Fix usage of VertexerTraits from within the GPU reco WF --- Detectors/ITSMFT/ITS/tracking/GPU/cuda/VertexerTraitsGPU.cu | 1 - .../ITSMFT/ITS/tracking/include/ITStracking/VertexerTraits.h | 2 +- Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx | 5 +---- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Detectors/ITSMFT/ITS/tracking/GPU/cuda/VertexerTraitsGPU.cu b/Detectors/ITSMFT/ITS/tracking/GPU/cuda/VertexerTraitsGPU.cu index d8a7985b33343..9a1ed507ae5a4 100644 --- a/Detectors/ITSMFT/ITS/tracking/GPU/cuda/VertexerTraitsGPU.cu +++ b/Detectors/ITSMFT/ITS/tracking/GPU/cuda/VertexerTraitsGPU.cu @@ -93,7 +93,6 @@ VertexerTraitsGPU::VertexerTraitsGPU() VertexerTraitsGPU::~VertexerTraitsGPU() { - gpu::utils::gpuFree(mDeviceIndexTableUtils); } void VertexerTraitsGPU::initialise(const TrackingParameters& trackingParams) diff --git a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/VertexerTraits.h b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/VertexerTraits.h index 89da9a90df283..365a24cfaee62 100644 --- a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/VertexerTraits.h +++ b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/VertexerTraits.h @@ -85,13 +85,13 @@ class VertexerTraits TimeFrame*, std::vector*); - VertexingParameters getVertexingParameters() const { return mVrtParams; } static const std::vector> selectClusters(const int* indexTable, const std::array& selectedBinsRect, const IndexTableUtils& utils); // utils VertexingParameters& getVertexingParameters() { return mVrtParams; } + VertexingParameters getVertexingParameters() const { return mVrtParams; } void setIsGPU(const unsigned char isgpu) { mIsGPU = isgpu; }; unsigned char getIsGPU() const { return mIsGPU; }; void dumpVertexerTraits(); diff --git a/Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx b/Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx index 066d400a17f19..55c68bcc51b02 100644 --- a/Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx +++ b/Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx @@ -195,10 +195,7 @@ void ITSTrackingInterface::run(framework::ProcessingContext& pc) } } if (processingMask[iRof] && !selROF) { // passed selection in clusters and not in vertex multiplicity - LOG(debug) << fmt::format("ROF {} rejected by the vertex multiplicity selection [{},{}]", - iRof, - multEstConf.cutMultVtxLow, - multEstConf.cutMultVtxHigh); + LOGP(info, "ROF {} rejected by the vertex multiplicity selection [{},{}]", iRof, multEstConf.cutMultVtxLow, multEstConf.cutMultVtxHigh); processingMask[iRof] = selROF; cutVertexMult++; } From 08e40391158db9daf04294f3b7d159265e823d15 Mon Sep 17 00:00:00 2001 From: Matteo Concas Date: Sat, 20 Apr 2024 19:55:44 +0200 Subject: [PATCH 2/4] Prepare settings and cleanup interface --- .../include/ITStracking/TrackingInterface.h | 10 ++++-- Detectors/ITSMFT/ITS/tracking/src/Tracker.cxx | 1 + .../ITS/tracking/src/TrackingInterface.cxx | 10 +++--- .../ITSMFT/ITS/tracking/src/Vertexer.cxx | 4 +-- .../include/ITSWorkflow/TrackerSpec.h | 15 ++++----- .../ITSMFT/ITS/workflow/src/RecoWorkflow.cxx | 33 +------------------ .../ITSMFT/ITS/workflow/src/TrackerSpec.cxx | 3 +- .../include/GPUWorkflow/GPUWorkflowSpec.h | 1 - GPU/Workflow/src/GPUWorkflowITS.cxx | 1 - GPU/Workflow/src/gpu-reco-workflow.cxx | 6 +++- 10 files changed, 32 insertions(+), 52 deletions(-) diff --git a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingInterface.h b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingInterface.h index 0700cfdf09885..251d4a01d5e17 100644 --- a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingInterface.h +++ b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingInterface.h @@ -34,11 +34,9 @@ class ITSTrackingInterface public: ITSTrackingInterface(bool isMC, int trgType, - const TrackingMode trMode, const bool overrBeamEst) : mIsMC{isMC}, mUseTriggers{trgType}, - mMode{trMode}, mOverrideBeamEstimation{overrBeamEst} { } @@ -47,6 +45,7 @@ class ITSTrackingInterface void setMeanVertex(const o2::dataformats::MeanVertexObject* v) { if (!v) { + LOGP(error, "Mean Vertex Object is nullptr"); return; } mMeanVertex = v; @@ -61,6 +60,13 @@ class ITSTrackingInterface // Custom void setTraitsFromProvider(VertexerTraits*, TrackerTraits*, TimeFrame*); + void setTrackingMode(TrackingMode mode = TrackingMode::Unset) + { + if (mode == TrackingMode::Unset) { + LOGP(fatal, "ITS Tracking mode Unset is meant to be a default. Specify the mode"); + } + mMode = mode; + } private: bool mIsMC = false; diff --git a/Detectors/ITSMFT/ITS/tracking/src/Tracker.cxx b/Detectors/ITSMFT/ITS/tracking/src/Tracker.cxx index fc848504cf416..42df15b24f052 100644 --- a/Detectors/ITSMFT/ITS/tracking/src/Tracker.cxx +++ b/Detectors/ITSMFT/ITS/tracking/src/Tracker.cxx @@ -455,6 +455,7 @@ void Tracker::rectifyClusterIndices() void Tracker::getGlobalConfiguration() { auto& tc = o2::its::TrackerParamConfig::Instance(); + tc.printKeyValues(true, true); if (tc.useMatCorrTGeo) { mTraits->setCorrType(o2::base::PropagatorImpl::MatCorrType::USEMatCorrTGeo); } else if (tc.useFastMaterial) { diff --git a/Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx b/Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx index 55c68bcc51b02..492976d164227 100644 --- a/Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx +++ b/Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx @@ -22,6 +22,7 @@ #include "DataFormatsTRD/TriggerRecord.h" #include "CommonDataFormat/IRFrame.h" #include "DetectorsBase/GRPGeomHelper.h" +#include "ITStracking/TrackingConfigParam.h" namespace o2 { @@ -33,9 +34,11 @@ void ITSTrackingInterface::initialise() mRunVertexer = true; mCosmicsProcessing = false; std::vector trackParams; - + if (mMode == TrackingMode::Unset) { + mMode = (TrackingMode)(o2::its::TrackerParamConfig::Instance().trackingMode); + LOGP(info, "Tracking mode not set, trying to fetch it from configurable params to: {}", asString(mMode)); + } if (mMode == TrackingMode::Async) { - trackParams.resize(3); for (auto& param : trackParams) { param.ZBins = 64; @@ -49,7 +52,6 @@ void ITSTrackingInterface::initialise() trackParams[2].CellDeltaTanLambdaSigma *= 4.; trackParams[2].MinTrackLength = 4; LOG(info) << "Initializing tracker in async. phase reconstruction with " << trackParams.size() << " passes"; - } else if (mMode == TrackingMode::Sync) { trackParams.resize(1); trackParams[0].ZBins = 64; @@ -322,7 +324,7 @@ void ITSTrackingInterface::finaliseCCDB(ConcreteDataMatcher& matcher, void* obj) return; } if (matcher == ConcreteDataMatcher("GLO", "MEANVERTEX", 0)) { - LOGP(info, "mean vertex acquired"); + LOGP(info, "Mean vertex acquired"); setMeanVertex((const o2::dataformats::MeanVertexObject*)obj); return; } diff --git a/Detectors/ITSMFT/ITS/tracking/src/Vertexer.cxx b/Detectors/ITSMFT/ITS/tracking/src/Vertexer.cxx index 05303a95a22da..1c6464a08dc3b 100644 --- a/Detectors/ITSMFT/ITS/tracking/src/Vertexer.cxx +++ b/Detectors/ITSMFT/ITS/tracking/src/Vertexer.cxx @@ -67,6 +67,7 @@ float Vertexer::clustersToVerticesHybrid(std::function logg void Vertexer::getGlobalConfiguration() { auto& vc = o2::its::VertexerParamConfig::Instance(); + vc.printKeyValues(true, true); auto& grc = o2::its::GpuRecoParamConfig::Instance(); VertexingParameters verPar; @@ -90,8 +91,7 @@ void Vertexer::getGlobalConfiguration() verPar.PhiBins = vc.PhiBins; TimeFrameGPUParameters tfGPUpar; - tfGPUpar.maxGPUMemoryGB = grc.maxGPUMemoryGB; - tfGPUpar.maxVerticesCapacity = grc.maxVerticesCapacity; + tfGPUpar.nROFsPerChunk = grc.nROFsPerChunk; mTraits->updateVertexingParameters(verPar, tfGPUpar); } diff --git a/Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/TrackerSpec.h b/Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/TrackerSpec.h index 643511cbfc164..be9965fc8be58 100644 --- a/Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/TrackerSpec.h +++ b/Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/TrackerSpec.h @@ -23,13 +23,11 @@ #include "ITStracking/TrackingInterface.h" -#include "GPUO2Interface.h" -#include "GPUReconstruction.h" -#include "GPUChainITS.h" -#include "CommonUtils/StringUtils.h" -#include "TStopwatch.h" +#include "GPUDataTypes.h" #include "DetectorsBase/GRPGeomHelper.h" +#include "TStopwatch.h" + namespace o2 { namespace its @@ -41,9 +39,9 @@ class TrackerDPL : public framework::Task TrackerDPL(std::shared_ptr gr, bool isMC, int trgType, - const TrackingMode& trMode, + const TrackingMode& trMode = TrackingMode::Unset, const bool overrBeamEst = false, - o2::gpu::GPUDataTypes::DeviceType dType = o2::gpu::GPUDataTypes::DeviceType::CPU); + gpu::GPUDataTypes::DeviceType dType = gpu::GPUDataTypes::DeviceType::CPU); ~TrackerDPL() override = default; void init(framework::InitContext& ic) final; void run(framework::ProcessingContext& pc) final; @@ -60,7 +58,8 @@ class TrackerDPL : public framework::Task TStopwatch mTimer; }; -framework::DataProcessorSpec getTrackerSpec(bool useMC, bool useGeom, int useTrig, const std::string& trModeS, const bool overrBeamEst, o2::gpu::GPUDataTypes::DeviceType dType); +using o2::its::TrackingMode; +framework::DataProcessorSpec getTrackerSpec(bool useMC, bool useGeom, int useTrig, const std::string& trMode, const bool overrBeamEst = false, gpu::GPUDataTypes::DeviceType dType = gpu::GPUDataTypes::DeviceType::CPU); } // namespace its } // namespace o2 diff --git a/Detectors/ITSMFT/ITS/workflow/src/RecoWorkflow.cxx b/Detectors/ITSMFT/ITS/workflow/src/RecoWorkflow.cxx index dfa958ccd5890..93f85e0679c44 100644 --- a/Detectors/ITSMFT/ITS/workflow/src/RecoWorkflow.cxx +++ b/Detectors/ITSMFT/ITS/workflow/src/RecoWorkflow.cxx @@ -31,8 +31,6 @@ namespace o2 { namespace its { -// using ITSTrackReconstruction::TrackingMode; - namespace reco_workflow { @@ -60,36 +58,7 @@ framework::WorkflowSpec getWorkflow(bool useMC, } if (!trmode.empty()) { if (useCAtracker) { - if (useGPUWF) { - o2::gpu::GPURecoWorkflowSpec::Config cfg; - cfg.runITSTracking = true; - cfg.itsTriggerType = useTrig; - cfg.itsOverrBeamEst = overrideBeamPosition; - cfg.itsTrackingMode = trmode == "sync" ? (int)TrackingMode::Sync : (trmode == "async" ? (int)TrackingMode::Async : (int)TrackingMode::Cosmics); - - 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)); - } + specs.emplace_back(o2::its::getTrackerSpec(useMC, useGeom, useTrig, trmode, overrideBeamPosition, dtype)); } else { specs.emplace_back(o2::its::getCookedTrackerSpec(useMC, useGeom, useTrig, trmode)); } diff --git a/Detectors/ITSMFT/ITS/workflow/src/TrackerSpec.cxx b/Detectors/ITSMFT/ITS/workflow/src/TrackerSpec.cxx index c26bc5171ddeb..367fa8673cc70 100644 --- a/Detectors/ITSMFT/ITS/workflow/src/TrackerSpec.cxx +++ b/Detectors/ITSMFT/ITS/workflow/src/TrackerSpec.cxx @@ -30,8 +30,9 @@ TrackerDPL::TrackerDPL(std::shared_ptr gr, const bool overrBeamEst, o2::gpu::GPUDataTypes::DeviceType dType) : mGGCCDBRequest(gr), mRecChain{o2::gpu::GPUReconstruction::CreateInstance(dType, true)}, - mITSTrackingInterface{isMC, trgType, trMode, overrBeamEst} + mITSTrackingInterface{isMC, trgType, overrBeamEst} { + mITSTrackingInterface.setTrackingMode(trMode); } void TrackerDPL::init(InitContext& ic) diff --git a/GPU/Workflow/include/GPUWorkflow/GPUWorkflowSpec.h b/GPU/Workflow/include/GPUWorkflow/GPUWorkflowSpec.h index 65940b764f79c..17f88d0417979 100644 --- a/GPU/Workflow/include/GPUWorkflow/GPUWorkflowSpec.h +++ b/GPU/Workflow/include/GPUWorkflow/GPUWorkflowSpec.h @@ -127,7 +127,6 @@ class GPURecoWorkflowSpec : public o2::framework::Task int lumiScaleType = 0; // 0=off, 1=CTP, 2=TPC scalers bool outputErrorQA = false; bool runITSTracking = false; - int itsTrackingMode = 0; // 0=sync, 1=async, 2=cosmics bool itsOverrBeamEst = false; bool tpcTriggerHandling = false; }; diff --git a/GPU/Workflow/src/GPUWorkflowITS.cxx b/GPU/Workflow/src/GPUWorkflowITS.cxx index 72f466591d231..5f6ec171d27c1 100644 --- a/GPU/Workflow/src/GPUWorkflowITS.cxx +++ b/GPU/Workflow/src/GPUWorkflowITS.cxx @@ -37,7 +37,6 @@ void GPURecoWorkflowSpec::initFunctionITS(o2::framework::InitContext& ic) o2::its::TrackerTraits* trkTraits = nullptr; mITSTrackingInterface = std::make_unique(mSpecConfig.processMC, mSpecConfig.itsTriggerType, - static_cast(mSpecConfig.itsTrackingMode), mSpecConfig.itsOverrBeamEst); mGPUReco->GetITSTraits(trkTraits, vtxTraits, mITSTimeFrame); mITSTrackingInterface->setTraitsFromProvider(vtxTraits, trkTraits, mITSTimeFrame); diff --git a/GPU/Workflow/src/gpu-reco-workflow.cxx b/GPU/Workflow/src/gpu-reco-workflow.cxx index 9e610331a3aa3..aef7694ac5de7 100644 --- a/GPU/Workflow/src/gpu-reco-workflow.cxx +++ b/GPU/Workflow/src/gpu-reco-workflow.cxx @@ -107,6 +107,7 @@ enum struct ioType { Digits, SendClustersPerSector, ITSClusters, ITSTracks, + MeanVertex, TPCTriggers }; static const std::unordered_map InputMap{ @@ -117,7 +118,9 @@ static const std::unordered_map InputMap{ {"compressed-clusters-root", ioType::CompClustROOT}, {"compressed-clusters-ctf", ioType::CompClustCTF}, {"trd-tracklets", ioType::TRDTracklets}, - {"its-clusters", ioType::ITSClusters}}; + {"its-clusters", ioType::ITSClusters}, + {"its-mean-vertex", ioType::MeanVertex}, +}; static const std::unordered_map OutputMap{ {"clusters", ioType::Clusters}, @@ -183,6 +186,7 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) cfg.enableDoublePipeline = cfgc.options().get("enableDoublePipeline"); cfg.tpcDeadMapSources = cfgc.options().get("tpc-deadMap-sources"); cfg.runITSTracking = isEnabled(outputTypes, ioType::ITSTracks); + cfg.itsOverrBeamEst = isEnabled(inputTypes, ioType::MeanVertex); Inputs ggInputs; auto ggRequest = std::make_shared(false, true, false, true, true, o2::base::GRPGeomRequest::Aligned, ggInputs, true); From 5c460c907ccce3d09d34fe578e04cd0b451d2864 Mon Sep 17 00:00:00 2001 From: Matteo Concas Date: Sun, 21 Apr 2024 00:08:44 +0200 Subject: [PATCH 3/4] Temporarily re-enable the gpu-wf-spec in itsreco-wf --- .../include/ITStracking/TrackingConfigParam.h | 2 ++ .../include/ITStracking/TrackingInterface.h | 6 ++-- .../ITSMFT/ITS/tracking/src/Vertexer.cxx | 2 +- .../ITSMFT/ITS/workflow/src/RecoWorkflow.cxx | 30 ++++++++++++++++++- 4 files changed, 36 insertions(+), 4 deletions(-) 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)); } From d014339304b1bd1b7ae9e5651267c12ad9ad4b2c Mon Sep 17 00:00:00 2001 From: Matteo Concas Date: Sun, 21 Apr 2024 11:06:23 +0200 Subject: [PATCH 4/4] Extend configuration --- .../ITSMFT/ITS/tracking/include/ITStracking/Configuration.h | 4 +++- Detectors/ITSMFT/ITS/tracking/src/Configuration.cxx | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/Configuration.h b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/Configuration.h index 2a66bbd245e87..a700dc1e806c0 100644 --- a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/Configuration.h +++ b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/Configuration.h @@ -34,7 +34,8 @@ namespace its enum class TrackingMode { Sync, Async, - Cosmics + Cosmics, + Unset, // Special value to leave a default in case we want to override via Configurable Params }; std::string asString(TrackingMode mode); @@ -146,6 +147,7 @@ struct TimeFrameGPUParameters { size_t maxVerticesCapacity = 5e4; size_t nMaxROFs = 1e3; size_t nTimeFrameChunks = 3; + size_t nROFsPerChunk = 768; // pp defaults int maxGPUMemoryGB = -1; }; diff --git a/Detectors/ITSMFT/ITS/tracking/src/Configuration.cxx b/Detectors/ITSMFT/ITS/tracking/src/Configuration.cxx index 3c22260901900..13cf6b472db9a 100644 --- a/Detectors/ITSMFT/ITS/tracking/src/Configuration.cxx +++ b/Detectors/ITSMFT/ITS/tracking/src/Configuration.cxx @@ -22,6 +22,8 @@ std::string asString(TrackingMode mode) return "async"; case TrackingMode::Cosmics: return "cosmics"; + case TrackingMode::Unset: + return "unset"; } return "unknown"; }