diff --git a/ALICE3/Core/DelphesO2TrackSmearer.cxx b/ALICE3/Core/DelphesO2TrackSmearer.cxx index 599d9cd9413..11d6a52b10b 100644 --- a/ALICE3/Core/DelphesO2TrackSmearer.cxx +++ b/ALICE3/Core/DelphesO2TrackSmearer.cxx @@ -76,6 +76,15 @@ bool TrackSmearer::loadTable(int pdg, const char* filename, bool forceReload) mCcdbManager->getCCDBAccessor().retrieveBlob(path, outPath, 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 + bool status = loadTable(pdg, filename, forceReload); + if (std::remove(filename) != 0) { + LOG(warn) << " --- Could not remove temporary LUT file: " << filename; + } else { + LOG(info) << " --- Removed temporary LUT file: " << filename; + } + return status; + } } else { // File exists, proceed to load LOG(info) << " --- LUT file already exists: " << filename << ". Skipping download."; checkFile.close(); diff --git a/ALICE3/Core/DelphesO2TrackSmearer.h b/ALICE3/Core/DelphesO2TrackSmearer.h index 027809fa004..f6e916e32a4 100644 --- a/ALICE3/Core/DelphesO2TrackSmearer.h +++ b/ALICE3/Core/DelphesO2TrackSmearer.h @@ -250,6 +250,7 @@ class TrackSmearer } void setdNdEta(float val) { mdNdEta = val; } //; void setCcdbManager(o2::ccdb::BasicCCDBManager* mgr) { mCcdbManager = mgr; } //; + void setCleanupDownloadedFile(bool val) { mCleanupDownloadedFile = val; } //; protected: static constexpr unsigned int nLUTs = 9; // Number of LUT available @@ -263,6 +264,7 @@ class TrackSmearer private: o2::ccdb::BasicCCDBManager* mCcdbManager = nullptr; + bool mCleanupDownloadedFile = true; }; } // namespace delphes