diff --git a/rugnux/Rugnux.cpp b/rugnux/Rugnux.cpp index c95bc3a2..205ca1ea 100644 --- a/rugnux/Rugnux.cpp +++ b/rugnux/Rugnux.cpp @@ -1241,18 +1241,8 @@ ProcessResult Rugnux::RunPipeline(RugnuxObserver *observer, bool write_output, b // the WEAK reflections and the filter throws most of them away. Preferring the filtered // arm on a tie cost four crystals their screw axes (P2(1) read as P2) for exactly that // reason, with the point group and every intensity statistic identical. - if (order_of(sg_search) <= order_of(alt)) { - if (order_of(alt) > order_of(sg_search)) - logger.Info("Space-group search: all-observation merge supports {} where the " - "Lorentz-filtered one supports {} - taking the higher symmetry", - alt.point_group_hm, sg_search.point_group_hm); - sg_search = alt; - sm = std::move(sm_all); - } else { - logger.Info("Space-group search: Lorentz-filtered merge supports {} where the " - "all-observation one supports {} - taking the higher symmetry", - sg_search.point_group_hm, alt.point_group_hm); - } + // Checked while both arms are still intact - below, the all-observation arm is adopted + // by value and the two become the same result. if (order_of(alt) > 0 && order_of(alt) == order_of(sg_search) && alt.point_group_hm != sg_search.point_group_hm) { // Same order, different symmetry: the two merges disagree about WHICH operators are @@ -1273,6 +1263,18 @@ ProcessResult Rugnux::RunPipeline(RugnuxObserver *observer, bool write_output, b logger.Warning("{}", msg); stats_text << " !! " << msg << "\n\n"; } + if (order_of(sg_search) <= order_of(alt)) { + if (order_of(alt) > order_of(sg_search)) + logger.Info("Space-group search: all-observation merge supports {} where the " + "Lorentz-filtered one supports {} - taking the higher symmetry", + alt.point_group_hm, sg_search.point_group_hm); + sg_search = alt; + sm = std::move(sm_all); + } else { + logger.Info("Space-group search: Lorentz-filtered merge supports {} where the " + "all-observation one supports {} - taking the higher symmetry", + sg_search.point_group_hm, alt.point_group_hm); + } } // Twinning evidence measured BEFORE any promotion, on the P1/subgroup merge the search was