3from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory
import CompFactory
5from GeneratorConfig.Sequences
import EvgenSequence, EvgenSequenceFactory
13from AthenaCommon.Logging
import logging
14log = logging.getLogger(
"SherpaConfig")
17from Sherpa_i.SherpaUtils
import (
18 build_sherpa3_base_fragment,
19 validate_sherpa3_yaml_fragment,
26 Public methods for Sherpa CA configuration fragment,
27 migrated from Sherpa_i/share/common/Base_Fragment.py.
28 This is the the method that users should call (if needed)
29 in their jO. We don't want them to change the BaseFragment
30 so we pop it from kwargs before calling the internal function.
32 kwargs.pop(
"BaseFragment",
None)
39 Internal Sherpa base fragment builder.
42 kwargs.setdefault(
"PluginCode",
"")
45 base_fragment = _base_fragment
46 if base_fragment
and not base_fragment.endswith(
"\n"):
48 kwargs[
"BaseFragment"] = base_fragment + build_sherpa3_base_fragment(flags)
49 validate_sherpa3_yaml_fragment(
"BaseFragment", kwargs[
"BaseFragment"])
50 if "RunCard" in kwargs:
51 validate_sherpa3_yaml_fragment(
"RunCard", kwargs[
"RunCard"])
54 ca = ComponentAccumulator(EvgenSequenceFactory(EvgenSequence.Generator))
55 ca.addEventAlgo(CompFactory.Sherpa_i(name, **kwargs))
58 from GeneratorConfig.GeneratorInfoSvcConfig
import GeneratorInfoSvcCfg
59 ca.merge(GeneratorInfoSvcCfg(flags, Generators=[
"Sherpa"]))
65 """Fragment for setting up Sherpa 3 with the PDF4LHC21 tune"""
67 from os
import environ
68 sherpa_version = environ.get(
"SHERPAVER")
69 if sherpa_version
is None:
70 raise RuntimeError(
"SHERPAVER is not set in the environment.")
71 if not sherpa_version.startswith(
"3."):
72 raise RuntimeError(
"Sherpa3_PDF4LHC21_Cfg requires Sherpa 3.")
75 pdf_fragment = write_pretty_fragment(
77 PDF_LIBRARY: LHAPDFSherpa
79 PDF_SET: PDF4LHC21_40_pdfas
84 pdf_fragment += write_pretty_fragment(
90 - NNPDF31_nnlo_as_0118_hessian
91 - NNPDF40_nnlo_as_01180_hessian
102 from GeneratorConfig.GeneratorInfoSvcConfig
import GeneratorInfoSvcCfg
103 ca.merge(GeneratorInfoSvcCfg(flags, Tune=
"PDF4LHC21"))
SherpaBaseCfg(flags, name="Sherpa_i", **kwargs)
Sherpa3_PDF4LHC21_Cfg(flags, **kwargs)
_SherpaBaseCfg(flags, name="Sherpa_i", _base_fragment="", **kwargs)