ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
G4Extensions
Quirks
python
QuirksConfig.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.AccumulatorCache
import
AccumulatorCache
4
from
AthenaConfiguration.ComponentFactory
import
CompFactory
5
from
AthenaConfiguration.ComponentAccumulator
import
ComponentAccumulator
6
from
AthenaConfiguration.Enums
import
ProductionStep
7
8
9
@AccumulatorCache
10
def
load_files_for_quirks_scenario
(flags):
11
from
ExtraParticles.PDGHelpers
import
getPDGTABLE
12
if
getPDGTABLE(
'PDGTABLE.MeV'
):
13
quirk_firststring=1e-6
#mm
14
quirk_maxboost=1e-2
15
quirk_maxmerge=1e-6
#mm
16
quirk_debugenabled=
False
17
quirk_debugdist=1000
#mm
18
quirk_debugsteps=1000
19
simdict = flags.Input.SpecialConfiguration
20
quirk_mass = float(simdict[
"MASS"
])
21
quirk_charge = float(simdict[
"CHARGE"
])
22
quirk_pdgid = int(simdict[
"PDGID"
])
23
quirk_stringforce = float(simdict[
"STRINGFORCE"
])
24
25
f = open(
'PDGTABLE.MeV'
,
'a'
)
26
f.write(
"M%8d %.8E +0.0E+00 -0.0E+00 Quirk +\n"
% (quirk_pdgid, quirk_mass))
27
f.write(
"W%8d 0.E+00 +0.0E+00 -0.0E+00 Quirk +\n"
% quirk_pdgid)
28
f.close()
29
30
if
flags.Common.ProductionStep == ProductionStep.Simulation:
31
f = open(
'quirks_setup.txt'
,
'w'
)
32
for
x
in
[quirk_mass, quirk_charge, quirk_pdgid, quirk_stringforce, quirk_firststring, quirk_maxboost, quirk_maxmerge, quirk_maxmerge]:
33
f.write(repr(x) +
"\n"
)
34
if
quirk_debugenabled:
35
f.write(
"1\n"
)
36
f.write(repr(quirk_debugdist) +
"\n"
)
37
f.write(repr(quirk_debugsteps) +
"\n"
)
38
else
:
39
f.write(
"0\n"
)
40
f.close()
41
del quirk_firststring, quirk_maxboost, quirk_maxmerge, quirk_debugenabled, quirk_debugdist, quirk_debugsteps, doG4SimConfig, simdict, f, quirk_mass, quirk_charge, quirk_pdgid, quirk_stringforce
42
43
44
def
QuirkPhysicsToolCfg
(flags, name="QuirkPhysicsTool", **kwargs):
45
result = ComponentAccumulator()
46
result.setPrivateTools( CompFactory.QuirkPhysicsToolTool(name, **kwargs) )
47
return
result
48
49
50
def
DebugSteppingActionToolCfg
(flags, name="DebugSteppingActionTool", **kwargs):
51
result = ComponentAccumulator()
52
# TODO UserActionConfig flag not yet migrated
53
# example custom configuration
54
# if name in flags.Sim.UserActionConfig.keys():
55
# for prop,value in flags.Sim.UserActionConfig[name].iteritems():
56
# kwargs.setdefault(prop,value)
57
result.setPrivateTools( CompFactory.G4UA.DebugSteppingActionTool(name, **kwargs) )
58
return
result
59
60
61
def
QuirksCfg
(flags):
62
result = ComponentAccumulator()
63
if
flags.Common.ProductionStep == ProductionStep.Simulation:
64
from
G4AtlasServices.G4AtlasServicesConfig
import
PhysicsListSvcCfg
65
result.merge(PhysicsListSvcCfg(flags))
66
load_files_for_quirks_scenario
(flags)
67
if
flags.Common.ProductionStep == ProductionStep.Simulation:
68
result.getService(
"PhysicsListSvc"
).PhysOption += [ result.popToolsAndMerge(
QuirkPhysicsToolCfg
(flags)) ]
69
return
result
QuirksConfig.QuirksCfg
QuirksCfg(flags)
Definition
QuirksConfig.py:61
QuirksConfig.DebugSteppingActionToolCfg
DebugSteppingActionToolCfg(flags, name="DebugSteppingActionTool", **kwargs)
Definition
QuirksConfig.py:50
QuirksConfig.QuirkPhysicsToolCfg
QuirkPhysicsToolCfg(flags, name="QuirkPhysicsTool", **kwargs)
Definition
QuirksConfig.py:44
QuirksConfig.load_files_for_quirks_scenario
load_files_for_quirks_scenario(flags)
Definition
QuirksConfig.py:10
Generated on
for ATLAS Offline Software by
1.17.0