Skip to content
Snippets Groups Projects
Commit 0886a72c authored by John Chapman's avatar John Chapman
Browse files

Add support for Quasi-stable particle simulation in AFII jobs

In order to allow Quasi-stable particles to be simulated in AFII jobs
the following tool and service configurations were added:
- `AFII_QS_G4TransportTool`
- `AFII_QS_Geant4SimSvc`
- `ISF_MuonAFII_QS_Geant4Selector`
- `ISF_DefaultAFII_QS_Geant4Selector`
- `ISF_Kernel_ATLFASTII_QS`

The new simulator can be used by specifying `--simulator ATLFASTII_QS` on the
`Sim_tf.py` command-line.
parent 88b5b7ea
No related branches found
No related tags found
No related merge requests found
......@@ -33,6 +33,7 @@ addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_MC12G4_IDCalo", "ISF_Ker
addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_PassBackG4", "ISF_Kernel_PassBackG4")
addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_CosmicsG4", "ISF_Kernel_CosmicsG4")
addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_ATLFASTII", "ISF_Kernel_ATLFASTII")
addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_ATLFASTII_QS", "ISF_Kernel_ATLFASTII_QS")
addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_ATLFASTIIF", "ISF_Kernel_ATLFASTIIF")
addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_ATLFASTIIF_PileUp", "ISF_Kernel_ATLFASTIIF_PileUp")
addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_ATLFASTII_PileUp", "ISF_Kernel_ATLFASTII_PileUp")
......
......@@ -345,6 +345,24 @@ def getKernel_ATLFASTII(name="ISF_Kernel_ATLFASTII", **kwargs):
simFlags.SimulationFlavour = "AtlfastII" # TODO: can we rename this to "ATLFASTII" ?
return getKernel_GenericSimulator(name, **kwargs)
############## Simulator: ATLFASTII_QS ###############
def getKernel_ATLFASTII_QS(name="ISF_Kernel_ATLFASTII_QS", **kwargs):
kwargs.setdefault("ParticleBroker" , 'ISF_AFIIParticleBrokerSvc' )
kwargs.setdefault("BeamPipeSimulationSelectors", [ 'ISF_DefaultAFII_QS_Geant4Selector' ] )
kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_DefaultAFII_QS_Geant4Selector' ] )
kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_MuonAFII_QS_Geant4Selector',
'ISF_EtaGreater5ParticleKillerSimSelector',
'ISF_DefaultLegacyAFII_QS_FastCaloSimSelector' ] )
kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_DefaultAFII_QS_Geant4Selector' ] )
kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] )
kwargs.setdefault("InputConverter" , 'ISF_LongLivedInputConverter' )
kwargs.setdefault("QuasiStablePatcher" , 'ZeroLifetimePositioner' )
from G4AtlasApps.SimFlags import simFlags
simFlags.SimulationFlavour = "ATLFASTII_QS"
return getKernel_GenericSimulator(name, **kwargs)
############## Simulator: ATLFASTIIF ###############
def getKernel_ATLFASTIIF(name="ISF_Kernel_ATLFASTIIF", **kwargs):
kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] )
......
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
"""
Tools configurations for ISF
......@@ -63,3 +63,7 @@ def getPassBackGeant4SimSvc(name="ISF_PassBackGeant4SimSvc", **kwargs):
def getAFIIGeant4SimSvc(name="ISF_AFIIGeant4SimSvc", **kwargs):
kwargs.setdefault('SimulationTool' , 'AFII_G4TransportTool')
return getPassBackGeant4SimSvc(name, **kwargs)
def getAFII_QS_Geant4SimSvc(name="ISF_AFII_QS_Geant4SimSvc", **kwargs):
kwargs.setdefault('SimulationTool' , 'AFII_QS_G4TransportTool')
return getPassBackGeant4SimSvc(name, **kwargs)
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
from AthenaCommon.CfgGetter import addService
addService("ISF_Geant4Services.ISF_Geant4ServicesConfig.getGeant4SimSvc", "ISF_Geant4SimSvc")
......@@ -6,3 +6,4 @@ addService("ISF_Geant4Services.ISF_Geant4ServicesConfig.getFullGeant4SimSvc",
addService("ISF_Geant4Services.ISF_Geant4ServicesConfig.getPassBackGeant4SimSvc", "ISF_PassBackGeant4SimSvc")
addService("ISF_Geant4Services.ISF_Geant4ServicesConfig.getAFIIGeant4SimSvc", "ISF_AFIIGeant4SimSvc")
addService("ISF_Geant4Services.ISF_Geant4ServicesConfig.getLongLivedGeant4SimSvc", "ISF_LongLivedGeant4SimSvc")
addService("ISF_Geant4Services.ISF_Geant4ServicesConfig.getAFII_QS_Geant4SimSvc", "ISF_AFII_QS_Geant4SimSvc")
......@@ -96,4 +96,8 @@ def getQuasiStableG4TransportTool(name='QuasiStableG4TransportTool', **kwargs):
kwargs.setdefault('InputConverter', 'ISF_LongLivedInputConverter')
return getFullG4TransportTool(name, **kwargs)
def getAFII_QS_G4TransportTool(name='AFII_QS_G4TransportTool', **kwargs):
kwargs.setdefault('InputConverter', 'ISF_LongLivedInputConverter')
return getAFII_G4TransportTool(name, **kwargs)
## -----------------------------------------------------------------------------
......@@ -17,3 +17,4 @@ addTool("ISF_Geant4Tools.ISF_Geant4ToolsConfig.getFullG4TransportTool"
addTool("ISF_Geant4Tools.ISF_Geant4ToolsConfig.getPassBackG4TransportTool" , "PassBackG4TransportTool")
addTool("ISF_Geant4Tools.ISF_Geant4ToolsConfig.getAFII_G4TransportTool" , "AFII_G4TransportTool")
addTool("ISF_Geant4Tools.ISF_Geant4ToolsConfig.getQuasiStableG4TransportTool" , "QuasiStableG4TransportTool")
addTool("ISF_Geant4Tools.ISF_Geant4ToolsConfig.getAFII_QS_G4TransportTool" , "AFII_QS_G4TransportTool")
......@@ -35,6 +35,10 @@ def getDefaultLongLivedGeant4Selector(name="ISF_DefaultLongLivedGeant4Selector",
kwargs.setdefault("Simulator" , 'ISF_LongLivedGeant4SimSvc')
return getDefaultGeant4Selector(name, **kwargs )
def getDefaultAFII_QS_Geant4Selector(name="ISF_DefaultAFII_QS_Geant4Selector", **kwargs):
kwargs.setdefault("Simulator" , 'ISF_AFII_QS_Geant4SimSvc')
return getDefaultGeant4Selector(name, **kwargs )
def getFullGeant4Selector(name="ISF_FullGeant4Selector", **kwargs):
kwargs.setdefault("Simulator" , 'ISF_FullGeant4SimSvc')
return getDefaultSimSelector(name, **kwargs )
......@@ -139,6 +143,10 @@ def getMuonAFIIGeant4Selector(name="ISF_MuonAFIIGeant4Selector", **kwargs):
kwargs.setdefault('Simulator' , 'ISF_AFIIGeant4SimSvc')
return getMuonGeant4Selector(name, **kwargs)
def getMuonAFII_QS_Geant4Selector(name="ISF_MuonAFII_QS_Geant4Selector", **kwargs):
kwargs.setdefault('Simulator' , 'ISF_AFII_QS_Geant4SimSvc')
return getMuonGeant4Selector(name, **kwargs)
def getMuonFatrasSelector(name="ISF_MuonFatrasSelector", **kwargs):
kwargs.setdefault('Simulator' , 'ISF_FatrasSimSvc')
return getMuonSelector(name, **kwargs)
......
......@@ -10,6 +10,7 @@ addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getElectronGeant4
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getNeutralGeant4Selector" , "ISF_NeutralGeant4Selector" )
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getMuonGeant4Selector" , "ISF_MuonGeant4Selector" )
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getMuonAFIIGeant4Selector" , "ISF_MuonAFIIGeant4Selector" )
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getMuonAFII_QS_Geant4Selector" , "ISF_MuonAFII_QS_Geant4Selector" )
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getMuonFatrasSelector" , "ISF_MuonFatrasSelector" )
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getMuonFatrasPileupSelector" , "ISF_MuonFatrasPileupSelector" )
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getPhotonConeFatrasSelector" , "ISF_PhotonConeFatrasSelector" )
......@@ -45,6 +46,7 @@ addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getPileupParticle
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getDefaultGeant4Selector" , "ISF_DefaultGeant4Selector" )
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getDefaultAFIIGeant4Selector" , "ISF_DefaultAFIIGeant4Selector" )
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getDefaultLongLivedGeant4Selector" , "ISF_DefaultLongLivedGeant4Selector" )
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getDefaultAFII_QS_Geant4Selector" , "ISF_DefaultAFII_QS_Geant4Selector" )
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getFullGeant4Selector" , "ISF_FullGeant4Selector" )
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getPassBackGeant4Selector" , "ISF_PassBackGeant4Selector" )
addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getFatrasPileupSelector" , "ISF_FatrasPileupSelector" )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment