From 0d87c1e17c6e105da20b32dba2a3560e3eb6ea70 Mon Sep 17 00:00:00 2001 From: jesgum Date: Fri, 30 Jan 2026 15:13:19 +0100 Subject: [PATCH 1/2] Make different instances of the geometry manager not interfere with each other --- ALICE3/Core/DelphesO2TrackSmearer.cxx | 5 ++--- ALICE3/Core/DelphesO2TrackSmearer.h | 8 +++++--- ALICE3/TableProducer/OTF/onTheFlyRichPid.cxx | 1 + ALICE3/TableProducer/OTF/onTheFlyTofPid.cxx | 1 + ALICE3/TableProducer/OTF/onTheFlyTracker.cxx | 1 + 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/ALICE3/Core/DelphesO2TrackSmearer.cxx b/ALICE3/Core/DelphesO2TrackSmearer.cxx index 8a4bd08770a..25914a8e9c2 100644 --- a/ALICE3/Core/DelphesO2TrackSmearer.cxx +++ b/ALICE3/Core/DelphesO2TrackSmearer.cxx @@ -64,8 +64,7 @@ bool TrackSmearer::loadTable(int pdg, const char* filename, bool forceReload) if (strncmp(filename, "ccdb:", 5) == 0) { // Check if filename starts with "ccdb:" LOG(info) << " --- LUT file source identified as CCDB."; std::string path = std::string(filename).substr(5); // Remove "ccdb:" prefix - const std::string outPath = "/tmp/LUTs/"; - filename = Form("%s/%s/snapshot.root", outPath.c_str(), path.c_str()); + filename = Form("%s/%s/snapshot.root", mOutPath.c_str(), path.c_str()); LOG(info) << " --- Local LUT filename will be: " << filename; std::ifstream checkFile(filename); // Check if file already exists if (!checkFile.is_open()) { // File does not exist, retrieve from CCDB @@ -74,7 +73,7 @@ bool TrackSmearer::loadTable(int pdg, const char* filename, bool forceReload) LOG(fatal) << " --- CCDB manager not set. Please set it before loading LUT from CCDB."; } std::map metadata; - mCcdbManager->getCCDBAccessor().retrieveBlob(path, outPath, metadata, 1); + mCcdbManager->getCCDBAccessor().retrieveBlob(path, mOutPath, metadata, 1); // Add CCDB handling logic here if needed LOG(info) << " --- Now retrieving LUT file from CCDB to: " << filename; if (mCleanupDownloadedFile) { // Clean up the downloaded file if needed diff --git a/ALICE3/Core/DelphesO2TrackSmearer.h b/ALICE3/Core/DelphesO2TrackSmearer.h index f6e916e32a4..aaff8c1f075 100644 --- a/ALICE3/Core/DelphesO2TrackSmearer.h +++ b/ALICE3/Core/DelphesO2TrackSmearer.h @@ -248,9 +248,10 @@ class TrackSmearer return "pion"; // Default: pion } } - void setdNdEta(float val) { mdNdEta = val; } //; - void setCcdbManager(o2::ccdb::BasicCCDBManager* mgr) { mCcdbManager = mgr; } //; - void setCleanupDownloadedFile(bool val) { mCleanupDownloadedFile = val; } //; + void setdNdEta(float val) { mdNdEta = val; } //; + void setCcdbManager(o2::ccdb::BasicCCDBManager* mgr) { mCcdbManager = mgr; } //; + void setCleanupDownloadedFile(bool val) { mCleanupDownloadedFile = val; } //; + void setDownloadPath(const std::string& path) { mOutPath = "/tmp/LUTs/" + path; } //; protected: static constexpr unsigned int nLUTs = 9; // Number of LUT available @@ -265,6 +266,7 @@ class TrackSmearer private: o2::ccdb::BasicCCDBManager* mCcdbManager = nullptr; bool mCleanupDownloadedFile = true; + std::string mOutPath = "/tmp/LUTs/"; }; } // namespace delphes diff --git a/ALICE3/TableProducer/OTF/onTheFlyRichPid.cxx b/ALICE3/TableProducer/OTF/onTheFlyRichPid.cxx index 5cca89353f5..bfc0f497811 100644 --- a/ALICE3/TableProducer/OTF/onTheFlyRichPid.cxx +++ b/ALICE3/TableProducer/OTF/onTheFlyRichPid.cxx @@ -301,6 +301,7 @@ struct OnTheFlyRichPid { mSmearer.emplace_back(std::make_unique()); mSmearer[icfg]->setCleanupDownloadedFile(cleanLutWhenLoaded.value); mSmearer[icfg]->setCcdbManager(ccdb.operator->()); + mSmearer[icfg]->setDownloadPath("RICHPID"); std::map globalConfiguration = mGeoContainer.getConfiguration(icfg, "global"); for (const auto& entry : globalConfiguration) { int pdg = 0; diff --git a/ALICE3/TableProducer/OTF/onTheFlyTofPid.cxx b/ALICE3/TableProducer/OTF/onTheFlyTofPid.cxx index fb6025944e8..4343865d839 100644 --- a/ALICE3/TableProducer/OTF/onTheFlyTofPid.cxx +++ b/ALICE3/TableProducer/OTF/onTheFlyTofPid.cxx @@ -160,6 +160,7 @@ struct OnTheFlyTofPid { mSmearer.emplace_back(std::make_unique()); mSmearer[icfg]->setCleanupDownloadedFile(cleanLutWhenLoaded.value); mSmearer[icfg]->setCcdbManager(ccdb.operator->()); + mSmearer[icfg]->setDownloadPath("TOFPID"); std::map globalConfiguration = mGeoContainer.getConfiguration(icfg, "global"); for (const auto& entry : globalConfiguration) { int pdg = 0; diff --git a/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx b/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx index b6a5206861f..e0c921f18f6 100644 --- a/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx +++ b/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx @@ -320,6 +320,7 @@ struct OnTheFlyTracker { mSmearer.emplace_back(std::make_unique()); mSmearer[icfg]->setCleanupDownloadedFile(cleanLutWhenLoaded.value); mSmearer[icfg]->setCcdbManager(ccdb.operator->()); + mSmearer[icfg]->setDownloadPath("Tracker"); std::map globalConfiguration = mGeoContainer.getConfiguration(icfg, "global"); if (enablePrimarySmearing) { // load LUTs for primaries From d64be33dd6e794252372a5c627509a04d4b85937 Mon Sep 17 00:00:00 2001 From: jesgum Date: Fri, 30 Jan 2026 15:35:16 +0100 Subject: [PATCH 2/2] megalinter fix --- ALICE3/Core/DelphesO2TrackSmearer.h | 1 + 1 file changed, 1 insertion(+) diff --git a/ALICE3/Core/DelphesO2TrackSmearer.h b/ALICE3/Core/DelphesO2TrackSmearer.h index aaff8c1f075..e334b0c38cd 100644 --- a/ALICE3/Core/DelphesO2TrackSmearer.h +++ b/ALICE3/Core/DelphesO2TrackSmearer.h @@ -33,6 +33,7 @@ #include #include #include +#include /////////////////////////////// /// DelphesO2/src/lutCovm.hh //