From 6239100a99af5e626d638a94e34057082a7c0aaf Mon Sep 17 00:00:00 2001 From: Peter Van Gemmeren <peter.van.gemmeren@cern.ch> Date: Tue, 23 Jun 2015 13:34:00 +0200 Subject: [PATCH] Better ROOT settings (OutputStreamAthenaPool-00-02-80) * python/MultipleStreamManager.py: Set xAOD to split static aux store (previously hardcoded) in MultipleStreamManager.NewPoolRootStream. * Tagging as OutputStreamAthenaPool-00-02-80 2015-04-23 Will Buttinger <will@cern.ch> * src/AthenaPoolOutputStreamTool.cxx: Added exception for Aux objects, which don't get a CLID in the first event (only when loaded later) because of issues with the way cliddb is generated at compile time. Should allow people to run with TakeItemsFromInput when working with xAOD * Tagging as OutputStreamAthenaPool-00-02-78 2015-03-04 Peter van Gemmeren <gemmeren@anl.gov> * Fixing Compression and AutoFlush settings to MultipleStreamManager.NewPoolRootStream. * Tagging as OutputStreamAthenaPool-00-02-77 2015-02-26 Will Buttinger <will@cern.ch> * src/AthenaPoolOutputStreamTool.cxx: Added check of availability of clid before adding to ItemList, when taking list from input * Tagging as OutputStreamAthenaPool-00-02-76 --- .../python/MultipleStreamManager.py | 12 ++++-------- .../src/AthenaPoolOutputStreamTool.cxx | 10 +++++++++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Database/AthenaPOOL/OutputStreamAthenaPool/python/MultipleStreamManager.py b/Database/AthenaPOOL/OutputStreamAthenaPool/python/MultipleStreamManager.py index ff3e14638ca..822bf33fc0a 100644 --- a/Database/AthenaPOOL/OutputStreamAthenaPool/python/MultipleStreamManager.py +++ b/Database/AthenaPOOL/OutputStreamAthenaPool/python/MultipleStreamManager.py @@ -564,14 +564,10 @@ class MultipleStreamManager: theApp.CreateSvc += [ "xAODMaker::EventFormatSvc" ] theStream.AddMetaDataItem("xAOD::EventFormat#EventFormat") theStream.Stream.WritingTool.SubLevelBranchName = "<key>" - svcMgr.AthenaPoolCnvSvc.PoolAttributes += [ "DatabaseName = '" + FileName + "';" - "COMPRESSION_LEVEL = '5'" ] - svcMgr.AthenaPoolCnvSvc.PoolAttributes += [ "DatabaseName = '" + FileName + "';" - "ContainerName = 'TTree=CollectionTree';" - "TREE_AUTO_FLUSH = '-10000000'" ] - svcMgr.AthenaPoolCnvSvc.PoolAttributes += [ "DatabaseName = '" + FileName + "';" - "ContainerName = 'TTree=CollectionTree';" - "CONTAINER_SPLITLEVEL = '1'" ] + svcMgr.AthenaPoolCnvSvc.PoolAttributes += [ "DatabaseName = '" + FileName + "'; COMPRESSION_LEVEL = '5'" ] + svcMgr.AthenaPoolCnvSvc.PoolAttributes += [ "DatabaseName = '" + FileName + "'; ContainerName = 'TTree=CollectionTree'; TREE_AUTO_FLUSH = '-10000000'" ] + svcMgr.AthenaPoolCnvSvc.PoolAttributes += [ "DatabaseName = '" + FileName + "'; ContainerName = 'TTree=CollectionTree'; CONTAINER_SPLITLEVEL = '1'" ] + svcMgr.AthenaPoolCnvSvc.PoolAttributes += [ "DatabaseName = '" + FileName + "'; ContainerName = 'TTree=Aux.'; CONTAINER_SPLITLEVEL = '1'"] return theStream diff --git a/Database/AthenaPOOL/OutputStreamAthenaPool/src/AthenaPoolOutputStreamTool.cxx b/Database/AthenaPOOL/OutputStreamAthenaPool/src/AthenaPoolOutputStreamTool.cxx index e3758c58279..03c71286a57 100644 --- a/Database/AthenaPOOL/OutputStreamAthenaPool/src/AthenaPoolOutputStreamTool.cxx +++ b/Database/AthenaPOOL/OutputStreamAthenaPool/src/AthenaPoolOutputStreamTool.cxx @@ -486,8 +486,16 @@ StatusCode AthenaPoolOutputStreamTool::getInputItemList(SG::IFolder* m_p2BWritte it != itLast; ++it) { // Only insert the primary clid, not the ones for the symlinks! CLID clid = it->getPrimaryClassID(); + std::string typeName; if (clid != ClassID_traits<DataHeader>::ID()) { - ATH_MSG_DEBUG("Adding " << clid << "#" << it->getKey() << " to itemlist"); + //check the typename is known ... we make an exception if the key contains 'Aux.' ... aux containers may not have their keys known yet in some cases + //see https://its.cern.ch/jira/browse/ATLASG-59 for the solution + std::string typeName; + if( m_clidSvc->getTypeNameOfID(clid,typeName).isFailure() && it->getKey().find("Aux.") == std::string::npos) { + ATH_MSG_WARNING("Skipping " << it->getKey() << " with unknown clid " << clid ); + continue; + } + ATH_MSG_DEBUG("Adding " << typeName << "#" << it->getKey() << " (clid " << clid << ") to itemlist"); const std::string keyName = it->getKey(); if (keyName.size() > 10 && keyName.substr(0, 10) == hltKey) { m_p2BWrittenFromTool->add(clid, hltKey + "*").ignore(); -- GitLab