ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Generators
Herwig7_i
python
H7C.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3
"""
4
This module provides a stateful object for preparing a H7 run.
5
It mirrors what is done in MGC.py but in a more CA-friendly way
6
(i.e. avoiding side effects).
7
"""
8
9
from
Herwig7_i
import
Herwig7Utils
as
hw7Utils
10
from
Herwig7_i.Herwig7Config
import
Hw7Config
11
from
AthenaCommon.SystemOfUnits
import
GeV
12
13
from
textwrap
import
dedent
14
15
16
class
H7C
(Hw7Config):
17
"""
18
Stateful control object for preparing a Herwig7 CA run.
19
Note that this inherits from Hw7Config, which provides
20
all the baseline settings, so that we don't have to rewrite
21
the full config.
22
"""
23
def
__init__
(
24
self,
25
flags,
26
run_name="Herwig",
27
local_pre_commands=None,
28
local_post_commands=None,
29
):
30
self.
flags
= flags
31
self.
run_name
= run_name
32
self.
_local_pre_commands
= local_pre_commands
or
(
lambda
:
""
)
33
self.
_local_post_commands
= local_post_commands
or
(
lambda
:
""
)
34
35
self.
me_pdf_name
=
"MMHT2014lo68cl"
36
self.
mpi_pdf_name
=
"MMHT2014lo68cl"
37
self.
ecmEnergy
= 0
38
self.
random_seed
= 0
39
40
self.
set_printout_commands
=
False
41
self.
set_physics_parameter_commands
=
False
42
self.
set_technical_parameter_commands
=
False
43
44
self.
default_commands
= hw7Utils.ConfigurationCommands()
45
self.
commands
= hw7Utils.ConfigurationCommands()
46
47
def
local_pre_commands
(self):
48
return
self.
_local_pre_commands
()
49
50
def
local_post_commands
(self):
51
return
self.
_local_post_commands
()
52
53
def
get_flags_info
(self, flags):
54
"""Populate beam energy and random seed from CA flags"""
55
if
flags
is
None
:
56
raise
RuntimeError(
"flags must be provided!"
)
57
58
try
:
59
self.
ecmEnergy
= float(flags.Beam.Energy * 2) / GeV
60
except
AttributeError
as
exc:
61
raise
RuntimeError(
"No beam energy found in flags (expected flags.Beam.Energy)."
)
from
exc
62
63
try
:
64
self.
random_seed
= int(flags.Random.SeedOffset)
65
except
AttributeError
as
exc:
66
raise
RuntimeError(
"No random seed found in flags (expected flags.Random.SeedOffset)."
)
from
exc
67
68
def
add_flags
(self, flags=None):
69
if
flags
is
not
None
:
70
self.
get_flags_info
(flags)
71
72
def
beam_commands
(self):
73
return
dedent(
"""
74
## Commands for proton-proton collisions
75
read snippets/PPCollider.in
76
"""
)
77
78
def
random_seed_commands
(self):
79
return
dedent(f
"""
80
## Random number generator seed
81
set /Herwig/Random:Seed {self.random_seed}
82
"""
)
83
84
def
energy_commands
(self):
85
return
dedent(f
"""
86
## Center-of-mass energy
87
set /Herwig/Generators/EventGenerator:EventHandler:LuminosityFunction:Energy {self.ecmEnergy}
88
"""
)
H7C.H7C
Definition
H7C.py:16
H7C.H7C.random_seed_commands
random_seed_commands(self)
Definition
H7C.py:78
H7C.H7C.mpi_pdf_name
str mpi_pdf_name
Definition
H7C.py:36
H7C.H7C.beam_commands
beam_commands(self)
Definition
H7C.py:72
H7C.H7C.run_name
run_name
Definition
H7C.py:31
H7C.H7C.set_physics_parameter_commands
bool set_physics_parameter_commands
Definition
H7C.py:41
H7C.H7C.__init__
__init__(self, flags, run_name="Herwig", local_pre_commands=None, local_post_commands=None)
Definition
H7C.py:29
H7C.H7C.default_commands
default_commands
Definition
H7C.py:44
H7C.H7C.local_post_commands
local_post_commands(self)
Definition
H7C.py:50
H7C.H7C.get_flags_info
get_flags_info(self, flags)
Definition
H7C.py:53
H7C.H7C.me_pdf_name
str me_pdf_name
Definition
H7C.py:35
H7C.H7C.set_printout_commands
bool set_printout_commands
Definition
H7C.py:40
H7C.H7C.local_pre_commands
local_pre_commands(self)
Definition
H7C.py:47
H7C.H7C.energy_commands
energy_commands(self)
Definition
H7C.py:84
H7C.H7C._local_pre_commands
_local_pre_commands
Definition
H7C.py:32
H7C.H7C.flags
flags
Definition
H7C.py:30
H7C.H7C.commands
commands
Definition
H7C.py:45
H7C.H7C._local_post_commands
_local_post_commands
Definition
H7C.py:33
H7C.H7C.set_technical_parameter_commands
bool set_technical_parameter_commands
Definition
H7C.py:42
H7C.H7C.random_seed
int random_seed
Definition
H7C.py:38
H7C.H7C.ecmEnergy
int ecmEnergy
Definition
H7C.py:37
H7C.H7C.add_flags
add_flags(self, flags=None)
Definition
H7C.py:68
Generated on
for ATLAS Offline Software by
1.17.0