diff --git a/AtlasTest/TestTools/share/post.sh b/AtlasTest/TestTools/share/post.sh index f9dd9f45c3848f378234a930682f368768313803..7d3f9bee13db15a1448314c32de06017360d6f20 100755 --- a/AtlasTest/TestTools/share/post.sh +++ b/AtlasTest/TestTools/share/post.sh @@ -118,6 +118,8 @@ PP="$PP"'|ClassIDSvc .* setTypeNameForID: .* already set for' PP="$PP"'|ClassIDSvc .* finalize: wrote .*' # PoolSvc PP="$PP"'|^PoolSvc.*INFO' +# AlgTool auto-retrieve (Gaudi!1124) +PP="$PP"'|^.*INFO\s+AlgTool:\s' # ignore any finalize output PP="$PP"'|^.*INFO [Ff]inali[sz]' # ignore rcs version comments diff --git a/Control/AthenaBaseComps/test/AthAlgorithmDHUpdate_test.cxx b/Control/AthenaBaseComps/test/AthAlgorithmDHUpdate_test.cxx index 045de175fac6cd4a59cb4877d2bad068ee4867db..416601e27f6463e785d1d3a17f218a2e337aa8f1 100644 --- a/Control/AthenaBaseComps/test/AthAlgorithmDHUpdate_test.cxx +++ b/Control/AthenaBaseComps/test/AthAlgorithmDHUpdate_test.cxx @@ -58,6 +58,8 @@ public: { std::abort(); } virtual void renounce(Gaudi::DataHandle&) override { std::abort(); } + virtual bool renounceInput(const DataObjID&) override + { std::abort(); } virtual unsigned long addRef() override { std::abort(); } virtual unsigned long release() override diff --git a/Control/AthenaCommon/python/Configurable.py b/Control/AthenaCommon/python/Configurable.py index 6fe8789e06a05aa023df4fca0ece26845c264cf7..9bc40db54eea96038bb54ea19e8092642d2c03a5 100755 --- a/Control/AthenaCommon/python/Configurable.py +++ b/Control/AthenaCommon/python/Configurable.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # File: AthenaCommon/python/Configurable.py # Author: Wim Lavrijsen (WLavrijsen@lbl.gov) @@ -11,6 +11,7 @@ from AthenaCommon import ConfigurableMeta # Note: load iProperty etc. from GaudiPython only as-needed import GaudiKernel.GaudiHandles as GaudiHandles +import GaudiKernel.DataHandle as DataHandle ### data --------------------------------------------------------------------- __version__ = '3.2.0' @@ -721,7 +722,9 @@ class Configurable(metaclass=ConfigurableMeta.ConfigurableMeta ): vv = v.getGaudiHandle() else: vv = v - if isinstance(vv,(GaudiHandles.GaudiHandle,GaudiHandles.GaudiHandleArray)): + if isinstance(vv,(GaudiHandles.GaudiHandle, + GaudiHandles.GaudiHandleArray, + DataHandle.DataHandle)): strVal = repr(vv) strDef = repr(default.toStringProperty()) if strDef == repr(vv.toStringProperty()): diff --git a/Control/AthenaCommon/python/PropertyProxy.py b/Control/AthenaCommon/python/PropertyProxy.py index 6d2d94bf2add695a5e8d405db2cce7ff03e1d82b..4826d2025903834db64f7059b5892c897bf37719 100755 --- a/Control/AthenaCommon/python/PropertyProxy.py +++ b/Control/AthenaCommon/python/PropertyProxy.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # File: AthenaCommon/python/PropertyProxy.py # Author: Wim Lavrijsen (WLavrijsen@lbl.gov) @@ -6,6 +6,7 @@ import os, weakref, copy from GaudiKernel.GaudiHandles import GaudiHandle, GaudiHandleArray +from GaudiKernel.DataHandle import DataHandle # dictionary with configurable class : python module entries from AthenaCommon import ConfigurableDb @@ -398,6 +399,48 @@ class GaudiHandleArrayPropertyProxy(GaudiHandlePropertyProxyBase): return newValue +class DataHandlePropertyProxy(PropertyProxy): + def __init__(self, descr, docString, default): + PropertyProxy.__init__(self, descr, docString, default) + + def __get__(self, obj, type=None): + try: + return self.descr.__get__(obj, type) + except AttributeError: + # Get default + try: + default = obj.__class__.getDefaultProperty(self.descr.__name__) + default = self.convertValueToBeSet(obj, default) + if default: + self.__set__(obj, default) + except AttributeError as e: + # change type of exception to avoid false error message + raise RuntimeError(*e.args) + + return self.descr.__get__(obj, type) + + def __set__(self, obj, value): + if not obj._isInSetDefaults() or obj not in self.history: + value = self.convertValueToBeSet(obj, value) + # assign the value + self.descr.__set__(obj, value) + log.debug("Setting %s = %r", self.fullPropertyName(obj), value) + self.history.setdefault(obj, []).append(value) + + def convertValueToBeSet(self, obj, value): + if value is None: + value = '' + + mode = obj.__class__.getDefaultProperty(self.descr.__name__).mode() + _type = obj.__class__.getDefaultProperty(self.descr.__name__).type() + if type(value) == str: + return DataHandle(value, mode, _type) + elif isinstance(value, DataHandle): + return DataHandle(value.__str__(), mode, _type) + else: + raise ValueError("received an instance of %s, but %s expected" % + (type(value), 'str or DataHandle')) + def PropertyProxyFactory( descr, doc, default ): # print "PropertyProxyFactory( %s, %r )" % (descr.__name__,default) @@ -407,4 +450,7 @@ def PropertyProxyFactory( descr, doc, default ): if isinstance(default,GaudiHandle): return GaudiHandlePropertyProxy( descr, doc, default ) + if isinstance(default,DataHandle): + return DataHandlePropertyProxy( descr, doc, default ) + return PropertyProxy( descr, doc, default ) diff --git a/Control/AthenaExamples/AthExStoreGateExample/src/WriteDataReentrant.cxx b/Control/AthenaExamples/AthExStoreGateExample/src/WriteDataReentrant.cxx index 87b1af927d3df8770429f0fc9c0bd8e715bfa283..6e1f6586ebf1255a895e8ffa700acd44d60aaccb 100644 --- a/Control/AthenaExamples/AthExStoreGateExample/src/WriteDataReentrant.cxx +++ b/Control/AthenaExamples/AthExStoreGateExample/src/WriteDataReentrant.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // $Id$ @@ -40,11 +40,11 @@ WriteDataReentrant::WriteDataReentrant(const std::string& name, { declareProperty ("DObjKey", m_dobjKey = "dobj"); declareProperty ("DObjKey2", m_dobjKey2 = "dobj2"); - declareProperty ("DObjKey3", m_dobjKey3 = name); + declareProperty ("DObjKey3", m_dobjKey3); //declareProperty ("DObjKey4", m_dobjKey4 = "dobj4"); declareProperty ("CObjKey", m_cobjKey = "cobj"); declareProperty ("VFloatKey", m_vFloatKey = "vFloat"); - declareProperty ("PLinkListKey", m_pLinkListKey = name); + declareProperty ("PLinkListKey", m_pLinkListKey); declareProperty ("MKey", m_mKey = "mkey"); declareProperty ("LinkVectorKey", m_linkVectorKey = "linkvec"); declareProperty ("TestObjectKey", m_testObjectKey = "testobj"); @@ -57,6 +57,11 @@ StatusCode WriteDataReentrant::initialize() { errorcheck::ReportMessage::hideErrorLocus(); + // If user did not set a key, use our own name. This cannot be done in the + // constructor as "DefaultName" is used during configurable generation (genconf). + if (m_dobjKey3.empty()) m_dobjKey3 = name(); + if (m_pLinkListKey.empty()) m_pLinkListKey = name(); + ATH_MSG_INFO ("in initialize()"); ATH_CHECK( m_dobjKey.initialize() ); ATH_CHECK( m_dobjKey2.initialize() ); @@ -233,7 +238,7 @@ StatusCode WriteDataReentrant::execute (const EventContext& ctx) const // persistency for it. we use dobj3, which is an object registered with // a key. - DataLink<MyDataObj> dobjLink3(name()); + DataLink<MyDataObj> dobjLink3(name()); // now access it. DataLink will do a retrieve to get it from the store. dobjLink3->val(); diff --git a/Control/AthenaKernel/CMakeLists.txt b/Control/AthenaKernel/CMakeLists.txt index 7feb5914ff98bad2629084770aa41a72ff7e27be..dd63d3716979140a209046ce77c76f1e7bc8d6fd 100644 --- a/Control/AthenaKernel/CMakeLists.txt +++ b/Control/AthenaKernel/CMakeLists.txt @@ -8,6 +8,7 @@ find_package( Boost COMPONENTS program_options regex filesystem thread ) find_package( UUID ) find_package( CLHEP ) find_package( TBB ) +find_package( nlohmann_json ) # Only link agains the RT library if it's available. find_library( RT_LIBRARY rt ) if( NOT RT_LIBRARY ) @@ -20,7 +21,7 @@ atlas_add_library( AthenaKernel PUBLIC_HEADERS AthenaKernel INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${UUID_LIBRARIES} ${RT_LIBRARY} CxxUtils DataModelRoot GaudiKernel + LINK_LIBRARIES ${Boost_LIBRARIES} ${UUID_LIBRARIES} ${RT_LIBRARY} CxxUtils DataModelRoot GaudiKernel nlohmann_json::nlohmann_json PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${CMAKE_DL_LIBS} RootUtils ) atlas_add_dictionary( AthenaKernelDict diff --git a/Control/AthenaServices/share/AthenaOutputStream_test.ref b/Control/AthenaServices/share/AthenaOutputStream_test.ref index e244ec7ae167102dda8b4bb8ddb751ba466400b5..3af18da0dcc4fd213bd85ba5ef0dca43904ec8ab 100644 --- a/Control/AthenaServices/share/AthenaOutputStream_test.ref +++ b/Control/AthenaServices/share/AthenaOutputStream_test.ref @@ -1,8 +1,8 @@ *** AthenaOutputStream_test starts *** -Initializing Gaudi ApplicationMgr using job opts /home/atlas/athena/build/x86_64-centos7-gcc8-opt/jobOptions/AthenaServices/AthenaOutputStream_test.txt -JobOptionsSvc INFO # =======> /home/atlas/athena/build/x86_64-centos7-gcc8-opt/jobOptions/AthenaServices/AthenaOutputStream_test.txt +Initializing Gaudi ApplicationMgr using job opts /scratch/fwinkl/handle2/x86_64-centos7-gcc8-dbg/jobOptions/AthenaServices/AthenaOutputStream_test.txt +JobOptionsSvc INFO # =======> /scratch/fwinkl/handle2/x86_64-centos7-gcc8-dbg/jobOptions/AthenaServices/AthenaOutputStream_test.txt JobOptionsSvc INFO # (5,1): MessageSvc.OutputLevel = 2 JobOptionsSvc INFO # (6,1): StoreGateSvc.OutputLevel = 2 JobOptionsSvc INFO # (8,1): AthenaOutputStream.OutputLevel = 1 @@ -12,13 +12,13 @@ JobOptionsSvc INFO # (21,1): AthenaOutputStream.CompressionListHigh = ["B JobOptionsSvc INFO # (22,1): AthenaOutputStream.CompressionBitsLow = 16 JobOptionsSvc INFO # (23,1): AthenaOutputStream.CompressionListLow = ["BazAuxContainer#compAux.zzz"] JobOptionsSvc INFO # (25,1): AthenaOutputStream.AcceptAlgs = ["AthenaOutputStream", "aSFQS"] -JobOptionsSvc INFO Job options successfully read in from /home/atlas/athena/build/x86_64-centos7-gcc8-opt/jobOptions/AthenaServices/AthenaOutputStream_test.txt +JobOptionsSvc INFO Job options successfully read in from /scratch/fwinkl/handle2/x86_64-centos7-gcc8-dbg/jobOptions/AthenaServices/AthenaOutputStream_test.txt MessageSvc DEBUG Service base class initialized successfully ApplicationMgr DEBUG Getting my own properties ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v34r0) - running on 93d7764165d7 on Fri Sep 11 10:18:05 2020 + Welcome to ApplicationMgr (GaudiCoreSvc v34r1) + running on pc-tbed-pub-32.cern.ch on Tue Oct 27 13:47:26 2020 ==================================================================================================================================== ApplicationMgr INFO Application Manager Configured successfully ServiceManager DEBUG Initializing service AppMgrRunable @@ -42,10 +42,10 @@ IncidentSvc DEBUG Adding [ModuleLoaded] listener 'ClassIDSvc' with prior ClassIDSvc INFO getRegistryEntries: read 1596 CLIDRegistry entries for module ALL ClassIDSvc FATAL uncheckedSetTypePackageForID: StoreGate-00-00-00 can not set type name <B1> for CLID 8111: Known name for this ID <Baz> It was set by AthenaServices-00-00-00 ClassIDSvc FATAL uncheckedSetTypePackageForID: StoreGate-00-00-00 can not set type name <D1> for CLID 8112: Known name for this ID <BazAuxContainer> It was set by AthenaServices-00-00-00 -ClassIDSvc DEBUG processCLIDDB: read 1757 entries from CLIDDB file: /home/atlas/athena/build/x86_64-centos7-gcc8-opt/share/clid.db +ClassIDSvc DEBUG processCLIDDB: read 1765 entries from CLIDDB file: /scratch/fwinkl/handle2/x86_64-centos7-gcc8-dbg/share/clid.db ClassIDSvc FATAL uncheckedSetTypePackageForID: StoreGate-00-00-00 can not set type name <B1> for CLID 8111: Known name for this ID <Baz> It was set by AthenaServices-00-00-00 ClassIDSvc FATAL uncheckedSetTypePackageForID: StoreGate-00-00-00 can not set type name <D1> for CLID 8112: Known name for this ID <BazAuxContainer> It was set by AthenaServices-00-00-00 -ClassIDSvc DEBUG processCLIDDB: read 1757 entries from CLIDDB file: /cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc8-opt/2020-09-10T2101/Athena/22.0.18/InstallArea/x86_64-centos7-gcc8-opt/share/clid.db +ClassIDSvc DEBUG processCLIDDB: read 1765 entries from CLIDDB file: /cvmfs/atlas-nightlies.cern.ch/repo/sw/master--masterGAUDI_Athena_x86_64-centos7-gcc8-dbg/2020-10-26T2101/Athena/22.0.19/InstallArea/x86_64-centos7-gcc8-dbg/share/clid.db StoreGateSvc DEBUG Service base class initialized successfully StoreGateSvc DEBUG trying to create store SGImplSvc/StoreGateSvc_Impl StoreGateSvc_Impl DEBUG Service base class initialized successfully @@ -75,7 +75,6 @@ OutputStreamSeq... INFO Initializing OutputStreamSequencerSvc - package versio OutputStreamSeq... DEBUG Service base class initialized successfully AthenaOutputStr... DEBUG Property update for OutputLevel : new value = 1 AthenaOutputStr... INFO Initializing AthenaOutputStream.AthenaOutputStreamTool - package version AthenaServices-00-00-00 -AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 DataModelCompatSvc DEBUG Service base class initialized successfully DataModelCompatSvc DEBUG FILE:LINE (StatusCode DataModelCompatSvc::initialize()): running IncidentSvc DEBUG Adding [BeginEvent] listener 'DataModelCompatSvc' with priority 0 @@ -92,14 +91,19 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc DEBUG Service base class initialized successfully -DBReplicaSvc DEBUG HOSTNAME 93d7764165d7 has no domain - try hostname --fqdn -DBReplicaSvc DEBUG HOSTNAME from fqdn: 93d7764165d7 -DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://frontier-atlas.lcg.triumf.ca:3128/ATLAS_frontier)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc8-opt/2020-09-10T2101/Athena/22.0.18/InstallArea/x86_64-centos7-gcc8-opt/share/dbreplica.config -DBReplicaSvc INFO No specific match for domain found - use default fallback -DBReplicaSvc DEBUG Candidate server ATLF (priority -2000) -DBReplicaSvc DEBUG Candidate server atlas_dd (priority 5) -DBReplicaSvc INFO Total of 2 servers found for host 93d7764165d7 [ATLF atlas_dd ] +DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://atlasfrontier2-ai.cern.ch:8000/atlr)(serverurl=http://atlasfrontier1-ai.cern.ch:8000/atlr)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(serverurl=http://ccfrontier01.in2p3.fr:23128/ccin2p3-AtlasFrontier)(serverurl=http://ccfrontier02.in2p3.fr:23128/ccin2p3-AtlasFrontier)(serverurl=http://ccfrontier03.in2p3.fr:23128/ccin2p3-AtlasFrontier)(serverurl=http://ccfrontier05.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master--masterGAUDI_Athena_x86_64-centos7-gcc8-dbg/2020-10-26T2101/Athena/22.0.19/InstallArea/x86_64-centos7-gcc8-dbg/share/dbreplica.config +DBReplicaSvc DEBUG Candidate server ATLF (priority -2700) +DBReplicaSvc DEBUG Candidate server ATLAS_COOLPROD (priority -695) +DBReplicaSvc DEBUG Candidate server atlas_dd (priority -690) +DBReplicaSvc DEBUG Candidate server ATLAS_CONFIG (priority -685) +DBReplicaSvc DEBUG Candidate server INT8R (priority -680) +DBReplicaSvc DEBUG Candidate server INTR (priority -675) +DBReplicaSvc DEBUG Candidate server ATONR_COOL (priority -670) +DBReplicaSvc DEBUG Candidate server ATONR_CONF (priority -665) +DBReplicaSvc DEBUG Candidate server DEVDB11 (priority -660) +DBReplicaSvc DEBUG Candidate server ATLF (priority -2200) +DBReplicaSvc INFO Total of 10 servers found for host pc-tbed-pub-32.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc DEBUG OutputLevel is 2 PoolSvc INFO Setting up APR FileCatalog and Streams @@ -108,6 +112,9 @@ PoolSvc INFO POOL WriteCatalog is xmlcatalog_file:PoolFileCatalog.x DbSession INFO Open DbSession Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] ChronoStatSvc DEBUG Service base class initialized successfully +IoComponentMgr DEBUG --> io_register(AthenaPoolCnvSvc) +IoComponentMgr DEBUG registering IoComponent "AthenaPoolCnvSvc" +AthenaPoolCnvSvc DEBUG Registering all Tools in ToolHandleArray OutputStreamingTool ServiceManager FATAL No Service factory for DetectorStore available. AthenaOutputStr... ERROR ServiceLocatorHelper::service: can not locate service DetectorStore AthenaOutputStream INFO Found HelperTools = PrivateToolHandleArray([]) @@ -132,37 +139,37 @@ AthenaOutputStream DEBUG Data Deps for AthenaOutputStream + INPUT IGNORED ( 'AthenaAttributeList' , '' ) + OUTPUT ( 'SG::CompressionInfo' , 'StoreGateSvc+CompressionInfo_AthenaOutputStream' ) + OUTPUT ( 'SG::SelectionVetoes' , 'StoreGateSvc+SelectionVetoes_AthenaOutputStream' ) -StoreGateSvc DEBUG Recorded object @0x5647790 with key uno of type Foo(CLID 8101) - in DataObject @0x5647980 +StoreGateSvc DEBUG Recorded object @0x5c890a0 with key uno of type Foo(CLID 8101) + in DataObject @0x5c89260 object modifiable when retrieved -StoreGateSvc DEBUG Recorded object @0x5647f50 with key due of type Foo(CLID 8101) - in DataObject @0x5648190 +StoreGateSvc DEBUG Recorded object @0x5c89800 with key due of type Foo(CLID 8101) + in DataObject @0x5c899b0 object modifiable when retrieved -StoreGateSvc DEBUG Recorded object @0x5647f30 with key uno of type Bar(CLID 8107) - in DataObject @0x5648460 +StoreGateSvc DEBUG Recorded object @0x5c89780 with key uno of type Bar(CLID 8107) + in DataObject @0x5c89c80 object modifiable when retrieved -StoreGateSvc DEBUG Recorded object @0x5647f10 with key due of type Bar(CLID 8107) - in DataObject @0x5648760 +StoreGateSvc DEBUG Recorded object @0x5c89760 with key due of type Bar(CLID 8107) + in DataObject @0x5c89fb0 object modifiable when retrieved -StoreGateSvc DEBUG Recorded object @0x5648ac0 with key quattro of type Bar(CLID 8107) - in DataObject @0x5648a30 +StoreGateSvc DEBUG Recorded object @0x5c8a340 with key quattro of type Bar(CLID 8107) + in DataObject @0x5c8a2b0 object modifiable when retrieved -StoreGateSvc DEBUG Recorded object @0x5648eb0 with key cinque of type Bar(CLID 8107) - in DataObject @0x5648e00 +StoreGateSvc DEBUG Recorded object @0x5c8a730 with key cinque of type Bar(CLID 8107) + in DataObject @0x5c8a680 object modifiable when retrieved -StoreGateSvc DEBUG Recorded object @0x56493f0 with key sei of type Baz(CLID 8111) - in DataObject @0x5647ce0 +StoreGateSvc DEBUG Recorded object @0x5c8acd0 with key sei of type Baz(CLID 8111) + in DataObject @0x5c91590 object modifiable when retrieved -StoreGateSvc DEBUG Recorded object @0x5649420 with key seiAux. of type BazAuxContainer(CLID 8112) - in DataObject @0x564ff30 +StoreGateSvc DEBUG Recorded object @0x5c8ad00 with key seiAux. of type BazAuxContainer(CLID 8112) + in DataObject @0x5c89510 object modifiable when retrieved -StoreGateSvc DEBUG Recorded object @0x5650810 with key comp of type Baz(CLID 8111) - in DataObject @0x5657240 +StoreGateSvc DEBUG Recorded object @0x5c8a3e0 with key comp of type Baz(CLID 8111) + in DataObject @0x5c896f0 object modifiable when retrieved -StoreGateSvc DEBUG Recorded object @0x5650840 with key compAux. of type BazAuxContainer(CLID 8112) - in DataObject @0x56576d0 +StoreGateSvc DEBUG Recorded object @0x5c92230 with key compAux. of type BazAuxContainer(CLID 8112) + in DataObject @0x5c8ab50 object modifiable when retrieved -ClassIDSvc INFO getRegistryEntries: read 727 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 721 CLIDRegistry entries for module ALL AthenaOutputStr...WARNING add: can not find clid 13 in clid db AthenaOutputStream DEBUG addItemObjects(13,"*") called AthenaOutputStream DEBUG Key:* @@ -190,6 +197,7 @@ IncidentSvc DEBUG Adding [BeginInputFile] listener 'MetaDataSvc' with pr IncidentSvc DEBUG Adding [EndInputFile] listener 'MetaDataSvc' with priority 10 IoComponentMgr DEBUG --> io_register(MetaDataSvc) IoComponentMgr DEBUG registering IoComponent "MetaDataSvc" +MetaDataSvc DEBUG Registering all Tools in ToolHandleArray MetaDataTools MetaDataSvc DEBUG Not translating metadata item ID #13 AthenaOutputStream DEBUG Failed to receive proxy iterators from StoreGate for 13,"*". Skipping AthenaOutputStream DEBUG addItemObjects(8101,"*") called diff --git a/Control/AthenaServices/src/AthenaEventLoopMgr.cxx b/Control/AthenaServices/src/AthenaEventLoopMgr.cxx index f6059f351d5602b581ebf6febdefd60ab99da315..6e0e0d219a328ccb577838a1cbb364443a2d7116 100644 --- a/Control/AthenaServices/src/AthenaEventLoopMgr.cxx +++ b/Control/AthenaServices/src/AthenaEventLoopMgr.cxx @@ -124,6 +124,9 @@ StatusCode AthenaEventLoopMgr::initialize() << " - package version " << PACKAGE_VERSION << endmsg ; + m_autoRetrieveTools = false; + m_checkToolDeps = false; + StatusCode sc = MinimalEventLoopMgr::initialize(); if ( !sc.isSuccess() ) { diff --git a/Control/PerformanceMonitoring/PerfMonEvent/CMakeLists.txt b/Control/PerformanceMonitoring/PerfMonEvent/CMakeLists.txt index b8b87a5a403e069c7fad82484258ca9006814de9..def162b93526d9656b10bf9a6873435ccfc9d024 100644 --- a/Control/PerformanceMonitoring/PerfMonEvent/CMakeLists.txt +++ b/Control/PerformanceMonitoring/PerfMonEvent/CMakeLists.txt @@ -6,6 +6,7 @@ atlas_subdir( PerfMonEvent ) # External dependencies: find_package( Python COMPONENTS Development ) find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) +find_package( nlohmann_json ) # We don't have a direct dependency on boost from this package, but if we # pick up the dependency implicitly rather than explicitly, we include @@ -24,7 +25,7 @@ atlas_add_library( PerfMonEvent PUBLIC_HEADERS PerfMonEvent INCLUDE_DIRS ${Python_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Python_LIBRARIES} ${Boost_LIBRARIES} GaudiKernel rt + LINK_LIBRARIES ${Python_LIBRARIES} ${Boost_LIBRARIES} GaudiKernel rt nlohmann_json::nlohmann_json PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ) atlas_add_dictionary( PerfMonEventDict diff --git a/Control/PerformanceMonitoring/PerfMonKernel/CMakeLists.txt b/Control/PerformanceMonitoring/PerfMonKernel/CMakeLists.txt index 9e25e2831531903de0e1107f1b7abd23fa18e69f..f1819b438d712d8c5b3ff207b234ae9c3f15dae1 100644 --- a/Control/PerformanceMonitoring/PerfMonKernel/CMakeLists.txt +++ b/Control/PerformanceMonitoring/PerfMonKernel/CMakeLists.txt @@ -5,11 +5,12 @@ atlas_subdir( PerfMonKernel ) # External dependencies: find_package( Boost ) +find_package( nlohmann_json ) # Component(s) in the package: atlas_add_library( PerfMonKernel src/*.cxx PUBLIC_HEADERS PerfMonKernel INCLUDE_DIRS ${Boost_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} GaudiKernel ) + LINK_LIBRARIES ${Boost_LIBRARIES} GaudiKernel nlohmann_json::nlohmann_json ) diff --git a/Control/PileUpTools/src/PileUpMergeSvc.cxx b/Control/PileUpTools/src/PileUpMergeSvc.cxx index b5af613ade38f6e56266bc0da338728eb39a4a6d..0a765e9be61f3510c7cdda2263158ae93768f764 100755 --- a/Control/PileUpTools/src/PileUpMergeSvc.cxx +++ b/Control/PileUpTools/src/PileUpMergeSvc.cxx @@ -91,8 +91,13 @@ void PileUpMergeSvc::decodeIntervals() { /// Service initialisation StatusCode PileUpMergeSvc::initialize() { + msg() << MSG::INFO << "Initializing AthService " << name() << " - package version " << PACKAGE_VERSION << endmsg ; + + m_autoRetrieveTools = false; + m_checkToolDeps = false; + // set up the SG service: if ( !(p_overStore.retrieve()).isSuccess() ) { diff --git a/Control/StoreGate/StoreGate/VarHandleKey.h b/Control/StoreGate/StoreGate/VarHandleKey.h index 3c223ba533b3ae682a6ce782ad722ed4c465abdf..bd8bb9a1f8086e6cd4e40d3cca35fa4930ac9cda 100644 --- a/Control/StoreGate/StoreGate/VarHandleKey.h +++ b/Control/StoreGate/StoreGate/VarHandleKey.h @@ -1,7 +1,7 @@ // This file's extension implies that it's C, but it's really -*- C++ -*-. /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // $Id$ @@ -32,7 +32,7 @@ enum AllowEmptyEnum { class VarHandleBase; - +class VarHandleKeyProperty; /** * @brief A property holding a SG store/key/clid from which a VarHandle is made. @@ -85,6 +85,12 @@ public: bool isCond = false); + /** + * @brief Declare corresponding property type + */ + using PropertyType = SG::VarHandleKeyProperty; + + /** * @brief Change the key of the object to which we're referring. * @param sgkey The StoreGate key for the object. @@ -228,6 +234,10 @@ private: */ void updateHandle (const std::string& name); + /** + * @brief Python representation of Handle. + */ + virtual std::string pythonRepr() const override; /// Handle to the referenced store. ServiceHandle<IProxyDict> m_storeHandle; diff --git a/Control/StoreGate/StoreGate/VarHandleKeyProperty.h b/Control/StoreGate/StoreGate/VarHandleKeyProperty.h index 1f2cd81d32c33f128802672b77067adc2af6ec56..5d98e4a9215c5a99c93de1df2a68e597166b8a39 100644 --- a/Control/StoreGate/StoreGate/VarHandleKeyProperty.h +++ b/Control/StoreGate/StoreGate/VarHandleKeyProperty.h @@ -1,10 +1,9 @@ // This file's extension implies that it's C, but it's really -*- C++ -*-. /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id$ /** * @file StoreGate/VarHandleKeyProperty.h * @author scott snyder <snyder@bnl.gov> @@ -29,7 +28,7 @@ #include "StoreGate/UpdateHandleKey.h" #include "StoreGate/ReadDecorHandleKey.h" #include "StoreGate/WriteDecorHandleKey.h" -#include "Gaudi/Property.h" +#include "GaudiKernel/DataHandleProperty.h" #include <iostream> namespace Gaudi { @@ -78,7 +77,7 @@ namespace SG { * The Property object refers to an instance of @c SG::VarHandleKey * (the value object) and provides generic methods for manipulating it. */ - class GAUDI_API VarHandleKeyProperty : public PropertyWithHandlers <> +class GAUDI_API VarHandleKeyProperty : public DataHandleProperty { public: diff --git a/Control/StoreGate/src/VarHandleKey.cxx b/Control/StoreGate/src/VarHandleKey.cxx index 6cc64ce9658f15551592dade1b7ffeecbcb5b74a..0c61a311cb79f52ac8bb26733614e6b2561edd7a 100644 --- a/Control/StoreGate/src/VarHandleKey.cxx +++ b/Control/StoreGate/src/VarHandleKey.cxx @@ -11,14 +11,18 @@ */ +#include "GaudiKernel/DataHandle.h" +#include "GaudiKernel/ToStream.h" + #include "StoreGate/VarHandleKey.h" #include "StoreGate/exceptions.h" +#include "StoreGate/StoreGateSvc.h" #include "AthenaKernel/getMessageSvc.h" #include "AthenaKernel/errorcheck.h" #include "AthenaKernel/StoreID.h" #include <boost/tokenizer.hpp> -#include "StoreGate/StoreGateSvc.h" +#include <sstream> static const char* const storeSeparator = "+"; @@ -305,6 +309,33 @@ void VarHandleKey::updateHandle (const std::string& name) } } +/** + * @brief Python representation of Handle. + */ +std::string VarHandleKey::pythonRepr() const +{ + // FIXME: use Gaudi!1126 + std::string className = fullKey().fullKey(); + className = className.substr(0, className.find('/')); + if (className.empty()) className = Gaudi::DataHandle::default_type; + + std::ostringstream ost; + ost << "DataHandle("; + Gaudi::Utils::toStream(m_storeHandle.name() + storeSeparator + m_sgKey, ost); + ost << ","; + switch (mode()) { + case Gaudi::DataHandle::Writer: Gaudi::Utils::toStream("W", ost); break; + case Gaudi::DataHandle::Updater: Gaudi::Utils::toStream("U", ost); break; + default: Gaudi::Utils::toStream("R", ost); break; + } + ost << ","; Gaudi::Utils::toStream(className, ost); + ost << ","; Gaudi::Utils::toStream(isCondition(), ost); + ost << ")"; + + return ost.str(); +} + + } // namespace SG namespace std { diff --git a/Control/StoreGate/src/VarHandleKeyProperty.cxx b/Control/StoreGate/src/VarHandleKeyProperty.cxx index 97f29db2aa857e84b5e680d6e247707438500e53..e408ef8d27adce0def7eaea38c8996dcf21483e6 100644 --- a/Control/StoreGate/src/VarHandleKeyProperty.cxx +++ b/Control/StoreGate/src/VarHandleKeyProperty.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // $Id$ @@ -79,7 +79,7 @@ namespace SG { */ VarHandleKeyProperty::VarHandleKeyProperty( const std::string& name, SG::VarHandleKey& ref ) - : PropertyWithHandlers( name, typeid( SG::VarHandleKey ) ), + : DataHandleProperty( name, ref ), m_pValue( &ref ) { } diff --git a/Control/StoreGate/test/ReadDecorHandleKeyArray_test.cxx b/Control/StoreGate/test/ReadDecorHandleKeyArray_test.cxx index ada84e817ba92dce3c305a255c87870aa7c9204c..5414fe843286c92f481fe2df4fbafd3664c27d72 100644 --- a/Control/StoreGate/test/ReadDecorHandleKeyArray_test.cxx +++ b/Control/StoreGate/test/ReadDecorHandleKeyArray_test.cxx @@ -46,6 +46,7 @@ public: virtual void declare(Gaudi::DataHandle&) override { std::abort(); } virtual void renounce(Gaudi::DataHandle&) override { std::abort(); } + virtual bool renounceInput(const DataObjID&) override { std::abort(); } std::vector<Gaudi::DataHandle*> m_inputHandles; std::vector<Gaudi::DataHandle*> m_outputHandles; diff --git a/Control/StoreGate/test/ReadDecorHandleKey_test.cxx b/Control/StoreGate/test/ReadDecorHandleKey_test.cxx index 4acde5b3ec1700431b1754334eb4b663e9aaa428..30c9ee4d3cdc14d80d79efa285f97551613a803e 100644 --- a/Control/StoreGate/test/ReadDecorHandleKey_test.cxx +++ b/Control/StoreGate/test/ReadDecorHandleKey_test.cxx @@ -48,7 +48,7 @@ void test1() assert (k3.mode() == Gaudi::DataHandle::Reader); assert (owner.getProperty ("CCCKey").name() == "CCCKey"); assert (owner.getProperty ("CCCKey").documentation() == "doc string"); - assert (owner.getProperty ("CCCKey").type_info() == &typeid(SG::VarHandleKey)); + assert (owner.getProperty ("CCCKey").type_info() == &typeid(SG::ReadHandleKey<MyObj>)); assert (owner.getProperty ("CCCKey").toString() == "'StoreGateSvc+ccc.dec'"); assert (owner.getProperty ("CCCKey").ownerTypeName() == "TestOwner"); } diff --git a/Control/StoreGate/test/ReadHandleKey_test.cxx b/Control/StoreGate/test/ReadHandleKey_test.cxx index 80ac372c1f39e920136403a04da93ba5acb6d6e7..6ef46910d715a1a0e18b5d9601a5c7a8745d12be 100644 --- a/Control/StoreGate/test/ReadHandleKey_test.cxx +++ b/Control/StoreGate/test/ReadHandleKey_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // $Id$ @@ -66,7 +66,7 @@ void test1() assert (k3.mode() == Gaudi::DataHandle::Reader); assert (owner.getProperty ("CCCKey").name() == "CCCKey"); assert (owner.getProperty ("CCCKey").documentation() == "doc string"); - assert (owner.getProperty ("CCCKey").type_info() == &typeid(SG::VarHandleKey)); + assert (owner.getProperty ("CCCKey").type_info() == &typeid(SG::ReadHandleKey<MyObj>)); assert (owner.getProperty ("CCCKey").toString() == "'StoreGateSvc+ccc'"); assert (owner.getProperty ("CCCKey").ownerTypeName() == "TestOwner"); } diff --git a/Control/StoreGate/test/TestOwner.h b/Control/StoreGate/test/TestOwner.h index 074fedb515dca25d801fec1dbd754aab3949d726..e289c93db20b7a0b65f775f702b0f5d8551bc18e 100644 --- a/Control/StoreGate/test/TestOwner.h +++ b/Control/StoreGate/test/TestOwner.h @@ -50,6 +50,7 @@ public: } virtual void declare( Gaudi::DataHandle& ) override { std::abort(); } virtual void renounce( Gaudi::DataHandle& ) override { std::abort(); } + virtual bool renounceInput(const DataObjID&) override { std::abort(); } std::string m_name = "TestOwner"; diff --git a/Control/StoreGate/test/ThinningHandleKey_test.cxx b/Control/StoreGate/test/ThinningHandleKey_test.cxx index bcc0d467df94bfab753bbfbd866ee730271f0cd7..09b621f89f194166d4666a35e825e4e91a8d151b 100644 --- a/Control/StoreGate/test/ThinningHandleKey_test.cxx +++ b/Control/StoreGate/test/ThinningHandleKey_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /** * @file StoreGate/test/ThinningHandleKey_test.cxx @@ -51,7 +51,7 @@ void test1() assert (!k2.storeHandle().isSet()); assert (owner.getProperty ("AAB").name() == "AAB"); assert (owner.getProperty ("AAB").documentation() == "doc string"); - assert (owner.getProperty ("AAB").type_info() == &typeid(SG::VarHandleKey)); + assert (owner.getProperty ("AAB").type_info() == &typeid(SG::ReadHandleKey<MyObj>)); assert (owner.getProperty ("AAB").toString() == "'StoreGateSvc+aab'"); assert (owner.getProperty ("AAB").ownerTypeName() == "TestOwner"); assert (k2.initialize("stream").isSuccess()); diff --git a/Control/StoreGate/test/WriteDecorHandleKeyArray_test.cxx b/Control/StoreGate/test/WriteDecorHandleKeyArray_test.cxx index 252c235aa1aa4843651109a0ff6a01179c1bbaa2..53ae3daad2c11307aba41b2e06735fa12724dfb9 100644 --- a/Control/StoreGate/test/WriteDecorHandleKeyArray_test.cxx +++ b/Control/StoreGate/test/WriteDecorHandleKeyArray_test.cxx @@ -50,6 +50,7 @@ public: virtual void declare(Gaudi::DataHandle&) override { std::abort(); } virtual void renounce(Gaudi::DataHandle&) override { std::abort(); } + virtual bool renounceInput(const DataObjID&) override { std::abort(); } std::vector<Gaudi::DataHandle*> m_inputHandles; std::vector<Gaudi::DataHandle*> m_outputHandles; diff --git a/Control/StoreGate/test/WriteDecorHandleKey_test.cxx b/Control/StoreGate/test/WriteDecorHandleKey_test.cxx index 7fc7170853781ebfa36ca0a7ab3c2bfd760a2b13..7ea323e896358f843cc81e2b7742ca97ae2697fb 100644 --- a/Control/StoreGate/test/WriteDecorHandleKey_test.cxx +++ b/Control/StoreGate/test/WriteDecorHandleKey_test.cxx @@ -45,6 +45,7 @@ public: virtual void declare(Gaudi::DataHandle&) override { std::abort(); } virtual void renounce(Gaudi::DataHandle&) override { std::abort(); } + virtual bool renounceInput(const DataObjID&) override { std::abort(); } std::vector<Gaudi::DataHandle*> m_inputHandles; std::vector<Gaudi::DataHandle*> m_outputHandles; @@ -108,7 +109,7 @@ void test1() assert (k3.contHandleKey().mode() == Gaudi::DataHandle::Reader); assert (owner.getProperty ("CCCKey").name() == "CCCKey"); assert (owner.getProperty ("CCCKey").documentation() == "doc string"); - assert (owner.getProperty ("CCCKey").type_info() == &typeid(SG::VarHandleKey)); + assert (owner.getProperty ("CCCKey").type_info() == &typeid(SG::WriteHandleKey<MyObj>)); assert (owner.getProperty ("CCCKey").toString() == "'StoreGateSvc+ccc.dec'"); assert (owner.getProperty ("CCCKey").ownerTypeName() == "TestOwner"); } diff --git a/Control/StoreGate/test/WriteHandleKey_test.cxx b/Control/StoreGate/test/WriteHandleKey_test.cxx index 62e05b8a79a9a22be0351e3913229ef42e96b543..ccce6b9f5f2218858c2c6d41cb35b8520ad12158 100644 --- a/Control/StoreGate/test/WriteHandleKey_test.cxx +++ b/Control/StoreGate/test/WriteHandleKey_test.cxx @@ -66,7 +66,7 @@ void test1() assert (k3.mode() == Gaudi::DataHandle::Writer); assert (owner.getProperty ("CCCKey").name() == "CCCKey"); assert (owner.getProperty ("CCCKey").documentation() == "doc string"); - assert (owner.getProperty ("CCCKey").type_info() == &typeid(SG::VarHandleKey)); + assert (owner.getProperty ("CCCKey").type_info() == &typeid(SG::WriteHandleKey<MyObj>)); assert (owner.getProperty ("CCCKey").toString() == "'StoreGateSvc+ccc'"); assert (owner.getProperty ("CCCKey").ownerTypeName() == "TestOwner"); } diff --git a/Database/AthenaPOOL/EventSelectorAthenaPool/src/EventSelectorAthenaPool.cxx b/Database/AthenaPOOL/EventSelectorAthenaPool/src/EventSelectorAthenaPool.cxx index 028536cd2663ae7175561a896c9312962a4ce147..03ea3fae542cdd26813e12df03dcc72a331d2e6d 100644 --- a/Database/AthenaPOOL/EventSelectorAthenaPool/src/EventSelectorAthenaPool.cxx +++ b/Database/AthenaPOOL/EventSelectorAthenaPool/src/EventSelectorAthenaPool.cxx @@ -82,6 +82,10 @@ StoreGateSvc* EventSelectorAthenaPool::eventStore() const { } //________________________________________________________________________________ StatusCode EventSelectorAthenaPool::initialize() { + + m_autoRetrieveTools = false; + m_checkToolDeps = false; + if (m_isSecondary.value()) { ATH_MSG_DEBUG("Initializing secondary event selector " << name()); } else { diff --git a/DetectorDescription/RegionSelector/src/RegSelSvc.cxx b/DetectorDescription/RegionSelector/src/RegSelSvc.cxx index 3e5ec0f646c418827a754854b745fc9bd95f9119..d27ac022908155fb64f970d092d14c916e4fed1e 100755 --- a/DetectorDescription/RegionSelector/src/RegSelSvc.cxx +++ b/DetectorDescription/RegionSelector/src/RegSelSvc.cxx @@ -142,6 +142,9 @@ RegSelSvc::queryInterface(const InterfaceID& riid, void** ppvInterface) { StatusCode RegSelSvc::initialize() { + m_checkToolDeps = false; + m_autoRetrieveTools = false; + m_errorFlag=false; ATH_CHECK( AthService::initialize() ); ATH_CHECK (m_detStore.retrieve() ); diff --git a/Event/ByteStreamCnvSvc/src/EventSelectorByteStream.cxx b/Event/ByteStreamCnvSvc/src/EventSelectorByteStream.cxx index 180523f964ba92fac034ce33dc9b6261aad02128..bc20c5f82e7b6cef0af03b8103317d444d044ff0 100644 --- a/Event/ByteStreamCnvSvc/src/EventSelectorByteStream.cxx +++ b/Event/ByteStreamCnvSvc/src/EventSelectorByteStream.cxx @@ -81,6 +81,10 @@ EventSelectorByteStream::eventStore() const { //________________________________________________________________________________ StatusCode EventSelectorByteStream::initialize() { + + m_autoRetrieveTools = false; + m_checkToolDeps = false; + if (m_isSecondary.value()) { ATH_MSG_DEBUG("Initializing secondary event selector " << name()); } else { diff --git a/HLT/Trigger/TrigControl/TrigServices/src/HltEventLoopMgr.cxx b/HLT/Trigger/TrigControl/TrigServices/src/HltEventLoopMgr.cxx index 79f872a18c446dae0b92ee1246aec7217d7de54d..915a5173ba7f6dac21b79813c66edc1c36851ba7 100644 --- a/HLT/Trigger/TrigControl/TrigServices/src/HltEventLoopMgr.cxx +++ b/HLT/Trigger/TrigControl/TrigServices/src/HltEventLoopMgr.cxx @@ -105,6 +105,10 @@ HltEventLoopMgr::~HltEventLoopMgr() // ============================================================================= StatusCode HltEventLoopMgr::initialize() { + // Do not auto-retrieve tools (see Gaudi!1124) + m_autoRetrieveTools = false; + m_checkToolDeps = false; + ATH_MSG_VERBOSE("start of " << __FUNCTION__); ATH_MSG_INFO(" ---> HltEventLoopMgr = " << name() << " initialize - package version " << PACKAGE_VERSION); diff --git a/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py b/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py index 845c1e93ebbc3a834ea7d9c564cc3be90cbe0cde..738553396c400e807b91fedea40c632b943ac930 100644 --- a/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py +++ b/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py @@ -1469,9 +1469,10 @@ def searchProb(prob_val) : if isinstance(prop,ConfigurableAlgTool) and not prop.isInToolSvc() : yield prop + from GaudiKernel.DataHandle import DataHandle for a_comp in iterateComp() : for name,prop in a_comp.getProperties().items() : - if isinstance(prop ,str) and prop == prob_val : + if isinstance(prop,(str,DataHandle)) and str(prop) == prob_val : return True return False @@ -1594,6 +1595,7 @@ def combinedClusterSplitProbName() : pass # CombinedInDetClusterSplitProbContainer = ClusterSplitProbContainer # @TODO handle cluster splitting probability ? if InDetFlags.doDBMstandalone(): CombinedInDetClusterSplitProbContainer='' + return CombinedInDetClusterSplitProbContainer if hasSplitProb(CombinedInDetClusterSplitProbContainer) else '' def pixelClusterSplitProbName() : diff --git a/LArCalorimeter/LArCnv/LArByteStream/python/LArByteStreamConfig.py b/LArCalorimeter/LArCnv/LArByteStream/python/LArByteStreamConfig.py index 56c50a80186466bb5a1b2e2069906dfa82ce8134..6ea1636676428559381632c704708362ecac09d5 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/python/LArByteStreamConfig.py +++ b/LArCalorimeter/LArCnv/LArByteStream/python/LArByteStreamConfig.py @@ -14,7 +14,7 @@ def LArRawDataContByteStreamToolConfig (name="LArRawDataContByteStreamTool", from CaloTools.CaloNoiseCondAlg import CaloNoiseCondAlg noisealg = CaloNoiseCondAlg ('totalNoise') if stream: - key = noisealg.OutputKey + key = str(noisealg.OutputKey) if key.find ('+') < 0: key = 'ConditionStore+' + key stream.ExtraInputs += [('CaloNoise', key)] diff --git a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py index 44761dd60720c99280fa105d604bba4716130129..ea8f1362d0b74818755c844bce8a1e18393ccfba 100644 --- a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py +++ b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py @@ -25,14 +25,14 @@ def RoIBResultToxAODCfg(flags, seqName=''): outputList = [] if alg.DoMuon: outputList += [ - ("xAOD::MuonRoIContainer", alg.xAODKeyMuon) + ("xAOD::MuonRoIContainer", str(alg.xAODKeyMuon)) ] if alg.DoCalo: outputList += [ - ("xAOD::EmTauRoIContainer", alg.xAODKeyEmTau), - ("xAOD::EnergySumRoI", alg.xAODKeyEsum), - ("xAOD::JetEtRoI", alg.xAODKeyJetEt), - ("xAOD::JetRoIContainer", alg.xAODKeyJet) + ("xAOD::EmTauRoIContainer", str(alg.xAODKeyEmTau)), + ("xAOD::EnergySumRoI", str(alg.xAODKeyEsum)), + ("xAOD::JetEtRoI", str(alg.xAODKeyJetEt)), + ("xAOD::JetRoIContainer", str(alg.xAODKeyJet)) ] return acc, outputList diff --git a/Projects/AthGeneration/externals.txt b/Projects/AthGeneration/externals.txt index 8ea0e812eee807c0b2b1dd881ebe4bdf369e48c6..216ce0a2c3254481b87e35b290405ab534b88831 100644 --- a/Projects/AthGeneration/externals.txt +++ b/Projects/AthGeneration/externals.txt @@ -9,4 +9,4 @@ AthGenerationExternalsVersion = 2.0.85 # The version of atlas/Gaudi to use: -GaudiVersion = v34r0.005 +GaudiVersion = v34r1.001 diff --git a/Projects/AthSimulation/externals.txt b/Projects/AthSimulation/externals.txt index b72e0bd225f5f236b41b6253d6401581b259075f..c5d54221cff50cbced770496eb6c3c1bc8699d5f 100644 --- a/Projects/AthSimulation/externals.txt +++ b/Projects/AthSimulation/externals.txt @@ -9,4 +9,4 @@ AthSimulationExternalsVersion = 2.0.85 # The version of atlas/Gaudi to use: -GaudiVersion = v34r0.005 +GaudiVersion = v34r1.001 diff --git a/Projects/Athena/externals.txt b/Projects/Athena/externals.txt index 596814391928a2985134bba03759313886b77008..ab28108eae5db442305995641d10712f81450f23 100644 --- a/Projects/Athena/externals.txt +++ b/Projects/Athena/externals.txt @@ -9,4 +9,4 @@ AthenaExternalsVersion = 2.0.85 # The version of atlas/Gaudi to use: -GaudiVersion = v34r0.005 +GaudiVersion = v34r1.001 diff --git a/Reconstruction/Jet/JetRec/python/JetAlgorithm.py b/Reconstruction/Jet/JetRec/python/JetAlgorithm.py index e65b1effc910a12f409f68eab31d4eb0848866ff..24aaf13dddf0b2a13ef2d1ddf59ffb223ca4211f 100644 --- a/Reconstruction/Jet/JetRec/python/JetAlgorithm.py +++ b/Reconstruction/Jet/JetRec/python/JetAlgorithm.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # JetAlgorithm.py # @@ -184,7 +184,8 @@ def addJetRecoToAlgSequence(job =None, useTruth =None, eventShapeTools =None, # Then, add all event shape tools in separate algs for evstool in jtm.allEDTools: from EventShapeTools.EventShapeToolsConf import EventDensityAthAlg - job += EventDensityAthAlg("edalg_"+evstool.OutputContainer,EventDensityTool=evstool) + job += EventDensityAthAlg("edalg_%s" % evstool.OutputContainer, + EventDensityTool=evstool) if separateJetAlgs: diff --git a/Reconstruction/Jet/JetRec/python/JetToolSupport.py b/Reconstruction/Jet/JetRec/python/JetToolSupport.py index 16864e40eedd70ac80e9d87c981e39de31e63482..40c03ce0e71c2b1fdb1211875e1995acb7ffeede 100644 --- a/Reconstruction/Jet/JetRec/python/JetToolSupport.py +++ b/Reconstruction/Jet/JetRec/python/JetToolSupport.py @@ -417,7 +417,7 @@ class JetToolManager: lofinder,hifinder = self.addJetFinderTool(output+"Finder", alg, radius, ivtx, ghostArea, ptmin, rndseed, variableRMinRadius, variableRMassScale, constmods=constmods) jetrec = JetRecTool(output) - jetrec.InputPseudoJets = [getter.OutputContainer for getter in getters] + jetrec.InputPseudoJets = [str(getter.OutputContainer) for getter in getters] jetrec.JetFinder = hifinder jetrec.OutputContainer = output ptminSave = self.ptminFilter diff --git a/Reconstruction/Jet/JetRec/share/JetRec_jobOptions.py b/Reconstruction/Jet/JetRec/share/JetRec_jobOptions.py index 4cf0cfa8e8a601e33d0907363b044afeabeebec4..da98e932f9006671900c902935d586d982da6f76 100644 --- a/Reconstruction/Jet/JetRec/share/JetRec_jobOptions.py +++ b/Reconstruction/Jet/JetRec/share/JetRec_jobOptions.py @@ -109,7 +109,7 @@ addJetRecoToAlgSequence() # save event shapes set with the JetAlgorithm #-------------------------------------------------------------- for esTool in jtm.allEDTools: - jetFlags.jetAODList += [ "xAOD::EventShape#"+esTool.OutputContainer, - "xAOD::EventShapeAuxInfo#"+esTool.OutputContainer+'Aux.' ] + jetFlags.jetAODList += [ "xAOD::EventShape#%s" % esTool.OutputContainer, + "xAOD::EventShapeAuxInfo#%sAux." % esTool.OutputContainer ] jetlog.info( myname + "End." ) diff --git a/Reconstruction/Jet/JetRec/share/simpleJetRecJobO.py b/Reconstruction/Jet/JetRec/share/simpleJetRecJobO.py index 3c8675d7cfa1d3ebc0ac1d6175293e5754d88963..63341a5aa33b160c305536a5bcfa08994b967c6b 100644 --- a/Reconstruction/Jet/JetRec/share/simpleJetRecJobO.py +++ b/Reconstruction/Jet/JetRec/share/simpleJetRecJobO.py @@ -48,7 +48,7 @@ JetFinder_AntiKt4.JetBuilder = JetBuilder_AntiKt4 JetRecTool = CfgMgr.JetRecTool("MTAntiKt4EMTopoJets", OutputLevel=VERBOSE) JetRecTool.JetFinder = JetFinder_AntiKt4 -JetRecTool.InputPseudoJets = [emget.OutputContainer] +JetRecTool.InputPseudoJets = [str(emget.OutputContainer)] JetRecTool.OutputContainer = "MTAntiKt4EMTopoJets" topSequence += CfgMgr.JetAlgorithm("MTJetAlg",Tools = [JetRecTool]) diff --git a/Reconstruction/Jet/JetRec/share/simpleJtmJobO.py b/Reconstruction/Jet/JetRec/share/simpleJtmJobO.py index f875aeb213ef0df77df23ea0ba8005702e28674a..b00e1f79d638db25d767f0d8df1776c4498a5abe 100644 --- a/Reconstruction/Jet/JetRec/share/simpleJtmJobO.py +++ b/Reconstruction/Jet/JetRec/share/simpleJtmJobO.py @@ -73,8 +73,8 @@ addJetRecoToAlgSequence() #-------------------------------------------------------------- for esTool in jtm.allEDTools: t = getattr(ToolSvc, esTool.getName() ) - jetFlags.jetAODList += [ "xAOD::EventShape#"+t.OutputContainer, - "xAOD::EventShapeAuxInfo#"+t.OutputContainer+'Aux.' ] + jetFlags.jetAODList += [ "xAOD::EventShape#%s" % t.OutputContainer, + "xAOD::EventShapeAuxInfo#%sAux." % t.OutputContainer ] from OutputStreamAthenaPool.MultipleStreamManager import MSMgr xaodStream = MSMgr.NewPoolRootStream( "StreamAOD", "xAOD.pool.root" ) diff --git a/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedAlgs.py b/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedAlgs.py index 69a7ea3a6bd3566745d355b76ac18c29fafd8bf9..49515f05765bffe74ebc4909c47fde6a68c8bd6c 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedAlgs.py +++ b/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedAlgs.py @@ -161,7 +161,7 @@ def recordMuonCreatorAlgObjs (kw): d = kw.get (prop) if d == None: d = Alg.__dict__[prop].default - return d + return str(d) objs = {'xAOD::MuonContainer': val('MuonContainerLocation'), 'xAOD::TrackParticleContainer': (val('CombinedLocation')+'TrackParticles', val('ExtrapolatedLocation')+'TrackParticles', diff --git a/Reconstruction/RecoAlgs/CaloRingerAlgs/share/CaloRingerOutputItemList_jobOptions.py b/Reconstruction/RecoAlgs/CaloRingerAlgs/share/CaloRingerOutputItemList_jobOptions.py index a512fb2cb5af851e4d22d032c894c950047a9fd0..eb5083169933275700f41a61b3d040359026d1f4 100644 --- a/Reconstruction/RecoAlgs/CaloRingerAlgs/share/CaloRingerOutputItemList_jobOptions.py +++ b/Reconstruction/RecoAlgs/CaloRingerAlgs/share/CaloRingerOutputItemList_jobOptions.py @@ -34,8 +34,7 @@ def addOutputToList(streamList, localCType, localCKey, auxOption): streamList.append('%s#%s' % (localCType, localCKey ) ) if 'xAOD::' in localCType: auxType = localCType.replace('Container', 'AuxContainer') - auxKey = localCKey + 'Aux.' - streamList.append( '%s#%s%s' % (auxType, auxKey, auxOption) ) + streamList.append( '%s#%sAux.%s' % (auxType, localCKey, auxOption) ) def addRingerInputMetaToList(streamList, containerType): # NOTE: Keys defined at: http://acode-browser.usatlas.bnl.gov/lxr/source/atlas/Reconstruction/RecExample/RecExConfig/python/InputFilePeeker.py diff --git a/Reconstruction/egamma/egammaAlgs/src/egammaTopoClusterCopier.h b/Reconstruction/egamma/egammaAlgs/src/egammaTopoClusterCopier.h index 6508d069edc78e594fbcdd211c3738c3276f88f4..853db2e8fc58120927554f9fcafd1dc45d429d9b 100644 --- a/Reconstruction/egamma/egammaAlgs/src/egammaTopoClusterCopier.h +++ b/Reconstruction/egamma/egammaAlgs/src/egammaTopoClusterCopier.h @@ -13,6 +13,8 @@ #include "StoreGate/WriteHandleKey.h" #include "AthContainers/ConstDataVector.h" +#include <Gaudi/Accumulators.h> + class egammaTopoClusterCopier : public AthReentrantAlgorithm { public: diff --git a/Simulation/Digitization/test/test_MC16a_Digi_tf_configuration.py b/Simulation/Digitization/test/test_MC16a_Digi_tf_configuration.py index ff27a0834e4d27b90612a91bde27fcaf9b08cc57..da4148cc5a4a708b654dc44da709005dd5985837 100755 --- a/Simulation/Digitization/test/test_MC16a_Digi_tf_configuration.py +++ b/Simulation/Digitization/test/test_MC16a_Digi_tf_configuration.py @@ -240,7 +240,7 @@ class TestDigitizationMC16a(unittest.TestCase): def test___PixelDigitizationTool_properties(self): tested_configurable_name = 'StandardSignalOnlyTruthPileUpToolsAlg.PixelDigitizationTool' - expected_property_list = ['ChargeTools', 'DetStore', 'EnergyDepositionTool', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'FrontEndSimTools', 'HardScatterSplittingMode', 'InputObjectName', 'LastXing', 'PileUpMergeSvc', 'RDOCollName', 'RndmSvc', 'SDOCollName'] + expected_property_list = ['ChargeTools', 'DetStore', 'EnergyDepositionTool', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'FrontEndSimTools', 'HardScatterSplittingMode', 'InputObjectName', 'LastXing', 'PileUpMergeSvc', 'PixelDetEleCollKey', 'RDOCollName', 'RndmSvc', 'SDOCollName'] expected_nonstring_properties = {'LastXing': '25', 'FirstXing': '-25'} expected_string_properties = {'InputObjectName': 'PixelHits'} self._detailed_ConfigurablePropertiesCheck( @@ -252,7 +252,7 @@ class TestDigitizationMC16a(unittest.TestCase): def test___SCT_DigitizationTool_properties(self): tested_configurable_name = 'StandardSignalOnlyTruthPileUpToolsAlg.SCT_DigitizationTool' - expected_property_list = ['BarrelOnly', 'DetStore', 'EnableHits', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'FrontEnd', 'HardScatterSplittingMode', 'InputObjectName', 'LastXing', 'MergeSvc', 'OutputObjectName', 'OutputSDOName', 'RandomDisabledCellGenerator', 'RndmSvc', 'SurfaceChargesGenerator'] + expected_property_list = ['BarrelOnly', 'DetStore', 'EnableHits', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'FrontEnd', 'HardScatterSplittingMode', 'InputObjectName', 'LastXing', 'MergeSvc', 'OutputObjectName', 'OutputSDOName', 'RandomDisabledCellGenerator', 'RndmSvc', 'SCTDetEleCollKey', 'SurfaceChargesGenerator'] expected_nonstring_properties = {'LastXing': '25', 'FirstXing': '-50'} expected_string_properties = {'InputObjectName': 'SCT_Hits', 'OutputObjectName': 'SCT_RDOs', 'OutputSDOName': 'SCT_SDO_Map'} self._detailed_ConfigurablePropertiesCheck( @@ -264,7 +264,7 @@ class TestDigitizationMC16a(unittest.TestCase): def test___TRTDigitizationTool_properties(self): tested_configurable_name = 'StandardSignalOnlyTruthPileUpToolsAlg.TRTDigitizationTool' - expected_property_list = ['DetStore', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'HardScatterSplittingMode', 'InDetTRTCalDbTool', 'InDetTRTStrawStatusSummaryTool', 'LastXing', 'MergeSvc', 'OutputObjectName', 'OutputSDOName', 'Override_TrtRangeCutProperty', 'PAI_Tool_Ar', 'PAI_Tool_Kr', 'PAI_Tool_Xe', 'RandomSeedOffset', 'RndmSvc', 'SimDriftTimeTool', 'TRT_StrawNeighbourSvc'] + expected_property_list = ['AtlasFieldCacheCondObj', 'DataObjectName', 'DetStore', 'DigVersContainerKey', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'HardScatterSplittingMode', 'InDetTRTCalDbTool', 'InDetTRTStrawStatusSummaryTool', 'LastXing', 'MergeSvc', 'OutputObjectName', 'OutputSDOName', 'Override_TrtRangeCutProperty', 'PAI_Tool_Ar', 'PAI_Tool_Kr', 'PAI_Tool_Xe', 'RandomSeedOffset', 'RndmSvc', 'SimDriftTimeTool', 'TRT_StrawNeighbourSvc'] expected_nonstring_properties = {'LastXing': '50', 'FirstXing': '-50'} expected_string_properties = {'OutputObjectName': 'TRT_RDOs', 'OutputSDOName': 'TRT_SDO_Map'} # No Input name property self._detailed_ConfigurablePropertiesCheck( @@ -276,7 +276,7 @@ class TestDigitizationMC16a(unittest.TestCase): def test___LArPileUpTool_properties(self): tested_configurable_name = 'StandardSignalOnlyTruthPileUpToolsAlg.LArPileUpTool' - expected_property_list = ['DetStore', 'DigitContainer', 'DoDigiTruthReconstruction', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'HighGainThreshFCAL', 'LArHitContainers', 'LArHitFloatContainers', 'LastXing', 'MaskingTool', 'NoiseOnOff', 'Nsamples', 'PileUpMergeSvc', 'RndmEvtOverlay', 'RndmSvc', 'TriggerTimeToolName', 'firstSample', 'useLArFloat'] + expected_property_list = ['ADC2MeVKey', 'AutoCorrNoiseKey', 'BadFebKey', 'CablingKey', 'DetStore', 'DigitContainer', 'DigitContainer_DigiHSTruth', 'DoDigiTruthReconstruction', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'HighGainThreshFCAL', 'InputDigitContainer', 'LArHitContainers', 'LArHitEMapKey', 'LArHitEMap_DigiHSTruthKey', 'LArHitFloatContainers', 'LastXing', 'MaskingTool', 'NoiseKey', 'NoiseOnOff', 'Nsamples', 'OFCKey', 'PedestalKey', 'PileUpMergeSvc', 'RndmEvtOverlay', 'RndmSvc', 'ShapeKey', 'TriggerTimeToolName', 'fSamplKey', 'firstSample', 'useLArFloat'] expected_nonstring_properties = {'LastXing': '101', 'FirstXing': '-751', 'Nsamples': '4', 'LArHitContainers': '["StoreGateSvc+LArHitEMB","StoreGateSvc+LArHitEMEC","StoreGateSvc+LArHitHEC","StoreGateSvc+LArHitFCAL"]', 'LArHitFloatContainers':'[]'} @@ -314,7 +314,7 @@ class TestDigitizationMC16a(unittest.TestCase): def test___MdtDigitizationTool_properties(self): tested_configurable_name = 'StandardSignalOnlyTruthPileUpToolsAlg.MdtDigitizationTool' - expected_property_list = ['CalibrationDbTool', 'DetStore', 'DigitizationTool', 'DiscardEarlyHits', 'DoQballCharge', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'LastXing', 'MaskedStations', 'MuonIdHelperSvc', 'OutputObjectName', 'OutputSDOName', 'PileUpMergeSvc', 'RndmSvc', 'UseDeadChamberSvc', 'UseTof'] + expected_property_list = ['CalibrationDbTool', 'DetStore', 'DigitizationTool', 'DiscardEarlyHits', 'DoQballCharge', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'InputObjectName', 'LastXing', 'MaskedStations', 'MuonIdHelperSvc', 'OutputObjectName', 'OutputSDOName', 'PileUpMergeSvc', 'ReadKey', 'RndmSvc', 'UseDeadChamberSvc', 'UseTof'] expected_nonstring_properties = {'LastXing': '150', 'FirstXing': '-800'} expected_string_properties = {} # Not checking any specific property values self._detailed_ConfigurablePropertiesCheck( @@ -326,7 +326,7 @@ class TestDigitizationMC16a(unittest.TestCase): def test___RpcDigitizationTool_properties(self): tested_configurable_name = 'StandardSignalOnlyTruthPileUpToolsAlg.RpcDigitizationTool' - expected_property_list = ['ClusterSize1_2uncorr', 'ClusterSize_fromCOOL', 'CutProjectedTracks', 'DeadTime', 'DetStore', 'DumpFromDbFirst', 'EfficiencyPatchForBMShighEta', 'Efficiency_fromCOOL', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'FracClusterSize1_A', 'FracClusterSize1_C', 'FracClusterSize2_A', 'FracClusterSize2_C', 'FracClusterSizeTail_A', 'FracClusterSizeTail_C', 'IgnoreRunDependentConfig', 'LastXing', 'MeanClusterSizeTail_A', 'MeanClusterSizeTail_C', 'OnlyEtaEff_A', 'OnlyEtaEff_C', 'OnlyPhiEff_A', 'OnlyPhiEff_C', 'OutputObjectName', 'OutputSDOName', 'PanelId_OFF_fromlist', 'PanelId_OK_fromlist', 'PatchForRpcTime', 'PatchForRpcTimeShift', 'PhiAndEtaEff_A', 'PhiAndEtaEff_C', 'PileUpMergeSvc', 'PrintCalibrationVector', 'RPCInfoFromDb', 'RndmSvc', 'testbeam_clustersize', 'turnON_clustersize', 'turnON_efficiency'] + expected_property_list = ['ClusterSize1_2uncorr', 'ClusterSize_fromCOOL', 'CutProjectedTracks', 'DeadTime', 'DetStore', 'DumpFromDbFirst', 'EfficiencyPatchForBMShighEta', 'Efficiency_fromCOOL', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'FracClusterSize1_A', 'FracClusterSize1_C', 'FracClusterSize2_A', 'FracClusterSize2_C', 'FracClusterSizeTail_A', 'FracClusterSizeTail_C', 'IgnoreRunDependentConfig', 'InputObjectName', 'LastXing', 'MeanClusterSizeTail_A', 'MeanClusterSizeTail_C', 'OnlyEtaEff_A', 'OnlyEtaEff_C', 'OnlyPhiEff_A', 'OnlyPhiEff_C', 'OutputObjectName', 'OutputSDOName', 'PanelId_OFF_fromlist', 'PanelId_OK_fromlist', 'PatchForRpcTime', 'PatchForRpcTimeShift', 'PhiAndEtaEff_A', 'PhiAndEtaEff_C', 'PileUpMergeSvc', 'PrintCalibrationVector', 'RPCInfoFromDb', 'ReadKey', 'RndmSvc', 'testbeam_clustersize', 'turnON_clustersize', 'turnON_efficiency'] expected_nonstring_properties = {'LastXing': '125', 'FirstXing': '-150'} expected_string_properties = {} # Not checking any specific property values self._detailed_ConfigurablePropertiesCheck( @@ -338,7 +338,7 @@ class TestDigitizationMC16a(unittest.TestCase): def test___TgcDigitizationTool_properties(self): tested_configurable_name = 'StandardSignalOnlyTruthPileUpToolsAlg.TgcDigitizationTool' - expected_property_list = ['DetStore', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'LastXing', 'OutputObjectName', 'OutputSDOName', 'PileUpMergeSvc', 'RndmSvc'] + expected_property_list = ['DetStore', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'InputObjectName', 'LastXing', 'OutputObjectName', 'OutputSDOName', 'PileUpMergeSvc', 'RndmSvc'] expected_nonstring_properties = {'LastXing': '75', 'FirstXing': '-50'} expected_string_properties = {} # Not checking any specific property values self._detailed_ConfigurablePropertiesCheck( diff --git a/Simulation/ISF/ISF_Config/test/test_FullG4_Sim_tf_configuration.py b/Simulation/ISF/ISF_Config/test/test_FullG4_Sim_tf_configuration.py index 4199046a38f998bec0a84a23cf6a2e416cc6b79b..0f4375647977f0faeb98519564873513ae096073 100755 --- a/Simulation/ISF/ISF_Config/test/test_FullG4_Sim_tf_configuration.py +++ b/Simulation/ISF/ISF_Config/test/test_FullG4_Sim_tf_configuration.py @@ -152,7 +152,7 @@ class TestFullG4(unittest.TestCase): def test___SimKernel_ListOfSetProperties(self): - expected_list = ['BeamPipeSimulationSelectors', 'CaloSimulationSelectors', 'CavernSimulationSelectors', 'DetStore', 'DoCPUMonitoring', 'DoMemoryMonitoring', 'EventFilterTools', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'IDSimulationSelectors', 'InputConverter', 'InputHardScatterCollection', 'MSSimulationSelectors', 'MaximumParticleVectorSize', 'MemoryMonitoringTool', 'NeededResources', 'OutputHardScatterTruthCollection', 'ParticleBroker', 'QuasiStablePatcher', 'TruthRecordService'] + expected_list = ['BeamPipeSimulationSelectors', 'CaloSimulationSelectors', 'CavernSimulationSelectors', 'DetStore', 'DoCPUMonitoring', 'DoMemoryMonitoring', 'EventFilterTools', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'IDSimulationSelectors', 'InputConverter', 'InputHardScatterCollection', 'InputPileupCollection', 'MSSimulationSelectors', 'MaximumParticleVectorSize', 'MemoryMonitoringTool', 'NeededResources', 'OutputHardScatterTruthCollection', 'OutputPileupTruthCollection', 'ParticleBroker', 'QuasiStablePatcher', 'TruthRecordService'] simkernel = self._job_config_dict['ISF_Kernel_FullG4'] actual_list = simkernel.keys() expected_property_value_sorted = sorted(expected_list) diff --git a/Simulation/ISF/ISF_Core/ISF_Services/src/LegacySimSvc.cxx b/Simulation/ISF/ISF_Core/ISF_Services/src/LegacySimSvc.cxx index 34b0179788242925e45ac537e1b2832325f8218e..15059f5f89b010c72a1d9ad210115aeafa1ee2bb 100644 --- a/Simulation/ISF/ISF_Core/ISF_Services/src/LegacySimSvc.cxx +++ b/Simulation/ISF/ISF_Core/ISF_Services/src/LegacySimSvc.cxx @@ -15,6 +15,7 @@ ISF::LegacySimSvc::LegacySimSvc(const std::string& name,ISvcLocator* svc) : /** framework methods */ StatusCode ISF::LegacySimSvc::initialize() { + m_checkToolDeps = false; ATH_CHECK ( m_simulatorTool.retrieve() ); return StatusCode::SUCCESS; } diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/DNNCaloSimSvc.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/DNNCaloSimSvc.cxx index 0bf6de09490cf6888ae7e0baf5e438bca3649c2d..526564af3090a98adee1019bc0389dd9fc30c529 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/DNNCaloSimSvc.cxx +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/DNNCaloSimSvc.cxx @@ -67,6 +67,7 @@ ISF::DNNCaloSimSvc::DNNCaloSimSvc(const std::string& name, ISvcLocator* svc) : declareProperty("RandomSvc" , m_rndGenSvc ); declareProperty("RandomStream" , m_randomEngineName ); declareProperty("FastCaloSimCaloExtrapolation" , m_FastCaloSimCaloExtrapolation ); + } ISF::DNNCaloSimSvc::~DNNCaloSimSvc() @@ -75,6 +76,7 @@ ISF::DNNCaloSimSvc::~DNNCaloSimSvc() /** framework methods */ StatusCode ISF::DNNCaloSimSvc::initialize() { + ATH_MSG_INFO(m_screenOutputPrefix << "Initializing ..."); ATH_CHECK(m_rndGenSvc.retrieve()); diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/FastCaloSimSvcPU.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/FastCaloSimSvcPU.cxx index 0b74cb04c5a9b171caa7f91466f1f1252ceeff12..191ee44ae3a510b02a65410aac5189d8f398d43c 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/FastCaloSimSvcPU.cxx +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/FastCaloSimSvcPU.cxx @@ -91,7 +91,7 @@ ISF::FastCaloSimSvcPU::~FastCaloSimSvcPU() StatusCode ISF::FastCaloSimSvcPU::initialize() { ATH_MSG_INFO ( m_screenOutputPrefix << "Initializing FastCaloSimSvcPU ..."); - + detID=new AtlasDetectorID(); std::unique_ptr<IdDictParser> parser(new IdDictParser()); IdDictMgr& idd = parser->parse ("IdDictParser/ATLAS_IDS.xml"); diff --git a/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py b/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py index 5698c66ef42b0acdce86915302d56bccf10f0fbb..8f140f56c32b95febef0dabb90adecd20c0dbfe4 100644 --- a/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py +++ b/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # ''' @@ -54,7 +54,7 @@ def TileJetMonitoringConfig(flags, **kwargs): jvtTool = CompFactory.JetVertexTaggerTool() jetContainer = kwargs.get('JetContainer', tileJetMonAlg._descriptors['JetContainer'].default) - jvtTool.JetContainer = jetContainer + jvtTool.JetContainer = str(jetContainer) tileJetMonAlg.JVT = jvtTool jetCleaningTool = CompFactory.JetCleaningTool() diff --git a/TileCalorimeter/TileRecAlgs/python/TileDigitsFilterConfig.py b/TileCalorimeter/TileRecAlgs/python/TileDigitsFilterConfig.py index 0542192fb2201ded04a335a29596a8ab4db7a511..514b90b6aba6c88d5a3dfe699c02b647587703a2 100644 --- a/TileCalorimeter/TileRecAlgs/python/TileDigitsFilterConfig.py +++ b/TileCalorimeter/TileRecAlgs/python/TileDigitsFilterConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration """Define method to construct configured Tile digits filter algorithm""" @@ -35,17 +35,17 @@ def TileDigitsFilterOutputCfg(flags, streamName = 'ESD', **kwargs): outputItemList = [] if 'OutputDigitsContainer' in tileDigitsFilter._properties: - digitsContainer = tileDigitsFilter._properties['OutputDigitsContainer'] + digitsContainer = str(tileDigitsFilter._properties['OutputDigitsContainer']) else: - digitsContainer = tileDigitsFilter._descriptors['OutputDigitsContainer'].default + digitsContainer = str(tileDigitsFilter._descriptors['OutputDigitsContainer'].default) if digitsContainer != '': outputItemList += ['TileDigitsContainer#' + digitsContainer] if 'OutputRawChannelContainer' in tileDigitsFilter._properties: - rawChannelContainer = tileDigitsFilter._properties['OutputRawChannelContainer'] + rawChannelContainer = str(tileDigitsFilter._properties['OutputRawChannelContainer']) else: - rawChannelContainer = tileDigitsFilter._descriptors['OutputRawChannelContainer'].default + rawChannelContainer = str(tileDigitsFilter._descriptors['OutputRawChannelContainer'].default) if rawChannelContainer != '': outputItemList += ['TileRawChannelContainer#' + rawChannelContainer] diff --git a/TileCalorimeter/TileSimAlgs/python/TileDigitsMakerConfig.py b/TileCalorimeter/TileSimAlgs/python/TileDigitsMakerConfig.py index 3a6f6a9b470058cdfc193866e77d05f2beec3faf..50a53093161e18078e6f3f881b5d1b438bbb0ab1 100644 --- a/TileCalorimeter/TileSimAlgs/python/TileDigitsMakerConfig.py +++ b/TileCalorimeter/TileSimAlgs/python/TileDigitsMakerConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration """Define method to construct configured Tile digits maker algorithm""" @@ -147,7 +147,7 @@ def TileDigitsMakerOutputCfg(flags, **kwargs): else: tileDigitsContainer = tileDigitsMaker.getDefaultProperty('TileFilteredContainer') - tileDigitsContainer = tileDigitsContainer.split('+').pop() + tileDigitsContainer = str(tileDigitsContainer).split('+').pop() if flags.Digitization.AddCaloDigi: outputItemList = ['TileDigitsContainer#*'] else: diff --git a/TileCalorimeter/TileSimAlgs/python/TileHitToTTL1Config.py b/TileCalorimeter/TileSimAlgs/python/TileHitToTTL1Config.py index dc00afd89dc3eda8cd9c6b09a7168930867a3ee3..524bf19f316dde89418495dfe573c3508cfdc690 100644 --- a/TileCalorimeter/TileSimAlgs/python/TileHitToTTL1Config.py +++ b/TileCalorimeter/TileSimAlgs/python/TileHitToTTL1Config.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration """Define method to construct configured Tile hits to TTL1 algorithm""" @@ -75,14 +75,14 @@ def TileTTL1OutputCfg(flags, TileHitToTTL1): tileTTL1Container = TileHitToTTL1.TileTTL1Container else: tileTTL1Container = TileHitToTTL1.getDefaultProperty('TileTTL1Container') - tileTTL1Container = tileTTL1Container.split('+').pop() + tileTTL1Container = str(tileTTL1Container).split('+').pop() outputItemList = ['TileTTL1Container#' + tileTTL1Container] if hasattr(TileHitToTTL1, 'TileMBTSTTL1Container'): mbtsTTL1Container = TileHitToTTL1.TileMBTSTTL1Container else: mbtsTTL1Container = TileHitToTTL1.getDefaultProperty('TileMBTSTTL1Container') - mbtsTTL1Container = mbtsTTL1Container.split('+').pop() + mbtsTTL1Container = str(mbtsTTL1Container).split('+').pop() outputItemList += ['TileTTL1Container#' + mbtsTTL1Container] acc = ComponentAccumulator() diff --git a/TileCalorimeter/TileSimAlgs/python/TileMuonReceiverConfig.py b/TileCalorimeter/TileSimAlgs/python/TileMuonReceiverConfig.py index 3be0ac4272fca4bcf964eb53566ef6419bba536f..7ea7375ebb13f4bb01d3a6cde2361fc46edae798 100644 --- a/TileCalorimeter/TileSimAlgs/python/TileMuonReceiverConfig.py +++ b/TileCalorimeter/TileSimAlgs/python/TileMuonReceiverConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration """Define method to construct configured Tile pulse for muon receiver algorithm""" @@ -104,7 +104,7 @@ def TilePulseForTileMuonReceiverOutputCfg(flags, **kwargs): muRcvDigitsCnt = tilePulseForMuRcv.MuonReceiverDigitsContainer else: muRcvDigitsCnt = tilePulseForMuRcv.getDefaultProperty('MuonReceiverDigitsContainer') - muRcvDigitsCnt = muRcvDigitsCnt.split('+').pop() + muRcvDigitsCnt = str(muRcvDigitsCnt).split('+').pop() outputItemList = ['TileDigitsContainer#' + muRcvDigitsCnt] if not flags.Digitization.PileUpPremixing: @@ -112,7 +112,7 @@ def TilePulseForTileMuonReceiverOutputCfg(flags, **kwargs): muRcvRawChCnt = tilePulseForMuRcv.MuonReceiverRawChannelContainer else: muRcvRawChCnt = tilePulseForMuRcv.getDefaultProperty('MuonReceiverRawChannelContainer') - muRcvRawChCnt = muRcvRawChCnt.split('+').pop() + muRcvRawChCnt = str(muRcvRawChCnt).split('+').pop() outputItemList += ['TileRawChannelContainer#' + muRcvRawChCnt] if flags.Output.doWriteRDO: diff --git a/TileCalorimeter/TileSimAlgs/python/TileMuonReceiverDecisionConfig.py b/TileCalorimeter/TileSimAlgs/python/TileMuonReceiverDecisionConfig.py index c9ec9886cf0c31cfe6b57ed36c5e427d0b19f8c3..d3a707929b26907feb6ee49f4ef32c38dbbe8613 100644 --- a/TileCalorimeter/TileSimAlgs/python/TileMuonReceiverDecisionConfig.py +++ b/TileCalorimeter/TileSimAlgs/python/TileMuonReceiverDecisionConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration """Define method to construct configured Tile muon receiver decision algorithm""" @@ -58,7 +58,7 @@ def TileMuonReceiverDecisionOutputCfg(flags, **kwargs): muRcvContainer = muRcvDecisionAlg.TileMuonReceiverContainer else: muRcvContainer = muRcvDecisionAlg.getDefaultProperty('TileMuonReceiverContainer') - muRcvContainer = muRcvContainer.split('+').pop() + muRcvContainer = str(muRcvContainer).split('+').pop() outputItemList = ['TileMuonReceiverContainer#' + muRcvContainer] if flags.Output.doWriteRDO: diff --git a/Tracking/Acts/ActsGeometry/src/ActsTrackingGeometrySvc.cxx b/Tracking/Acts/ActsGeometry/src/ActsTrackingGeometrySvc.cxx index d58de4d0e1b2981b4db9ff42feabe2146abb8ad8..2d06ed00de0d391142917f1b505d59041c50b061 100644 --- a/Tracking/Acts/ActsGeometry/src/ActsTrackingGeometrySvc.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsTrackingGeometrySvc.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "ActsGeometry/ActsTrackingGeometrySvc.h" @@ -49,6 +49,12 @@ StatusCode ActsTrackingGeometrySvc::initialize() { ATH_MSG_INFO(name() << " is initializing"); + + // FIXME: ActsCaloTrackingVolumeBuilder holds ReadHandle to CaloDetDescrManager. + // Hopefully this service is never called before that object is available. + m_autoRetrieveTools = false; + m_checkToolDeps = false; + ATH_MSG_INFO("Acts version is: v" << Acts::VersionMajor << "." << Acts::VersionMinor << "." << Acts::VersionPatch diff --git a/Tracking/TrkDetDescr/TrkDetDescrSvc/src/TrackingGeometrySvc.cxx b/Tracking/TrkDetDescr/TrkDetDescrSvc/src/TrackingGeometrySvc.cxx index a58cb229e50ba086eab1d88fc6626517be4fdeeb..51d552db99908270c207b57163a865db41f71b7a 100755 --- a/Tracking/TrkDetDescr/TrkDetDescrSvc/src/TrackingGeometrySvc.cxx +++ b/Tracking/TrkDetDescr/TrkDetDescrSvc/src/TrackingGeometrySvc.cxx @@ -45,6 +45,9 @@ Trk::TrackingGeometrySvc::~TrackingGeometrySvc() /** Initialize Service */ StatusCode Trk::TrackingGeometrySvc::initialize() { + m_autoRetrieveTools = false; + m_checkToolDeps = false; + // get the DetectorStore ATH_CHECK( service("DetectorStore", m_pDetStore ) ); diff --git a/Trigger/TrigAlgorithms/TrigT2CaloCommon/src/TrigCaloDataAccessSvc.cxx b/Trigger/TrigAlgorithms/TrigT2CaloCommon/src/TrigCaloDataAccessSvc.cxx index 04a18e92d6a0086694c3f3380d2d1313b6739815..114c13b95d074bf87cabeb6c45f3ae95d9397056 100644 --- a/Trigger/TrigAlgorithms/TrigT2CaloCommon/src/TrigCaloDataAccessSvc.cxx +++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/src/TrigCaloDataAccessSvc.cxx @@ -17,6 +17,11 @@ TrigCaloDataAccessSvc::TrigCaloDataAccessSvc( const std::string& name, ISvcLocat TrigCaloDataAccessSvc::~TrigCaloDataAccessSvc() {} StatusCode TrigCaloDataAccessSvc::initialize() { + + /// Temporary fix + m_autoRetrieveTools = false; + m_checkToolDeps = false; + CHECK( m_roiMapTool.retrieve() ); CHECK( m_larDecoder.retrieve() ); CHECK( m_tileDecoder.retrieve() ); diff --git a/Trigger/TrigEvent/TrigNavTools/src/TrigNavigationThinningSvc.cxx b/Trigger/TrigEvent/TrigNavTools/src/TrigNavigationThinningSvc.cxx index 30686645d28472bf2816cd78632d6a1f2748d7c9..cb77a09e530e7989029de5744c5f8899767c67dd 100644 --- a/Trigger/TrigEvent/TrigNavTools/src/TrigNavigationThinningSvc.cxx +++ b/Trigger/TrigEvent/TrigNavTools/src/TrigNavigationThinningSvc.cxx @@ -69,6 +69,8 @@ StatusCode TrigNavigationThinningSvc::initialize() { ATH_MSG_DEBUG( "TrigNavigationThinningSvc::initialize()" << name() ); + m_checkToolDeps = false; + // load the required tools if( not m_trigDecisionTool.empty() ) { if ( m_trigDecisionTool.retrieve().isFailure() ) { diff --git a/Trigger/TrigSteer/DecisionHandling/python/DecisionHandlingConfig.py b/Trigger/TrigSteer/DecisionHandling/python/DecisionHandlingConfig.py index fe55b17b79d69986da8bb5e64ecbd09e41418d63..c03f42391f682fe8e39edfa393f6a180e70663c5 100644 --- a/Trigger/TrigSteer/DecisionHandling/python/DecisionHandlingConfig.py +++ b/Trigger/TrigSteer/DecisionHandling/python/DecisionHandlingConfig.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # def setupFilterMonitoring( filterAlg ): @@ -8,7 +8,7 @@ def setupFilterMonitoring( filterAlg ): from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool monTool = GenericMonitoringTool('MonTool') - inputKeys = filterAlg.Input + inputKeys = [str(i) for i in filterAlg.Input] monTool.HistPath="HLTFramework/Filters" monTool.defineHistogram( 'name,stat;'+filterAlg.getName(), path='EXPERT', type='TH2I', diff --git a/Trigger/TrigTools/TrigMuonRoITools/python/TrigMuonRoIToolsConfig.py b/Trigger/TrigTools/TrigMuonRoITools/python/TrigMuonRoIToolsConfig.py index aa05049b86f16cb7f065c7a82b567c3013f83263..3b724ff69e686d40e0fb18c2264b713b85b6a67c 100644 --- a/Trigger/TrigTools/TrigMuonRoITools/python/TrigMuonRoIToolsConfig.py +++ b/Trigger/TrigTools/TrigMuonRoITools/python/TrigMuonRoIToolsConfig.py @@ -19,7 +19,7 @@ def TrigMuonRoIToolCfg(): topSequence = AlgSequence() if not hasattr(topSequence,'SGInputLoader'): raise RuntimeError('Cannot configure TrigMuonRoITool because SGInputLoader is missing from topSequence') - topSequence.SGInputLoader.Load += [( rdoType, 'StoreGateSvc+'+tool.MUCTPILocation )] + topSequence.SGInputLoader.Load += [( rdoType, 'StoreGateSvc+%s' % tool.MUCTPILocation )] # Enable using the Converter to load MUCTPI_RDO from ByteStream from AthenaCommon.GlobalFlags import globalflags @@ -27,6 +27,6 @@ def TrigMuonRoIToolCfg(): from AthenaCommon.AppMgr import ServiceMgr as svcMgr if not hasattr(svcMgr, 'ByteStreamAddressProviderSvc'): raise RuntimeError('Cannot configure TrigMuonRoITool because ByteStreamAddressProviderSvc is missing from svcMgr') - svcMgr.ByteStreamAddressProviderSvc.TypeNames += [ rdoType+'/'+tool.MUCTPILocation ] + svcMgr.ByteStreamAddressProviderSvc.TypeNames += [ '%s/%s' % (rdoType, tool.MUCTPILocation) ] return tool diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py index 037ee32e853c5cc4428e8d4524258b4d96da4535..bf2d596108eb2d507ac2c8fd7831803da7c9a151 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py @@ -51,9 +51,9 @@ def __decisionsFromHypo( hypo ): from TrigCompositeUtils.TrigCompositeUtils import isLegId __log.debug("Hypo type %s is combo %r", hypo.getName(), __isCombo(hypo)) if __isCombo( hypo ): - return [key for key in list(hypo.MultiplicitiesMap.keys()) if not isLegId(key)], hypo.HypoOutputDecisions[0] + return [key for key in list(hypo.MultiplicitiesMap.keys()) if not isLegId(key)], str(hypo.HypoOutputDecisions[0]) else: # regular hypos - return [ t.getName() for t in hypo.HypoTools if not isLegId(t.getName())], hypo.HypoOutputDecisions + return [ t.getName() for t in hypo.HypoTools if not isLegId(t.getName())], str(hypo.HypoOutputDecisions) def __getSequenceChildrenIfIsSequence( s ): if isSequence( s ): @@ -99,7 +99,7 @@ def collectFilters( steps ): def collectL1DecoderDecisionObjects(l1decoder): decisionObjects = set() - decisionObjects.update([ d.Decisions for d in l1decoder.roiUnpackers ]) + decisionObjects.update([ str(d.Decisions) for d in l1decoder.roiUnpackers ]) from L1Decoder.L1DecoderConfig import mapThresholdToL1DecisionCollection decisionObjects.add( mapThresholdToL1DecisionCollection("FSNOSEED") ) # Include also Full Scan __log.info("Collecting %i decision objects from L1 decoder instance", len(decisionObjects)) @@ -113,14 +113,14 @@ def collectHypoDecisionObjects(hypos, inputs = True, outputs = True): hypoAlg.getName(), hypoAlg.HypoInputDecisions, hypoAlg.HypoOutputDecisions ) if isinstance( hypoAlg.HypoInputDecisions, list): if inputs: - [ decisionObjects.add( d ) for d in hypoAlg.HypoInputDecisions ] + [ decisionObjects.add( str(d) ) for d in hypoAlg.HypoInputDecisions ] if outputs: - [ decisionObjects.add( d ) for d in hypoAlg.HypoOutputDecisions ] + [ decisionObjects.add( str(d) ) for d in hypoAlg.HypoOutputDecisions ] else: if inputs: - decisionObjects.add( hypoAlg.HypoInputDecisions ) + decisionObjects.add( str(hypoAlg.HypoInputDecisions) ) if outputs: - decisionObjects.add( hypoAlg.HypoOutputDecisions ) + decisionObjects.add( str(hypoAlg.HypoOutputDecisions) ) __log.info("Collecting %i decision objects from hypos", len(decisionObjects)) return sorted(decisionObjects) @@ -129,15 +129,15 @@ def collectFilterDecisionObjects(filters, inputs = True, outputs = True): for step, stepFilters in filters.items(): for filt in stepFilters: if inputs and hasattr( filt, "Input" ): - decisionObjects.update( filt.Input ) + decisionObjects.update( str(i) for i in filt.Input ) if outputs and hasattr( filt, "Output" ): - decisionObjects.update( filt.Output ) + decisionObjects.update( str(o) for o in filt.Output ) __log.info("Collecting %i decision objects from filters", len(decisionObjects)) return decisionObjects def collectHLTSummaryDecisionObjects(hltSummary): decisionObjects = set() - decisionObjects.add( hltSummary.DecisionsSummaryKey ) + decisionObjects.add( str(hltSummary.DecisionsSummaryKey) ) __log.info("Collecting %i decision objects from hltSummary", len(decisionObjects)) return decisionObjects @@ -445,8 +445,8 @@ def triggerPOOLOutputCfg(flags, edmSet): # Ensure OutputStream runs after TrigDecisionMakerMT and xAODMenuWriterMT streamAlg.ExtraInputs += [ - ("xAOD::TrigDecision", decmaker.TrigDecisionKey), - ("xAOD::TrigConfKeys", menuwriter.KeyWriterTool.ConfKeys)] + ("xAOD::TrigDecision", str(decmaker.TrigDecisionKey)), + ("xAOD::TrigConfKeys", str(menuwriter.KeyWriterTool.ConfKeys))] # Produce xAOD L1 RoIs from RoIBResult from AnalysisTriggerAlgs.AnalysisTriggerAlgsCAConfig import RoIBResultToxAODCfg diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py index 9d34dd8a56ded7fe9547aec2b2d4a04a42c62719..e530ebad4636f0e7c888029d5c3b157b8b6cf458 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py @@ -51,9 +51,9 @@ def bJetStep2Sequence(): # Prepare data objects for view verifier - viewDataObjects = [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+' + InputMakerAlg.InViewRoIs ), - ( 'xAOD::VertexContainer' , 'StoreGateSvc+' + prmVtxKey ), - ( 'xAOD::JetContainer' , 'StoreGateSvc+' + InputMakerAlg.InViewJets )] + viewDataObjects = [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % InputMakerAlg.InViewRoIs ), + ( 'xAOD::VertexContainer' , 'StoreGateSvc+%s' % prmVtxKey ), + ( 'xAOD::JetContainer' , 'StoreGateSvc+%s' % InputMakerAlg.InViewJets )] # Second stage of Fast Tracking and Precision Tracking from TriggerMenuMT.HLTMenuConfig.Bjet.BjetTrackingConfiguration import getSecondStageBjetTracking @@ -64,7 +64,7 @@ def bJetStep2Sequence(): # Flavour Tagging from TriggerMenuMT.HLTMenuConfig.Bjet.BjetFlavourTaggingConfiguration import getFlavourTagging - acc_flavourTaggingAlgs,bTaggingContainerName = getFlavourTagging( inputJets=InputMakerAlg.InViewJets, inputVertex=prmVtxKey, inputTracks=PTTrackParticles[0] ) + acc_flavourTaggingAlgs,bTaggingContainerName = getFlavourTagging( inputJets=str(InputMakerAlg.InViewJets), inputVertex=prmVtxKey, inputTracks=PTTrackParticles[0] ) Configurable.configurableRun3Behavior=0 diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/CaloSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/CaloSequenceSetup.py index e1d37d311f7fe293e090c0cf7117f6010605aec9..46850e373768cee318638322341494072f8ef89d 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/CaloSequenceSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/CaloSequenceSetup.py @@ -62,7 +62,7 @@ def cellRecoSequence(flags, name="HLTCaloCellMakerFS", RoIs=caloFSRoI, outputNam alg.RoIs=RoIs alg.TrigDataAccessMT=svcMgr.TrigCaloDataAccessSvc alg.CellsName=outputName - return parOR(name+"RecoSequence", [alg]), alg.CellsName + return parOR(name+"RecoSequence", [alg]), str(alg.CellsName) def caloClusterRecoSequence( flags, name="HLTCaloClusterMakerFS", RoIs=caloFSRoI, @@ -76,7 +76,7 @@ def caloClusterRecoSequence( doLC=False, cells=cells_name) alg.CaloClusters = recordable(outputName) - return parOR(name+"RecoSequence", [cell_sequence, alg]), alg.CaloClusters + return parOR(name+"RecoSequence", [cell_sequence, alg]), str(alg.CaloClusters) def LCCaloClusterRecoSequence( flags, name="HLTCaloClusterCalibratorLCFS", RoIs=caloFSRoI, @@ -92,4 +92,4 @@ def LCCaloClusterRecoSequence( InputClusters = em_clusters, OutputClusters = outputName, OutputCellLinks = outputName+"_cellLinks") - return parOR(name+"RecoSequence", [em_sequence, alg]), alg.OutputClusters + return parOR(name+"RecoSequence", [em_sequence, alg]), str(alg.OutputClusters) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronSequenceSetup.py index ad6fda1dcb1d103626551ec27c3e23680f1b9413..346bb70f65c328f13e9f9d276c0ca5284076542b 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronSequenceSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronSequenceSetup.py @@ -24,8 +24,8 @@ def fastElectronSequence(ConfigFlags): # A simple algorithm to confirm that data has been inherited from parent view # Required to satisfy data dependencies from TriggerMenuMT.HLTMenuConfig.CommonSequences.CaloSequenceSetup import CaloMenuDefs - viewVerify.DataObjects += [( 'xAOD::TrigEMClusterContainer' , 'StoreGateSvc+' + CaloMenuDefs.L2CaloClusters ), - ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+'+RoIs )] + viewVerify.DataObjects += [( 'xAOD::TrigEMClusterContainer' , 'StoreGateSvc+%s' % CaloMenuDefs.L2CaloClusters ), + ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs )] TrackParticlesName = "" for viewAlg in viewAlgs: diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/PhotonSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/PhotonSequenceSetup.py index 906e8cf658bd4dbd49f0621e47316f818f033315..610cf8739e9d80d961d6696e78e3f4ec698ce5bc 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/PhotonSequenceSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/PhotonSequenceSetup.py @@ -18,7 +18,7 @@ def fastPhotonMenuSequence(): from TriggerMenuMT.HLTMenuConfig.CommonSequences.CaloSequenceSetup import CaloMenuDefs ViewVerify = CfgMgr.AthViews__ViewDataVerifier("FastPhotonViewDataVerifier") - ViewVerify.DataObjects = [( 'xAOD::TrigEMClusterContainer' , 'StoreGateSvc+' + CaloMenuDefs.L2CaloClusters ), + ViewVerify.DataObjects = [( 'xAOD::TrigEMClusterContainer' , 'StoreGateSvc+%s' % CaloMenuDefs.L2CaloClusters ), ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+EMIDRoIs' )] from TrigEgammaHypo.TrigEgammaFastPhotonFexMTConfig import EgammaFastPhotonFex_1 diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/PrecisionCaloRec.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/PrecisionCaloRec.py index 6e00d7005126471f74f3131687316086aef9f54b..ee2ecf9dd890577eab7b80b5064766d198092272 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/PrecisionCaloRec.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/PrecisionCaloRec.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # from egammaAlgs import egammaAlgsConf @@ -19,7 +19,7 @@ def precisionCaloRecoSequence(DummyFlag, RoIs): log.debug('RoIs = %s',RoIs) egammaTopoClusterCopier = AlgFactory( egammaAlgsConf.egammaTopoClusterCopier, - name = 'TrigEgammaTopoClusterCopier'+RoIs , + name = 'TrigEgammaTopoClusterCopier%s' % RoIs , InputTopoCollection= "caloclusters", OutputTopoCollection=precisionCaloMenuDefs.precisionCaloClusters, OutputTopoCollectionShallow="tmp_"+precisionCaloMenuDefs.precisionCaloClusters, diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/PrecisionElectronRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/PrecisionElectronRecoSequences.py index d5d7844d53e338bed1d3fad8367a79ecd2594192..d3afae969162959274015fe9cd4c0a5efcea1a76 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/PrecisionElectronRecoSequences.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/PrecisionElectronRecoSequences.py @@ -32,8 +32,8 @@ def precisionElectronRecoSequence(RoIs): ViewVerifyTrk = CfgMgr.AthViews__ViewDataVerifier("PrecisionTrackViewDataVerifier") ViewVerifyTrk.DataObjects = [( 'CaloCellContainer' , 'StoreGateSvc+CaloCells' ), - ( 'xAOD::CaloClusterContainer' , 'StoreGateSvc+' + precisionCaloMenuDefs.precisionCaloClusters ), - ( 'xAOD::TrackParticleContainer','StoreGateSvc+' + TrigEgammaKeys.TrigElectronTracksCollectionName)] + ( 'xAOD::CaloClusterContainer' , 'StoreGateSvc+%s' % precisionCaloMenuDefs.precisionCaloClusters ), + ( 'xAOD::TrackParticleContainer','StoreGateSvc+%s' % TrigEgammaKeys.TrigElectronTracksCollectionName)] """ Retrieve the factories now """ @@ -41,7 +41,7 @@ def precisionElectronRecoSequence(RoIs): from TriggerMenuMT.HLTMenuConfig.Egamma.TrigEgammaFactories import TrigEMTrackMatchBuilder #The sequence of these algorithms - thesequence = parOR( "precisionElectron_"+RoIs) + thesequence = parOR( "precisionElectron_%s" % RoIs) thesequence += ViewVerifyTrk # Create the sequence of three steps: diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetChainConfiguration.py index e3754153984ee8a2ebe427dd36352a9af3341949..41b77d34c2f90bfde544ce78ae02ed1bfc89b802 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetChainConfiguration.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetChainConfiguration.py @@ -97,7 +97,7 @@ class JetChainConfiguration(ChainConfigurationBase): from TriggerMenuMT.HLTMenuConfig.Jet.JetMenuSequences import jetCaloHypoMenuSequence jetSeq = RecoFragmentsPool.retrieve( jetCaloHypoMenuSequence, ConfigFlags, **self.recoDict ) - jetCollectionName = jetSeq.hypo.Alg.Jets + jetCollectionName = str(jetSeq.hypo.Alg.Jets) return jetCollectionName, ChainStep(stepName, [jetSeq], multiplicity=[1], chainDicts=[self.dict]) @@ -109,7 +109,7 @@ class JetChainConfiguration(ChainConfigurationBase): from TriggerMenuMT.HLTMenuConfig.Jet.JetMenuSequences import jetTrackingHypoMenuSequence jetSeq = RecoFragmentsPool.retrieve( jetTrackingHypoMenuSequence, ConfigFlags, clustersKey=clustersKey, **self.recoDict ) - jetCollectionName = jetSeq.hypo.Alg.Jets + jetCollectionName = str(jetSeq.hypo.Alg.Jets) return jetCollectionName, ChainStep(stepName, [jetSeq], multiplicity=[1], chainDicts=[self.dict]) @@ -120,7 +120,7 @@ class JetChainConfiguration(ChainConfigurationBase): jetSeq, clustersKey = RecoFragmentsPool.retrieve( jetCaloRecoMenuSequence, ConfigFlags, clusterCalib=self.recoDict["calib"] ) - return clustersKey, ChainStep(stepName, [jetSeq], multiplicity=[1], chainDicts=[self.dict]) + return str(clustersKey), ChainStep(stepName, [jetSeq], multiplicity=[1], chainDicts=[self.dict]) def getJetCaloPreselChainStep(self): # Define a fixed preselection dictionary for prototyping -- we may expand the options @@ -168,7 +168,7 @@ class JetChainConfiguration(ChainConfigurationBase): jetSeq, clustersKey = RecoFragmentsPool.retrieve( jetCaloPreselMenuSequence, ConfigFlags, **preselRecoDict ) - return clustersKey, ChainStep(stepName, [jetSeq], multiplicity=[1], chainDicts=[preselChainDict]) + return str(clustersKey), ChainStep(stepName, [jetSeq], multiplicity=[1], chainDicts=[preselChainDict]) def getJetTLAChainStep(self, jetCollectionName): from TriggerMenuMT.HLTMenuConfig.Jet.JetTLASequences import jetTLAMenuSequence diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoSequences.py index 9f8e18736c812458a36a66dac278b66e69c6a5b0..10c99e949b1d27acdd11a21c22c4c830574eb0f7 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoSequences.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoSequences.py @@ -109,7 +109,7 @@ def standardJetRecoSequence( configFlags, dataSource, clustersKey, **jetRecoDict # Add the PseudoJetGetter alg to the sequence constitPJAlg = getConstitPJGAlg( jetDef.inputdef ) - constitPJKey = constitPJAlg.OutputContainer + constitPJKey = str(constitPJAlg.OutputContainer) recoSeq += conf2toConfigurable( constitPJAlg ) # Basic list of PseudoJets is just the constituents # Append ghosts (tracks) if desired @@ -130,7 +130,7 @@ def standardJetRecoSequence( configFlags, dataSource, clustersKey, **jetRecoDict # Not currently written because impossible to merge # across event views, which is maybe a concern in # the case of regional PFlow - rhoKey = eventShapeAlg.EventDensityTool.OutputContainer + rhoKey = str(eventShapeAlg.EventDensityTool.OutputContainer) # Import the standard jet modifiers as defined for offline # We can add/configure these differently if desired. @@ -226,7 +226,7 @@ def reclusteredJetRecoSequence( configFlags, dataSource, clustersKey, **jetRecoD rcJetDef.modifiers = rcModList rcConstitPJAlg = getConstitPJGAlg( rcJetDef.inputdef ) - rcConstitPJKey = rcConstitPJAlg.OutputContainer + rcConstitPJKey = str(rcConstitPJAlg.OutputContainer) recoSeq += conf2toConfigurable( rcConstitPJAlg ) # Get online monitoring tool diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py index f9ae03260da488e59fd9449a993d5a21675af90f..2d43cee82dd58c29a823e3ede367750d057da7c0 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration """ ------ Documentation on HLT Tree creation ----- diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py index 6b5e09bfbdb25d874dfb86b75adb941af67f43b1..22a8e9fe8ee5d5e86e0b71fa828b8ed124a010cc 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py @@ -1,5 +1,6 @@ # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +from GaudiKernel.DataHandle import DataHandle from AthenaCommon.Logging import logging log = logging.getLogger( __name__ ) from collections import MutableSequence @@ -19,10 +20,10 @@ class Node(object): self.outputs=[] def addOutput(self, name): - self.outputs.append(name) + self.outputs.append(str(name) if isinstance(name, DataHandle) else name) def addInput(self, name): - self.inputs.append(name) + self.inputs.append(str(name) if isinstance(name, DataHandle) else name) def getOutputList(self): return self.outputs @@ -77,7 +78,7 @@ class AlgNode(Node): log.debug("Output DH not added in %s: %s already set!", self.Alg.getName(), name) else: if self.outputProp != '': - self.setPar(self.outputProp,name) + self.setPar(self.outputProp, name) else: log.debug("no outputProp set for output of %s", self.Alg.getName()) Node.addOutput(self, name) @@ -91,7 +92,7 @@ class AlgNode(Node): if isinstance(cval, MutableSequence): outputs.extend(cval) else: - outputs.append(cval) + outputs.append(str(cval)) return outputs def addInput(self, name): @@ -100,7 +101,7 @@ class AlgNode(Node): log.debug("Input DH not added in %s: %s already set!", self.Alg.getName(), name) else: if self.inputProp != '': - self.setPar(self.inputProp,name) + self.setPar(self.inputProp, name) else: log.debug("no InputProp set for input of %s", self.Alg.getName()) Node.addInput(self, name) @@ -115,7 +116,7 @@ class AlgNode(Node): if isinstance(cval, MutableSequence): inputs.extend(cval) else: - inputs.append(cval) + inputs.append(str(cval)) return inputs def __repr__(self): @@ -967,7 +968,8 @@ class RecoFragmentsPool(object): allargs.update(kwargs) sortedkeys = sorted(allargs.keys()) - sortedvals = [allargs[key] for key in sortedkeys] + sortedvals = [str(allargs[key]) if isinstance(allargs[key], DataHandle) + else allargs[key] for key in sortedkeys] requestHash = hash( ( creator, tuple(sortedkeys), tuple(sortedvals) ) ) if requestHash not in cls.fragments: diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSequenceSetup.py index 125532d328340ff32086b37537e09e17e6040498..5c3ad88f939ff2c136785aec54a02f34ac585017 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSequenceSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSequenceSetup.py @@ -136,7 +136,7 @@ def muCombAlgSequence(ConfigFlags): extraLoads = [] for decision in muonChainFilter.InputDecisions: - extraLoads += [( 'xAOD::TrigCompositeContainer' , 'StoreGateSvc+'+decision )] + extraLoads += [( 'xAOD::TrigCompositeContainer' , 'StoreGateSvc+%s' % decision )] muFastIDRecoSequence = muonIDFastTrackingSequence( l2muCombViewsMaker.InViewRoIs , "", extraLoads ) # muCombIDSequence = parOR("l2muCombIDSequence", [muFastIDRecoSequence, muCombFilterSequence]) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py index 62e15e4f3d5d7f17556b753246303401856f3d76..77f2dcdd754acf7994680dacf62ff0e0f86d0cdd 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py @@ -60,10 +60,9 @@ muNamesFS = muonNames().getNames('FS') def makeMuonPrepDataAlgs(RoIs="MURoIs", forFullScan=False): from AthenaCommon.CFElements import parOR - - muDecodeRecoSequence = parOR("decodeMuViewNode_"+RoIs) - postFix = "_"+RoIs + postFix = "_%s" % RoIs + muDecodeRecoSequence = parOR("decodeMuViewNode"+postFix) viewAlgs_MuonPRD = [] # These algs should be executed to prepare muon PRDs for muFast and muEF steps. @@ -365,7 +364,7 @@ def muFastRecoSequence( RoIs, doFullScanID = False, InsideOutMode=False ): ViewVerify.DataObjects += [('Muon::MMPrepDataContainer','StoreGateSvc+MM_Measurements')] #muFastRecoSequence+=ViewVerify else: - ViewVerify.DataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+'+RoIs )] + ViewVerify.DataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs )] ViewVerify.DataObjects += [( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ), ( 'DataVector< LVL1::RecMuonRoI >' , 'StoreGateSvc+HLT_RecMURoIs' )] @@ -503,7 +502,7 @@ def muonIDFastTrackingSequence( RoIs, name, extraLoads=None ): from TrigInDetConfig.InDetSetup import makeInDetAlgs viewAlgs, viewVerify = makeInDetAlgs( config = IDTrigConfig, rois = RoIs ) - viewVerify.DataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+'+RoIs )] + viewVerify.DataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs )] if extraLoads: viewVerify.DataObjects += extraLoads @@ -520,7 +519,7 @@ def muCombRecoSequence( RoIs, name ): ### Required to satisfy data dependencies ### import AthenaCommon.CfgMgr as CfgMgr ViewVerify = CfgMgr.AthViews__ViewDataVerifier("muFastViewDataVerifier") - ViewVerify.DataObjects = [('xAOD::L2StandAloneMuonContainer','StoreGateSvc+'+muNames.L2SAName)] + ViewVerify.DataObjects = [('xAOD::L2StandAloneMuonContainer','StoreGateSvc+%s' % muNames.L2SAName)] muCombRecoSequence+=ViewVerify @@ -583,7 +582,8 @@ def muEFSARecoSequence( RoIs, name ): EFMuonViewDataVerifier = CfgMgr.AthViews__ViewDataVerifier( "EFMuonViewDataVerifier_" + name ) EFMuonViewDataVerifier.DataObjects = [( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ), - ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+'+RoIs )] + ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs )] + efAlgs.append( EFMuonViewDataVerifier ) #need MdtCondDbAlg for the MuonStationIntersectSvc (required by segment and track finding) @@ -678,7 +678,7 @@ def muEFCBRecoSequence( RoIs, name ): ViewVerifyMS.DataObjects = [( 'Muon::MdtPrepDataContainer' , 'StoreGateSvc+MDT_DriftCircles' ), ( 'Muon::TgcPrepDataContainer' , 'StoreGateSvc+TGC_Measurements' ), ( 'Muon::RpcPrepDataContainer' , 'StoreGateSvc+RPC_Measurements' ), - ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+'+RoIs ), + ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs ), ( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' )] if "FS" in name: ViewVerifyMS.DataObjects +=[( 'MuonCandidateCollection' , 'StoreGateSvc+MuonCandidates_FS' )] @@ -973,8 +973,8 @@ def efmuisoRecoSequence( RoIs, Muons ): trackParticles = PTTrackParticles[-1] trigEFmuIso.IdTrackParticles = trackParticles trigEFmuIso.MuonContName = muNames.EFIsoMuonName - trigEFmuIso.ptcone02Name = Muons+".ptcone02" - trigEFmuIso.ptcone03Name = Muons+".ptcone03" + trigEFmuIso.ptcone02Name = "%s.ptcone02" % Muons + trigEFmuIso.ptcone03Name = "%s.ptcone03" % Muons efmuisoRecoSequence += trigEFmuIso diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Photon/PhotonRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Photon/PhotonRecoSequences.py index 3f3e7a41da2baa18baaab20bf3f27e4119da5b4e..00ead372a12d39b3cb1dbea21407d7aefc99d866 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Photon/PhotonRecoSequences.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Photon/PhotonRecoSequences.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from TrigEDMConfig.TriggerEDMRun3 import recordable @@ -27,7 +27,7 @@ def precisionPhotonRecoSequence(RoIs): from TriggerMenuMT.HLTMenuConfig.Egamma.PrecisionCaloSequenceSetup import precisionCaloMenuDefs import AthenaCommon.CfgMgr as CfgMgr ViewVerify = CfgMgr.AthViews__ViewDataVerifier("PrecisionPhotonPhotonViewDataVerifier") - ViewVerify.DataObjects = [( 'xAOD::CaloClusterContainer' , 'StoreGateSvc+' + precisionCaloMenuDefs.precisionCaloClusters ), + ViewVerify.DataObjects = [( 'xAOD::CaloClusterContainer' , 'StoreGateSvc+%s' % precisionCaloMenuDefs.precisionCaloClusters ), ( 'CaloCellContainer' , 'StoreGateSvc+CaloCells' )] diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py index 784c131bdf93e19ad3e65f09f281f85102c17c7b..9fdeff5037dba97ec50db24fe565ead3a9a1ae23 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py @@ -255,7 +255,7 @@ def tauIdSequence( RoIs, name): ViewVerifyId = CfgMgr.AthViews__ViewDataVerifier("tauIdViewDataVerifier_"+signatureName) ViewVerifyId.DataObjects = [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+TAUCaloRoIs' ), - ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+'+RoIs ), + ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs ), ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+RoiForTauCore' ), ( 'xAOD::TauTrackContainer' , 'StoreGateSvc+HLT_tautrack_Presel'), ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.AveIntPerXDecor' ), @@ -294,21 +294,20 @@ def precTrackSequence( RoIs , name): ViewVerifyTrk = CfgMgr.AthViews__ViewDataVerifier("tauViewDataVerifier_"+signatureName) - ViewVerifyTrk.DataObjects = [( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+'+IDTrigConfig.FT.tracksFTF() ), + ViewVerifyTrk.DataObjects = [( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+%s' % IDTrigConfig.FT.tracksFTF() ), ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.AveIntPerXDecor' ), - ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+'+RoIs ), + ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs ), ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+TAUCaloRoIs' ), ( 'xAOD::TauTrackContainer' , 'StoreGateSvc+HLT_tautrack_dummy' ), ( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_CaloOnly' ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_FlaggedCondData_TRIG' ), - ( 'xAOD::IParticleContainer' , 'StoreGateSvc+'+IDTrigConfig.FT.tracksFTF() ), + ( 'xAOD::IParticleContainer' , 'StoreGateSvc+%s' % IDTrigConfig.FT.tracksFTF() ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' )] if "TrackInView" not in name: ViewVerifyTrk.DataObjects += [ ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+RoiForTauCore' ) ] - # Make sure the required objects are still available at whole-event level from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() @@ -351,7 +350,7 @@ def tauFTFSequence( RoIs, name ): if "InDetTrigTrackParticleCreatorAlg" in viewAlg.name(): TrackCollection = viewAlg.TrackName - viewVerify.DataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+' + RoIs ), + viewVerify.DataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' ),#For some reason not picked up properly ( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_CaloOnly')]