diff --git a/Framework/Utilities/SaveBoostHistogram.hpp b/Framework/Utilities/SaveBoostHistogram.hpp index 813099c4c3a13f9ba3623dedf6e0590e8b12597e..55bf482926c988cb561ada322dc56a67f3842649 100644 --- a/Framework/Utilities/SaveBoostHistogram.hpp +++ b/Framework/Utilities/SaveBoostHistogram.hpp @@ -30,7 +30,7 @@ namespace corsika::utl { template <class Axes, class Storage> inline void save_hist(boost::histogram::histogram<Axes, Storage> const& h, std::string const& filename) { - int const rank = h.rank(); + unsigned const rank = h.rank(); std::vector<size_t> axes_dims; axes_dims.reserve(rank); @@ -72,16 +72,12 @@ namespace corsika::utl { cnpy::npz_save(filename, std::string{"bins_"} + std::to_string(i), bins.data(), {bins.size()}, "a"); } - - cnpy::npz_save(filename, std::string{"axistypes"}, axis_types.data(), - {axis_types.size()}, "a"); - - cnpy::npz_save(filename, std::string{"overflow"}, overflow.get(), - {axis_types.size()}, "a"); - cnpy::npz_save(filename, std::string{"underflow"}, underflow.get(), - {axis_types.size()}, "a"); } + cnpy::npz_save(filename, std::string{"axistypes"}, axis_types.data(), {rank}, "a"); + cnpy::npz_save(filename, std::string{"overflow"}, overflow.get(), {rank}, "a"); + cnpy::npz_save(filename, std::string{"underflow"}, underflow.get(), {rank}, "a"); + auto const prod_axis_size = std::accumulate(axes_dims.cbegin(), axes_dims.cend(), unsigned{1}, std::multiplies<>()); auto temp = std::make_unique<float[]>(prod_axis_size); @@ -95,7 +91,7 @@ namespace corsika::utl { for (auto&& x : indexed(h, boost::histogram::coverage::all)) { int p = 0; - for (int axis_index = 0; axis_index < rank; ++axis_index) { + for (unsigned axis_index = 0; axis_index < rank; ++axis_index) { int const offset_underflow = (h.axis(axis_index).options() & 0x01) ? 1 : 0; auto k = x.index(axis_index) + offset_underflow; p = k + p * axes_dims.at(axis_index);