v1.0.0-rc.34

This commit is contained in:
2025-04-14 11:52:06 +02:00
parent 708b5fbc4b
commit b0607ab3ca
238 changed files with 4590 additions and 1329 deletions
+23 -20
View File
@@ -7,12 +7,12 @@
#include "JFJochCompressor.h"
PixelMask::PixelMask(const DetectorSetup &detector)
: nmodules(detector.GetModulesNum()),
mask(detector.GetModulesNum() * RAW_MODULE_SIZE, 0) {
: nmodules(detector.GetModulesNum()),
mask(detector.GetModulesNum() * RAW_MODULE_SIZE, 0) {
}
PixelMask::PixelMask(const DiffractionExperiment &experiment)
: PixelMask(experiment.GetDetectorSetup()) {
: PixelMask(experiment.GetDetectorSetup()) {
Update(experiment.GetImageFormatSettings());
}
@@ -96,25 +96,28 @@ void PixelMask::LoadDetectorBadPixelMask(const DiffractionExperiment &experiment
std::vector<uint32_t> input_mask(experiment.GetModulesNum() * RAW_MODULE_SIZE, 0);
std::vector<uint32_t> input_mask_rms(experiment.GetModulesNum() * RAW_MODULE_SIZE, 0);
if (calib != nullptr && experiment.GetStorageCellNumber() == 1) {
// with SC no point to calculate detector pixel_mask
auto pedestal_g0 = calib->GetPedestal(0, 0);
auto pedestal_g0_rms = calib->GetPedestalRMS(0, 0);
auto pedestal_g1 = calib->GetPedestal(1, 0);
auto pedestal_g2 = calib->GetPedestal(2, 0);
if (calib != nullptr) {
for (int sc = 0; sc < experiment.GetStorageCellNumber(); sc++) {
// For multiple SC PixelMask is logical sum of all image masks
// (this can be too much, but better than too little)
auto pedestal_g0 = calib->GetPedestal(0, sc);
auto pedestal_g0_rms = calib->GetPedestalRMS(0, sc);
auto pedestal_g1 = calib->GetPedestal(1, sc);
auto pedestal_g2 = calib->GetPedestal(2, sc);
for (int i = 0; i < experiment.GetModulesNum() * RAW_MODULE_SIZE; i++) {
if (pedestal_g1[i] > 16383)
input_mask[i] = 1;
if (!experiment.IsFixedGainG1()) {
if (pedestal_g0[i] >= 16383) {
if (experiment.IsMaskPixelsWithoutG0())
input_mask[i] = 1;
} else if (pedestal_g0_rms[i] > experiment.GetImageFormatSettings().GetPedestalG0RMSLimit())
input_mask_rms[i] = 1;
if (pedestal_g2[i] >= 16383)
for (int i = 0; i < experiment.GetModulesNum() * RAW_MODULE_SIZE; i++) {
if (pedestal_g1[i] > 16383)
input_mask[i] = 1;
if (!experiment.IsFixedGainG1()) {
if (pedestal_g0[i] >= 16383) {
if (experiment.IsMaskPixelsWithoutG0())
input_mask[i] = 1;
} else if (pedestal_g0_rms[i] > experiment.GetImageFormatSettings().GetPedestalG0RMSLimit())
input_mask_rms[i] = 1;
if (pedestal_g2[i] >= 16383)
input_mask[i] = 1;
}
}
}
}