v1.0.0-rc.34
This commit is contained in:
+23
-20
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user