diff --git a/tools/jfjoch_process.cpp b/tools/jfjoch_process.cpp index 54660d95..6b0dea09 100644 --- a/tools/jfjoch_process.cpp +++ b/tools/jfjoch_process.cpp @@ -21,6 +21,10 @@ // Default rot3d per-frame scale-G smoothing range (XDS DELPHI-like), in degrees of rotation. constexpr double SMOOTH_G_DEFAULT_DEG = 5.0; +// Default rot3d per-observation merge outlier rejection (sigma from the per-reflection median, XDS-like). +// Neutral-or-better across the test crystals; pass --reject-outliers 0 to disable. +constexpr double REJECT_OUTLIERS_DEFAULT_NSIGMA = 6.0; + void print_usage() { std::cout << "Usage jfjoch_process {} " << std::endl; std::cout << "Options:" << std::endl; @@ -66,7 +70,7 @@ void print_usage() { std::cout << " --min-partiality Minimum partiality to accept reflection (default: 0.02)" << std::endl; std::cout << " --capture-uncertainty rot3d: systematic sigma ~num*(1-captured_fraction)*I on under-captured fulls (default: 1.0 for rot3d, 0 otherwise)" << std::endl; std::cout << " --mosaicity Diagnostic: fix the scaling mosaicity (deg) instead of the per-image seed" << std::endl; - std::cout << " --reject-outliers Per-observation merge outlier rejection, N sigma from the per-reflection median (default: off; e.g. 6, XDS/DIALS-style)" << std::endl; + std::cout << " --reject-outliers Per-observation merge outlier rejection, N sigma from the per-reflection median (default: 6 for rot3d, XDS/DIALS-style; 0 = off)" << std::endl; std::cout << " --reject-delta-cchalf Per-crystal CC1/2-delta rejection: drop images with deltaCChalf below mean - N*stddev (default: off; e.g. 2.5)" << std::endl; std::cout << " --min-image-cc Per-image CC limit in percent (default: no limit)" << std::endl; std::cout << " --scaling-iterations Number of scaling iterations with no reference data (default: 3)" << std::endl; @@ -785,8 +789,8 @@ int main(int argc, char **argv) { scaling_settings.CaptureUncertaintyCoeff(capture_uncertainty_arg.value_or(combine_3d ? 1.0 : 0.0)); scaling_settings.ForcedMosaicity(forced_mosaicity_arg); scaling_settings.MinCCForImage(min_image_cc / 100.0); // --min-image-cc is in percent; the setting is a fraction - if (outlier_reject_nsigma) - scaling_settings.OutlierRejectNsigma(*outlier_reject_nsigma); + scaling_settings.OutlierRejectNsigma( + outlier_reject_nsigma.value_or(combine_3d ? REJECT_OUTLIERS_DEFAULT_NSIGMA : 0.0)); scaling_settings.FileFormat(intensity_format); experiment.ImportScalingSettings(scaling_settings);