ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
ISF
ISF_Geant4
ISF_Geant4Services
python
ISF_Geant4ServicesConfig.py
Go to the documentation of this file.
1
"""Geant4 services config for ISF with ComponentAccumulator
2
3
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4
"""
5
from
AthenaConfiguration.ComponentAccumulator
import
ComponentAccumulator
6
from
AthenaConfiguration.ComponentFactory
import
CompFactory
7
from
AthenaConfiguration.Enums
import
LHCPeriod
8
from
ISF_Geant4Tools.ISF_Geant4ToolsConfig
import
(
9
Geant4ToolCfg, FullGeant4ToolCfg, PassBackGeant4ToolCfg,
10
ATLFAST_Geant4ToolCfg
11
)
12
13
14
def
Geant4SimCfg
(flags, name="ISFG4SimSvc", **kwargs):
15
result = ComponentAccumulator()
16
17
G4_DDDBEnvelopeDefSvc = CompFactory.DetDescrDBEnvelopeSvc(
"G4EnvelopeDefSvc"
)
18
G4_DDDBEnvelopeDefSvc.DBBeamPipeNode =
"BPipeEnvelopeG4"
19
G4_DDDBEnvelopeDefSvc.DBInDetNode =
"InDetEnvelopeG4"
if
flags.GeoModel.Run < LHCPeriod.Run4
else
"ITkEnvelopeG4"
20
G4_DDDBEnvelopeDefSvc.DBCaloNode =
"CaloEnvelopeG4"
21
G4_DDDBEnvelopeDefSvc.DBMSNode =
"MuonEnvelopeG4"
22
G4_DDDBEnvelopeDefSvc.DBCavernNode =
"CavernEnvelopeG4"
23
result.addService(G4_DDDBEnvelopeDefSvc)
24
25
if
"SimulatorTool"
not
in
kwargs:
26
kwargs.setdefault(
"SimulatorTool"
, result.addPublicTool(result.popToolsAndMerge(Geant4ToolCfg(flags))))
27
kwargs.setdefault(
"Identifier"
,
"Geant4"
)
28
result.addService(CompFactory.iGeant4.Geant4SimSvc(name, **kwargs), primary =
True
)
29
return
result
30
31
32
def
FullGeant4SimCfg
(flags, name="ISF_FullGeant4SimSvc", **kwargs):
33
result = ComponentAccumulator()
34
if
"SimulatorTool"
not
in
kwargs:
35
kwargs.setdefault(
"SimulatorTool"
, result.addPublicTool(result.popToolsAndMerge(FullGeant4ToolCfg(flags))))
36
svc = result.getPrimaryAndMerge(
Geant4SimCfg
(flags, name, **kwargs))
37
result.addService(svc, primary =
True
)
38
return
result
39
40
41
def
PassBackGeant4SimCfg
(flags, name="ISF_PassBackGeant4SimSvc", **kwargs):
42
result = ComponentAccumulator()
43
if
"SimulatorTool"
not
in
kwargs:
44
kwargs.setdefault(
"SimulatorTool"
, result.addPublicTool(result.popToolsAndMerge(PassBackGeant4ToolCfg(flags))))
45
svc = result.getPrimaryAndMerge(
Geant4SimCfg
(flags, name, **kwargs))
46
result.addService(svc, primary =
True
)
47
return
result
48
49
50
def
ATLFAST_Geant4SimCfg
(flags, name="ISF_ATLFAST_Geant4SimSvc", **kwargs):
51
result = ComponentAccumulator()
52
kwargs.setdefault(
"SimulatorTool"
, result.addPublicTool(result.popToolsAndMerge(ATLFAST_Geant4ToolCfg(flags))))
53
svc = result.getPrimaryAndMerge(
PassBackGeant4SimCfg
(flags, name, **kwargs))
54
result.addService(svc, primary =
True
)
55
return
result
ISF_Geant4ServicesConfig.Geant4SimCfg
Geant4SimCfg(flags, name="ISFG4SimSvc", **kwargs)
Definition
ISF_Geant4ServicesConfig.py:14
ISF_Geant4ServicesConfig.FullGeant4SimCfg
FullGeant4SimCfg(flags, name="ISF_FullGeant4SimSvc", **kwargs)
Definition
ISF_Geant4ServicesConfig.py:32
ISF_Geant4ServicesConfig.ATLFAST_Geant4SimCfg
ATLFAST_Geant4SimCfg(flags, name="ISF_ATLFAST_Geant4SimSvc", **kwargs)
Definition
ISF_Geant4ServicesConfig.py:50
ISF_Geant4ServicesConfig.PassBackGeant4SimCfg
PassBackGeant4SimCfg(flags, name="ISF_PassBackGeant4SimSvc", **kwargs)
Definition
ISF_Geant4ServicesConfig.py:41
Generated on
for ATLAS Offline Software by
1.17.0