4This module provides a stateful object for preparing a H7 run.
5It mirrors what is done in MGC.py but in a more CA-friendly way
6(i.e. avoiding side effects).
9from Herwig7_i
import Herwig7Utils
as hw7Utils
10from Herwig7_i.Herwig7Config
import Hw7Config
11from AthenaCommon.SystemOfUnits
import GeV
13from textwrap
import dedent
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
27 local_pre_commands=None,
28 local_post_commands=None,
45 self.
commands = hw7Utils.ConfigurationCommands()
54 """Populate beam energy and random seed from CA flags"""
56 raise RuntimeError(
"flags must be provided!")
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
65 except AttributeError
as exc:
66 raise RuntimeError(
"No random seed found in flags (expected flags.Random.SeedOffset).")
from exc
74 ## Commands for proton-proton collisions
75 read snippets/PPCollider.in
80 ## Random number generator seed
81 set /Herwig/Random:Seed {self.random_seed}
86 ## Center-of-mass energy
87 set /Herwig/Generators/EventGenerator:EventHandler:LuminosityFunction:Energy {self.ecmEnergy}
random_seed_commands(self)
bool set_physics_parameter_commands
__init__(self, flags, run_name="Herwig", local_pre_commands=None, local_post_commands=None)
local_post_commands(self)
get_flags_info(self, flags)
bool set_printout_commands
bool set_technical_parameter_commands
add_flags(self, flags=None)