Updates after MAX IV experiment
This commit is contained in:
+101
-4
@@ -57,22 +57,119 @@ TEST_CASE("PixelMask_CalculateNexusMask","[PixelMask]") {
|
||||
v[2] = 1;
|
||||
v[4] = 1;
|
||||
v[5] = 1;
|
||||
v[3 * RAW_MODULE_SIZE + 780] = 1;
|
||||
|
||||
REQUIRE_NOTHROW(mask.LoadDetectorBadPixelMask(v, 2));
|
||||
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] == 4);
|
||||
REQUIRE(mask_v[2] == (1 << PixelMask::ErrorPixelBit));
|
||||
REQUIRE(mask_v[3] == 0);
|
||||
REQUIRE(mask_v[4] == 4);
|
||||
REQUIRE(mask_v[5] == 4);
|
||||
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.GetMask(experiment, false);
|
||||
|
||||
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));
|
||||
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;
|
||||
|
||||
REQUIRE_NOTHROW(mask.LoadUserMask(experiment, 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::UserMaskedPixelBit));
|
||||
REQUIRE(mask_v[3] == 0);
|
||||
REQUIRE(mask_v[4] == (1 << PixelMask::UserMaskedPixelBit));
|
||||
REQUIRE(mask_v[5] == (1 << PixelMask::UserMaskedPixelBit));
|
||||
REQUIRE(mask_v[6] == 0);
|
||||
REQUIRE(mask_v[1030 * 700 + 300] == 0);
|
||||
REQUIRE(mask_v[(1030+8)*514] == (1 << PixelMask::ModuleGapPixelBit));
|
||||
|
||||
auto user_mask_v = mask.GetUserMask(experiment);
|
||||
|
||||
REQUIRE(user_mask_v.size() == experiment.GetPixelsNum() );
|
||||
REQUIRE(user_mask_v[0] == 0);
|
||||
REQUIRE(user_mask_v[1] == 0);
|
||||
REQUIRE(user_mask_v[2] == 1);
|
||||
REQUIRE(user_mask_v[3] == 0);
|
||||
REQUIRE(user_mask_v[4] == 1);
|
||||
REQUIRE(user_mask_v[5] == 1);
|
||||
REQUIRE(user_mask_v[6] == 0);
|
||||
REQUIRE(user_mask_v[1030 * 700 + 300] == 0);
|
||||
|
||||
REQUIRE(user_mask_v[(1030+8)*514] == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("PixelMask_CalculateNexusMask_UserMaskConv","[PixelMask]") {
|
||||
DiffractionExperiment experiment(DetectorGeometry(4, 1, 8, 36, false));
|
||||
experiment.MaskModuleEdges(false).MaskChipEdges(false);
|
||||
|
||||
PixelMask mask(experiment);
|
||||
|
||||
std::vector<uint32_t> v(experiment.GetPixelsNum(), 0);
|
||||
v[1030 * 700 + 300] = 1;
|
||||
|
||||
REQUIRE_NOTHROW(mask.LoadUserMask(experiment, v));
|
||||
|
||||
auto mask_v = mask.GetMask(experiment);
|
||||
|
||||
REQUIRE(mask_v.size() == experiment.GetPixelsNum() );
|
||||
REQUIRE(mask_v[1030 * 700 + 300] == (1 << PixelMask::UserMaskedPixelBit));
|
||||
REQUIRE(mask_v[(1030+8)*514] == (1 << PixelMask::ModuleGapPixelBit));
|
||||
|
||||
auto user_mask_v = mask.GetUserMask(experiment);
|
||||
|
||||
REQUIRE(user_mask_v.size() == experiment.GetPixelsNum() );
|
||||
REQUIRE(user_mask_v[1030 * 700 + 300] == 1);
|
||||
|
||||
REQUIRE(user_mask_v[(1030+8)*514] == 0);
|
||||
}
|
||||
|
||||
|
||||
TEST_CASE("PixelMask_MaskDetectorGaps","[PixelMask]") {
|
||||
DiffractionExperiment experiment(DetectorGeometry(8, 2, 8, 36, true));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user