From 7550a2cb9749750a5bc39caaa9267e3eb4708e06 Mon Sep 17 00:00:00 2001 From: froejdh_e Date: Fri, 10 Jan 2025 15:33:56 +0100 Subject: [PATCH] fixing read bug --- python/src/cluster.hpp | 34 +++++++++++++++++----------------- python/src/cluster_file.hpp | 2 +- src/ClusterFile.cpp | 4 ++-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/python/src/cluster.hpp b/python/src/cluster.hpp index 5b7d20e..768593a 100644 --- a/python/src/cluster.hpp +++ b/python/src/cluster.hpp @@ -39,14 +39,14 @@ void define_cluster_vector(py::module &m, const std::string &typestr) { &ClusterVector::set_frame_number) .def_buffer([typestr](ClusterVector &self) -> py::buffer_info { return py::buffer_info( - self.data(), /* Pointer to buffer */ + self.data(), /* Pointer to buffer */ self.item_size(), /* Size of one scalar */ fmt::format(self.fmt_base(), self.cluster_size_x(), self.cluster_size_y(), - typestr), /* Format descriptor */ - 1, /* Number of dimensions */ - {self.size()}, /* Buffer dimensions */ - {self.item_size()} /* Strides (in bytes) for each index */ + typestr), /* Format descriptor */ + 1, /* Number of dimensions */ + {self.size()}, /* Buffer dimensions */ + {self.item_size()} /* Strides (in bytes) for each index */ ); }); } @@ -75,18 +75,18 @@ void define_cluster_finder_mt_bindings(py::module &m) { .def("sync", &ClusterFinderMT::sync) .def("stop", &ClusterFinderMT::stop) .def("start", &ClusterFinderMT::start) - .def_property_readonly("pedestal", - [](ClusterFinderMT &self) { - auto pd = new NDArray{}; - *pd = self.pedestal(); - return return_image_data(pd); - }) - .def_property_readonly("noise", - [](ClusterFinderMT &self) { - auto arr = new NDArray{}; - *arr = self.noise(); - return return_image_data(arr); - }); + .def("pedestal", + [](ClusterFinderMT &self, size_t thread_index) { + auto pd = new NDArray{}; + *pd = self.pedestal(thread_index); + return return_image_data(pd); + },py::arg("thread_index") = 0) + .def("noise", + [](ClusterFinderMT &self, size_t thread_index) { + auto arr = new NDArray{}; + *arr = self.noise(thread_index); + return return_image_data(arr); + },py::arg("thread_index") = 0); } void define_cluster_collector_bindings(py::module &m) { diff --git a/python/src/cluster_file.hpp b/python/src/cluster_file.hpp index 82d4453..baae7a1 100644 --- a/python/src/cluster_file.hpp +++ b/python/src/cluster_file.hpp @@ -35,7 +35,7 @@ void define_cluster_file_io_bindings(py::module &m) { [](ClusterFile &self) { auto v = new ClusterVector(self.read_frame()); return v; - },py::return_value_policy::take_ownership) + }) .def("write_frame", &ClusterFile::write_frame) .def("read_cluster_with_cut", [](ClusterFile &self, size_t n_clusters, diff --git a/src/ClusterFile.cpp b/src/ClusterFile.cpp index dab4552..4d0d6df 100644 --- a/src/ClusterFile.cpp +++ b/src/ClusterFile.cpp @@ -72,7 +72,7 @@ ClusterVector ClusterFile::read_clusters(size_t n_clusters) { } else { nn = nph; } - nph_read += fread(reinterpret_cast(buf + nph_read), + nph_read += fread((buf + nph_read*clusters.item_size()), clusters.item_size(), nn, fp); m_num_left = nph - nn; // write back the number of photons left } @@ -87,7 +87,7 @@ ClusterVector ClusterFile::read_clusters(size_t n_clusters) { else nn = nph; - nph_read += fread(reinterpret_cast(buf + nph_read), + nph_read += fread((buf + nph_read*clusters.item_size()), clusters.item_size(), nn, fp); m_num_left = nph - nn; }