70 **kwargs):
71 """This is the CA equivalent of Herwig7Config.py"""
72
73 commands = kwargs.pop("commands", None)
74 shower_var = kwargs.pop("shower_var", True)
75 cleanup_herwig_scratch = kwargs.pop("cleanup_herwig_scratch", False)
76 local_pre_commands = kwargs.pop("local_pre_commands", None)
77 local_post_commands = kwargs.pop("local_post_commands", None)
78 me_pdf_order = kwargs.pop("me_pdf_order", None)
79 me_pdf_name = kwargs.pop("me_pdf_name", None)
80 mpi_pdf_name = kwargs.pop("mpi_pdf_name", None)
81 shower_pdf_order = kwargs.pop("shower_pdf_order", None)
82 shower_pdf_name = kwargs.pop("shower_pdf_name", None)
83
84
85
86
87 kwargs.pop("tune", None)
88
89
90
91 herwig7 = CompFactory.Herwig7(name, **kwargs)
93 flags,
94 run_name=run_name,
95 local_pre_commands=local_pre_commands,
96 local_post_commands=local_post_commands
97 )
98 h7c.add_flags(flags)
99
100 if me_pdf_name is not None:
101 h7c.me_pdf_commands(order=me_pdf_order or "NLO", name=me_pdf_name)
102
103 if mpi_pdf_name is not None:
104 h7c.mpi_pdf_commands(name=mpi_pdf_name)
105
106 if shower_pdf_name is not None:
107 h7c.shower_pdf_commands(order=shower_pdf_order or "LO", name=shower_pdf_name)
108
109 if commands:
110 h7c.add_commands(dedent(commands))
111
112 _finalize_h7c_commands(h7c, shower_var=shower_var)
113
114 from Herwig7_i import Herwig7Control as hw7Control
115
116 run_settings = hw7Control.render_infile(h7c)
117 hw7Control.configure_algorithm(
118 herwig7,
119 hw7Control.get_runfile_name(h7c.run_name),
120 h7c.random_seed,
121 me_pdf_name=h7c.me_pdf_name,
122 mpi_pdf_name=h7c.mpi_pdf_name,
123 cleanup_herwig_scratch=cleanup_herwig_scratch,
124 run_settings=run_settings,
125 )
126
127
128
129 ca = ComponentAccumulator(EvgenSequenceFactory(EvgenSequence.Generator))
130 ca.addEventAlgo(herwig7)
131
132 from GeneratorConfig.GeneratorInfoSvcConfig import GeneratorInfoSvcCfg
133 ca.merge(
134 GeneratorInfoSvcCfg(flags,
135 Generators=["Herwig7"],
136 Tune=hw7Control.default_tune_name()
137 )
138 )
139
140 return ca
141
142