Skip to content
Snippets Groups Projects
Commit d9d5b59a authored by Peter van Gemmeren's avatar Peter van Gemmeren
Browse files

Manually switch on TTreeCache in case ROOT fails to do so by default.

Former-commit-id: 74f5adaa9764834181c913aea82bd54a76c0b6dc
parent 7ecf047e
No related branches found
No related tags found
No related merge requests found
...@@ -45,7 +45,7 @@ RootDatabase::RootDatabase() : ...@@ -45,7 +45,7 @@ RootDatabase::RootDatabase() :
m_defBufferSize(16*1024), m_defBufferSize(16*1024),
m_defWritePolicy(TObject::kOverwrite), // On write create new versions m_defWritePolicy(TObject::kOverwrite), // On write create new versions
m_branchOffsetTabLen(0), m_branchOffsetTabLen(0),
m_defTreeCacheLearnEvents(100), m_defTreeCacheLearnEvents(-1),
m_fileMgr(nullptr) m_fileMgr(nullptr)
{ {
m_version = "1.1"; m_version = "1.1";
...@@ -670,7 +670,14 @@ DbStatus RootDatabase::setOption(const DbOption& opt) { ...@@ -670,7 +670,14 @@ DbStatus RootDatabase::setOption(const DbOption& opt) {
else log << DbPrintLvl::Debug << "Got tree " << tr->GetName() else log << DbPrintLvl::Debug << "Got tree " << tr->GetName()
<< " read entry " << tr->GetReadEntry() << DbPrint::endmsg; << " read entry " << tr->GetReadEntry() << DbPrint::endmsg;
tr->SetCacheSize(cacheSize); tr->SetCacheSize(cacheSize);
TTreeCache::SetLearnEntries(m_defTreeCacheLearnEvents); if (m_defTreeCacheLearnEvents < 0) {
long long int autoFlush = tr->GetAutoFlush();
if (autoFlush > 0) { // Tree was written flushing on number of events
TTreeCache::SetLearnEntries(-m_defTreeCacheLearnEvents * autoFlush);
}
} else {
TTreeCache::SetLearnEntries(m_defTreeCacheLearnEvents);
}
TTreeCache* cache = (TTreeCache*)m_file->GetCacheRead(); TTreeCache* cache = (TTreeCache*)m_file->GetCacheRead();
if (cache) { if (cache) {
cache->SetEntryRange(0, tr->GetEntries()); cache->SetEntryRange(0, tr->GetEntries());
......
...@@ -32,6 +32,9 @@ def _configureReadAthenaPool(): ...@@ -32,6 +32,9 @@ def _configureReadAthenaPool():
# Load the basic services # Load the basic services
import AthenaPoolCnvSvc.AthenaPool import AthenaPoolCnvSvc.AthenaPool
# Switch on TTreeCache for CollectionTree
svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; ContainerName = 'CollectionTree'; TREE_CACHE = '-1'" ]
# Load ProxyProviderSvc # Load ProxyProviderSvc
if not hasattr (svcMgr, 'ProxyProviderSvc'): if not hasattr (svcMgr, 'ProxyProviderSvc'):
svcMgr += CfgMgr.ProxyProviderSvc() svcMgr += CfgMgr.ProxyProviderSvc()
......
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