diff --git a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_uhi.py b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_uhi.py index 34baa36153d86..a01cf6dd34d39 100644 --- a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_uhi.py +++ b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_uhi.py @@ -483,7 +483,10 @@ def _axes(self) -> Tuple[Union[PlottableAxisContinuous, PlottableAxisDiscrete], def _kind(self) -> Kind: - return Kind.COUNT if not _hasWeights(self) else Kind.MEAN + # TProfile -> MEAN, everything else -> COUNT + if self.__class__.__name__.startswith("TProfile"): + return Kind.MEAN + return Kind.COUNT def _values_default(self) -> np.typing.NDArray[Any]: # noqa: F821 diff --git a/bindings/pyroot/pythonizations/test/uhi_indexing.py b/bindings/pyroot/pythonizations/test/uhi_indexing.py index 3a80a7079c1cd..f9100b1c2da18 100644 --- a/bindings/pyroot/pythonizations/test/uhi_indexing.py +++ b/bindings/pyroot/pythonizations/test/uhi_indexing.py @@ -357,5 +357,22 @@ def test_uhi_projection_preserves_content(self): assert np.allclose(uhi_values, ref_values) +class TestHistogramKind: + def test_histogram_kind_no_weights(self): + h = ROOT.TH1D("h", "h", 100, -10, 10) + h.Fill(5) + assert h.kind == "COUNT" + + def test_histogram_kind_with_weights(self): + h_weighted = ROOT.TH1D("h_weighted", "h_weighted", 100, -10, 10) + h_weighted.Fill(5, 2.0) + assert h_weighted.kind == "COUNT" + + def test_profile_histogram_kind(self): + h_profile = ROOT.TProfile("h_profile", "h_profile", 100, -10, 10) + h_profile.Fill(5, 3.0) + assert h_profile.kind == "MEAN" + + if __name__ == "__main__": raise SystemExit(pytest.main(args=[__file__]))