From a37613690e080a8c92ca23c228cbaba460c62967 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Thu, 25 Jun 2026 09:28:01 +0200 Subject: [PATCH] Default two-pass rotation indexing to 100 first-pass images (was 30) A larger first-pass image set gives a more stable consensus lattice and so better per-frame prediction. On HEWL crystal 2 (full 360 deg) this lifts the anomalous S-peak height vs XDS from 0.57x to 0.61x and ISa from 10.5 to 11.0, at negligible cost (the first pass is a small fraction of the run). ~100 is the sweet spot; more (300) does not help further. Co-Authored-By: Claude Opus 4.8 --- process/JFJochProcess.h | 2 +- tools/jfjoch_process.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/process/JFJochProcess.h b/process/JFJochProcess.h index 4dafbb4a..755d01ab 100644 --- a/process/JFJochProcess.h +++ b/process/JFJochProcess.h @@ -46,7 +46,7 @@ struct ProcessConfig { bool rotation_indexing = false; bool two_pass_rotation = true; bool reuse_rotation_spots = true; - int rotation_indexing_image_count = 30; + int rotation_indexing_image_count = 100; std::optional forced_rotation_lattice; // Scaling / merging (FullAnalysis). reference_data (from a reference MTZ) also drives the diff --git a/tools/jfjoch_process.cpp b/tools/jfjoch_process.cpp index 54e9a025..56011515 100644 --- a/tools/jfjoch_process.cpp +++ b/tools/jfjoch_process.cpp @@ -37,7 +37,7 @@ void print_usage() { std::cout << std::endl; std::cout << " Indexing" << std::endl; - std::cout << " -R, --two-pass-rotation[=num] Two-pass offline rotation indexing (optional: number of images, default: 30)" << std::endl; + std::cout << " -R, --two-pass-rotation[=num] Two-pass offline rotation indexing (optional: number of images, default: 100)" << std::endl; std::cout << " --single-pass-rotation[=num] Use online-like single-pass rotation indexing (optional: min angular range deg)" << std::endl; std::cout << " --redo-rotation-spots Redo spot finding for two-pass rotation indexing" << std::endl; std::cout << " --force-rotation-lattice Force rotation indexer with external lattice (in Angstrom) : \"a0x,a0y,a0z,a1x,a1y,a1z,a2x,a2y,a2z\" (9 floats, skips first pass)" << std::endl; @@ -274,7 +274,7 @@ int main(int argc, char **argv) { bool rotation_indexing = false; bool two_pass_rotation = true; bool reuse_rotation_spots = true; - int rotation_indexing_image_count = 30; + int rotation_indexing_image_count = 100; std::optional rotation_indexing_range; bool run_scaling = false; bool global_scaling = false;