From 5d5c6fed5dc14c00ed08ef5aa267795634a3b910 Mon Sep 17 00:00:00 2001 From: Tadej Novak <tadej.novak@cern.ch> Date: Thu, 7 Jan 2021 15:34:56 +0100 Subject: [PATCH] Treat complete and incomplete bookkeepers independently when writing --- .../Root/BookkeeperTool.cxx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Event/EventBookkeeperTools/Root/BookkeeperTool.cxx b/Event/EventBookkeeperTools/Root/BookkeeperTool.cxx index 8bfc710ce92f..30fdde2d82f1 100644 --- a/Event/EventBookkeeperTools/Root/BookkeeperTool.cxx +++ b/Event/EventBookkeeperTools/Root/BookkeeperTool.cxx @@ -174,6 +174,7 @@ StatusCode BookkeeperTool::metaDataStop() name.append("_weight_"); name.append(std::to_string(i)); } + std::string incompleteName = "Incomplete" + name; // In MP we might already have them written out if (outputMetaStore()->contains<xAOD::CutBookkeeperContainer>(name)) { @@ -182,20 +183,24 @@ StatusCode BookkeeperTool::metaDataStop() ATH_MSG_ERROR("Could not get " << name << " CutBookkeepers from output MetaDataStore"); return StatusCode::FAILURE; } + xAOD::CutFlowHelpers::updateContainer(complete, m_completeContainers.at(i)); + } else { + ATH_CHECK(outputMetaStore()->record(std::move(m_completeContainers.cont[i]), name)); + ATH_CHECK(outputMetaStore()->record(std::move(m_completeContainers.aux[i]), name + "Aux.")); + } + + if (outputMetaStore()->contains<xAOD::CutBookkeeperContainer>(incompleteName)) { xAOD::CutBookkeeperContainer *incomplete{}; - if (!outputMetaStore()->retrieve(incomplete, "Incomplete" + name).isSuccess()) { - ATH_MSG_ERROR("Could not get " << "Incomplete" + name << " CutBookkeepers from output MetaDataStore"); + if (!outputMetaStore()->retrieve(incomplete, incompleteName).isSuccess()) { + ATH_MSG_ERROR("Could not get " << incompleteName << " CutBookkeepers from output MetaDataStore"); return StatusCode::FAILURE; } - xAOD::CutFlowHelpers::updateContainer(complete, m_completeContainers.at(i)); xAOD::CutFlowHelpers::updateContainer(incomplete, m_incompleteContainers.at(i)); } else { - ATH_CHECK(outputMetaStore()->record(std::move(m_completeContainers.cont[i]), name)); - ATH_CHECK(outputMetaStore()->record(std::move(m_completeContainers.aux[i]), name + "Aux.")); // Only write non-empty incomplete containers if (i > 0 && !m_incompleteContainers.at(i)->empty()) { - ATH_CHECK(outputMetaStore()->record(std::move(m_incompleteContainers.cont[i]), "Incomplete" + name)); - ATH_CHECK(outputMetaStore()->record(std::move(m_incompleteContainers.aux[i]), "Incomplete" + name + "Aux.")); + ATH_CHECK(outputMetaStore()->record(std::move(m_incompleteContainers.cont[i]), incompleteName)); + ATH_CHECK(outputMetaStore()->record(std::move(m_incompleteContainers.aux[i]), incompleteName + "Aux.")); } } } -- GitLab