Skip to content
Snippets Groups Projects
Verified Commit a01d1541 authored by Tadej Novak's avatar Tadej Novak
Browse files

Dump all variations in BookkeeperDumperTool

parent b1d32a79
No related branches found
No related tags found
No related merge requests found
/*
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"};
};
......
/*
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"));
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment