Improve handling/calculating merge mask

This commit is contained in:
2026-05-17 14:44:33 +02:00
parent 1bf70dcae7
commit bb40c9518b
5 changed files with 42 additions and 31 deletions
+11 -6
View File
@@ -16,19 +16,24 @@
// Need to use consistent lattice to calc resolution (which would also allow to calculate completeness)
// But this is not possible for current still workflow (while fine for rotation workflow)
void CalcMergeMask(const DiffractionExperiment &x,
size_t CalcMergeMask(const DiffractionExperiment &x,
const std::vector<float> &scale_cc,
std::vector<uint8_t> &result_mask) {
if (scale_cc.size() != result_mask.size())
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Scale CC size mismatch");
size_t n_rejected = 0;
auto min_cc = x.GetScalingSettings().GetMinCCForImage();
if (min_cc <= 0.0)
return;
for (int i = 0; i < result_mask.size(); ++i)
result_mask[i] = result_mask[i] && (scale_cc[i] < min_cc);
if (min_cc > 0.0) {
for (int i = 0; i < result_mask.size(); ++i) {
if (result_mask[i] && (scale_cc[i] < min_cc)) {
result_mask[i] = 0;
++n_rejected;
}
}
}
return n_rejected;
}
std::vector<MergedReflection> MergeAll(const DiffractionExperiment &x,