From a2b5275bd8bf4e520265f12500c11a4dd5b95649 Mon Sep 17 00:00:00 2001 From: Anthony Lim Date: Wed, 22 Feb 2017 14:45:06 +0000 Subject: [PATCH] refs #18950 Forced deadTime data to be read during cache --- .../src/Muon/MuonAnalysisDataLoader.cpp | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/MantidQt/CustomInterfaces/src/Muon/MuonAnalysisDataLoader.cpp b/MantidQt/CustomInterfaces/src/Muon/MuonAnalysisDataLoader.cpp index c8c5914ab134..b003db54a77d 100644 --- a/MantidQt/CustomInterfaces/src/Muon/MuonAnalysisDataLoader.cpp +++ b/MantidQt/CustomInterfaces/src/Muon/MuonAnalysisDataLoader.cpp @@ -73,7 +73,7 @@ LoadResult MuonAnalysisDataLoader::loadFiles(const QStringList &files) const { throw std::invalid_argument("Supplied list of files is empty"); // Convert list of files into a mangled map key - const auto toString = [](QStringList qsl) { + const auto toString = [](QStringList qsl) { std::ostringstream oss; qsl.sort(); for (const QString qs : qsl) { @@ -86,9 +86,27 @@ LoadResult MuonAnalysisDataLoader::loadFiles(const QStringList &files) const { updateCache(); // Check cache to see if we've loaded this set of files before const std::string fileString = toString(files); - if (m_loadedDataCache.find(fileString) != m_loadedDataCache.end()) { - g_log.information("Using cached workspace for file(s): " + fileString); - return m_loadedDataCache[fileString]; + if (m_loadedDataCache.find(fileString) != m_loadedDataCache.end()) + { + LoadResult result = m_loadedDataCache[fileString]; + if (m_deadTimesType == DeadTimesType::FromFile) { // manually reset the DeadTime + IAlgorithm_sptr load = + AlgorithmManager::Instance().createUnmanaged("LoadMuonNexus"); + load->initialize(); + load->setChild(true); + load->setLogging(false); // We'll take care of printing messages ourselves + std::string fileString2 = toString(files); + fileString2.pop_back(); + const std::string fileString3 = fileString2; + load->setPropertyValue("Filename", fileString3); + g_log.information("Using cached workspace for file(s): " + fileString); + // Just to pass validation + load->setPropertyValue("OutputWorkspace", "__NotUsed"); + load->setPropertyValue("DeadTimeTable", "__NotUsed"); + load->execute(); + result.loadedDeadTimes = load->getProperty("DeadTimeTable"); + } + return result; } LoadResult result;