basic¶
Basic PDFs are provided here. Gauss, exponential… that can be used together with Functors to build larger models.
-
class
zfit.models.basic.
CustomGaussOLD
(mu, sigma, obs, name='Gauss')[source]¶ Bases:
zfit.core.basepdf.BasePDF
-
add_cache_deps
(cache_deps: Union[zfit.core.interfaces.ZfitCachable, Iterable[zfit.core.interfaces.ZfitCachable]], allow_non_cachable: bool = True)¶ Add dependencies that render the cache invalid if they change.
Parameters: - cache_deps (ZfitGraphCachable) –
- allow_non_cachable (bool) – If True, allow cache_dependents to be non-cachables. If False, any cache_dependents that is not a ZfitCachable will raise an error.
Raises: TypeError
– if one of the cache_dependents is not a ZfitCachable _and_ allow_non_cachable if False.
-
analytic_integrate
(limits: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool], norm_range: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = None) → Union[float, tensorflow.python.framework.ops.Tensor]¶ Analytical integration over function and raise Error if not possible.
Parameters: - limits (tuple,
ZfitSpace
) – the limits to integrate over - norm_range (tuple,
ZfitSpace
, False) – the limits to normalize over
Returns: the integral value
Return type: Tensor
Raises: AnalyticIntegralNotImplementedError
– If no analytical integral is available (for this limits).NormRangeNotImplementedError
– if the norm_range argument is not supported. This means that no analytical normalization is available, explicitly: the analytical integral over the limits = norm_range is not available.
- limits (tuple,
-
apply_yield
(value: Union[float, tensorflow.python.framework.ops.Tensor], norm_range: Union[zfit.core.interfaces.ZfitLimit, tensorflow.python.framework.ops.Tensor, numpy.ndarray, Iterable[float], float, Tuple[float], List[float], bool, None] = False, log: bool = False) → Union[float, tensorflow.python.framework.ops.Tensor]¶ If a norm_range is given, the value will be multiplied by the yield.
Parameters: - value (numerical) –
- () (norm_range) –
- log (bool) –
Returns: numerical
-
as_func
(norm_range: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = False)¶ Return a Function with the function model(x, norm_range=norm_range).
Parameters: () (norm_range) –
-
axes
¶ Return the axes, integer based identifier(indices) for the coordinate system.
-
convert_sort_space
(obs: Union[str, Iterable[str], zfit.Space, zfit.core.interfaces.ZfitLimit, tensorflow.python.framework.ops.Tensor, numpy.ndarray, Iterable[float], float, Tuple[float], List[float], bool, None] = None, axes: Union[int, Iterable[int]] = None, limits: Union[zfit.core.interfaces.ZfitLimit, tensorflow.python.framework.ops.Tensor, numpy.ndarray, Iterable[float], float, Tuple[float], List[float], bool, None] = None) → Optional[zfit.core.interfaces.ZfitSpace]¶ Convert the inputs (using eventually obs, axes) to
ZfitSpace
and sort them according to own obs.Parameters: - () (limits) –
- () –
- () –
Returns:
-
copy
(**override_parameters) → zfit.core.basepdf.BasePDF¶ Creates a copy of the model.
Note: the copy model may continue to depend on the original initialization arguments.
Parameters: **override_parameters – String/value dictionary of initialization arguments to override with new value. Returns: - A new instance of type(self) initialized from the union
- of self.parameters and override_parameters, i.e., dict(self.parameters, **override_parameters).
Return type: model
-
create_extended
(yield_: Union[zfit.core.interfaces.ZfitParameter, int, float, complex, tensorflow.python.framework.ops.Tensor], name_addition='_extended') → zfit.core.interfaces.ZfitPDF¶ Return an extended version of this pdf with yield yield_. The parameters are shared.
Parameters: Returns:
-
create_projection_pdf
(limits_to_integrate: Union[zfit.core.interfaces.ZfitLimit, tensorflow.python.framework.ops.Tensor, numpy.ndarray, Iterable[float], float, Tuple[float], List[float], bool, None]) → zfit.core.interfaces.ZfitPDF¶ Create a PDF projection by integrating out some of the dimensions.
The new projection pdf is still fully dependent on the pdf it was created with.
Parameters: limits_to_integrate ( Space
) –Returns: a pdf without the dimensions from limits_to_integrate. Return type: ZfitPDF
-
create_sampler
(n: Union[int, tensorflow.python.framework.ops.Tensor, str] = None, limits: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = None, fixed_params: Union[bool, List[zfit.core.interfaces.ZfitParameter], Tuple[zfit.core.interfaces.ZfitParameter]] = True) → zfit.core.data.Sampler¶ Create a
Sampler
that acts as Data but can be resampled, also with changed parameters and n.If limits is not specified, space is used (if the space contains limits). If n is None and the model is an extended pdf, ‘extended’ is used by default.Parameters: - n (int, tf.Tensor, str) –
The number of samples to be generated. Can be a Tensor that will be or a valid string. Currently implemented:
- ’extended’: samples poisson(yield) from each pdf that is extended.
- () (fixed_params) – From which space to sample.
- () – A list of Parameters that will be fixed during several resample calls.
If True, all are fixed, if False, all are floating. If a
Parameter
is not fixed and its value gets updated (e.g. by a Parameter.set_value() call), this will be reflected in resample. If fixed, the Parameter will still have the same value as the Sampler has been created with when it resamples.
Returns: py:class:~`zfit.core.data.Sampler`
Raises: NotExtendedPDFError
– if ‘extended’ is chosen (implicitly by default or explicitly) as an option for n but the pdf itself is not extended.ValueError
– if n is an invalid string option.InvalidArgumentError
– if n is not specified and pdf is not extended.
- n (int, tf.Tensor, str) –
-
dtype
¶ The dtype of the object
-
ext_integrate
(**kwargs)¶
-
ext_log_pdf
(**kwargs)¶
-
ext_pdf
(**kwargs)¶
-
get_cache_deps
(only_floating: bool = True) -> OrderedSet(['z', 'f', 'i', 't', '.', 'P', 'a', 'r', 'm', 'e'])¶ Return a set of all independent
Parameter
that this object depends on.Parameters: only_floating (bool) – If True, only return floating Parameter
-
get_dependencies
(only_floating: bool = True) -> OrderedSet(['z', 'f', 'i', 't', '.', 'P', 'a', 'r', 'm', 'e'])¶ DEPRECATED FUNCTION
Warning: THIS FUNCTION IS DEPRECATED. It will be removed in a future version. Instructions for updating: Use get_params instead if you want to retrieve the independent parameters or get_cache_deps in case you need the numerical cache dependents (advanced).
-
get_params
(floating: Optional[bool] = True, is_yield: Optional[bool] = None, extract_independent: Optional[bool] = True, only_floating=<class 'zfit.util.checks.NotSpecified'>) → Set[zfit.core.interfaces.ZfitParameter]¶ Recursively collect parameters that this object depends on according to the filter criteria.
- Which parameters should be included can be steered using the arguments as a filter.
- None: do not filter on this. E.g. floating=None will return parameters that are floating as well as
- parameters that are fixed.
- True: only return parameters that fulfil this criterion
- False: only return parameters that do not fulfil this criterion. E.g. floating=False will return
- only parameters that are not floating.
Parameters: - floating – if a parameter is floating, e.g. if
floating()
returns True - is_yield – if a parameter is a yield of the _current_ model. This won’t be applied recursively, but may include yields if they do also represent a parameter parametrizing the shape. So if the yield of the current model depends on other yields (or also non-yields), this will be included. If, however, just submodels depend on a yield (as their yield) and it is not correlated to the output of our model, they won’t be included.
- extract_independent – If the parameter is an independent parameter, i.e. if it is a ZfitIndependentParameter.
-
get_yield
() → Optional[zfit.core.parameter.Parameter]¶ Return the yield (only for extended models).
Returns: the yield of the current model or None Return type: Parameter
-
gradients
(x: Union[float, tensorflow.python.framework.ops.Tensor], norm_range: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool], params: Optional[Iterable[zfit.core.interfaces.ZfitParameter]] = None)¶
-
graph_caching_methods
= [<function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>]¶
-
instances
= <_weakrefset.WeakSet object>¶
-
integrate
(**kwargs)¶
-
log_pdf
(x: Union[float, tensorflow.python.framework.ops.Tensor], norm_range: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = None) → Union[float, tensorflow.python.framework.ops.Tensor]¶ Log probability density function normalized over norm_range.
Parameters: Returns: a Tensor of type self.dtype.
Return type: log_pdf
-
n_obs
¶ Return the number of observables, the dimensionality. Corresponds to the last dimension.
-
name
¶ The name of the object.
-
norm_range
¶ Return the current normalization range. If None and the `obs`have limits, they are returned.
Returns: The current normalization range Return type: Space
or None
-
normalization
(limits: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool]) → Union[float, tensorflow.python.framework.ops.Tensor]¶ Return the normalization of the function (usually the integral over limits).
Parameters: limits (tuple, Space
) – The limits on where to normalize overReturns: the normalization value Return type: Tensor
-
numeric_integrate
(limits: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool], norm_range: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = None) → Union[float, tensorflow.python.framework.ops.Tensor]¶ Numerical integration over the model.
Parameters: - limits (tuple,
ZfitSpace
) – the limits to integrate over - norm_range (tuple,
ZfitSpace
, False) – the limits to normalize over
Returns: the integral value
Return type: Tensor
- limits (tuple,
-
obs
¶ Return the observables, string identifier for the coordinate system.
-
params
¶
-
partial_analytic_integrate
(**kwargs)¶
-
partial_integrate
(**kwargs)¶
-
partial_numeric_integrate
(**kwargs)¶
-
pdf
(**kwargs)¶
-
classmethod
register_additional_repr
(**kwargs)¶ Register an additional attribute to add to the repr.
Parameters: - keyword argument. The value has to be gettable from the instance (has to be an (any) –
- or callable method of self. (attribute) –
-
classmethod
register_analytic_integral
(func: Callable, limits: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = None, priority: Union[int, float] = 50, *, supports_norm_range: bool = False, supports_multiple_limits: bool = False) → None¶ Register an analytic integral with the class.
Parameters: - func (callable) –
A function that calculates the (partial) integral over the axes limits. The signature has to be the following:
- x (
ZfitData
, None): the data for the remaining axes in a partial - integral. If it is not a partial integral, this will be None.
- x (
- limits (
ZfitSpace
): the limits to integrate over. - norm_range (
ZfitSpace
, None): Normalization range of the integral. - If not supports_supports_norm_range, this will be None.
- norm_range (
- params (Dict[param_name,
zfit.Parameters
]): The parameters of the model. - model (
ZfitModel
):The model that is being integrated.
- () (limits) – |limits_arg_descr|
- priority (int) – Priority of the function. If multiple functions cover the same space, the one with the highest priority will be used.
- supports_multiple_limits (bool) – If True, the limits given to the integration function can have multiple limits. If False, only simple limits will pass through and multiple limits will be auto-handled.
- supports_norm_range (bool) – If True, norm_range argument to the function may not be None. If False, norm_range will always be None and care is taken of the normalization automatically.
- func (callable) –
-
register_cacher
(cacher: Union[zfit.core.interfaces.ZfitCachable, Iterable[zfit.core.interfaces.ZfitCachable]])¶ Register a cacher that caches values produces by this instance; a dependent.
Parameters: () (cacher) –
-
classmethod
register_inverse_analytic_integral
(func: Callable) → None¶ Register an inverse analytical integral, the inverse (unnormalized) cdf.
Parameters: () (func) –
-
reset_cache
(reseter: zfit.util.cache.ZfitGraphCachable)¶
-
reset_cache_self
()¶ Clear the cache of self and all dependent cachers.
-
sample
(n: Union[int, tensorflow.python.framework.ops.Tensor, str] = None, limits: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = None) → zfit.core.data.SampleData¶ Sample n points within limits from the model.
If limits is not specified, space is used (if the space contains limits). If n is None and the model is an extended pdf, ‘extended’ is used by default.
Parameters: Returns: SampleData(n_obs, n_samples)
Raises: NotExtendedPDFError
– if ‘extended’ is (implicitly by default or explicitly) chosen as an option for n but the pdf itself is not extended.ValueError
– if n is an invalid string option.InvalidArgumentError
– if n is not specified and pdf is not extended.
-
set_norm_range
(norm_range: Union[zfit.core.interfaces.ZfitLimit, tensorflow.python.framework.ops.Tensor, numpy.ndarray, Iterable[float], float, Tuple[float], List[float], bool, None])¶ Set the normalization range (temporarily if used with contextmanager).
Parameters: norm_range (tuple, Space
) –
-
space
¶
-
unnormalized_pdf
(x: Union[float, tensorflow.python.framework.ops.Tensor], component_norm_range: Union[zfit.core.interfaces.ZfitLimit, tensorflow.python.framework.ops.Tensor, numpy.ndarray, Iterable[float], float, Tuple[float], List[float], bool, None] = None) → Union[float, tensorflow.python.framework.ops.Tensor]¶ PDF “unnormalized”. Use functions for unnormalized pdfs. this is only for performance in special cases.
Parameters: - x (numerical) – The value, have to be convertible to a Tensor
- component_norm_range (
Space
) – The normalization range for the components. Needed for - composition (certain) – pdfs.
Returns: 1-dimensional
tf.Tensor
containing the unnormalized pdf.Return type: tf.Tensor
-
-
class
zfit.models.basic.
Exponential
(lambda_, obs: Union[str, Iterable[str], zfit.Space], name: str = 'Exponential', **kwargs)[source]¶ Bases:
zfit.core.basepdf.BasePDF
Exponential function exp(lambda * x).
The function is normalized over a finite range and therefore a pdf. So the PDF is precisely defined as \(\frac{ e^{\lambda \cdot x}}{ \int_{lower}^{upper} e^{\lambda \cdot x} dx}\)
Parameters: -
add_cache_deps
(cache_deps: Union[zfit.core.interfaces.ZfitCachable, Iterable[zfit.core.interfaces.ZfitCachable]], allow_non_cachable: bool = True)¶ Add dependencies that render the cache invalid if they change.
Parameters: - cache_deps (ZfitGraphCachable) –
- allow_non_cachable (bool) – If True, allow cache_dependents to be non-cachables. If False, any cache_dependents that is not a ZfitCachable will raise an error.
Raises: TypeError
– if one of the cache_dependents is not a ZfitCachable _and_ allow_non_cachable if False.
-
analytic_integrate
(limits: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool], norm_range: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = None) → Union[float, tensorflow.python.framework.ops.Tensor]¶ Analytical integration over function and raise Error if not possible.
Parameters: - limits (tuple,
ZfitSpace
) – the limits to integrate over - norm_range (tuple,
ZfitSpace
, False) – the limits to normalize over
Returns: the integral value
Return type: Tensor
Raises: AnalyticIntegralNotImplementedError
– If no analytical integral is available (for this limits).NormRangeNotImplementedError
– if the norm_range argument is not supported. This means that no analytical normalization is available, explicitly: the analytical integral over the limits = norm_range is not available.
- limits (tuple,
-
apply_yield
(value: Union[float, tensorflow.python.framework.ops.Tensor], norm_range: Union[zfit.core.interfaces.ZfitLimit, tensorflow.python.framework.ops.Tensor, numpy.ndarray, Iterable[float], float, Tuple[float], List[float], bool, None] = False, log: bool = False) → Union[float, tensorflow.python.framework.ops.Tensor]¶ If a norm_range is given, the value will be multiplied by the yield.
Parameters: - value (numerical) –
- () (norm_range) –
- log (bool) –
Returns: numerical
-
as_func
(norm_range: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = False)¶ Return a Function with the function model(x, norm_range=norm_range).
Parameters: () (norm_range) –
-
axes
¶ Return the axes, integer based identifier(indices) for the coordinate system.
-
convert_sort_space
(obs: Union[str, Iterable[str], zfit.Space, zfit.core.interfaces.ZfitLimit, tensorflow.python.framework.ops.Tensor, numpy.ndarray, Iterable[float], float, Tuple[float], List[float], bool, None] = None, axes: Union[int, Iterable[int]] = None, limits: Union[zfit.core.interfaces.ZfitLimit, tensorflow.python.framework.ops.Tensor, numpy.ndarray, Iterable[float], float, Tuple[float], List[float], bool, None] = None) → Optional[zfit.core.interfaces.ZfitSpace]¶ Convert the inputs (using eventually obs, axes) to
ZfitSpace
and sort them according to own obs.Parameters: - () (limits) –
- () –
- () –
Returns:
-
copy
(**override_parameters) → zfit.core.basepdf.BasePDF¶ Creates a copy of the model.
Note: the copy model may continue to depend on the original initialization arguments.
Parameters: **override_parameters – String/value dictionary of initialization arguments to override with new value. Returns: - A new instance of type(self) initialized from the union
- of self.parameters and override_parameters, i.e., dict(self.parameters, **override_parameters).
Return type: model
-
create_extended
(yield_: Union[zfit.core.interfaces.ZfitParameter, int, float, complex, tensorflow.python.framework.ops.Tensor], name_addition='_extended') → zfit.core.interfaces.ZfitPDF¶ Return an extended version of this pdf with yield yield_. The parameters are shared.
Parameters: Returns:
-
create_projection_pdf
(limits_to_integrate: Union[zfit.core.interfaces.ZfitLimit, tensorflow.python.framework.ops.Tensor, numpy.ndarray, Iterable[float], float, Tuple[float], List[float], bool, None]) → zfit.core.interfaces.ZfitPDF¶ Create a PDF projection by integrating out some of the dimensions.
The new projection pdf is still fully dependent on the pdf it was created with.
Parameters: limits_to_integrate ( Space
) –Returns: a pdf without the dimensions from limits_to_integrate. Return type: ZfitPDF
-
create_sampler
(n: Union[int, tensorflow.python.framework.ops.Tensor, str] = None, limits: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = None, fixed_params: Union[bool, List[zfit.core.interfaces.ZfitParameter], Tuple[zfit.core.interfaces.ZfitParameter]] = True) → zfit.core.data.Sampler¶ Create a
Sampler
that acts as Data but can be resampled, also with changed parameters and n.If limits is not specified, space is used (if the space contains limits). If n is None and the model is an extended pdf, ‘extended’ is used by default.Parameters: - n (int, tf.Tensor, str) –
The number of samples to be generated. Can be a Tensor that will be or a valid string. Currently implemented:
- ’extended’: samples poisson(yield) from each pdf that is extended.
- () (fixed_params) – From which space to sample.
- () – A list of Parameters that will be fixed during several resample calls.
If True, all are fixed, if False, all are floating. If a
Parameter
is not fixed and its value gets updated (e.g. by a Parameter.set_value() call), this will be reflected in resample. If fixed, the Parameter will still have the same value as the Sampler has been created with when it resamples.
Returns: py:class:~`zfit.core.data.Sampler`
Raises: NotExtendedPDFError
– if ‘extended’ is chosen (implicitly by default or explicitly) as an option for n but the pdf itself is not extended.ValueError
– if n is an invalid string option.InvalidArgumentError
– if n is not specified and pdf is not extended.
- n (int, tf.Tensor, str) –
-
dtype
¶ The dtype of the object
-
ext_integrate
(**kwargs)¶
-
ext_log_pdf
(**kwargs)¶
-
ext_pdf
(**kwargs)¶
-
get_cache_deps
(only_floating: bool = True) -> OrderedSet(['z', 'f', 'i', 't', '.', 'P', 'a', 'r', 'm', 'e'])¶ Return a set of all independent
Parameter
that this object depends on.Parameters: only_floating (bool) – If True, only return floating Parameter
-
get_dependencies
(only_floating: bool = True) -> OrderedSet(['z', 'f', 'i', 't', '.', 'P', 'a', 'r', 'm', 'e'])¶ DEPRECATED FUNCTION
Warning: THIS FUNCTION IS DEPRECATED. It will be removed in a future version. Instructions for updating: Use get_params instead if you want to retrieve the independent parameters or get_cache_deps in case you need the numerical cache dependents (advanced).
-
get_params
(floating: Optional[bool] = True, is_yield: Optional[bool] = None, extract_independent: Optional[bool] = True, only_floating=<class 'zfit.util.checks.NotSpecified'>) → Set[zfit.core.interfaces.ZfitParameter]¶ Recursively collect parameters that this object depends on according to the filter criteria.
- Which parameters should be included can be steered using the arguments as a filter.
- None: do not filter on this. E.g. floating=None will return parameters that are floating as well as
- parameters that are fixed.
- True: only return parameters that fulfil this criterion
- False: only return parameters that do not fulfil this criterion. E.g. floating=False will return
- only parameters that are not floating.
Parameters: - floating – if a parameter is floating, e.g. if
floating()
returns True - is_yield – if a parameter is a yield of the _current_ model. This won’t be applied recursively, but may include yields if they do also represent a parameter parametrizing the shape. So if the yield of the current model depends on other yields (or also non-yields), this will be included. If, however, just submodels depend on a yield (as their yield) and it is not correlated to the output of our model, they won’t be included.
- extract_independent – If the parameter is an independent parameter, i.e. if it is a ZfitIndependentParameter.
-
get_yield
() → Optional[zfit.core.parameter.Parameter]¶ Return the yield (only for extended models).
Returns: the yield of the current model or None Return type: Parameter
-
gradients
(x: Union[float, tensorflow.python.framework.ops.Tensor], norm_range: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool], params: Optional[Iterable[zfit.core.interfaces.ZfitParameter]] = None)¶
-
graph_caching_methods
= [<function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>, <function FunctionWrapperRegistry.__call__.<locals>.concrete_func>]¶
-
instances
= <_weakrefset.WeakSet object>¶
-
integrate
(**kwargs)¶
-
log_pdf
(x: Union[float, tensorflow.python.framework.ops.Tensor], norm_range: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = None) → Union[float, tensorflow.python.framework.ops.Tensor]¶ Log probability density function normalized over norm_range.
Parameters: Returns: a Tensor of type self.dtype.
Return type: log_pdf
-
n_obs
¶ Return the number of observables, the dimensionality. Corresponds to the last dimension.
-
name
¶ The name of the object.
-
norm_range
¶ Return the current normalization range. If None and the `obs`have limits, they are returned.
Returns: The current normalization range Return type: Space
or None
-
normalization
(limits: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool]) → Union[float, tensorflow.python.framework.ops.Tensor]¶ Return the normalization of the function (usually the integral over limits).
Parameters: limits (tuple, Space
) – The limits on where to normalize overReturns: the normalization value Return type: Tensor
-
numeric_integrate
(limits: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool], norm_range: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = None) → Union[float, tensorflow.python.framework.ops.Tensor]¶ Numerical integration over the model.
Parameters: - limits (tuple,
ZfitSpace
) – the limits to integrate over - norm_range (tuple,
ZfitSpace
, False) – the limits to normalize over
Returns: the integral value
Return type: Tensor
- limits (tuple,
-
obs
¶ Return the observables, string identifier for the coordinate system.
-
params
¶
-
partial_analytic_integrate
(**kwargs)¶
-
partial_integrate
(**kwargs)¶
-
partial_numeric_integrate
(**kwargs)¶
-
pdf
(**kwargs)¶
-
classmethod
register_additional_repr
(**kwargs)¶ Register an additional attribute to add to the repr.
Parameters: - keyword argument. The value has to be gettable from the instance (has to be an (any) –
- or callable method of self. (attribute) –
-
classmethod
register_analytic_integral
(func: Callable, limits: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = None, priority: Union[int, float] = 50, *, supports_norm_range: bool = False, supports_multiple_limits: bool = False) → None¶ Register an analytic integral with the class.
Parameters: - func (callable) –
A function that calculates the (partial) integral over the axes limits. The signature has to be the following:
- x (
ZfitData
, None): the data for the remaining axes in a partial - integral. If it is not a partial integral, this will be None.
- x (
- limits (
ZfitSpace
): the limits to integrate over. - norm_range (
ZfitSpace
, None): Normalization range of the integral. - If not supports_supports_norm_range, this will be None.
- norm_range (
- params (Dict[param_name,
zfit.Parameters
]): The parameters of the model. - model (
ZfitModel
):The model that is being integrated.
- () (limits) – |limits_arg_descr|
- priority (int) – Priority of the function. If multiple functions cover the same space, the one with the highest priority will be used.
- supports_multiple_limits (bool) – If True, the limits given to the integration function can have multiple limits. If False, only simple limits will pass through and multiple limits will be auto-handled.
- supports_norm_range (bool) – If True, norm_range argument to the function may not be None. If False, norm_range will always be None and care is taken of the normalization automatically.
- func (callable) –
-
register_cacher
(cacher: Union[zfit.core.interfaces.ZfitCachable, Iterable[zfit.core.interfaces.ZfitCachable]])¶ Register a cacher that caches values produces by this instance; a dependent.
Parameters: () (cacher) –
-
classmethod
register_inverse_analytic_integral
(func: Callable) → None¶ Register an inverse analytical integral, the inverse (unnormalized) cdf.
Parameters: () (func) –
-
reset_cache
(reseter: zfit.util.cache.ZfitGraphCachable)¶
-
reset_cache_self
()¶ Clear the cache of self and all dependent cachers.
-
sample
(n: Union[int, tensorflow.python.framework.ops.Tensor, str] = None, limits: Union[Tuple[Tuple[float, ...]], Tuple[float, ...], bool] = None) → zfit.core.data.SampleData¶ Sample n points within limits from the model.
If limits is not specified, space is used (if the space contains limits). If n is None and the model is an extended pdf, ‘extended’ is used by default.
Parameters: Returns: SampleData(n_obs, n_samples)
Raises: NotExtendedPDFError
– if ‘extended’ is (implicitly by default or explicitly) chosen as an option for n but the pdf itself is not extended.ValueError
– if n is an invalid string option.InvalidArgumentError
– if n is not specified and pdf is not extended.
-
set_norm_range
(norm_range: Union[zfit.core.interfaces.ZfitLimit, tensorflow.python.framework.ops.Tensor, numpy.ndarray, Iterable[float], float, Tuple[float], List[float], bool, None])¶ Set the normalization range (temporarily if used with contextmanager).
Parameters: norm_range (tuple, Space
) –
-
space
¶
-
unnormalized_pdf
(x: Union[float, tensorflow.python.framework.ops.Tensor], component_norm_range: Union[zfit.core.interfaces.ZfitLimit, tensorflow.python.framework.ops.Tensor, numpy.ndarray, Iterable[float], float, Tuple[float], List[float], bool, None] = None) → Union[float, tensorflow.python.framework.ops.Tensor]¶ PDF “unnormalized”. Use functions for unnormalized pdfs. this is only for performance in special cases.
Parameters: - x (numerical) – The value, have to be convertible to a Tensor
- component_norm_range (
Space
) – The normalization range for the components. Needed for - composition (certain) – pdfs.
Returns: 1-dimensional
tf.Tensor
containing the unnormalized pdf.Return type: tf.Tensor
-