diff --git a/Simulation/ISF/ISF_Core/ISF_Services/CMakeLists.txt b/Simulation/ISF/ISF_Core/ISF_Services/CMakeLists.txt index 27dfefdb3c56c795c22e9db681787764f543bf89..ac713fc23b920f72c6aa5bf529766294cfd60e32 100644 --- a/Simulation/ISF/ISF_Core/ISF_Services/CMakeLists.txt +++ b/Simulation/ISF/ISF_Core/ISF_Services/CMakeLists.txt @@ -99,5 +99,5 @@ atlas_add_test( ISF_ServicesConfigNew_test set_target_properties( ISF_Services_TruthSvc_test PROPERTIES ENABLE_EXPORTS True ) # Install files from the package: -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) diff --git a/Simulation/ISF/ISF_Core/ISF_Services/python/ISF_ServicesConfigNew.py b/Simulation/ISF/ISF_Core/ISF_Services/python/ISF_ServicesConfigNew.py index 7cefb98f4f5377f2a5ea4a475ba7e98d00633b65..9e911a26c77a5319bbd03779c48223e014cc264d 100644 --- a/Simulation/ISF/ISF_Core/ISF_Services/python/ISF_ServicesConfigNew.py +++ b/Simulation/ISF/ISF_Core/ISF_Services/python/ISF_ServicesConfigNew.py @@ -20,7 +20,10 @@ from ISF_HepMC_Tools.ISF_HepMC_ToolsConfigNew import ( ParticleSimWhiteListCfg, ) from BarcodeServices.BarcodeServicesConfigNew import BarcodeSvcCfg - +from ISF_Geant4CommonTools.ISF_Geant4CommonToolsConfigNew import ( + EntryLayerToolCfg, AFIIEntryLayerToolCfg +) +from ISF_Tools.ISF_ToolsConfigNew import ParticleOrderingToolCfg def GenParticleFiltersToolCfg(ConfigFlags): result = ComponentAccumulator() @@ -64,6 +67,39 @@ def LongLivedInputConverterCfg(ConfigFlags, name="ISF_LongLivedInputConverter", return InputConverterCfg(name, **kwargs) +def ParticleBrokerSvcNoOrderingCfg(ConfigFlags, name="ISF_ParticleBrokerSvcNoOrdering", **kwargs): + result = EntryLayerToolCfg(ConfigFlags) + kwargs.setdefault("EntryLayerTool", result.popPrivateTools()) + kwargs.setdefault("GeoIDSvc", result.getService("ISF_GeoIDSvc")) + kwargs.setdefault("AlwaysUseGeoIDSvc", False) + kwargs.setdefault("ValidateGeoIDs", ConfigFlags.ISF.ValidationMode) + kwargs.setdefault("ValidationOutput", ConfigFlags.ISF.ValidationMode) + kwargs.setdefault("ValidationStreamName", "ParticleBroker") + + baracc = BarcodeSvcCfg(ConfigFlags) + kwargs.setdefault("BarcodeService", baracc.getPrimary()) + result.merge(baracc) + + result.addService(CompFactory.ISF.ParticleBrokerDynamicOnReadIn(name, **kwargs)) + return result + + +def ParticleBrokerSvcCfg(ConfigFlags, name="ISF_ParticleBrokerSvc", **kwargs): + # comment copied from old config + #kwargs.setdefault("ParticleOrderingTool", "ISF_InToOutSubDetOrderingTool") + result = ParticleOrderingToolCfg(ConfigFlags) + kwargs.setdefault("ParticleOrderingTool", result.popPrivateTools()) + result.merge(ParticleBrokerSvcNoOrderingCfg(name, **kwargs)) + return result + + +def AFIIParticleBrokerSvcCfg(ConfigFlags, name="ISF_AFIIParticleBrokerSvc", **kwargs): + result = AFIIEntryLayerToolCfg(ConfigFlags) + kwargs.setdefault("EntryLayerTool", result.popPrivateTools()) + result.merge(ParticleBrokerSvcCfg(name, **kwargs)) + return result + + # Generic Truth Service Configurations def TruthServiceCfg(ConfigFlags, **kwargs): """Return the TruthService config flagged by Sim.TruthStrategy""" diff --git a/Simulation/ISF/ISF_Core/ISF_Services/python/ISF_ServicesCoreConfigNew.py b/Simulation/ISF/ISF_Core/ISF_Services/python/ISF_ServicesCoreConfigNew.py index 6dc3ea47bffa649c08e995f912b6d97c923540d9..fac9ab538c0dcd07fc8a615441f48b6f02dd53a1 100644 --- a/Simulation/ISF/ISF_Core/ISF_Services/python/ISF_ServicesCoreConfigNew.py +++ b/Simulation/ISF/ISF_Core/ISF_Services/python/ISF_ServicesCoreConfigNew.py @@ -8,34 +8,9 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory from AthenaCommon.SystemOfUnits import mm from SubDetectorEnvelopes.SubDetectorEnvelopesConfigNew import EnvelopeDefSvcCfg -from BarcodeServices.BarcodeServicesConfigNew import BarcodeSvcCfg from ISF_Tools.ISF_ToolsConfigNew import ParticleKillerToolCfg -def ParticleBrokerSvcNoOrderingCfg(ConfigFlags, name="ISF_ParticleBrokerSvcNoOrdering", **kwargs): - kwargs.setdefault("EntryLayerTool", "ISF_EntryLayerTool") # TODO - kwargs.setdefault("GeoIDSvc", "ISF_GeoIDSvc") # TODO - kwargs.setdefault("AlwaysUseGeoIDSvc", False) - kwargs.setdefault("ValidateGeoIDs", ConfigFlags.ISF.ValidationMode) - kwargs.setdefault("ValidationOutput", ConfigFlags.ISF.ValidationMode) - kwargs.setdefault("ValidationStreamName", "ParticleBroker") - result = BarcodeSvcCfg(ConfigFlags) - kwargs.setdefault("BarcodeService", result.getPrimary()) - result.addService(CompFactory.ISF.ParticleBrokerDynamicOnReadIn(name, **kwargs)) - return result - - -def ParticleBrokerSvcCfg(ConfigFlags, name="ISF_ParticleBrokerSvc", **kwargs): - #kwargs.setdefault("ParticleOrderingTool", "ISF_InToOutSubDetOrderingTool") - kwargs.setdefault("ParticleOrderingTool", "ISF_ParticleOrderingTool") # TODO - return ParticleBrokerSvcNoOrderingCfg(name, **kwargs) - - -def AFIIParticleBrokerSvcCfg(ConfigFlags, name="ISF_AFIIParticleBrokerSvc", **kwargs): - kwargs.setdefault("EntryLayerTool", "ISF_AFIIEntryLayerTool") # TODO - return ParticleBrokerSvcCfg(name, **kwargs) - - def ISFEnvelopeDefSvcCfg(ConfigFlags, name="ISF_ISFEnvelopeDefSvc", **kwargs): result = EnvelopeDefSvcCfg(ConfigFlags) # ATLAS common envlope definitions @@ -72,7 +47,8 @@ def AFIIGeoIDSvcCfg(ConfigFlags, name="ISF_AFIIGeoIDSvc", **kwargs): def ParticleKillerSvcCfg(ConfigFlags, name="ISF_ParticleKillerSvc", **kwargs): result = ComponentAccumulator() kwargs.setdefault("Identifier", "ParticleKiller") - kwargs.setdefault("SimulatorTool", ParticleKillerToolCfg(ConfigFlags)) + tool = result.popToolsAndMerge(ParticleKillerToolCfg(ConfigFlags)) + kwargs.setdefault("SimulatorTool", tool) svc = CompFactory.ISF.LegacySimSvc(name, **kwargs) result.addService(svc) return result diff --git a/Simulation/ISF/ISF_Core/ISF_Tools/CMakeLists.txt b/Simulation/ISF/ISF_Core/ISF_Tools/CMakeLists.txt index 5b8165fe255b83647da958ca5b88fb0b576c350a..5546a231ded81f6c655a7575be426ddbb5350022 100644 --- a/Simulation/ISF/ISF_Core/ISF_Tools/CMakeLists.txt +++ b/Simulation/ISF/ISF_Core/ISF_Tools/CMakeLists.txt @@ -12,5 +12,5 @@ atlas_add_component( ISF_Tools LINK_LIBRARIES GaudiKernel AthenaBaseComps AtlasDetDescr BarcodeInterfacesLib GeneratorObjects ISF_Event ISF_InterfacesLib TrackRecordLib ) # Install files from the package: -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) diff --git a/Simulation/ISF/ISF_Core/ISF_Tools/python/ISF_ToolsConfigNew.py b/Simulation/ISF/ISF_Core/ISF_Tools/python/ISF_ToolsConfigNew.py index 2b8c4355e8c3e77acade30587783e9621fb01e51..b985690499a3fa81502c990370cb3ef0d3709ee2 100644 --- a/Simulation/ISF/ISF_Core/ISF_Tools/python/ISF_ToolsConfigNew.py +++ b/Simulation/ISF/ISF_Core/ISF_Tools/python/ISF_ToolsConfigNew.py @@ -2,6 +2,7 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration """ +from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory from AthenaCommon.SystemOfUnits import MeV from BarcodeServices.BarcodeServicesConfigNew import BarcodeSvcCfg @@ -15,7 +16,9 @@ def ParticleHelperCfg(flags, name="ISF_ParticleHelper", **kwargs): def MemoryMonitorToolCfg(flags, name="ISF_MemoryMonitor", **kwargs): - return CompFactory.ISF.MemoryMonitoringTool(name, **kwargs) + acc = ComponentAccumulator() + acc.setPrivateTools(CompFactory.ISF.MemoryMonitoringTool(name, **kwargs)) + return acc def EntryLayerFilterCfg(ConfigFlags, **kwargs): @@ -112,12 +115,16 @@ def CosmicEventFilterToolCfg(flags, name="ISF_CosmicEventFilter", **kwargs): kwargs.setdefault("PDG_ID", flags.Sim.CosmicFilterID) kwargs.setdefault("ptMin", flags.Sim.CosmicFilterPTmin) kwargs.setdefault("ptMax", flags.Sim.CosmicFilterPTmax) - return CompFactory.ISF.CosmicEventFilterTool(name, **kwargs) + acc = ComponentAccumulator() + acc.setPrivateTools(CompFactory.ISF.CosmicEventFilterTool(name, **kwargs)) + return acc def StoppedParticleFilterToolCfg(flags, name="ISF_StoppedParticleFilter", **kwargs): kwargs.setdefault("VolumeNames", ["StoppingPositions"]) - return CompFactory.ISF.CosmicEventFilterTool(name, **kwargs) + acc = ComponentAccumulator() + acc.setPrivateTools(CompFactory.ISF.CosmicEventFilterTool(name, **kwargs)) + return acc def InToOutSubDetOrderingToolCfg(flags, name="ISF_InToOutSubDetOrderingTool", **kwargs): @@ -127,7 +134,9 @@ def InToOutSubDetOrderingToolCfg(flags, name="ISF_InToOutSubDetOrderingTool", ** kwargs.setdefault("OrderCalo" , 10000 ) kwargs.setdefault("OrderMS" , 100 ) kwargs.setdefault("OrderCavern" , 1 ) - return CompFactory.ISF.GenericParticleOrderingTool(name, **kwargs) + acc = ComponentAccumulator() + acc.setPrivateTools(CompFactory.ISF.GenericParticleOrderingTool(name, **kwargs)) + return acc def ParticleOrderingToolCfg(flags, name="ISF_ParticleOrderingTool", **kwargs): @@ -136,12 +145,18 @@ def ParticleOrderingToolCfg(flags, name="ISF_ParticleOrderingTool", **kwargs): kwargs.setdefault("OrderCalo" , 1) kwargs.setdefault("OrderMS" , 1) kwargs.setdefault("OrderCavern" , 1) - return CompFactory.ISF.GenericParticleOrderingTool(name, **kwargs) + acc = ComponentAccumulator() + acc.setPrivateTools(CompFactory.ISF.GenericParticleOrderingTool(name, **kwargs)) + return acc def EnergyParticleOrderingToolCfg(flags, name="ISF_EnergyParticleOrderingTool", **kwargs): - return CompFactory.ISF.EnergyParticleOrderingTool(name, **kwargs) + acc = ComponentAccumulator() + acc.setPrivateTools(CompFactory.ISF.EnergyParticleOrderingTool(name, **kwargs)) + return acc def ParticleKillerToolCfg(flags, name="ISF_ParticleKillerTool", **kwargs): - return CompFactory.ISF.ParticleKillerSimTool(name, **kwargs) + acc = ComponentAccumulator() + acc.setPrivateTools(CompFactory.ISF.ParticleKillerSimTool(name, **kwargs)) + return acc diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4CommonTools/python/ISF_Geant4CommonToolsConfigNew.py b/Simulation/ISF/ISF_Geant4/ISF_Geant4CommonTools/python/ISF_Geant4CommonToolsConfigNew.py index ab18670d240b9f8e30d575390315f5eeb98d4dac..ef13934d41ae61f507f44d63d82494b6f9ce18d5 100644 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4CommonTools/python/ISF_Geant4CommonToolsConfigNew.py +++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4CommonTools/python/ISF_Geant4CommonToolsConfigNew.py @@ -2,16 +2,19 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration """ +from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory -from ISF_Services.ISF_ServicesConfigNew import GeoIDSvcCfg, AFIIGeoIDSvcCfg +from ISF_Services.ISF_ServicesCoreConfigNew import GeoIDSvcCfg, AFIIGeoIDSvcCfg from ISF_Tools.ISF_ToolsConfigNew import EntryLayerFilterCfg def EntryLayerToolCfg(flags, name="ISF_EntryLayerTool", **kwargs): - acc = GeoIDSvcCfg(flags) - kwargs.setdefault("GeoIDSvc", acc.getService("ISF_GeoIDSvc")) - acc_filter = EntryLayerFilterCfg(flags) - kwargs.setdefault("ParticleFilters", [acc.popToolsAndMerge(acc_filter)]) + acc = ComponentAccumulator() + if "GeoIDSvc" not in kwargs: + acc.merge(GeoIDSvcCfg(flags)) + kwargs["GeoIDSvc"] = acc.getService("ISF_GeoIDSvc") + filt = acc.popToolsAndMerge(EntryLayerFilterCfg(flags)) + kwargs.setdefault("ParticleFilters", [filt]) if flags.Sim.DoFullChain: # TODO and DetFlags.pileup.any_on(): kwargs.setdefault("EvtStore", "OriginalEvent_SG") # For Fast Chain acc.setPrivateTools(CompFactory.ISF.EntryLayerTool(name, **kwargs)) @@ -19,10 +22,12 @@ def EntryLayerToolCfg(flags, name="ISF_EntryLayerTool", **kwargs): def EntryLayerToolMTCfg(flags, name="ISF_EntryLayerToolMT", **kwargs): - acc = GeoIDSvcCfg(flags) - kwargs.setdefault("GeoIDSvc", acc.getService("ISF_GeoIDSvc")) - acc_filter = EntryLayerFilterCfg(flags) - kwargs.setdefault("ParticleFilters", [acc.popToolsAndMerge(acc_filter)]) + acc = ComponentAccumulator() + if "GeoIDSvc" not in kwargs: + acc.merge(GeoIDSvcCfg(flags)) + kwargs["GeoIDSvc"] = acc.getService("ISF_GeoIDSvc") + filt = acc.popToolsAndMerge(EntryLayerFilterCfg(flags)) + kwargs.setdefault("ParticleFilters", [filt]) if flags.Sim.DoFullChain: # TODO and DetFlags.pileup.any_on(): kwargs.setdefault("EvtStore", "OriginalEvent_SG") # For Fast Chain acc.setPrivateTools(CompFactory.ISF.EntryLayerToolMT(name, **kwargs)) @@ -30,14 +35,20 @@ def EntryLayerToolMTCfg(flags, name="ISF_EntryLayerToolMT", **kwargs): def AFIIEntryLayerToolCfg(flags, name="ISF_AFIIEntryLayerTool", **kwargs): - acc = AFIIGeoIDSvcCfg(flags) - kwargs.setdefault("GeoIDSvc", acc.getService("ISF_AFIIGeoIDSvc")) - acc.merge(EntryLayerToolCfg(name, **kwargs)) + acc = ComponentAccumulator() + if "GeoIDSvc" not in kwargs: + acc.merge(AFIIGeoIDSvcCfg(flags)) + kwargs["GeoIDSvc"] = acc.getService("ISF_AFIIGeoIDSvc") + tool = acc.popToolsAndMerge(EntryLayerToolCfg(name, **kwargs)) + acc.setPrivateTools(tool) return acc def AFIIEntryLayerToolMTCfg(flags, name="ISF_AFIIEntryLayerToolMT", **kwargs): - acc = AFIIGeoIDSvcCfg(flags) - kwargs.setdefault("GeoIDSvc", acc.getService("ISF_AFIIGeoIDSvc")) - acc.merge(EntryLayerToolMTCfg(name, **kwargs)) + acc = ComponentAccumulator() + if "GeoIDSvc" not in kwargs: + acc.merge(AFIIGeoIDSvcCfg(flags)) + kwargs["GeoIDSvc"] = acc.getService("ISF_AFIIGeoIDSvc") + tool = acc.popToolsAndMerge(EntryLayerToolMTCfg(name, **kwargs)) + acc.setPrivateTools(tool) return acc diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt index 4b519f49a9dbadc13a4211f860fa457c11fd191d..a055119d2cfa1b54512e09ff1f1ed1813966eb37 100644 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt +++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt @@ -26,5 +26,5 @@ atlas_add_component( ISF_Geant4Tools LINK_LIBRARIES ${ROOT_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib ${GEANT4_LIBRARIES} ${EIGEN_LIBRARIES} AthenaKernel GaudiKernel G4AtlasInterfaces AthenaBaseComps StoreGateLib SGtests AtlasDetDescr GeneratorObjects G4AtlasToolsLib G4AtlasAlgLib MCTruth SimHelpers ISF_Event ISF_InterfacesLib ISF_Geant4Event ISF_Geant4ToolsLib ) # Install files from the package: -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/python/ISF_Geant4ToolsConfigNew.py b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/python/ISF_Geant4ToolsConfigNew.py index f132d21e71f0eeb5c5e03c89ea0d7ab1f26599e6..6d92ec8ecf05f99837e0cf59cdb98b9fee9fe8d8 100644 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/python/ISF_Geant4ToolsConfigNew.py +++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/python/ISF_Geant4ToolsConfigNew.py @@ -5,8 +5,9 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory from AthenaCommon.SystemOfUnits import MeV +from ISF_Services.ISF_ServicesCoreConfigNew import GeoIDSvcCfg, AFIIGeoIDSvcCfg from ISF_Services.ISF_ServicesConfigNew import ( - TruthServiceCfg, GeoIDSvcCfg, AFIIGeoIDSvcCfg, + TruthServiceCfg, ParticleBrokerSvcCfg, InputConverterCfg, LongLivedInputConverterCfg )