From 30eed8110bc092caa99ec38006f3e3ca200efb73 Mon Sep 17 00:00:00 2001
From: Peter van Gemmeren <gemmeren@anl.gov>
Date: Thu, 31 Aug 2017 14:13:30 -0500
Subject: [PATCH] Allow setting and printing of ROOT Domain attributes for
 Input.

---
 .../AthenaPoolTest/share/AthenaPoolTestRead.py | 12 ++++++------
 .../AthenaPoolCnvSvc/python/ReadAthenaPool.py  |  3 ---
 .../share/AthenaPoolCnvSvc_jobOptions.py       |  7 +++++--
 .../AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.cxx  | 18 +++++++++++++++---
 .../AthenaPoolExample_ReadAgainJobOptions.py   | 12 ++++++------
 .../AthenaPoolExample_ReadBNJobOptions.py      | 12 ++++++------
 .../share/AthenaPoolExample_ReadJobOptions.py  | 12 ++++++------
 .../AthenaPoolExample_ReadNoBNJobOptions.py    | 12 ++++++------
 .../AthenaPoolExample_ReadTagJobOptions.py     | 12 ++++++------
 9 files changed, 56 insertions(+), 44 deletions(-)

diff --git a/AtlasTest/DatabaseTest/AthenaPoolTest/share/AthenaPoolTestRead.py b/AtlasTest/DatabaseTest/AthenaPoolTest/share/AthenaPoolTestRead.py
index 393121976d82..30271ad226df 100755
--- a/AtlasTest/DatabaseTest/AthenaPoolTest/share/AthenaPoolTestRead.py
+++ b/AtlasTest/DatabaseTest/AthenaPoolTest/share/AthenaPoolTestRead.py
@@ -62,14 +62,14 @@ AthenaEventLoopMgr.OutputLevel = INFO
 
 # Turn on the tree cache for the CollectionTree - tree cache only
 # works for one tree. And set tree cache size - default is 10 MB (10 000 000)
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "ContainerName = 'CollectionTree'; TREE_CACHE = '100000'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; ContainerName = 'CollectionTree'; TREE_CACHE = '100000'" ]
 # Set number of events for learning before turning on cache - default is 5
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_LEARN_EVENTS = '6'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_LEARN_EVENTS = '6'" ]
 
 # Print out values - must have PoolSvc in info mode
 svcMgr.PoolSvc.OutputLevel = INFO
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_LEARN_EVENTS = 'int'" ]
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_SIZE = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_LEARN_EVENTS = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_SIZE = 'int'" ]
 
 # Print out for each event the number of bytes read and the number of
 # read calls. With the tree cache, one should see jumps in the bytes
@@ -78,8 +78,8 @@ svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_SIZE = 'int'" ]
 # tree (CollectionTree) - and we read some things from other trees, so
 # one does see a small increase event-by-event.
 svcMgr.PoolSvc.OutputLevel = INFO
-svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "BYTES_READ = 'double'" ]
-svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "READ_CALLS = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "DatabaseName = '*'; BYTES_READ = 'double'" ]
+svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "DatabaseName = '*'; READ_CALLS = 'int'" ]
 
 
 # No stats printout
diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/python/ReadAthenaPool.py b/Database/AthenaPOOL/AthenaPoolCnvSvc/python/ReadAthenaPool.py
index 626833bb6851..ace75aa84406 100644
--- a/Database/AthenaPOOL/AthenaPoolCnvSvc/python/ReadAthenaPool.py
+++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/python/ReadAthenaPool.py
@@ -32,9 +32,6 @@ def _configureReadAthenaPool():
     # Load the basic services
     import AthenaPoolCnvSvc.AthenaPool
 
-    # Switch off TTreeCache for POOLContainerForm (most of the time only first entry is needed
-    #svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "ContainerName = 'POOLContainerForm'; TREE_CACHE = '0'" ]
-
     # Load ProxyProviderSvc
     if not hasattr (svcMgr, 'ProxyProviderSvc'):
         svcMgr += CfgMgr.ProxyProviderSvc()
diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/share/AthenaPoolCnvSvc_jobOptions.py b/Database/AthenaPOOL/AthenaPoolCnvSvc/share/AthenaPoolCnvSvc_jobOptions.py
index d9359998088e..97760027cdbe 100644
--- a/Database/AthenaPOOL/AthenaPoolCnvSvc/share/AthenaPoolCnvSvc_jobOptions.py
+++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/share/AthenaPoolCnvSvc_jobOptions.py
@@ -52,11 +52,14 @@ svcMgr.AthenaPoolCnvSvc.PoolAttributes += [ "DatabaseName = '<fileName>'; <attri
 # Set Container Attribute
 svcMgr.AthenaPoolCnvSvc.PoolAttributes += [ "DatabaseName = '<fileName>'; ContainerName = '<type>/<key>'; <attributeName> = '<value>'" ]
 
-# Set Input Database Attribute - set attribute for each incoming file/db
+# Set Input Database Attribute - set attribute for domain
 svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "<attributeName> = '<value>'" ]
 
