94def Pythia8BBaseCfg(flags, name="Pythia8B", **kwargs):
95 """Configure Pythia8B with the standard generator settings."""
96 user_commands = kwargs.pop("Commands", ())
97 process_commands = kwargs.pop("_process_commands", ())
98 kwargs.setdefault("CollisionEnergy", flags.Beam.Energy * 2 / GeV)
99 kwargs.setdefault("RandomSeed", flags.Random.SeedOffset)
100 kwargs.setdefault("Dsid", flags.Generator.DSID)
101 kwargs["Commands"] = GeneratorSettingsLayer(
102 source="base_fragment_commands",
103 values=_BASE_COMMANDS,
104 precedence=GeneratorSettingsPrecedence.BASE,
105 report_context="Pythia8BCfg.Commands",
106 )
107
108 ca = ComponentAccumulator(EvgenSequenceFactory(EvgenSequence.Generator))
109 ca.addEventAlgo(CompFactory.Pythia8B_i(name, **kwargs))
110 if process_commands:
111
112
113 ca.merge(_commands_cfg(
114 flags, "process_commands", process_commands,
115 GeneratorSettingsPrecedence.MATCHING, name,
116 ))
117 if user_commands:
118 ca.merge(_commands_cfg(
119 flags, "user_commands", user_commands,
120 GeneratorSettingsPrecedence.USER, name,
121 ))
122
123 from GeneratorConfig.GeneratorInfoSvcConfig import GeneratorInfoSvcCfg
124 ca.merge(GeneratorInfoSvcCfg(flags, Generators=["Pythia8B"]),
125 sequenceName=EvgenSequence.Generator.value)
126 return ca
127
128