From 6e016148571db71c3fe5c54c471d4ba22fa558e5 Mon Sep 17 00:00:00 2001 From: David Rohr Date: Wed, 27 Jan 2021 19:26:48 +0100 Subject: [PATCH] Add option to create an o2 propagator instance uninitialized to be used with external matLut / gpuFieldMap --- Detectors/Base/include/DetectorsBase/Propagator.h | 6 +++--- Detectors/Base/src/Propagator.cxx | 7 +++++-- GPU/GPUTracking/Base/GPUParam.cxx | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Detectors/Base/include/DetectorsBase/Propagator.h b/Detectors/Base/include/DetectorsBase/Propagator.h index 174fc69f59240..2933a664f0ed9 100644 --- a/Detectors/Base/include/DetectorsBase/Propagator.h +++ b/Detectors/Base/include/DetectorsBase/Propagator.h @@ -114,9 +114,9 @@ class Propagator GPUd() void setBz(float bz) { mBz = bz; } #ifndef GPUCA_GPUCODE - static Propagator* Instance() + static Propagator* Instance(bool uninitialized = false) { - static Propagator instance; + static Propagator instance(uninitialized); return &instance; } @@ -129,7 +129,7 @@ class Propagator private: #ifndef GPUCA_GPUCODE - Propagator(); + Propagator(bool uninitialized = false); ~Propagator() = default; #endif diff --git a/Detectors/Base/src/Propagator.cxx b/Detectors/Base/src/Propagator.cxx index 098d3bc440376..7848aa06c3795 100644 --- a/Detectors/Base/src/Propagator.cxx +++ b/Detectors/Base/src/Propagator.cxx @@ -29,8 +29,11 @@ using namespace o2::gpu; #include // eventually will get rid of it #include -Propagator::Propagator() +Propagator::Propagator(bool uninitialized) { + if (uninitialized) { + return; + } ///< construct checking if needed components were initialized // we need the geoemtry loaded @@ -99,7 +102,7 @@ int Propagator::initFieldFromGRP(const o2::parameters::GRPObject* grp, bool verb return 0; } #elif !defined(GPUCA_GPUCODE) -Propagator::Propagator() +Propagator::Propagator(bool uninitialized) { } // empty dummy constructor for standalone benchmark #endif diff --git a/GPU/GPUTracking/Base/GPUParam.cxx b/GPU/GPUTracking/Base/GPUParam.cxx index b7adba5efb4e4..1c34adfb5e1f8 100644 --- a/GPU/GPUTracking/Base/GPUParam.cxx +++ b/GPU/GPUTracking/Base/GPUParam.cxx @@ -257,7 +257,7 @@ o2::base::Propagator* GPUParam::GetDefaultO2Propagator(bool useGPUField) const if (useGPUField == false) { throw std::runtime_error("o2 propagator withouzt gpu field unsupported"); } - prop = o2::base::Propagator::Instance(); + prop = o2::base::Propagator::Instance(useGPUField); if (useGPUField) { prop->setGPUField(&polynomialField); prop->setBz(polynomialField.GetNominalBz());