def METHOD_NAME(
    self,
    floating: bool | None = True,
    is_yield: bool | None = None,
    extract_independent: bool | None = True,
    only_floating=NotSpecified,
) -> set[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.
    Args:
        floating: if a parameter is floating, e.g. if :py:meth:`~ZfitParameter.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``.
    """
    if only_floating is not NotSpecified:
        raise BreakingAPIChangeError(
            "The argument `only_floating` has been renamed to `floating`."
        )
    return self._get_params(
        floating=floating,
        is_yield=is_yield,
        extract_independent=extract_independent,
    )