Skip to content
Snippets Groups Projects
Forked from atlas / athena
79869 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
BookkeeperDumperTool.cxx 3.98 KiB
/*
  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
*/

/**
 * @file BookkeeperDumperTool.cxx
 * @brief Implementation of class BookkeeperDumperTool
 */
 
#include <xAODCutFlow/CutBookkeeperContainer.h>

#include <EventBookkeeperTools/BookkeeperDumperTool.h>


BookkeeperDumperTool::BookkeeperDumperTool(const std::string &name)
  : asg::AsgMetadataTool(name)
{
#ifndef XAOD_STANDALONE
  declareInterface< ::IMetaDataTool >( this );
#endif // XAOD_STANDALONE
}


StatusCode BookkeeperDumperTool::initialize()
{
  if (m_standaloneMode.value()) {
    ATH_CHECK(beginInputFile());
  }

  return StatusCode::SUCCESS;
}


StatusCode BookkeeperDumperTool::beginInputFile()
{
  // Complete CutBookkeepers
  if (inputMetaStore()->contains<xAOD::CutBookkeeperContainer>("CutBookkeepers")) {
    const xAOD::CutBookkeeperContainer* completeBookkeepers = nullptr;
    ATH_CHECK(inputMetaStore()->retrieve(completeBookkeepers, "CutBookkeepers"));

    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());
    }
  } 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"));

    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());
    }
  } else {
    ATH_MSG_INFO("No incomplete CutBookkeepers found");
  }

  // Complete PDF CutBookkeepers
  if (inputMetaStore()->contains<xAOD::CutBookkeeperContainer>("PDFSumOfWeights")) {
    const xAOD::CutBookkeeperContainer* pdfBookkeepers = nullptr;
    ATH_CHECK(inputMetaStore()->retrieve(pdfBookkeepers, "PDFSumOfWeights"));

    ATH_MSG_INFO("PDF CBK size = " << pdfBookkeepers->size());
    for (const xAOD::CutBookkeeper *cbk : *pdfBookkeepers) {
      ATH_MSG_INFO("PDF CBK"
                   << " name= " << cbk->name()
                   << " cycle=" << cbk->cycle()
                   << " stream=" << cbk->inputStream()
                   << " N=" << cbk->nAcceptedEvents()
                   << " W=" << cbk->sumOfEventWeights()
                   << " nc=" << cbk->nChildren());
    }
  } else {
    ATH_MSG_INFO("No PDF CutBookkeepers found");
  }
  
  // Incomplete PDF CutBookkeepers
  if (inputMetaStore()->contains<xAOD::CutBookkeeperContainer>("IncompletePDFSumOfWeights")) {    
    const xAOD::CutBookkeeperContainer* pdfBookkeepers = nullptr;
    ATH_CHECK(inputMetaStore()->retrieve(pdfBookkeepers, "IncompletePDFSumOfWeights"));

    ATH_MSG_INFO("Incomplete PDF CBK size = " << pdfBookkeepers->size());
    for (const xAOD::CutBookkeeper *cbk : *pdfBookkeepers) {
      ATH_MSG_INFO("Incomplete PDF CBK"
                   << " name= " << cbk->name()
                   << " cycle=" << cbk->cycle()
                   << " stream=" << cbk->inputStream()
                   << " N=" << cbk->nAcceptedEvents()
                   << " W=" << cbk->sumOfEventWeights()
                   << " nc=" << cbk->nChildren());
    }
  } else {
    ATH_MSG_INFO("No incomplete PDF CutBookkeepers found");
  }

  return StatusCode::SUCCESS;
}