ATLAS Offline Software
Loading...
Searching...
No Matches
python.ReadAthenaPool Namespace Reference

Functions

 _configureReadAthenaPool ()

Function Documentation

◆ _configureReadAthenaPool()

python.ReadAthenaPool._configureReadAthenaPool ( )
protected
Helper method to configure Athena to read back POOL files 

Definition at line 20 of file ReadAthenaPool.py.

20def _configureReadAthenaPool():
21 """ Helper method to configure Athena to read back POOL files """
22
23 from AthenaCommon.Logging import logging
24 msg = logging.getLogger( 'configureReadAthenaPool' )
25 msg.debug( "Configuring Athena for reading POOL files..." )
26
27 from AthenaCommon import CfgMgr
28 from AthenaCommon.AppMgr import ServiceMgr as svcMgr
29 from AthenaCommon.AppMgr import theApp
30
31 # Load the basic services
32 import AthenaPoolCnvSvc.AthenaPool # noqa: F401
33
34 # Switch on TTreeCache for CollectionTree
35 svcMgr.AthenaPoolCnvSvc.InputPoolAttributes += [ "DatabaseName = '*'; ContainerName = 'CollectionTree'; TREE_CACHE = '-1'" ]
36
37 # Load ProxyProviderSvc
38 if not hasattr (svcMgr, 'ProxyProviderSvc'):
39 svcMgr += CfgMgr.ProxyProviderSvc()
40
41 # Add in MetaDataSvc
42 if not hasattr (svcMgr, 'MetaDataSvc'):
43 svcMgr += CfgMgr.MetaDataSvc ("MetaDataSvc")
44 svcMgr.ProxyProviderSvc.ProviderNames += [ "MetaDataSvc" ]
45
46 # Add in MetaData Stores
47 if not hasattr (svcMgr, 'InputMetaDataStore'):
48 svcMgr += CfgMgr.StoreGateSvc ("InputMetaDataStore")
49 if not hasattr (svcMgr, 'MetaDataStore'):
50 svcMgr += CfgMgr.StoreGateSvc ("MetaDataStore")
51
52 # Enable IOVDbSvc to read MetaData
53 svcMgr.MetaDataSvc.MetaDataContainer = "MetaDataHdr"
54 svcMgr.MetaDataSvc.MetaDataTools += [ "IOVDbMetaDataTool" ]
55 if not hasattr (svcMgr.ToolSvc, 'IOVDbMetaDataTool'):
56 svcMgr.ToolSvc += CfgMgr.IOVDbMetaDataTool()
57
58 # Add in EventSelector
59 svcMgr += CfgMgr.EventSelectorAthenaPool ("EventSelector")
60 #default InputCollections to FilesInput value of AthenaCommonFlags
61 from AthenaCommon.AthenaCommonFlags import jobproperties as jps
62 svcMgr.EventSelector.InputCollections = jps.AthenaCommonFlags.FilesInput()
63
64 _n = svcMgr.EventSelector.getFullJobOptName()
65 theApp.EvtSel = _n
66 del _n
67
68 # For Analysis release use lower heartbeat
69 import os
70 if "AthAnalysisBase" in os.environ.get('CMTEXTRATAGS',""):
71 # From Will Buttinger to suppress the event loop heartbeat as it is somewhat I/O hungry for
72 # no real gain in analysis scenarii
73 if not hasattr(svcMgr, theApp.EventLoop):
74 svcMgr += getattr(CfgMgr, theApp.EventLoop)()
75 evtloop = getattr(svcMgr, theApp.EventLoop)
76 try:
77 evtloop.EventPrintoutInterval = 10000
78 except Exception:
79 msg.info('failed suppressing event loop heartbeat. performances might be sub-par... sorry.')
80 pass
81
82 # Add in AthenaPoolAddressProviderSvc
83 if not hasattr (svcMgr, 'AthenaPoolAddressProviderSvc'):
84 svcMgr += CfgMgr.AthenaPoolAddressProviderSvc ("AthenaPoolAddressProviderSvc")
85 svcMgr.ProxyProviderSvc.ProviderNames += [ "AthenaPoolAddressProviderSvc" ]
86
87 # Set up DataVector/DataProxyStorage backwards compatibility.
88 #from DataModelAthenaPool import DataModelCompatSvc
89 svcMgr += CfgMgr.DataModelCompatSvc()
90
91 # Always want AddressRemappingSvc, since that's responsible for suppressing
92 # the read of objects that are produced by a WriteHandle.
93 from SGComps.AddressRemappingSvc import getAddressRemappingSvc
94 getAddressRemappingSvc()
95
96 msg.debug( "Configuring Athena for reading POOL files... [DONE]" )
97 return
98