From 5b5a0c63ceecc057c9c9d28f09056f43487c2727 Mon Sep 17 00:00:00 2001 From: Alice Date: Wed, 4 Feb 2026 10:45:41 +0100 Subject: [PATCH] added docstring --- python/aare/transform.py | 15 +++++++++++++++ src/PixelMap.cpp | 3 ++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/python/aare/transform.py b/python/aare/transform.py index 10d9e39..e082bed 100644 --- a/python/aare/transform.py +++ b/python/aare/transform.py @@ -67,6 +67,21 @@ class Matterhorn02TransceiverTransform: return np.take(data.view(np.uint16), self.pixel_map) class Matterhorn10Transform: + """ + Transforms Matterhorn10 chip data from a buffer of bytes (uint8_t) + to a numpy array of uint8, uint16 depending on dynamic range. + Assumes data taken with transceiver samples only. + + :param dynamic_range: How many bits a pixel is encoded dynamic range (4, 8, or 16) + :type dynamic_range: int + :param num_counters: num counters used (1 to 4) + :type num_counters: int + + .. note:: + A matterhorn chip has 256 columns and 256 rows. + A matterhornchip with dynamic range 16 and 2 counters thus requires + 256*256*16*2/(2*64) = 1024 transceiver samples. (Per default 2 channels are enabled per transceiver sample, each channel storing 64 bits) + """ def __init__(self, dynamic_range : int, num_counters : int): self.pixel_map = _aare.GenerateMatterhorn10PixelMap(dynamic_range, num_counters) self.dynamic_range = dynamic_range diff --git a/src/PixelMap.cpp b/src/PixelMap.cpp index efae362..8ddd724 100644 --- a/src/PixelMap.cpp +++ b/src/PixelMap.cpp @@ -193,7 +193,8 @@ NDArray GenerateMatterhorn10PixelMap(const size_t dynamic_range, size_t col = 0; for (size_t offset = 0; offset < 64; offset += num_consecutive_pixels) { - for (size_t pkg = offset; pkg < 256; pkg += 64) { + for (size_t pkg = offset; pkg < Matterhorn10::nCols; + pkg += 64) { for (size_t pixel = 0; pixel < num_consecutive_pixels; ++pixel) { pixel_map(row + counter * n_rows, col) =