+# Set Input Database Attribute - set attribute for each incoming file/db
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; <attributeName> = '<value>'" ]
+
 # Set Input Database Attribute - set attribute for each incoming file/db for a particular container/tree
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "ContainerName = '<treeName>'; <attributeName> = '<value>'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; ContainerName = '<treeName>'; <attributeName> = '<value>'" ]
 
 # To get an Attribute value printed to the log while commit, use the same syntax as for
 # setting attributes, but replace the <value> with its <dataType> (int, DbLonglong, double).
diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.cxx b/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.cxx
index 1f34429dc872..4b5aa892eb82 100644
--- a/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.cxx
+++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolCnvSvc.cxx
@@ -110,9 +110,9 @@ StatusCode AthenaPoolCnvSvc::initialize() {
    // Extracting OUTPUT POOL ItechnologySpecificAttributes for Domain, Database and Container.
    extractPoolAttributes(m_poolAttr, &m_containerAttr, &m_databaseAttr, &m_domainAttr);
    // Extracting INPUT POOL ItechnologySpecificAttributes for Domain, Database and Container.
-   extractPoolAttributes(m_inputPoolAttr, &m_inputAttr, &m_inputAttr);
+   extractPoolAttributes(m_inputPoolAttr, &m_inputAttr, &m_inputAttr, &m_inputAttr);
    // Extracting the INPUT POOL ItechnologySpecificAttributes which are to be printed for each event
-   extractPoolAttributes(m_inputPoolAttrPerEvent, &m_inputAttrPerEvent, &m_inputAttrPerEvent);
+   extractPoolAttributes(m_inputPoolAttrPerEvent, &m_inputAttrPerEvent, &m_inputAttrPerEvent, &m_inputAttrPerEvent);
    if (!m_inputPoolAttrPerEvent.value().empty()) {
       // Setup incident for EndEvent to print out attributes each event
       ServiceHandle<IIncidentSvc> incSvc("IncidentSvc", name());
@@ -121,6 +121,12 @@ StatusCode AthenaPoolCnvSvc::initialize() {
       incSvc->addListener(this, "EndEvent", pri);
       ATH_MSG_DEBUG("Subscribed to EndEvent for printing out input file attributes.");
    }
+   pool::DbType dbType = m_dbType;
+   m_dbType = pool::DbType(pool::ROOTTREE_StorageType);
+   if (!processPoolAttributes(m_inputAttr, "", IPoolSvc::kInputStream, false, true, true).isSuccess()) {
+      ATH_MSG_DEBUG("setInputAttribute failed setting POOL domain attributes.");
+   }
+   m_dbType = dbType;
    m_doChronoStat = m_skipFirstChronoCommit.value() ? false : true;
    return(StatusCode::SUCCESS);
 }
@@ -859,12 +865,15 @@ StatusCode AthenaPoolCnvSvc::cleanUp() {
 StatusCode AthenaPoolCnvSvc::setInputAttributes(const std::string& fileName) {
    // Set attributes for input file
    m_lastFileName = fileName; // Save file name for printing attributes per event
+   pool::DbType dbType = m_dbType;
+   m_dbType = pool::DbType(pool::ROOTTREE_StorageType);
    if (!processPoolAttributes(m_inputAttr, m_lastFileName, IPoolSvc::kInputStream, false, true, false).isSuccess()) {
       ATH_MSG_DEBUG("setInputAttribute failed setting POOL database/container attributes.");
    }
    if (!processPoolAttributes(m_inputAttr, m_lastFileName, IPoolSvc::kInputStream, true, false).isSuccess()) {
       ATH_MSG_DEBUG("setInputAttribute failed getting POOL database/container attributes.");
    }
+   m_dbType = dbType;
    return(StatusCode::SUCCESS);
 }
 //______________________________________________________________________________
@@ -993,9 +1002,12 @@ StatusCode AthenaPoolCnvSvc::readData() const {
 //______________________________________________________________________________
 void AthenaPoolCnvSvc::handle(const Incident& incident) {
    if (incident.type() == "EndEvent") {
+      pool::DbType dbType = m_dbType;
+      m_dbType = pool::DbType(pool::ROOTTREE_StorageType);
       if (!processPoolAttributes(m_inputAttrPerEvent, m_lastFileName, IPoolSvc::kInputStream).isSuccess()) {
          ATH_MSG_DEBUG("handle EndEvent failed process POOL database attributes.");
       }
+      m_dbType = dbType;
    }
 }
 //______________________________________________________________________________
@@ -1144,7 +1156,7 @@ StatusCode AthenaPoolCnvSvc::processPoolAttributes(std::vector<std::vector<std::
          std::string data = (*iter)[1];
          const std::string& file = (*iter)[2];
          const std::string& cont = (*iter)[3];
-         if ((file == fileName || (file.substr(0, 1) == "*"
+         if (!fileName.empty() && (file == fileName || (file.substr(0, 1) == "*"
 		         && file.find("," + fileName + ",") == std::string::npos))) {
             if (data == "int" || data == "DbLonglong" || data == "double" || data == "string") {
                if (doGet) {
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgainJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgainJobOptions.py
index b7e11d36d348..42872a68c4b5 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgainJobOptions.py
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgainJobOptions.py
@@ -52,13 +52,13 @@ svcMgr.EventSelector.SkipEventSequence = [ 9, 10 ]; # // skip two more events
 #Switch Off for TAG - start
 # Turn on the tree cache for the CollectionTree - tree cache only works for one tree.
 # Set number of events for learning before turning on cache - default is 5
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_LEARN_EVENTS = '6'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_LEARN_EVENTS = '6'" ]
 # And set tree cache size - default is 10 MB (10 000 000)
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "ContainerName = 'CollectionTree'; TREE_CACHE = '100000'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; ContainerName = 'CollectionTree'; TREE_CACHE = '100000'" ]
 
 # Print out values - must have PoolSvc in info mode
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_LEARN_EVENTS = 'int'" ]
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_SIZE = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_LEARN_EVENTS = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_SIZE = 'int'" ]
 
 # Print out for each event the number of bytes read and the number of
 # read calls. With the tree cache, one should see jumps in the bytes
@@ -66,8 +66,8 @@ svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_SIZE = 'int'" ]
 # event. However, the cache only works on one tree - the main event
 # tree (CollectionTree) - and we read some things from other trees, so
 # one does see a small increase event-by-event.
-svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "BYTES_READ = 'double'" ]
-svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "READ_CALLS = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "DatabaseName = '*'; BYTES_READ = 'double'" ]
+svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "DatabaseName = '*'; READ_CALLS = 'int'" ]
 #Switch Off for TAG - end
 
 from AthenaPoolExampleAlgorithms.AthenaPoolExampleAlgorithmsConf import AthPoolEx__QueryTag
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBNJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBNJobOptions.py
index dbecbb178c45..a7c10fc6827d 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBNJobOptions.py
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBNJobOptions.py
@@ -51,13 +51,13 @@ svcMgr.EventSelector.SkipEventSequence = [ 9, 10 ]; # // skip two more events
 #Switch Off for TAG - start
 # Turn on the tree cache for the CollectionTree - tree cache only works for one tree.
 # Set number of events for learning before turning on cache - default is 5
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_LEARN_EVENTS = '6'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_LEARN_EVENTS = '6'" ]
 # And set tree cache size - default is 10 MB (10 000 000)
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "ContainerName = 'CollectionTree'; TREE_CACHE = '100000'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; ContainerName = 'CollectionTree'; TREE_CACHE = '100000'" ]
 
 # Print out values - must have PoolSvc in info mode
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_LEARN_EVENTS = 'int'" ]
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_SIZE = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_LEARN_EVENTS = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_SIZE = 'int'" ]
 
 # Print out for each event the number of bytes read and the number of
 # read calls. With the tree cache, one should see jumps in the bytes
@@ -65,8 +65,8 @@ svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_SIZE = 'int'" ]
 # event. However, the cache only works on one tree - the main event
 # tree (CollectionTree) - and we read some things from other trees, so
 # one does see a small increase event-by-event.
-svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "BYTES_READ = 'double'" ]
-svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "READ_CALLS = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "DatabaseName = '*'; BYTES_READ = 'double'" ]
+svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "DatabaseName = '*'; READ_CALLS = 'int'" ]
 #Switch Off for TAG - end
 
 from AthenaPoolExampleAlgorithms.AthenaPoolExampleAlgorithmsConf import AthPoolEx__QueryTag
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadJobOptions.py
index 59e181dacca5..70a31a1fc6ef 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadJobOptions.py
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadJobOptions.py
@@ -52,13 +52,13 @@ svcMgr.EventSelector.SkipEventSequence = [ 9, 10 ]; # // skip two more events
 #Switch Off for TAG - start
 # Turn on the tree cache for the CollectionTree - tree cache only works for one tree.
 # Set number of events for learning before turning on cache - default is 5
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_LEARN_EVENTS = '6'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_LEARN_EVENTS = '6'" ]
 # And set tree cache size - default is 10 MB (10 000 000)
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "ContainerName = 'CollectionTree'; TREE_CACHE = '100000'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; ContainerName = 'CollectionTree'; TREE_CACHE = '100000'" ]
 
 # Print out values - must have PoolSvc in info mode
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_LEARN_EVENTS = 'int'" ]
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_SIZE = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_LEARN_EVENTS = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_SIZE = 'int'" ]
 
 # Print out for each event the number of bytes read and the number of
 # read calls. With the tree cache, one should see jumps in the bytes
@@ -66,8 +66,8 @@ svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_SIZE = 'int'" ]
 # event. However, the cache only works on one tree - the main event
 # tree (CollectionTree) - and we read some things from other trees, so
 # one does see a small increase event-by-event.
-svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "BYTES_READ = 'double'" ]
-svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "READ_CALLS = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "DatabaseName = '*'; BYTES_READ = 'double'" ]
+svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "DatabaseName = '*'; READ_CALLS = 'int'" ]
 #Switch Off for TAG - end
 
 from AthenaPoolExampleAlgorithms.AthenaPoolExampleAlgorithmsConf import AthPoolEx__QueryTag
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBNJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBNJobOptions.py
index b6a35e242895..a0ce83296593 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBNJobOptions.py
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBNJobOptions.py
@@ -51,13 +51,13 @@ svcMgr.EventSelector.SkipEventSequence = [ 9, 10 ]; # // skip two more events
 #Switch Off for TAG - start
 # Turn on the tree cache for the CollectionTree - tree cache only works for one tree.
 # Set number of events for learning before turning on cache - default is 5
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_LEARN_EVENTS = '6'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_LEARN_EVENTS = '6'" ]
 # And set tree cache size - default is 10 MB (10 000 000)
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "ContainerName = 'CollectionTree'; TREE_CACHE = '100000'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; ContainerName = 'CollectionTree'; TREE_CACHE = '100000'" ]
 
 # Print out values - must have PoolSvc in info mode
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_LEARN_EVENTS = 'int'" ]
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_SIZE = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_LEARN_EVENTS = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_SIZE = 'int'" ]
 
 # Print out for each event the number of bytes read and the number of
 # read calls. With the tree cache, one should see jumps in the bytes
