33def HijingBaseCfg(flags, name="Hijing", **kwargs):
34 """
35 The main Hijing configuration fragment that sets up the Hijing algorithm
36 and returns a CA instance.
37 """
38
39
40 base_init = [f"efrm {2*flags.Beam.Energy/GeV}",
41 "frame CMS",
42 "proj A", "targ A",
43 "iap 208", "iat 208",
44 "izp 82", "izt 82",
45 ]
46
47
48 user_init = kwargs.pop("Initialize", None)
49 kwargs["Initialize"] = GeneratorSettingsLayer(
50 source="base_initialize",
51 values=tuple(base_init),
52 precedence=GeneratorSettingsPrecedence.BASE,
53 report_context="Hijing.Initialize"
54 )
55
56
57 ca = ComponentAccumulator(EvgenSequenceFactory(EvgenSequence.Generator))
58 ca.addEventAlgo(
59 CompFactory.Hijing(name, **kwargs)
60 )
61
62
63 if user_init:
64 ca.merge(HijingInitializeCfg(
65 flags,
66 source="user_initialize",
67 values=user_init,
68 precedence=GeneratorSettingsPrecedence.USER,
69 name=name
70 ))
71
72
73 from GeneratorConfig.GeneratorInfoSvcConfig import GeneratorInfoSvcCfg
74 ca.merge(GeneratorInfoSvcCfg(flags, Generators=["Hijing"]), sequenceName=EvgenSequence.Generator.value)
75
76 return ca
77
78
79