Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
ParameterSetter.py
Go to the documentation of this file.
1"""Mutable parameter setter for central values and modes."""
2
3from __future__ import annotations
4
5from typing import Union
6
7from pyhyperiso.phyperiso.pyhyperiso.core import ParameterSetter as _CppParameterSetter
8from pyhyperiso.core.Common.ParamId import ParamId
9from pyhyperiso.core.Core.Parameter import ParameterMode
10from pyhyperiso.core.Math.Scalar import Scalar, _to_scalar
11
12
14 """Python wrapper around the C++ ``ParameterSetter``.
15
16 ``ParameterSetter`` mutates stored parameter values directly. For workflows
17 that require recomputing observables after mutation, remember to call the
18 relevant reload/update method on the observable or statistic interface.
19
20 Examples:
21 >>> setter = ParameterSetter()
22 >>> setter.mutate(ParamId(ParameterType.SM, "MASS", 24), 80.379)
23 """
24
25 def __init__(self) -> None:
26 """Create a setter bound to the current C++ parameter storage."""
27 self._cpp_obj = _CppParameterSetter()
28
29 def mutate(self, pid: ParamId, value: Union[float, complex, Scalar]) -> None:
30 """Set a parameter value.
31
32 Args:
33 pid: Parameter to mutate.
34 value: New value. Numeric inputs are converted to ``Scalar``.
35 """
36 self._cpp_obj.mutate(pid._cpp_obj, _to_scalar(value)._cpp_obj)
37
38 def change_mode(self, pid: ParamId, mode: ParameterMode) -> None:
39 """Change a parameter update mode.
40
41 Args:
42 pid: Parameter to update.
43 mode: New mode, such as ``ParameterMode.FIXED`` or
44 ``ParameterMode.SHIFTABLE``.
45 """
46 self._cpp_obj.change_mode(pid._cpp_obj, mode.value)
47
48
49__all__ = ["ParameterSetter"]
None mutate(self, ParamId pid, Union[float, complex, Scalar] value)
None change_mode(self, ParamId pid, ParameterMode mode)