@@ -65,8 +65,8 @@ svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_SIZE = 'int'" ]
 # event. However, the cache only works on one tree - the main event
 # tree (CollectionTree) - and we read some things from other trees, so
 # one does see a small increase event-by-event.
-svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "BYTES_READ = 'double'" ]
-svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "READ_CALLS = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "DatabaseName = '*'; BYTES_READ = 'double'" ]
+svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "DatabaseName = '*'; READ_CALLS = 'int'" ]
 #Switch Off for TAG - end
 
 from AthenaPoolExampleAlgorithms.AthenaPoolExampleAlgorithmsConf import AthPoolEx__QueryTag
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadTagJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadTagJobOptions.py
index bcda1824c63a..41252ccc23c5 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadTagJobOptions.py
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadTagJobOptions.py
@@ -51,13 +51,13 @@ svcMgr.EventSelector.CollectionType = "ExplicitROOT"
 """
 # Turn on the tree cache for the CollectionTree - tree cache only works for one tree.
 # Set number of events for learning before turning on cache - default is 5
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_LEARN_EVENTS = '6'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_LEARN_EVENTS = '6'" ]
 # And set tree cache size - default is 10 MB (10 000 000)
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "ContainerName = 'CollectionTree'; TREE_CACHE = '100000'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; ContainerName = 'CollectionTree'; TREE_CACHE = '100000'" ]
 
 # Print out values - must have PoolSvc in info mode
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_LEARN_EVENTS = 'int'" ]
-svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_SIZE = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_LEARN_EVENTS = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; TREE_CACHE_SIZE = 'int'" ]
 
 # Print out for each event the number of bytes read and the number of
 # read calls. With the tree cache, one should see jumps in the bytes
@@ -65,8 +65,8 @@ svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "TREE_CACHE_SIZE = 'int'" ]
 # event. However, the cache only works on one tree - the main event
 # tree (CollectionTree) - and we read some things from other trees, so
 # one does see a small increase event-by-event.
-svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "BYTES_READ = 'double'" ]
-svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "READ_CALLS = 'int'" ]
+svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "DatabaseName = '*'; BYTES_READ = 'double'" ]
+svcMgr.AthenaPoolCnvSvc.PrintInputAttrPerEvt += [ "DatabaseName = '*'; READ_CALLS = 'int'" ]
 """
 
 from AthenaPoolExampleAlgorithms.AthenaPoolExampleAlgorithmsConf import AthPoolEx__QueryTag
-- 
GitLab