MH02 1-4 counters

This commit is contained in:
Erik Fröjdh
2024-11-06 21:32:03 +01:00
parent cbfd1f0b6c
commit b2e5c71f9c
12 changed files with 195 additions and 24 deletions

View File

@ -48,6 +48,8 @@ size_t CtbRawFile::image_size_in_bytes() const { return m_master.image_size_in_b
size_t CtbRawFile::frames_in_file() const { return m_master.frames_in_file(); }
RawMasterFile CtbRawFile::master() const { return m_master; }
void CtbRawFile::find_subfiles() {
// we can semi safely assume that there is only one module for CTB
while (std::filesystem::exists(m_master.data_fname(0, m_num_subfiles)))

View File

@ -3,7 +3,7 @@
#include <array>
namespace aare {
NDArray<size_t, 2> GenerateMoench03PixelMap() {
NDArray<ssize_t, 2> GenerateMoench03PixelMap() {
std::array<int, 32> const adc_nr = {300, 325, 350, 375, 300, 325, 350, 375,
200, 225, 250, 275, 200, 225, 250, 275,
100, 125, 150, 175, 100, 125, 150, 175,
@ -11,7 +11,7 @@ NDArray<size_t, 2> GenerateMoench03PixelMap() {
int const sc_width = 25;
int const nadc = 32;
int const pixels_per_sc = 5000;
NDArray<size_t, 2> order_map({400, 400});
NDArray<ssize_t, 2> order_map({400, 400});
int pixel = 0;
for (int i = 0; i != pixels_per_sc; ++i) {
@ -30,9 +30,9 @@ NDArray<size_t, 2> GenerateMoench03PixelMap() {
return order_map;
}
NDArray<size_t, 2> GenerateMoench05PixelMap() {
NDArray<ssize_t, 2> GenerateMoench05PixelMap() {
std::array<int, 3> adc_numbers = {9, 13, 1};
NDArray<size_t, 2> order_map({160, 150});
NDArray<ssize_t, 2> order_map({160, 150});
int n_pixel = 0;
for (int row = 0; row < 160; row++) {
for (int i_col = 0; i_col < 50; i_col++) {
@ -52,4 +52,26 @@ NDArray<size_t, 2> GenerateMoench05PixelMap() {
return order_map;
}
NDArray<ssize_t, 2>GenerateMH02SingleCounterPixelMap(){
NDArray<ssize_t, 2> order_map({48, 48});
for(int row = 0; row < 48; row++){
for(int col = 0; col < 48; col++){
order_map(row, col) = row*48 + col;
}
}
return order_map;
}
NDArray<ssize_t, 3> GenerateMH02FourCounterPixelMap(){
NDArray<ssize_t, 3> order_map({4, 48, 48});
for (int counter=0; counter<4; counter++){
for(int row = 0; row < 48; row++){
for(int col = 0; col < 48; col++){
order_map(counter, row, col) = counter*48*48 + row*48 + col;
}
}
}
return order_map;
}
} // namespace aare

View File

@ -109,6 +109,10 @@ std::optional<size_t> RawMasterFile::digital_samples() const {
return m_digital_samples;
}
std::optional<size_t> RawMasterFile::transceiver_samples() const {
return m_transceiver_samples;
}
void RawMasterFile::parse_json(const std::filesystem::path &fpath) {
std::ifstream ifs(fpath);
json j;
@ -190,6 +194,15 @@ void RawMasterFile::parse_json(const std::filesystem::path &fpath) {
// keep the optional empty
}
try{
m_transceiver_flag = j.at("Transceiver Flag");
if(m_transceiver_flag){
m_transceiver_samples = j.at("Transceiver Samples");
}
}catch (const json::out_of_range &e) {
// keep the optional empty
}
// Update detector type for Moench
// TODO! How does this work with old .raw master files?
#ifdef AARE_VERBOSE