v1.0.0-rc.36

This commit is contained in:
2025-05-05 19:32:22 +02:00
parent 759243d1bf
commit 040cf08386
333 changed files with 22724 additions and 15251 deletions

View File

@@ -5,12 +5,12 @@
#include "../common/PixelMask.h"
TEST_CASE("PixelMask_MaskModuleEdges","[PixelMask]") {
DiffractionExperiment experiment(DetectorGeometry(4, 1));
DiffractionExperiment experiment(DetJF(4, 1));
experiment.MaskModuleEdges(true).MaskChipEdges(false).Mode(DetectorMode::Raw);
PixelMask mask(experiment);
auto mask_out = mask.GetMask(experiment);
auto mask_out = mask.GetMaskRaw(experiment);
REQUIRE(mask_out.size() == experiment.GetModulesNum() * RAW_MODULE_SIZE);
@@ -23,14 +23,17 @@ TEST_CASE("PixelMask_MaskModuleEdges","[PixelMask]") {
CHECK(mask_out[1024*512*3+123] == (1u<<30));
CHECK(mask_out[1024*512*3+1024] == (1u<<30));
CHECK(mask_out[1024*800+256] == 0);
CHECK(mask.GetMask()[0] == (1u<<30));
CHECK(mask.GetMask()[1022] == (1u<<30));
}
TEST_CASE("PixelMask_MaskChipEdges","[PixelMask]") {
DiffractionExperiment experiment(DetectorGeometry(4, 1));
DiffractionExperiment experiment(DetJF(4,1));
experiment.MaskChipEdges(true).MaskModuleEdges(false).Mode(DetectorMode::Raw);
PixelMask mask(experiment);
auto mask_out = mask.GetMask(experiment);
auto mask_out = mask.GetMaskRaw(experiment);
REQUIRE(mask_out.size() == experiment.GetModulesNum() * RAW_MODULE_SIZE);
CHECK(mask_out[255] == (1u<<31));
@@ -52,7 +55,7 @@ TEST_CASE("PixelMask_MaskWrongGain","[PixelMask]") {
ImageFormatSettings image_format;
image_format.MaskModuleEdges(false).MaskChipEdges(false).MaskPixelsWithoutG0(true).GeometryTransformed(false);
DiffractionExperiment experiment(DetectorGeometry(4, 1));
DiffractionExperiment experiment(DetJF(4,1));
experiment.ImportImageFormatSettings(image_format);
PixelMask mask(experiment);
@@ -70,7 +73,7 @@ TEST_CASE("PixelMask_MaskWrongGain","[PixelMask]") {
mask.LoadDetectorBadPixelMask(experiment, &calibration);
auto mask_out = mask.GetMask(experiment);
auto mask_out = mask.GetMaskRaw(experiment);
REQUIRE(mask_out.size() == experiment.GetModulesNum() * RAW_MODULE_SIZE);
CHECK(mask_out[2*RAW_MODULE_SIZE + 345] != 0);
@@ -86,7 +89,7 @@ TEST_CASE("PixelMask_MaskWrongGain","[PixelMask]") {
REQUIRE(!experiment.IsMaskPixelsWithoutG0());
mask.LoadDetectorBadPixelMask(experiment, &calibration);
mask_out = mask.GetMask(experiment);
mask_out = mask.GetMaskRaw(experiment);
CHECK(mask_out[2*RAW_MODULE_SIZE + 345] == 0);
CHECK(mask_out[2*RAW_MODULE_SIZE + 346] != 0);
@@ -102,7 +105,7 @@ TEST_CASE("PixelMask_MaskG0RMS","[PixelMask]") {
image_format.MaskModuleEdges(false).MaskChipEdges(false).MaskPixelsWithoutG0(true).GeometryTransformed(false);
image_format.PedestalG0RMSLimit(100);
DiffractionExperiment experiment(DetectorGeometry(4, 1));
DiffractionExperiment experiment(DetJF(4,1));
experiment.ImportImageFormatSettings(image_format);
PixelMask mask(experiment);
@@ -123,7 +126,7 @@ TEST_CASE("PixelMask_MaskG0RMS","[PixelMask]") {
mask.LoadDetectorBadPixelMask(experiment, &calibration);
auto mask_out = mask.GetMask(experiment);
auto mask_out = mask.GetMaskRaw(experiment);
REQUIRE(mask_out.size() == experiment.GetModulesNum() * RAW_MODULE_SIZE);
CHECK(mask_out[2*RAW_MODULE_SIZE + 245] == (1 << PixelMask::TooHighPedestalRMSPixelBit));
@@ -143,7 +146,7 @@ TEST_CASE("PixelMask_SCs","[PixelMask]") {
image_format.MaskModuleEdges(false).MaskChipEdges(false).MaskPixelsWithoutG0(true).GeometryTransformed(false);
image_format.PedestalG0RMSLimit(100);
DiffractionExperiment experiment(DetectorGeometry(4, 1));
DiffractionExperiment experiment(DetJF(4,1));
experiment.ImportImageFormatSettings(image_format);
experiment.StorageCells(16);
@@ -161,7 +164,7 @@ TEST_CASE("PixelMask_SCs","[PixelMask]") {
mask.LoadDetectorBadPixelMask(experiment, &calibration);
auto mask_out = mask.GetMask(experiment);
auto mask_out = mask.GetMaskRaw(experiment);
REQUIRE(mask_out.size() == experiment.GetModulesNum() * RAW_MODULE_SIZE);
CHECK(mask_out[456] == (1 << PixelMask::ErrorPixelBit));
@@ -173,92 +176,8 @@ TEST_CASE("PixelMask_SCs","[PixelMask]") {
CHECK(mask.GetStatistics().wrong_gain == 3);
}
TEST_CASE("PixelMask_CalculateNexusMask","[PixelMask]") {
DiffractionExperiment experiment(DetectorGeometry(4, 1, 8, 36, false));
experiment.MaskModuleEdges(false).MaskChipEdges(false);
PixelMask mask(experiment);
std::vector<uint32_t> v(4 * RAW_MODULE_SIZE, 0);
v[2] = 1;
v[4] = 1;
v[5] = 1;
v[3 * RAW_MODULE_SIZE + 780] = 1;
REQUIRE_NOTHROW(mask.LoadDetectorBadPixelMask(v));
auto mask_v = mask.GetMask(experiment);
REQUIRE(mask_v.size() == experiment.GetPixelsNum() );
REQUIRE(mask_v[0] == 0);
REQUIRE(mask_v[1] == 0);
REQUIRE(mask_v[2] == (1 << PixelMask::ErrorPixelBit));
REQUIRE(mask_v[3] == 0);
REQUIRE(mask_v[4] == (1 << PixelMask::ErrorPixelBit));
REQUIRE(mask_v[5] == (1 << PixelMask::ErrorPixelBit));
REQUIRE(mask_v[6] == 0);
REQUIRE(mask_v[1030 * 700 + 300] == 0);
REQUIRE(mask_v[(514+36)*1030*3 + 780 + 6] == (1 << PixelMask::ErrorPixelBit));
}
TEST_CASE("PixelMask_CalculateNexusMask_GetMaskRaw","[PixelMask]") {
DiffractionExperiment experiment(DetectorGeometry(4, 1, 8, 36, false));
experiment.MaskModuleEdges(false).MaskChipEdges(false);
PixelMask mask(experiment);
std::vector<uint32_t> v(4 * RAW_MODULE_SIZE, 0);
v[2] = 1;
v[4] = 1;
v[5] = 1;
v[3 * RAW_MODULE_SIZE + 780] = 1;
REQUIRE_NOTHROW(mask.LoadDetectorBadPixelMask(v));
auto mask_v = mask.GetMaskRaw();
REQUIRE(mask_v.size() == 4 * RAW_MODULE_SIZE );
REQUIRE(mask_v[0] == 0);
REQUIRE(mask_v[1] == 0);
REQUIRE(mask_v[2] == (1 << PixelMask::ErrorPixelBit));
REQUIRE(mask_v[3] == 0);
REQUIRE(mask_v[4] == (1 << PixelMask::ErrorPixelBit));
REQUIRE(mask_v[5] == (1 << PixelMask::ErrorPixelBit));
REQUIRE(mask_v[6] == 0);
REQUIRE(mask_v[3 * RAW_MODULE_SIZE + 780] == (1 << PixelMask::ErrorPixelBit));
}
TEST_CASE("PixelMask_CalculateNexusMask_GetMask_NoGeomTransfer","[PixelMask]") {
DiffractionExperiment experiment(DetectorGeometry(4, 1, 8, 36, false));
experiment.MaskModuleEdges(false).MaskChipEdges(false);
experiment.GeometryTransformation(false);
PixelMask mask(experiment);
std::vector<uint32_t> v(4 * RAW_MODULE_SIZE, 0);
v[2] = 1;
v[4] = 1;
v[5] = 1;
v[3 * RAW_MODULE_SIZE + 780] = 1;
REQUIRE_NOTHROW(mask.LoadDetectorBadPixelMask(v));
auto mask_v = mask.GetMask(experiment);
REQUIRE(mask_v.size() == 4 * RAW_MODULE_SIZE );
REQUIRE(mask_v[0] == 0);
REQUIRE(mask_v[1] == 0);
REQUIRE(mask_v[2] == (1 << PixelMask::ErrorPixelBit));
REQUIRE(mask_v[3] == 0);
REQUIRE(mask_v[4] == (1 << PixelMask::ErrorPixelBit));
REQUIRE(mask_v[5] == (1 << PixelMask::ErrorPixelBit));
REQUIRE(mask_v[6] == 0);
REQUIRE(mask_v[3 * RAW_MODULE_SIZE + 780] == (1 << PixelMask::ErrorPixelBit));
}
TEST_CASE("PixelMask_CalculateNexusMask_UserMaskRaw","[PixelMask]") {
DiffractionExperiment experiment(DetectorGeometry(4, 1, 8, 36, false));
DiffractionExperiment experiment(DetJF(4, 1, 8, 36, false));
experiment.MaskModuleEdges(false).MaskChipEdges(false);
PixelMask mask(experiment);
@@ -299,7 +218,7 @@ TEST_CASE("PixelMask_CalculateNexusMask_UserMaskRaw","[PixelMask]") {
}
TEST_CASE("PixelMask_CalculateNexusMask_UserMaskConv","[PixelMask]") {
DiffractionExperiment experiment(DetectorGeometry(4, 1, 8, 36, false));
DiffractionExperiment experiment(DetJF(4, 1, 8, 36, false));
experiment.MaskModuleEdges(false).MaskChipEdges(false);
PixelMask mask(experiment);
@@ -324,12 +243,12 @@ TEST_CASE("PixelMask_CalculateNexusMask_UserMaskConv","[PixelMask]") {
}
TEST_CASE("PixelMask_MaskDetectorGaps","[PixelMask]") {
DiffractionExperiment experiment(DetectorGeometry(8, 2, 8, 36, true));
DiffractionExperiment experiment(DetJF(8, 2, 8, 36, true));
experiment.MaskChipEdges(false).MaskModuleEdges(false);
experiment.IncidentEnergy_keV(WVL_1A_IN_KEV);
PixelMask mask(experiment);
auto mask_export = mask.GetMask(experiment);
auto mask_export = mask.GetMask();
REQUIRE(mask_export.size() == experiment.GetPixelsNum());
REQUIRE(mask_export[0] == 0);