From f2a8115f8766f653fcf3591fc046fa5e3389d23a Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Tue, 24 Dec 2019 08:58:20 +0000 Subject: [PATCH] Configure MetaDataSvc in new-style config --- .../python/UnifyProperties.py | 1 + .../python/TriggerInterface.py | 9 ++---- .../python/MetaDataSvcConfig.py | 29 +++++++++++++++++++ .../AthenaPoolCnvSvc/python/PoolReadConfig.py | 5 ++-- Database/IOVDbSvc/python/IOVDbSvcConfig.py | 4 +++ .../python/ByteStreamConfig.py | 23 ++------------- .../python/BunchCrossingCondAlgConfig.py | 2 +- .../share/RatesAnalysisFullMenu.py | 11 ++----- 8 files changed, 45 insertions(+), 39 deletions(-) create mode 100644 Control/AthenaServices/python/MetaDataSvcConfig.py diff --git a/Control/AthenaConfiguration/python/UnifyProperties.py b/Control/AthenaConfiguration/python/UnifyProperties.py index 91f07d1ed2b..902f28e3c6c 100644 --- a/Control/AthenaConfiguration/python/UnifyProperties.py +++ b/Control/AthenaConfiguration/python/UnifyProperties.py @@ -79,6 +79,7 @@ _propsToUnify={"GeoModelSvc.DetectorTools":unifySet, "*.InputMakerOutputDecisions": unifySet, "AddressRemappingSvc.TypeKeyRenameMaps": unifySet, "AuditorSvc.Auditors": unifySet, + "MetaDataSvc.MetaDataTools": unifySet, } def setUnificationFunction(key, function): diff --git a/Control/AthenaMonitoring/python/TriggerInterface.py b/Control/AthenaMonitoring/python/TriggerInterface.py index 6c79e4b5c02..eabc9fdab0e 100644 --- a/Control/AthenaMonitoring/python/TriggerInterface.py +++ b/Control/AthenaMonitoring/python/TriggerInterface.py @@ -38,13 +38,8 @@ def getTrigDecisionTool(flags): tdt.Navigation.Dlls = [e for e in EDMLibraries if 'TPCnv' not in e] # Minimal config needed to read metadata: MetaDataSvc & ProxyProviderSvc - mdSvc = CompFactory.MetaDataSvc( "MetaDataSvc" ) - mdSvc.MetaDataContainer = "MetaDataHdr" - rv.addService(mdSvc) - - pdps = CompFactory.ProxyProviderSvc( "ProxyProviderSvc" ) - pdps.ProviderNames += [ "MetaDataSvc" ] - rv.addService(pdps) + from AthenaServices.MetaDataSvcConfig import MetaDataSvcCfg + rv.merge(MetaDataSvcCfg(flags)) getTrigDecisionTool.rv = rv return rv diff --git a/Control/AthenaServices/python/MetaDataSvcConfig.py b/Control/AthenaServices/python/MetaDataSvcConfig.py new file mode 100644 index 00000000000..f5efeb7482f --- /dev/null +++ b/Control/AthenaServices/python/MetaDataSvcConfig.py @@ -0,0 +1,29 @@ +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + +def MetaDataSvcCfg(flags, toolNames=[]): + # should cover most use cases (POOL, RAW) when called with appropriate toolNames argument + from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator + from AthenaConfiguration.ComponentFactory import CompFactory + from six import string_types + + result = ComponentAccumulator() + + result.addService( CompFactory.StoreGateSvc("MetaDataStore") ) + result.addService( CompFactory.StoreGateSvc("InputMetaDataStore") ) + + svc = CompFactory.MetaDataSvc("MetaDataSvc") + svc.MetaDataContainer = "MetaDataHdr" + result.addService(svc) + result.addService(CompFactory.ProxyProviderSvc(ProviderNames=["MetaDataSvc"])) + + for name in toolNames: + if not isinstance(name, string_types): + from AthenaCommon.Logging import logging + log = logging.getLogger("MetaDataSvcConfig") + log.error('Attempted to pass a non-string argument as a metadata tool name') + continue + thistool = CompFactory.getComps(name)[0]() + result.addPublicTool(thistool) + svc.MetaDataTools += [thistool] + + return result \ No newline at end of file diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/python/PoolReadConfig.py b/Database/AthenaPOOL/AthenaPoolCnvSvc/python/PoolReadConfig.py index 24916744758..d1a2191a587 100644 --- a/Database/AthenaPOOL/AthenaPoolCnvSvc/python/PoolReadConfig.py +++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/python/PoolReadConfig.py @@ -46,7 +46,8 @@ def PoolReadCfg(configFlags): apapsSecondary.getFullJobOptName() ])) #No service handle yet??? - evSel=DoubleEventSelectorAthenaPool(PrimaryInputCollections = filenames, + evSel=DoubleEventSelectorAthenaPool("DoubleEventSelector", + PrimaryInputCollections = filenames, SecondaryaryInputCollections = filenamesSecondary) else: # We have only primary inputs @@ -54,7 +55,7 @@ def PoolReadCfg(configFlags): result.addService(apaps) result.addService(ProxyProviderSvc(ProviderNames=[apaps.getFullJobOptName(),])) #No service handle yet??? - evSel=EventSelectorAthenaPool(InputCollections = filenames) + evSel=EventSelectorAthenaPool("EventSelector", InputCollections = filenames) result.addService(evSel) result.setAppProperty("EvtSel",evSel.getFullJobOptName()) diff --git a/Database/IOVDbSvc/python/IOVDbSvcConfig.py b/Database/IOVDbSvc/python/IOVDbSvcConfig.py index 355a4f532c6..ce36636f8fb 100644 --- a/Database/IOVDbSvc/python/IOVDbSvcConfig.py +++ b/Database/IOVDbSvc/python/IOVDbSvcConfig.py @@ -76,6 +76,10 @@ def IOVDbSvcCfg(configFlags): from EventInfoMgt.TagInfoMgrConfig import TagInfoMgrCfg result.merge(TagInfoMgrCfg(configFlags)[0]) + # Set up MetaDataSvc + from AthenaServices.MetaDataSvcConfig import MetaDataSvcCfg + result.merge(MetaDataSvcCfg(configFlags, ["IOVDbMetaDataTool"])) + return result diff --git a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py index 62abeeac762..d04232cd22c 100644 --- a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py +++ b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py @@ -46,31 +46,14 @@ def ByteStreamReadCfg( inputFlags, typeNames=[] ): ByteStreamAddressProviderSvc=CompFactory.ByteStreamAddressProviderSvc bsAddressProviderSvc = ByteStreamAddressProviderSvc(TypeNames=typeNames) acc.addService( bsAddressProviderSvc ) - - IOVDbMetaDataTool=CompFactory.IOVDbMetaDataTool - iovMetaDataTool = IOVDbMetaDataTool() - acc.addPublicTool( iovMetaDataTool ) - - ByteStreamMetadataTool=CompFactory.ByteStreamMetadataTool - bsMetaDataTool = ByteStreamMetadataTool() - acc.addPublicTool( bsMetaDataTool ) - StoreGateSvc=CompFactory.StoreGateSvc ProxyProviderSvc=CompFactory.ProxyProviderSvc - metaDataStore = StoreGateSvc("MetaDataStore") - acc.addService( metaDataStore ) - inputMetaDataStore = StoreGateSvc("InputMetaDataStore") - acc.addService( inputMetaDataStore ) - - MetaDataSvc=CompFactory.MetaDataSvc - metaDataSvc = MetaDataSvc() - acc.addService( metaDataSvc ) - metaDataSvc.MetaDataContainer = "MetaDataHdr" - metaDataSvc.MetaDataTools = [ iovMetaDataTool, bsMetaDataTool ] + from AthenaServices.MetaDataSvcConfig import MetaDataSvcCfg + acc.merge(MetaDataSvcCfg(inputFlags, ["IOVDbMetaDataTool", "ByteStreamMetadataTool"])) proxy = ProxyProviderSvc() - proxy.ProviderNames += [ bsAddressProviderSvc.name(), metaDataSvc.name() ] + proxy.ProviderNames += [ bsAddressProviderSvc.name() ] acc.addService( proxy ) ByteStreamAttListMetadataSvc=CompFactory.ByteStreamAttListMetadataSvc diff --git a/LumiBlock/LumiBlockComps/python/BunchCrossingCondAlgConfig.py b/LumiBlock/LumiBlockComps/python/BunchCrossingCondAlgConfig.py index df3289e2b2f..767fe439545 100644 --- a/LumiBlock/LumiBlockComps/python/BunchCrossingCondAlgConfig.py +++ b/LumiBlock/LumiBlockComps/python/BunchCrossingCondAlgConfig.py @@ -15,7 +15,7 @@ def BunchCrossingCondAlgCfg(configFlags): if (configFlags.Input.isMC): folder = "/Digitization/Parameters" - result.merge(addFolders(configFlags,folder,"",className="AthenaAttributeList")) + result.merge(addFolders(configFlags,folder,None,className="AthenaAttributeList")) else: #data case folder = '/TDAQ/OLC/LHC/FILLPARAMS' result.merge(addFolders(configFlags,folder,'TDAQ',className = 'AthenaAttributeList')) diff --git a/Trigger/TrigCost/RatesAnalysis/share/RatesAnalysisFullMenu.py b/Trigger/TrigCost/RatesAnalysis/share/RatesAnalysisFullMenu.py index 58322ee6dab..f10aa230bd3 100755 --- a/Trigger/TrigCost/RatesAnalysis/share/RatesAnalysisFullMenu.py +++ b/Trigger/TrigCost/RatesAnalysis/share/RatesAnalysisFullMenu.py @@ -65,15 +65,8 @@ if __name__=='__main__': cfg.addService(histSvc) # Minimal config needed to read metadata: MetaDataSvc & ProxyProviderSvc - from AthenaServices.AthenaServicesConf import MetaDataSvc - mdSvc = MetaDataSvc( "MetaDataSvc" ) - mdSvc.MetaDataContainer = "MetaDataHdr" - cfg.addService(mdSvc) - # - from SGComps.SGCompsConf import ProxyProviderSvc - pdps = ProxyProviderSvc( "ProxyProviderSvc" ) - pdps.ProviderNames += [ "MetaDataSvc" ] - cfg.addService(pdps) + from AthenaServices.MetaDataSvcConfig import MetaDataSvcCfg + cfg.merge(MetaDataSvcCfg(ConfigFlags)) from TrigConfxAOD.TrigConfxAODConf import TrigConf__xAODConfigTool trigcfgtool = TrigConf__xAODConfigTool('xAODConfigTool') -- GitLab