From 329fb60afc06cf96d4da08f69d43f77dff3fdb04 Mon Sep 17 00:00:00 2001 From: John Derek Chapman <chapman@hep.phy.cam.ac.uk> Date: Thu, 13 Aug 2015 10:04:32 +0200 Subject: [PATCH] actually add python/FlagSetters.py and share/AllDet_detDescr.py. ATLASSIM-2148. Tagging ISF_Config-00-01-24 (ISF_Config-00-01-24) * actually add python/FlagSetters.py and share/AllDet_detDescr.py. ATLASSIM-2148 * tagging ISF_Config-00-01-24 2015-08-06 John Chapman <John.Chapman@cern.ch> * add python/FlagSetters.py - module containing methods to set DetFlags and in the future other jobproperties in a simulator-specific way. ATLASSIM-2148 * add python/AllDet_detDescr.py - replace the RecExCond version of this file with one that only does the minimum required for ISF. * share/ISF_ConfigJobInclude.py - remove all setting of DetFlags. This will now be done via the methods in FlagSetters.py. Include ISF_Config/AllDet_detDescr.py rather than RecExCond version. Use new ISF_Flags.Simulator.KernelName() method. * tagging ISF_Config-00-01-23 2015-07-31 John Chapman <John.Chapman@cern.ch> ... (Long ChangeLog diff - truncated) --- Simulation/ISF/ISF_Config/cmt/requirements | 1 - .../ISF/ISF_Config/python/FlagSetters.py | 168 +++++++ .../ISF/ISF_Config/python/ISF_MainConfig.py | 451 ++++++++---------- .../ISF_Config/python/ISF_jobProperties.py | 13 +- .../ISF/ISF_Config/share/AllDet_detDescr.py | 30 ++ .../ISF_Config/share/ISF_ConfigJobInclude.py | 22 +- .../ISF_Config/share/jobOptions_ConfGetter.py | 1 - 7 files changed, 415 insertions(+), 271 deletions(-) create mode 100644 Simulation/ISF/ISF_Config/python/FlagSetters.py create mode 100644 Simulation/ISF/ISF_Config/share/AllDet_detDescr.py diff --git a/Simulation/ISF/ISF_Config/cmt/requirements b/Simulation/ISF/ISF_Config/cmt/requirements index 77ee5ff5cec..0cfcff22a3c 100644 --- a/Simulation/ISF/ISF_Config/cmt/requirements +++ b/Simulation/ISF/ISF_Config/cmt/requirements @@ -6,7 +6,6 @@ manager Wolfgang Lukas <Wolfgang.Lukas@cern.ch> private use AtlasPolicy AtlasPolicy-* -use AtlasReconstructionRunTime AtlasReconstructionRunTime-* private use TestPolicy TestPolicy-* diff --git a/Simulation/ISF/ISF_Config/python/FlagSetters.py b/Simulation/ISF/ISF_Config/python/FlagSetters.py new file mode 100644 index 00000000000..5547d743f93 --- /dev/null +++ b/Simulation/ISF/ISF_Config/python/FlagSetters.py @@ -0,0 +1,168 @@ +# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + + +## Base method + +def configureFlagsBase(): + from AthenaCommon.DetFlags import DetFlags + if not DetFlags.any_on(): + # If you configure some of the DetFlags then you're + # responsible for configuring all of them. + DetFlags.all_setOn() + DetFlags.Truth_setOn() # FIXME redundant? + DetFlags.LVL1_setOff() # LVL1 is not part of G4 sim + DetFlags.Forward_setOff() # Forward dets are off by default + + ## Configure tasks + DetFlags.digitize.all_setOff() + DetFlags.makeRIO.all_setOff() + #DetFlags.overlay.all_setOff() # will soon be needed + DetFlags.pileup.all_setOff() + DetFlags.readRDOBS.all_setOff() + DetFlags.readRDOPool.all_setOff() + DetFlags.readRIOBS.all_setOff() + DetFlags.readRIOPool.all_setOff() + DetFlags.simulateLVL1.all_setOff() + DetFlags.writeBS.all_setOff() + DetFlags.writeRDOPool.all_setOff() + DetFlags.writeRIOPool.all_setOff() + return + +## methods for Geant4 only simulators + +def configureFlagsFullG4(): + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "FullG4" + return + +def configureFlagsPassBackG4(): + configureFlagsFullG4() + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "PassBackG4" + return + +def configureFlagsMC12G4(): + configureFlagsFullG4() + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "MC12G4" + return + +def configureFlagsMC12G4_longLived(): + configureFlagsMC12G4() + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "MC12G4_longLived" + return + +def configureFlagsCosmicsG4(): + configureFlagsMC12G4() + return + +def configureFlagsMC12G4_IDOnly(): + configureFlagsFullG4() + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "MC12G4_IDOnly" + return + +def configureFlagsMC12G4_IDCalo(): + configureFlagsFullG4() + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "MC12G4_IDCalo" + return + +## methods for simulators which use G4 + FastCaloSim + +def configureFlagsATLFASTII(): + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "AtlfastII" # TODO: can we rename this to "ATLFASTII" ? + return + +## methods for simulators which use Fatras + FastCaloSim + +def configureFlagsATLFASTIIF(): + from AthenaCommon.DetFlags import DetFlags + # BCM simulation not supported in FATRAS. Currently it is the + # geometry task which is used to determine whether a detector has + # been simulated (see ISF_Example/python/ISF_Output.py) + DetFlags.geometry.BCM_setOff() + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "ATLFASTIIF" + return + +def configureFlagsFatras_newExtrapolation(): + configureFlagsATLFASTIIF() + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "Fatras_newExtrapolation" + return + +def configureFlagsFatras_newExtrapolation_IDOnly(): + configureFlagsATLFASTIIF() + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "Fatras_newExtrapolation_IDOnly" + return + +def configureFlagsATLFASTIIF_PileUp(): + configureFlagsATLFASTIIF() + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "ATLFASTIIF_PileUp" + return + +def configureFlagsATLFASTIIF_IDOnly(): + configureFlagsATLFASTIIF() + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "ATLFASTIIF_IDOnly" + return + +def configureFlagsATLFASTIIF_IDCalo(): + configureFlagsATLFASTIIF() + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "ATLFASTIIF_IDCalo" + return + +def configureFlagsFastOnly(): + configureFlagsATLFASTIIF() + return + +## methods for simulators which combine Geant4, Fatras and FastCaloSim + +def configureFlagsMultiSimTest(): + return + +def configureFlagsG4GammaCones(): + return + +def configureFlagsG4GammaCones_FastCalo(): + return + +def configureFlagsFatrasGammaCones_FastCalo(): + return + +def configureFlagsG4BHadronsOnly_FastCalo(): + return + +def configureFlagsG4BHadrons_FatrasID_FastCalo(): + return + +def configureFlagsG4TauProductsOnly(): + return + +def configureFlagsG4HiggsLeptonsConeOnly(): + return + +def configureFlagsG4HiggsLeptons(): + return + +def configureFlagsG4WLeptonsCone_FatrasID_FastCalo (): + return + +def configureFlagsG4JPsiLeptonsCone_FatrasID_FastCalo (): + return + +def configureFlagsG4ZLeptonsCone_FatrasID_FastCalo (): + return + +def configureFlagsG4ZLeptonsConeSticky_FatrasID_FastCalo (): + return + +def configureFlagsG4ZDecayProducts_FatrasID_FastCalo (): + return + diff --git a/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py b/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py index f0b4da8fd03..c28554e9264 100644 --- a/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py +++ b/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py @@ -5,16 +5,10 @@ Tools configurations for ISF KG Tan, 17/06/2012 """ -from AthenaCommon.CfgGetter import getPrivateTool,getPrivateToolClone,getPublicTool,getPublicToolClone,\ - getService,getServiceClone,getAlgorithm,getAlgorithmClone - from AthenaCommon.Constants import * # FATAL,ERROR etc. from AthenaCommon.SystemOfUnits import * -from AthenaCommon.DetFlags import DetFlags -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -from AthenaCommon.AppMgr import ServiceMgr -from AthenaPython import PyAthena +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags from ISF_Config.ISF_jobProperties import ISF_Flags ############## Input: GenericGenerator ############### @@ -41,8 +35,10 @@ def getInput_GenericGenerator(name="ISF_Input_GenericGenerator", **kwargs): def getInput_GenericFiles(name="ISF_Input_GenericFiles", **kwargs): # Takes input file from athenaCommonFlags.PoolEvgenInput import AthenaPoolCnvSvc.ReadAthenaPool + from AthenaCommon.AppMgr import ServiceMgr ServiceMgr.EventPersistencySvc.CnvServices += [ 'AthenaPoolCnvSvc' ] ServiceMgr.EventSelector.InputCollections = athenaCommonFlags.PoolEvgenInput.get_Value() + from AthenaPython import PyAthena return PyAthena.Alg(name) ############## Input: MultiParticleTest ############### @@ -196,12 +192,17 @@ def getKernel_GenericSimulator(name="ISF_Kernel_GenericSimulator", **kwargs): from ISF_Algorithms.ISF_AlgorithmsConf import ISF__SimKernel SimKernel = ISF__SimKernel(name, **kwargs) - + ##FIXME shouldn't really be doing this here from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() topSequence += SimKernel return SimKernel +############## Simulator: GenericSimulatorNoG4 ############### +def getKernel_GenericSimulatorNoG4(name="ISF_Kernel_GenericSimulatorNoG4", **kwargs): + kwargs.setdefault("SimHitService" , "ISF_NoG4SimHitService" ) + return getKernel_GenericSimulator(name, **kwargs) + ############## Simulator: MultiSimTest ############### def getKernel_MultiSimTest(name="ISF_Kernel_MultiSimTest", **kwargs): kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_DefaultGeant4Selector' ] ) @@ -300,7 +301,7 @@ def getKernel_ATLFASTIIF(name="ISF_Kernel_ATLFASTIIF", **kwargs): # set the simFlags accordingly (TODO: is this even needed?) from G4AtlasApps.SimFlags import simFlags simFlags.SimulationFlavour = "ATLFASTIIF" - return getKernel_GenericSimulator(name, **kwargs) + return getKernel_GenericSimulatorNoG4(name, **kwargs) ############## Simulator: Fatras_newExtrapolation ############### def getKernel_Fatras_newExtrapolation(name="ISF_Kernel_Fatras_newExtrapolation", **kwargs): @@ -312,324 +313,282 @@ def getKernel_Fatras_newExtrapolation(name="ISF_Kernel_Fatras_newExtrapolation", # set the simFlags accordingly (TODO: is this even needed?) from G4AtlasApps.SimFlags import simFlags simFlags.SimulationFlavour = "Fatras_newExtrapolation" - return getKernel_GenericSimulator(name, **kwargs) + return getKernel_GenericSimulatorNoG4(name, **kwargs) ############## Simulator: Fatras_newExtrapolation_IDOnly ############### def getKernel_Fatras_newExtrapolation_IDOnly(name="ISF_Kernel_Fatras_newExtrapolation_IDOnly", **kwargs): kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_DefaultFatrasNewExtrapolationSelector' ] ) kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_DefaultFatrasNewExtrapolationSelector' ] ) - kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) - kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) - kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) # set the simFlags accordingly (TODO: is this even needed?) from G4AtlasApps.SimFlags import simFlags simFlags.SimulationFlavour = "Fatras_newExtrapolation_IDOnly" - return getKernel_GenericSimulator(name, **kwargs) + return getKernel_GenericSimulatorNoG4(name, **kwargs) ############## Simulator: ATLFASTIIF fast pileup ############### def getKernel_ATLFASTIIF_PileUp(name="ISF_Kernel_ATLFASTIIF_PileUp", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_FatrasRandomSelector'), - #getPublicTool('ISF_FatrasTRTPileupSelector'), - getPublicTool('ISF_FatrasPileupSelector'), - getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_MuonFatrasSelector'), - getPublicTool('ISF_EtaGreater5ParticleKillerSimSelector'), - getPublicTool('ISF_FastCaloSimPileupSelector'), - getPublicTool('ISF_DefaultFastCaloSimSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] + kwargs.setdefault("SimHitService" , "ISF_PileupSimHitService" ) + kwargs.setdefault("BeamPipeSimulationSelectors", [ 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ #'ISF_FatrasRandomSelector', + #'ISF_FatrasPileupSelector_noHits', + 'ISF_FatrasPileupSelector', + 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_MuonFatrasSelector', + 'ISF_EtaGreater5ParticleKillerSimSelector', + 'ISF_FastCaloSimPileupSelector', + 'ISF_DefaultFastCaloSimSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + # set the simFlags accordingly from G4AtlasApps.SimFlags import simFlags simFlags.SimulationFlavour = "ATLFASTIIF_PileUp" - return SimKernel + return getKernel_GenericSimulatorNoG4(name, **kwargs) ############## Simulator: ATLFASTIIF_IDOnly ############### def getKernel_ATLFASTIIF_IDOnly(name="ISF_Kernel_ATLFASTIIF_IDonly", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] + kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) # set the simFlags accordingly (TODO: is this even needed?) from G4AtlasApps.SimFlags import simFlags simFlags.SimulationFlavour = "ATLFASTIIF_IDOnly" - return SimKernel + return getKernel_GenericSimulatorNoG4(name, **kwargs) ############## Simulator: ATLFASTIIF_IDCalo ############### def getKernel_ATLFASTIIF_IDCalo(name="ISF_Kernel_ATLFASTIIF_IDCalo", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] + kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) # set the simFlags accordingly (TODO: is this even needed?) from G4AtlasApps.SimFlags import simFlags simFlags.SimulationFlavour = "ATLFASTIIF_IDCalo" - return SimKernel + return getKernel_GenericSimulatorNoG4(name, **kwargs) ############## Simulator: FastOnly ############### def getKernel_FastOnly(name="ISF_Kernel_FastOnly", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_DefaultFastCaloSimSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_DefaultFastCaloSimSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulatorNoG4(name, **kwargs) ############## Simulator: G4GammaCones ############### def getKernel_G4GammaCones(name="ISF_Kernel_G4GammaCones", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_PhotonConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_PhotonConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_PhotonConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_PhotonConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_PhotonConeGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_PhotonConeGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_PhotonConeGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_PhotonConeGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) ############## Simulator: G4GammaCones_FastCalo ############### def getKernel_G4GammaCones_FastCalo(name="ISF_Kernel_G4GammaCones_FastCalo", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_PhotonConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_PhotonConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_MuonGeant4Selector'), - getPublicTool('ISF_WithinEta5FastCaloSimSelector'), - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_PhotonConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_PhotonConeGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_PhotonConeGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_MuonGeant4Selector', + 'ISF_WithinEta5FastCaloSimSelector', + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_PhotonConeGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) ############## Simulator: FatrasGammaCones_FastCalo ############### def getKernel_FatrasGammaCones_FastCalo(name="ISF_Kernel_FatrasGammaCones_FastCalo", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_PhotonConeFatrasSelector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_WithinEta5FastCaloSimSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_PhotonConeFatrasSelector', + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_WithinEta5FastCaloSimSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) ############## Simulator: G4BHadronsOnly_FastCalo ############### def getKernel_G4BHadronsOnly_FastCalo(name="ISF_Kernel_G4BHadronsOnly_FastCalo", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_BHadronProductsGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.IDSimulationSelectors = SimKernel.BeamPipeSimulationSelectors - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_MuonGeant4Selector'), - getPublicTool('ISF_WithinEta5FastCaloSimSelector'), - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_BHadronProductsGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + SelectorList = [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_BHadronProductsGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] + kwargs.setdefault("BeamPipeSimulationSelectors" , SelectorList ) + kwargs.setdefault("IDSimulationSelectors" , SelectorList ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_MuonGeant4Selector', + 'ISF_WithinEta5FastCaloSimSelector', + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_BHadronProductsGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) ############## Simulator: G4BHadronsOnly_FastCalo ############### def getKernel_G4BHadrons_FatrasID_FastCalo(name="ISF_Kernel_G4BHadrons_FatrasID_FastCalo", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_BHadronProductsGeant4Selector') , - getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.IDSimulationSelectors = SimKernel.BeamPipeSimulationSelectors - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_MuonGeant4Selector'), - getPublicTool('ISF_WithinEta5FastCaloSimSelector'), - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_MuonGeant4Selector'), - getPublicTool('ISF_BHadronProductsGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + SelectorList = [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_BHadronProductsGeant4Selector' , + 'ISF_DefaultFatrasSelector' ] + kwargs.setdefault("BeamPipeSimulationSelectors" , SelectorList ) + kwargs.setdefault("IDSimulationSelectors" , SelectorList ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_MuonGeant4Selector', + 'ISF_WithinEta5FastCaloSimSelector', + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_MuonGeant4Selector', + 'ISF_BHadronProductsGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) ############## Simulator: G4TauProductsOnly ############### def getKernel_G4TauProductsOnly(name="ISF_Kernel_G4TauProductsOnly", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_TauProductsGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.IDSimulationSelectors = SimKernel.BeamPipeSimulationSelectors - SimKernel.CaloSimulationSelectors = SimKernel.BeamPipeSimulationSelectors - SimKernel.MSSimulationSelectors = SimKernel.BeamPipeSimulationSelectors - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + SelectorList = [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_TauProductsGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] + kwargs.setdefault("BeamPipeSimulationSelectors" , SelectorList ) + kwargs.setdefault("IDSimulationSelectors" , SelectorList ) + kwargs.setdefault("CaloSimulationSelectors" , SelectorList ) + kwargs.setdefault("MSSimulationSelectors" , SelectorList ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) ############## Simulator: G4HiggsLeptonsConeOnly ############### def getKernel_G4HiggsLeptonsConeOnly(name="ISF_Kernel_G4HiggsLeptonsConeOnly", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicToolClone('ISF_HiggsLeptonsConeGeant4SelectorBeamPipe', - 'ISF_HiggsLeptonsConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicToolClone('ISF_HiggsLeptonsConeGeant4SelectorID', - 'ISF_HiggsLeptonsConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicToolClone('ISF_HiggsLeptonsConeGeant4SelectorCalo', - 'ISF_HiggsLeptonsConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicToolClone('ISF_HiggsLeptonsConeGeant4SelectorMS', - 'ISF_HiggsLeptonsConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + from AthenaCommon.CfgGetter import getPublicToolClone + kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + getPublicToolClone('ISF_HiggsLeptonsConeGeant4SelectorBeamPipe','ISF_HiggsLeptonsConeGeant4Selector') , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + getPublicToolClone('ISF_HiggsLeptonsConeGeant4SelectorID','ISF_HiggsLeptonsConeGeant4Selector') , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + getPublicToolClone('ISF_HiggsLeptonsConeGeant4SelectorCalo','ISF_HiggsLeptonsConeGeant4Selector') , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + getPublicToolClone('ISF_HiggsLeptonsConeGeant4SelectorMS','ISF_HiggsLeptonsConeGeant4Selector') , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) ############## Simulator: G4HiggsLeptons ############### def getKernel_G4HiggsLeptons(name="ISF_Kernel_G4HiggsLeptons", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) + kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_DefaultGeant4Selector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_DefaultGeant4Selector' ] ) - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_DefaultGeant4Selector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_DefaultGeant4Selector') ] + #kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_HiggsLeptonsConeGeant4CaloSelector', + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_HiggsLeptonsConeGeant4Selector', + 'ISF_DefaultFastCaloSimSelector' ] ) - #SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_HiggsLeptonsConeGeant4CaloSelector'), - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_HiggsLeptonsConeGeant4Selector'), - getPublicTool('ISF_DefaultFastCaloSimSelector') ] + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_DefaultGeant4Selector' ] ) - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_DefaultGeant4Selector') ] - - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) ############## Simulator: G4WLeptonsCone_FatrasID_FastCalo ############### def getKernel_G4WLeptonsCone_FatrasID_FastCalo (name="ISF_Kernel_G4WLeptonsCone_Fatras_ID_FastCalo", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_WLeptonsConeGeant4Selector') , - getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_WLeptonsConeGeant4Selector') , - getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_WLeptonsConeGeant4Selector') , - getPublicTool('ISF_WithinEta5FastCaloSimSelector'), - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_WLeptonsConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_WLeptonsConeGeant4Selector' , + 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_WLeptonsConeGeant4Selector' , + 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_WLeptonsConeGeant4Selector' , + 'ISF_WithinEta5FastCaloSimSelector', + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_WLeptonsConeGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) ############## Simulator: G4JPsiLeptonsCone_FatrasID_FastCalo ############### def getKernel_G4JPsiLeptonsCone_FatrasID_FastCalo (name="ISF_Kernel_G4JPsiLeptonsCone_Fatras_ID_FastCalo", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_JPsiLeptonsConeGeant4Selector') , - getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_JPsiLeptonsConeGeant4Selector') , - getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_JPsiLeptonsConeGeant4Selector') , - getPublicTool('ISF_WithinEta5FastCaloSimSelector'), - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_JPsiLeptonsConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_JPsiLeptonsConeGeant4Selector' , + 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_JPsiLeptonsConeGeant4Selector' , + 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_JPsiLeptonsConeGeant4Selector' , + 'ISF_WithinEta5FastCaloSimSelector', + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_JPsiLeptonsConeGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) ############## Simulator: G4ZLeptonsCone_FatrasID_FastCalo ############### def getKernel_G4ZLeptonsCone_FatrasID_FastCalo (name="ISF_Kernel_G4ZLeptonsCone_FatrasID_FastCalo", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_ZLeptonsPositionConeGeant4Selector') , - getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_ZLeptonsDirectionConeGeant4Selector') , - getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_ZLeptonsPositionConeGeant4Selector') , - getPublicTool('ISF_WithinEta5FastCaloSimSelector'), - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_SubDetStickyGeant4SimSelector'), - getPublicTool('ISF_ZLeptonsPositionConeGeant4Selector') , - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_ZLeptonsPositionConeGeant4Selector' , + 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_ZLeptonsDirectionConeGeant4Selector' , + 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_ZLeptonsPositionConeGeant4Selector' , + 'ISF_WithinEta5FastCaloSimSelector', + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_SubDetStickyGeant4SimSelector', + 'ISF_ZLeptonsPositionConeGeant4Selector' , + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) ############## Simulator: G4ZLeptonsConeSticky_FatrasID_FastCalo ############### def getKernel_G4ZLeptonsConeSticky_FatrasID_FastCalo (name="ISF_Kernel_G4ZLeptonsConeSticky_FatrasID_FastCalo", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - - SimKernel.BeamPipeSimulationSelectors = [ getPublicTool('ISF_GlobalStickyGeant4SimSelector'), - getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.IDSimulationSelectors = [ getPublicTool('ISF_GlobalStickyGeant4SimSelector'), - getPublicTool('ISF_ZLeptonsDirectionConeGeant4Selector') , - getPublicTool('ISF_DefaultFatrasSelector') ] - SimKernel.CaloSimulationSelectors = [ getPublicTool('ISF_GlobalStickyGeant4SimSelector'), - getPublicTool('ISF_WithinEta5FastCaloSimSelector'), - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.MSSimulationSelectors = [ getPublicTool('ISF_GlobalStickyGeant4SimSelector'), - getPublicTool('ISF_DefaultParticleKillerSelector') ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_GlobalStickyGeant4SimSelector', + 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_GlobalStickyGeant4SimSelector', + 'ISF_ZLeptonsDirectionConeGeant4Selector' , + 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_GlobalStickyGeant4SimSelector', + 'ISF_WithinEta5FastCaloSimSelector', + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_GlobalStickyGeant4SimSelector', + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) ############## Simulator: G4ZDecayLeptons_FatrasID_FastCalo ############### def getKernel_G4ZDecayProducts_FatrasID_FastCalo (name="ISF_Kernel_G4ZDecayProducts_FatrasID_FastCalo", **kwargs): - SimKernel = getKernel_GenericSimulator(name, **kwargs) - # This selector chain assigns the Z decay products for G4 simulation. # The GlobalStickG4 selector ensures that a particle which was inside # G4 at one point will always be simulated within G4. - GlobalStickyG4ZDecayProductsSelector = [ getPublicTool('ISF_GlobalStickyGeant4SimSelector'), - getPublicTool('ISF_ZProductsGeant4Selector') ] - - SimKernel.BeamPipeSimulationSelectors = GlobalStickyG4ZDecayProductsSelector + [ - getPublicTool('ISF_DefaultParticleKillerSelector') - ] - SimKernel.IDSimulationSelectors = GlobalStickyG4ZDecayProductsSelector + [ - getPublicTool('ISF_DefaultFatrasSelector') - ] - SimKernel.CaloSimulationSelectors = GlobalStickyG4ZDecayProductsSelector + [ - getPublicTool('ISF_WithinEta5FastCaloSimSelector'), - getPublicTool('ISF_DefaultParticleKillerSelector') - ] - SimKernel.MSSimulationSelectors = GlobalStickyG4ZDecayProductsSelector + [ - getPublicTool('ISF_DefaultFatrasSelector') - ] - SimKernel.CavernSimulationSelectors = [ getPublicTool('ISF_DefaultParticleKillerSelector') ] - return SimKernel + GlobalStickyG4ZDecayProductsSelector = [ 'ISF_GlobalStickyGeant4SimSelector', + 'ISF_ZProductsGeant4Selector' ] + + kwargs.setdefault("BeamPipeSimulationSelectors" , GlobalStickyG4ZDecayProductsSelector + [ 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("IDSimulationSelectors" , GlobalStickyG4ZDecayProductsSelector + [ 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , GlobalStickyG4ZDecayProductsSelector + [ 'ISF_WithinEta5FastCaloSimSelector', + 'ISF_DefaultParticleKillerSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , GlobalStickyG4ZDecayProductsSelector + [ 'ISF_DefaultFatrasSelector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + return getKernel_GenericSimulator(name, **kwargs) # This does not work yet: if the ISF_Flags are set via a preExec it mixes # up the initialization order and simulators do not get configured # properly! ############### Simulator: FromJobProperties ############### #def getKernel_FromJobProperties (name="ISF_Kernel_FromJobProperties", **kwargs): -# SimKernel = getKernel_GenericSimulator(name, **kwargs) -# # from ISF_Config.ISF_jobProperties import ISF_Flags -# SimKernel.BeamPipeSimulationSelectors = ISF_Flags.RoutingChainBeamPipe() -# SimKernel.IDSimulationSelectors = ISF_Flags.RoutingChainID() -# SimKernel.CaloSimulationSelectors = ISF_Flags.RoutingChainCalo() -# SimKernel.MSSimulationSelectors = ISF_Flags.RoutingChainMS() -# SimKernel.CavernSimulationSelectors = ISF_Flags.RoutingChainCavern() +# kwargs.setdefault("BeamPipeSimulationSelectors" , ISF_Flags.RoutingChainBeamPipe() ) +# kwargs.setdefault("IDSimulationSelectors" , ISF_Flags.RoutingChainID() ) +# kwargs.setdefault("CaloSimulationSelectors" , ISF_Flags.RoutingChainCalo() ) +# kwargs.setdefault("MSSimulationSelectors" , ISF_Flags.RoutingChainMS() ) +# kwargs.setdefault("CavernSimulationSelectors" , ISF_Flags.RoutingChainCavern() ) # -# return SimKernel +# return getKernel_GenericSimulator(name, **kwargs) diff --git a/Simulation/ISF/ISF_Config/python/ISF_jobProperties.py b/Simulation/ISF/ISF_Config/python/ISF_jobProperties.py index b023231c102..47406328301 100644 --- a/Simulation/ISF/ISF_Config/python/ISF_jobProperties.py +++ b/Simulation/ISF/ISF_Config/python/ISF_jobProperties.py @@ -76,12 +76,6 @@ class VertexPositionFromFile(JobProperty): allowedTypes = ['bool'] StoredValue = False -class UseNewG4Config(JobProperty): - """Steering of ISF: use new G4 config""" - statusOn = True - allowedTypes = ['bool'] - StoredValue = False - class DoMemoryMonitoring(JobProperty): """Steering of ISF: do memory monitoring""" statusOn = True @@ -105,6 +99,12 @@ class Simulator(JobProperty): statusOn = True allowedTypes = ['str'] StoredValue = 'ATLFASTII' + def KernelName(self): + if self.statusOn: + return 'ISF_Kernel_' + self.StoredValue + def configFlagsMethodName(self): + if self.statusOn: + return 'configureFlags' + self.StoredValue ## TODO Setting this should automatically update dependent jobproperties. class TruthStrategy(JobProperty): @@ -206,7 +206,6 @@ jobproperties.ISF_jobProperties.add_JobProperty(DumpStoreGate) jobproperties.ISF_jobProperties.add_JobProperty(RunValgrind) jobproperties.ISF_jobProperties.add_JobProperty(ValidationMode) jobproperties.ISF_jobProperties.add_JobProperty(VertexPositionFromFile) -jobproperties.ISF_jobProperties.add_JobProperty(UseNewG4Config) jobproperties.ISF_jobProperties.add_JobProperty(DoMemoryMonitoring) jobproperties.ISF_jobProperties.add_JobProperty(DoTimeMonitoring) jobproperties.ISF_jobProperties.add_JobProperty(Input) diff --git a/Simulation/ISF/ISF_Config/share/AllDet_detDescr.py b/Simulation/ISF/ISF_Config/share/AllDet_detDescr.py new file mode 100644 index 00000000000..ff5bd27eeb0 --- /dev/null +++ b/Simulation/ISF/ISF_Config/share/AllDet_detDescr.py @@ -0,0 +1,30 @@ +# include so that alldet_detdescr can be used directly from somewhere else +# (there is an include.block so that it is only loaded once) +include.block("ISF_Config/AllDet_detDescr.py") +# also block alternatives +include.block("RecExCond/AllDet_detDescr.py") +include.block("RecExCommon/AllDet_detDescr.py") + +from AthenaCommon.Resilience import protectedInclude + +if DetFlags.detdescr.any_on(): + from AtlasGeoModel import SetGeometryVersion + from AtlasGeoModel import GeoModelInit + from AtlasGeoModel import SetupRecoGeometry + + # Beam Spot service job options - just defines conditions data access + if DetFlags.detdescr.ID_on(): + protectedInclude("InDetBeamSpotService/BeamCondSvc.py" ) + + if DetFlags.detdescr.LAr_on(): + include( "LArDetDescr/LArDetDescr_joboptions.py" ) + + if DetFlags.detdescr.Tile_on(): + protectedInclude( "TileConditions/TileConditions_jobOptions.py" ) + + if DetFlags.detdescr.Muon_on(): + protectedInclude ("AmdcAth/AmdcAth_jobOptions.py") + + # MagneticField Service + if DetFlags.detdescr.BField_on(): + import MagFieldServices.SetupField diff --git a/Simulation/ISF/ISF_Config/share/ISF_ConfigJobInclude.py b/Simulation/ISF/ISF_Config/share/ISF_ConfigJobInclude.py index 43ab6bf4e1b..0dff601673e 100644 --- a/Simulation/ISF/ISF_Config/share/ISF_ConfigJobInclude.py +++ b/Simulation/ISF/ISF_Config/share/ISF_ConfigJobInclude.py @@ -53,31 +53,20 @@ if globalflags.DetDescrVersion() not in simFlags.SimLayout.get_Value(): simFlags.load_atlas_flags() simFlags.EventFilter.set_Off() -# set the detectors on/off and steer the fast simulation flags -if 'DetFlags' not in dir(): - ## If you configure one det flag, you're responsible for configuring them all! - from AthenaCommon.DetFlags import DetFlags - DetFlags.all_setOn() - DetFlags.LVL1_setOff() # LVL1 is not part of G4 sim - DetFlags.Truth_setOn() - DetFlags.Forward_setOff() # Forward dets are off by default - #-------------------------------------------------------------- # Job setup #-------------------------------------------------------------- theApp.EvtMax = athenaCommonFlags.EvtMax() # all det description -include('RecExCond/AllDet_detDescr.py') +include('ISF_Config/AllDet_detDescr.py') +DetFlags.Print() if len(globalflags.ConditionsTag()): from IOVDbSvc.CondDB import conddb conddb.setGlobalTag(globalflags.ConditionsTag()) -#include("ISF_Example/CommonISFJobOptions.py") - - #-------------------------------------------------------------- # Setup the ISF Services #-------------------------------------------------------------- @@ -115,8 +104,9 @@ elif jobproperties.Beam.beamType.get_Value() == 'cosmics': else: getAlgorithm('EvgenCosmicGenerator') # non of the above -elif hasattr(ServiceMgr, 'EventSelector'): - print "ISF Input Configuration: EventSelector already defined, likely running with a particle gun preInclude" + +elif not athenaCommonFlags.PoolEvgenInput.statusOn: + print "ISF Input Configuration: PoolEvgenInput off, likely running with a particle gun preInclude" # non of the above -> input via ISF_Flags else : if ISF_Flags.OverrideInputFiles(): @@ -133,7 +123,7 @@ from ISF_Example.ISF_Input import ISF_Input #from ISF_Geant4Tools.ISF_Geant4ToolsConf import iGeant4__SDActivateUserAction #ToolSvc += iGeant4__SDActivateUserAction("ISFSDActivateUserAction", # OutputLevel=INFO) -SimKernel = getAlgorithm('ISF_Kernel_' + ISF_Flags.Simulator()) +SimKernel = getAlgorithm(ISF_Flags.Simulator.KernelName()) #-------------------------------------------------------------- diff --git a/Simulation/ISF/ISF_Config/share/jobOptions_ConfGetter.py b/Simulation/ISF/ISF_Config/share/jobOptions_ConfGetter.py index cab772a308e..d0b2b2b019c 100644 --- a/Simulation/ISF/ISF_Config/share/jobOptions_ConfGetter.py +++ b/Simulation/ISF/ISF_Config/share/jobOptions_ConfGetter.py @@ -38,7 +38,6 @@ from ISF_Config.ISF_jobProperties import ISF_Flags #ISF_Flags.RunValgrind = True # default: False ISF_Flags.ValidationMode = ValidationMode # default: False #ISF_Flags.VertexPositionFromFile = True # default: False -#ISF_Flags.UseNewG4Config = True # default: False ISF_Flags.DoMemoryMonitoring = True # default: False ISF_Flags.DoTimeMonitoring = True # default: False ISF_Flags.Input = Input # default: 'ttbar' -- GitLab