diff --git a/tools/jfjoch_process.cpp b/tools/jfjoch_process.cpp index 0bb413e74..f029a06b5 100644 --- a/tools/jfjoch_process.cpp +++ b/tools/jfjoch_process.cpp @@ -65,6 +65,7 @@ void print_usage(Logger &logger) { logger.Info(" -w Refine image wedge during scaling with starting wedge value"); logger.Info(" -p Minimum partiality to accept reflection (default: 0.02)"); logger.Info(" -q Per-image CC limit in percent (default: no limit)"); + logger.Info(" -i Number of scaling iterations with no reference data (default: 3) "); } void trim_in_place(std::string &t) { @@ -155,6 +156,7 @@ int main(int argc, char **argv) { std::string ref_mtz; double min_partiality = 0.02; double min_image_cc = 0.0; + int64_t scaling_iter = 3; IndexingAlgorithmEnum indexing_algorithm = IndexingAlgorithmEnum::Auto; @@ -291,6 +293,13 @@ int main(int argc, char **argv) { exit(EXIT_FAILURE); } break; + case 'i': + scaling_iter = atoi(optarg); + if (scaling_iter <= 0) { + logger.Error("Invalid scaling iteration count: {}", scaling_iter); + exit(EXIT_FAILURE); + } + break; default: print_usage(logger); exit(EXIT_FAILURE); @@ -600,7 +609,7 @@ int main(int argc, char **argv) { ScalingResult scale_result(0); auto scale_start = std::chrono::steady_clock::now(); - for (int i = 0; i < 3; i++) { + for (int i = 0; i < scaling_iter; i++) { auto iter_start = std::chrono::steady_clock::now(); auto merge_result = indexer.Merge(false, false); scale_result = indexer.ScaleAllImages(merge_result.merged); diff --git a/tools/jfjoch_scale.cpp b/tools/jfjoch_scale.cpp index 2a8aac4ad..5c14e1a18 100644 --- a/tools/jfjoch_scale.cpp +++ b/tools/jfjoch_scale.cpp @@ -48,6 +48,7 @@ void print_usage(Logger &logger) { logger.Info(" -w Refine image wedge during scaling with starting wedge value"); logger.Info(" -p Minimum partiality to accept reflection (default: 0.02)"); logger.Info(" -q Per-image CC limit in percent (default: no limit)"); + logger.Info(" -i Number of scaling iterations with no reference data (default: 3) "); } int main(int argc, char **argv) { @@ -71,6 +72,7 @@ int main(int argc, char **argv) { std::string ref_mtz; double min_partiality = 0.02; double min_image_cc = 0.0; + int64_t scaling_iter = 3; PartialityModel partiality_model = PartialityModel::Fixed; @@ -139,6 +141,13 @@ int main(int argc, char **argv) { exit(EXIT_FAILURE); } break; + case 'i': + scaling_iter = atoi(optarg); + if (scaling_iter <= 0) { + logger.Error("Invalid scaling iteration count: {}", scaling_iter); + exit(EXIT_FAILURE); + } + break; default: print_usage(logger); exit(EXIT_FAILURE); @@ -236,7 +245,7 @@ auto mosaicity = dataset->mosaicity_deg; ScalingResult scale_result(0); auto scale_start = std::chrono::steady_clock::now(); - for (int i = 0; i < 3; i++) { + for (int i = 0; i < scaling_iter; i++) { auto iter_start = std::chrono::steady_clock::now(); if (reference_data.empty()) {