From a01d1541bf0fa8f401ea97cc3294a57e5e791894 Mon Sep 17 00:00:00 2001 From: Tadej Novak <tadej.novak@cern.ch> Date: Fri, 30 Oct 2020 15:01:22 +0100 Subject: [PATCH] Dump all variations in BookkeeperDumperTool --- .../BookkeeperDumperTool.h | 3 +- .../Root/BookkeeperDumperTool.cxx | 100 ++++++++++++------ Event/EventBookkeeperTools/util/dump-cbk.cxx | 1 + 3 files changed, 71 insertions(+), 33 deletions(-) diff --git a/Event/EventBookkeeperTools/EventBookkeeperTools/BookkeeperDumperTool.h b/Event/EventBookkeeperTools/EventBookkeeperTools/BookkeeperDumperTool.h index c9339ba270e..150e2acfd49 100644 --- a/Event/EventBookkeeperTools/EventBookkeeperTools/BookkeeperDumperTool.h +++ b/Event/EventBookkeeperTools/EventBookkeeperTools/BookkeeperDumperTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef EVENT_BOOKKEEPER_TOOLS__BOOKKEEPER_DUMPER_TOOL_H @@ -46,6 +46,7 @@ public: virtual StatusCode endInputFile(const SG::SourceID &) final { return StatusCode::SUCCESS; } #endif + Gaudi::Property<bool> m_allVariations{this, "AllVariations", false, "Dump all variations"}; Gaudi::Property<bool> m_standaloneMode{this, "StandaloneMode", false, "Dump on initialize when running standalone"}; }; diff --git a/Event/EventBookkeeperTools/Root/BookkeeperDumperTool.cxx b/Event/EventBookkeeperTools/Root/BookkeeperDumperTool.cxx index e3c7770d6ee..b7bf2183ef5 100644 --- a/Event/EventBookkeeperTools/Root/BookkeeperDumperTool.cxx +++ b/Event/EventBookkeeperTools/Root/BookkeeperDumperTool.cxx @@ -1,12 +1,12 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /** * @file BookkeeperDumperTool.cxx * @brief Implementation of class BookkeeperDumperTool */ - + #include <xAODCutFlow/CutBookkeeperContainer.h> #include <EventBookkeeperTools/BookkeeperDumperTool.h> @@ -34,41 +34,77 @@ StatusCode BookkeeperDumperTool::initialize() StatusCode BookkeeperDumperTool::beginInputFile() { // Complete CutBookkeepers - if (inputMetaStore()->contains<xAOD::CutBookkeeperContainer>("CutBookkeepers")) { - const xAOD::CutBookkeeperContainer* completeBookkeepers = nullptr; - ATH_CHECK(inputMetaStore()->retrieve(completeBookkeepers, "CutBookkeepers")); + size_t index{}; + while (true) + { + std::string name{"CutBookkeepers"}; + if (index > 0) { + name.append("_weight_"); + name.append(std::to_string(index)); + } - ATH_MSG_INFO("Complete CBK size = " << completeBookkeepers->size()); - for (const xAOD::CutBookkeeper *cbk : *completeBookkeepers) { - ATH_MSG_INFO("Complete CBK" - << " name= " << cbk->name() - << " cycle=" << cbk->cycle() - << " stream=" << cbk->inputStream() - << " N=" << cbk->nAcceptedEvents() - << " W=" << cbk->sumOfEventWeights() - << " nc=" << cbk->nChildren()); + if (inputMetaStore()->contains<xAOD::CutBookkeeperContainer>(name)) { + const xAOD::CutBookkeeperContainer* completeBookkeepers{}; + ATH_CHECK(inputMetaStore()->retrieve(completeBookkeepers, name)); + + ATH_MSG_INFO("Complete CBK " << name << " size = " << completeBookkeepers->size()); + for (const xAOD::CutBookkeeper *cbk : *completeBookkeepers) { + ATH_MSG_INFO("Complete CBK" + << " name= " << cbk->name() + << " cycle=" << cbk->cycle() + << " stream=" << cbk->inputStream() + << " N=" << cbk->nAcceptedEvents() + << " W=" << cbk->sumOfEventWeights() + << " nc=" << cbk->nChildren()); + } + index++; + } else { + if (index == 0) { + ATH_MSG_INFO("No complete CutBookkeepers found"); + } + break; + } + + if (!m_allVariations) { + break; } - } else { - ATH_MSG_INFO("No complete CutBookkeepers found"); } // Incomplete CutBookkeepers - if (inputMetaStore()->contains<xAOD::CutBookkeeperContainer>("IncompleteCutBookkeepers")) { - const xAOD::CutBookkeeperContainer* incompleteBookkeepers = nullptr; - ATH_CHECK(inputMetaStore()->retrieve(incompleteBookkeepers, "IncompleteCutBookkeepers")); + index = 0; + while (true) + { + std::string name{"IncompleteCutBookkeepers"}; + if (index > 0) { + name.append("_weight_"); + name.append(std::to_string(index)); + } - ATH_MSG_INFO("Incomplete CBK size = " << incompleteBookkeepers->size()); - for (const xAOD::CutBookkeeper *cbk : *incompleteBookkeepers) { - ATH_MSG_INFO("Incomplete CBK" - << " name= " << cbk->name() - << " cycle=" << cbk->cycle() - << " stream=" << cbk->inputStream() - << " N=" << cbk->nAcceptedEvents() - << " W=" << cbk->sumOfEventWeights() - << " nc=" << cbk->nChildren()); + if (inputMetaStore()->contains<xAOD::CutBookkeeperContainer>(name)) { + const xAOD::CutBookkeeperContainer* incompleteBookkeepers{}; + ATH_CHECK(inputMetaStore()->retrieve(incompleteBookkeepers, name)); + + ATH_MSG_INFO("Incomplete CBK " << name << " size = " << incompleteBookkeepers->size()); + for (const xAOD::CutBookkeeper *cbk : *incompleteBookkeepers) { + ATH_MSG_INFO("Incomplete CBK" + << " name= " << cbk->name() + << " cycle=" << cbk->cycle() + << " stream=" << cbk->inputStream() + << " N=" << cbk->nAcceptedEvents() + << " W=" << cbk->sumOfEventWeights() + << " nc=" << cbk->nChildren()); + } + index++; + } else { + if (index == 0) { + ATH_MSG_INFO("No incomplete CutBookkeepers found"); + } + break; + } + + if (!m_allVariations) { + break; } - } else { - ATH_MSG_INFO("No incomplete CutBookkeepers found"); } // Complete PDF CutBookkeepers @@ -89,9 +125,9 @@ StatusCode BookkeeperDumperTool::beginInputFile() } else { ATH_MSG_INFO("No PDF CutBookkeepers found"); } - + // Incomplete PDF CutBookkeepers - if (inputMetaStore()->contains<xAOD::CutBookkeeperContainer>("IncompletePDFSumOfWeights")) { + if (inputMetaStore()->contains<xAOD::CutBookkeeperContainer>("IncompletePDFSumOfWeights")) { const xAOD::CutBookkeeperContainer* pdfBookkeepers = nullptr; ATH_CHECK(inputMetaStore()->retrieve(pdfBookkeepers, "IncompletePDFSumOfWeights")); diff --git a/Event/EventBookkeeperTools/util/dump-cbk.cxx b/Event/EventBookkeeperTools/util/dump-cbk.cxx index cb72ff2fbec..2f50576eb83 100644 --- a/Event/EventBookkeeperTools/util/dump-cbk.cxx +++ b/Event/EventBookkeeperTools/util/dump-cbk.cxx @@ -66,6 +66,7 @@ int main(int argc, char **argv) // Retrieve the tool asg::AnaToolHandle<asg::AsgMetadataTool> tool("BookkeeperDumperTool/BookkeeperDumperTool"); ANA_CHECK(tool.setProperty("StandaloneMode", true)); + ANA_CHECK(tool.setProperty("AllVariations", true)); ANA_CHECK(tool.retrieve()); // Trigger finalization of all services and tools created by the Gaudi Application -- GitLab