diff --git a/image_analysis/scale_merge/SearchSpaceGroup.h b/image_analysis/scale_merge/SearchSpaceGroup.h index da5519e7..4cb90d10 100644 --- a/image_analysis/scale_merge/SearchSpaceGroup.h +++ b/image_analysis/scale_merge/SearchSpaceGroup.h @@ -185,7 +185,21 @@ struct SearchSpaceGroupOptions { // real merohedral twins 1.82 and 4.01. 1.25 sat INSIDE the genuine range - four genuine promotions // already exceeded it and survived only because the two-arm rule happened to cover them, and one // cubic case with no such cover was refused outright by a margin of 0.4%. - double max_operator_h_ratio = 1.70; + // + // Re-measured over ~780 reports (three batteries and four de-novo integration-radius arms), H is the + // only Stage-A guard that ever fires: 14 refusals on three crystals, no chi-squared-ratio refusal and + // no b veto anywhere. Two of the three are the genuine trigonal twins, reading 1.90/1.91 on every arm + // and 3.61-4.80; the third is a weak tetragonal crystal reading 1.73-1.80 whose 422 is confirmed by + // every operator correlation and which three independent tests - our own L test on the merge it was + // demoted into, xtriage on the same merge ("most likely due to an NCS axis parallel to the twin + // axis"), and the arithmetic that a twin at the implied fraction caps pair correlation at 0.55 while + // the added operators score 0.84-0.90 - agree is not twinned. Its excess is the coverage limit named + // above: the added 422 operators exchange h and k and carry a systematic floor the parent's + // sign-flipping 2-folds do not. So the populations collide at 1.80 and 1.90 rather than at 1.70, and + // the bound sits at the midpoint. Degrading the data drives the ratio towards 1, never up, and the + // estimator is precise (bootstrap standard error 0.2-3.7% of the ratio), so the collision is a real + // overlap and not sampling noise - which is also why scaling the bound by that error cannot work. + double max_operator_h_ratio = 1.85; // The H test needs at least this many pairs on both sides to mean anything. int min_pairs_for_h = 200;