37 """Python configuration for ``HyperisoMaster``.
40 flags: Mapping of external flags to booleans. Missing flags are not
41 explicitly set in C++; the default mapping mirrors the common
43 model: Physics model selected for the session.
44 mty_model_name: Optional MARTY model name used by the C++ backend.
45 mty_model_path: Optional path to the MARTY model directory or file.
46 mty_bsm_mapping_path: Optional user-provided BSM MARTY/Hyperiso mapping JSON.
49 >>> from pathlib import Path
50 >>> cfg = HyperisoConfig(
52 ... mty_model_name="MSSM_UFO",
53 ... mty_model_path=Path("/path/to/marty/model"),
54 ... mty_bsm_mapping_path=Path("/path/to/zprime_mapping.json"),
56 >>> cpp_cfg = cfg.to_cpp()
59 flags: Dict[ExternalFlag, bool] = field(
60 default_factory=
lambda: {
61 ExternalFlag.IS_LHA_SPECTRUM:
False,
62 ExternalFlag.HAS_WILSON_INPUT:
False,
63 ExternalFlag.HAS_TH_OBSERVABLE_INPUT:
False,
64 ExternalFlag.HYP_AS_SM_MARTY:
False,
67 model: Model = Model.SM
68 mty_model_name: Optional[str] =
None
69 mty_model_path: Optional[PathLike] =
None
70 mty_bsm_mapping_path: Optional[PathLike] =
None
72 def to_cpp(self) -> _CppHyperisoConfig:
73 """Convert this Python config into the bound C++ config.
76 C++ ``HyperisoConfig`` instance ready to pass to pybind methods.
78 cpp = _CppHyperisoConfig()
79 cpp.flags = {flag.value: val
for flag, val
in self.
flags.items()}
80 cpp.model = self.
model.value
94 """Return a compact representation suitable for logs."""
97 f
"model={self.model}, "
98 f
"flags={self.flags}, "
99 f
"mty_model_name={self.mty_model_name!r}, "
100 f
"mty_model_path={self.mty_model_path!r}, "
101 f
"mty_bsm_mapping_path={self.mty_bsm_mapping_path!r}"