ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
G4Utilities
G4UserActions
python
G4UserActionsConfig.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3
from
AthenaConfiguration.ComponentAccumulator
import
ComponentAccumulator
4
from
AthenaConfiguration.ComponentFactory
import
CompFactory
5
from
SimulationConfig.SimEnums
import
CalibrationRun
6
7
# this is a bit cumbersome, but it seems ike it is a lot easier to separate
8
# the getter functionality from all the rest (i.e. adding the action).
9
# This way, e.g., after the getter is called the tool is automatically added
10
# to the ToolSvc and can be assigned to a ToolHandle by the add function.
11
# Also, passing arguments to the getter (like "this is a system action") is not straightforward
12
13
def
AthenaStackingActionToolCfg
(flags, name='G4UA::AthenaStackingActionTool
', **kwargs):
14
15
result = ComponentAccumulator()
16
17
if
"ATLAS"
in
flags.GeoModel.AtlasVersion:
18
kwargs.setdefault(
'KillAllNeutrinos'
,
True
)
19
20
if
flags.Sim.NRRThreshold
and
flags.Sim.NRRWeight:
21
if
flags.Sim.CalibrationRun
is
not
CalibrationRun.Off:
22
raise
NotImplementedError(
"Neutron Russian Roulette should not be used in Calibration Runs."
)
23
kwargs.setdefault(
'ApplyNRR'
,
True
)
24
kwargs.setdefault(
'NRRThreshold'
, flags.Sim.NRRThreshold)
25
kwargs.setdefault(
'NRRWeight'
, flags.Sim.NRRWeight)
26
27
if
flags.Sim.PRRThreshold
and
flags.Sim.PRRWeight:
28
if
flags.Sim.CalibrationRun
is
not
CalibrationRun.Off:
29
raise
NotImplementedError(
"Photon Russian Roulette should not be used in Calibration Runs."
)
30
kwargs.setdefault(
'ApplyPRR'
,
True
)
31
kwargs.setdefault(
'PRRThreshold'
, flags.Sim.PRRThreshold)
32
kwargs.setdefault(
'PRRWeight'
, flags.Sim.PRRWeight)
33
kwargs.setdefault(
'IsISFJob'
, flags.Sim.ISFRun)
34
35
result.setPrivateTools( CompFactory.G4UA.AthenaStackingActionTool(name,**kwargs) )
36
return
result
37
38
39
def
LooperKillerToolCfg
(flags, name='G4UA::LooperKillerTool
', **kwargs):
40
result = ComponentAccumulator()
41
result.setPrivateTools(CompFactory.G4UA.LooperKillerTool(name, **kwargs))
42
return
result
43
44
45
def
MonopoleLooperKillerToolCfg
(flags, name="G4UA::MonopoleLooperKillerTool
", **kwargs):
46
kwargs.setdefault("MaxSteps"
, 2000000)
47
kwargs.setdefault(
"PrintSteps"
, 2)
48
kwargs.setdefault(
"VerboseLevel"
, 0)
49
kwargs.setdefault(
"BSM_Only"
,
True
)
50
return
LooperKillerToolCfg
(flags, name, **kwargs)
51
52
53
def
G4SimTimerToolCfg
(flags, name='G4UA::G4SimTimerTool
', **kwargs):
54
result = ComponentAccumulator()
55
result.setPrivateTools(CompFactory.G4UA.G4SimTimerTool(name,**kwargs))
56
return
result
57
58
59
def
G4TrackCounterToolCfg
(flags, name='G4UA::G4TrackCounterTool
', **kwargs):
60
result = ComponentAccumulator()
61
result.setPrivateTools(CompFactory.G4UA.G4TrackCounterTool(name,**kwargs))
62
return
result
63
64
65
def
StoppedParticleActionToolCfg
(flags, name="G4UA::StoppedParticleActionTool
", **kwargs):
66
# Just have to set the stopping condition
67
result = ComponentAccumulator()
68
# TODO UserActionConfig not yet migrated
69
# example custom configuration
70
# if name in flags.Sim.UserActionConfig.keys():
71
# for prop,value in flags.Sim.UserActionConfig[name].iteritems():
72
# kwargs.setdefault(prop,value)
73
result.setPrivateTools(CompFactory.G4UA.StoppedParticleActionTool(name, **kwargs))
74
return
result
75
76
77
def
FixG4CreatorProcessToolCfg
(flags, name="G4UA::FixG4CreatorProcessTool
", **kwargs):
78
result = ComponentAccumulator()
79
result.setPrivateTools(CompFactory.G4UA.FixG4CreatorProcessTool(name, **kwargs))
80
return
result
81
82
83
def
HitWrapperToolCfg
(flags, name="G4UA::HitWrapperTool
", **kwargs):
84
result = ComponentAccumulator()
85
# TODO UserActionConfig flag not yet migrated
86
# example custom configuration
87
# if name in flags.Sim.UserActionConfig.keys():
88
# for prop,value in flags.Sim.UserActionConfig[name].iteritems():
89
# kwargs.setdefault(prop,value)
90
result.setPrivateTools(CompFactory.G4UA.HitWrapperTool(name, **kwargs))
91
return
result
92
93
94
def
LengthIntegratorToolCfg
(flags, name="G4UA::UserActionSvc.LengthIntegratorTool
", **kwargs):
95
THistSvc= CompFactory.THistSvc
96
result = ComponentAccumulator()
97
histsvc = THistSvc(name="THistSvc"
)
98
histsvc.Output = [
"lengths DATAFILE='LengthIntegrator.root' OPT='RECREATE'"
]
99
result.addService(histsvc)
100
kwargs.setdefault(
"HistoSvc"
,
"THistSvc"
)
101
result.setPrivateTools(CompFactory.G4UA.LengthIntegratorTool(name, **kwargs))
102
return
result
103
104
def
RadiationMapsMakerToolCfg
(flags, name="G4UA::UserActionSvc.RadiationMapsMakerTool
", **kwargs):
105
result = ComponentAccumulator()
106
kwargs.setdefault("ActivationFileName"
,
"Activations.txt"
)
107
kwargs.setdefault(
"NBinsDPhi"
,1)
108
kwargs.setdefault(
"NBinsTheta"
,1)
109
kwargs.setdefault(
"NBinsR3D"
,120)
110
kwargs.setdefault(
"NBinsZ3D"
,240)
111
kwargs.setdefault(
"NBinsPhi3D"
,28)
112
kwargs.setdefault(
"NBinsLogTimeCut"
,26)
113
kwargs.setdefault(
"PhiMinZoom"
,0.0)
114
kwargs.setdefault(
"PhiMaxZoom"
,22.5)
115
kwargs.setdefault(
"LogTMin"
,-3.0)
116
kwargs.setdefault(
"LogTMax"
,10.0)
117
kwargs.setdefault(
"ElemZMin"
,1)
118
kwargs.setdefault(
"ElemZMax"
,1)
119
result.setPrivateTools(CompFactory.G4UA.RadiationMapsMakerTool(name, **kwargs))
120
return
result
121
122
123
def
HIPKillerToolCfg
(flags, name="G4UA::HIPKillerTool
", **kwargs):
124
result = ComponentAccumulator()
125
result.setPrivateTools(CompFactory.G4UA.HIPKillerTool(name, **kwargs))
126
return
result
127
128
129
def
FastIDKillerToolCfg
(flags, name="G4UA::FastIDKillerTool
", **kwargs):
130
"""
131
isDalek = True : kill all particles with kinetic energy below
132
'energyCut' leaving the ID envelope (R,Z).
133
134
isDalek = False : kill all particles leaving the ID envelope
135
(R,Z), except e+-/gamma with total energy >= 'energyCut'
136
"""
137
result = ComponentAccumulator()
138
# FIXME UserActionConfig not yet migrated
139
# example custom configuration
140
# if name in flags.Sim.UserActionConfig.keys():
141
# for prop,value in flags.Sim.UserActionConfig[name].iteritems():
142
# kwargs.setdefault(prop,value)
143
from
AthenaCommon.SystemOfUnits
import
MeV, mm
144
kwargs.setdefault(
"energyCut"
, 100.*MeV)
# Energy cut in MeV
145
kwargs.setdefault(
"isDalek"
,
False
)
146
kwargs.setdefault(
"R"
, 1150.*mm)
# ID outer radius
147
kwargs.setdefault(
"Z"
, 3490.*mm)
# ID maximum Z coordiate
148
result.setPrivateTools(CompFactory.G4UA.FastIDKillerTool(name, **kwargs))
149
return
result
python.G4UserActionsConfig.AthenaStackingActionToolCfg
AthenaStackingActionToolCfg(flags, name='G4UA::AthenaStackingActionTool', **kwargs)
Definition
G4UserActionsConfig.py:13
python.G4UserActionsConfig.MonopoleLooperKillerToolCfg
MonopoleLooperKillerToolCfg(flags, name="G4UA::MonopoleLooperKillerTool", **kwargs)
Definition
G4UserActionsConfig.py:45
python.G4UserActionsConfig.HitWrapperToolCfg
HitWrapperToolCfg(flags, name="G4UA::HitWrapperTool", **kwargs)
Definition
G4UserActionsConfig.py:83
python.G4UserActionsConfig.LooperKillerToolCfg
LooperKillerToolCfg(flags, name='G4UA::LooperKillerTool', **kwargs)
Definition
G4UserActionsConfig.py:39
python.G4UserActionsConfig.G4TrackCounterToolCfg
G4TrackCounterToolCfg(flags, name='G4UA::G4TrackCounterTool', **kwargs)
Definition
G4UserActionsConfig.py:59
python.G4UserActionsConfig.StoppedParticleActionToolCfg
StoppedParticleActionToolCfg(flags, name="G4UA::StoppedParticleActionTool", **kwargs)
Definition
G4UserActionsConfig.py:65
python.G4UserActionsConfig.HIPKillerToolCfg
HIPKillerToolCfg(flags, name="G4UA::HIPKillerTool", **kwargs)
Definition
G4UserActionsConfig.py:123
python.G4UserActionsConfig.RadiationMapsMakerToolCfg
RadiationMapsMakerToolCfg(flags, name="G4UA::UserActionSvc.RadiationMapsMakerTool", **kwargs)
Definition
G4UserActionsConfig.py:104
python.G4UserActionsConfig.FixG4CreatorProcessToolCfg
FixG4CreatorProcessToolCfg(flags, name="G4UA::FixG4CreatorProcessTool", **kwargs)
Definition
G4UserActionsConfig.py:77
python.G4UserActionsConfig.LengthIntegratorToolCfg
LengthIntegratorToolCfg(flags, name="G4UA::UserActionSvc.LengthIntegratorTool", **kwargs)
Definition
G4UserActionsConfig.py:94
python.G4UserActionsConfig.G4SimTimerToolCfg
G4SimTimerToolCfg(flags, name='G4UA::G4SimTimerTool', **kwargs)
Definition
G4UserActionsConfig.py:53
python.G4UserActionsConfig.FastIDKillerToolCfg
FastIDKillerToolCfg(flags, name="G4UA::FastIDKillerTool", **kwargs)
Definition
G4UserActionsConfig.py:129
Generated on
for ATLAS Offline Software by
1.17.0