dont convert to byte

This commit is contained in:
Mazzoleni Alice Francesca 2025-04-11 14:35:20 +02:00
parent e71569b15e
commit 15e52565a9
4 changed files with 113 additions and 112 deletions

View File

@ -236,8 +236,7 @@ ClusterFile<ClusterType, Enable>::read_clusters_without_cut(size_t n_clusters) {
uint32_t nn = m_num_left; uint32_t nn = m_num_left;
uint32_t nph = m_num_left; // number of clusters in frame needs to be 4 uint32_t nph = m_num_left; // number of clusters in frame needs to be 4
// auto buf = reinterpret_cast<Cluster3x3 *>(clusters.data()); auto buf = clusters.data();
auto buf = reinterpret_cast<char*>(clusters.data());
// if there are photons left from previous frame read them first // if there are photons left from previous frame read them first
if (nph) { if (nph) {
if (nph > n_clusters) { if (nph > n_clusters) {
@ -247,8 +246,7 @@ ClusterFile<ClusterType, Enable>::read_clusters_without_cut(size_t n_clusters) {
} else { } else {
nn = nph; nn = nph;
} }
nph_read += fread((buf + nph_read * clusters.item_size()), nph_read += fread((buf + nph_read), clusters.item_size(), nn, fp);
clusters.item_size(), nn, fp);
m_num_left = nph - nn; // write back the number of photons left m_num_left = nph - nn; // write back the number of photons left
} }
@ -263,8 +261,8 @@ ClusterFile<ClusterType, Enable>::read_clusters_without_cut(size_t n_clusters) {
else else
nn = nph; nn = nph;
nph_read += fread((buf + nph_read * clusters.item_size()), nph_read +=
clusters.item_size(), nn, fp); fread((buf + nph_read), clusters.item_size(), nn, fp);
m_num_left = nph - nn; m_num_left = nph - nn;
} }
if (nph_read >= n_clusters) if (nph_read >= n_clusters)

View File

@ -297,7 +297,7 @@ class ClusterVector<Cluster<T, ClusterSizeX, ClusterSizeY, CoordType>> {
* @param frame_number frame number of the clusters. Default is 0, which is * @param frame_number frame number of the clusters. Default is 0, which is
* also used to indicate that the clusters come from many frames * also used to indicate that the clusters come from many frames
*/ */
ClusterVector(size_t capacity = 1024, uint64_t frame_number = 0) ClusterVector(size_t capacity = 300, uint64_t frame_number = 0)
: m_frame_number(frame_number) { : m_frame_number(frame_number) {
m_data.reserve(capacity); m_data.reserve(capacity);
} }

View File

@ -18,6 +18,9 @@ using pd_type = double;
using namespace aare; using namespace aare;
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
template <typename Type, uint8_t ClusterSizeX, uint8_t ClusterSizeY, template <typename Type, uint8_t ClusterSizeX, uint8_t ClusterSizeY,
typename CoordType> typename CoordType>
void define_cluster(py::module &m, const std::string &typestr) { void define_cluster(py::module &m, const std::string &typestr) {
@ -80,12 +83,13 @@ void define_cluster_vector(py::module &m, const std::string &typestr) {
self.push_back(cluster); self.push_back(cluster);
}) })
// implement push_back // implement push_back
.def_property_readonly("size", &ClusterVector<ClusterType>::size) .def_property_readonly("size", &ClusterVector<ClusterType>::size)
.def("item_size", &ClusterVector<ClusterType>::item_size) .def("item_size", &ClusterVector<ClusterType>::item_size)
.def_property_readonly("fmt", .def_property_readonly("fmt",
[typestr](ClusterVector<ClusterType> &self) { return fmt_format<ClusterType>; }) [typestr](ClusterVector<ClusterType> &self) {
return fmt_format<ClusterType>;
})
.def_property_readonly("cluster_size_x", .def_property_readonly("cluster_size_x",
&ClusterVector<ClusterType>::cluster_size_x) &ClusterVector<ClusterType>::cluster_size_x)
@ -269,3 +273,4 @@ void define_cluster_finder_bindings(py::module &m, const std::string &typestr) {
return hitmap; return hitmap;
}); });
} }
#pragma GCC diagnostic pop

View File

@ -146,7 +146,6 @@ TEST_CASE("Read clusters from single frame file", "[.files]") {
// [ 96 295] [855 856 857 858 859 860 861 862 863] // [ 96 295] [855 856 857 858 859 860 861 862 863]
// [ 97 296] [864 865 866 867 868 869 870 871 872] // [ 97 296] [864 865 866 867 868 869 870 871 872]
auto fpath = test_data_path() / "clust" / "single_frame_97_clustrers.clust"; auto fpath = test_data_path() / "clust" / "single_frame_97_clustrers.clust";
REQUIRE(std::filesystem::exists(fpath)); REQUIRE(std::filesystem::exists(fpath));
@ -174,11 +173,10 @@ TEST_CASE("Read clusters from single frame file", "[.files]") {
} }
} }
TEST_CASE("Read clusters", "[.files]") { TEST_CASE("Read clusters", "[.files]") {
// beam_En700eV_-40deg_300V_10us_d0_f0_100.clust // beam_En700eV_-40deg_300V_10us_d0_f0_100.clust
auto fpath = test_data_path() / "clust" / "beam_En700eV_-40deg_300V_10us_d0_f0_100.clust"; auto fpath = test_data_path() / "clust" /
"beam_En700eV_-40deg_300V_10us_d0_f0_100.clust";
REQUIRE(std::filesystem::exists(fpath)); REQUIRE(std::filesystem::exists(fpath));
ClusterFile<Cluster<int32_t, 3, 3>> f(fpath); ClusterFile<Cluster<int32_t, 3, 3>> f(fpath);