From 2bffb38c8217aed16d438633165dd4b97c370dbc Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Sun, 7 Jun 2026 13:43:47 +0200 Subject: [PATCH] IndexingSettings: Figure out max extra lattices in StartMessage + make it changeable --- common/DiffractionExperiment.cpp | 1 + common/IndexingSettings.cpp | 9 ++++++++- common/IndexingSettings.h | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/common/DiffractionExperiment.cpp b/common/DiffractionExperiment.cpp index c3c22788..ffd5f4ad 100644 --- a/common/DiffractionExperiment.cpp +++ b/common/DiffractionExperiment.cpp @@ -667,6 +667,7 @@ void DiffractionExperiment::FillMessage(StartMessage &message) const { message.pixel_signed = IsPixelSigned(); message.sample_name = GetSampleName(); message.max_spot_count = GetMaxSpotCount(); + message.max_extra_lattices = indexing.GetMaxExtraLattices(); message.pixel_mask_enabled = IsApplyPixelMask(); message.detector_description = GetDetectorDescription(); message.space_group_number = GetSpaceGroupNumber(); diff --git a/common/IndexingSettings.cpp b/common/IndexingSettings.cpp index 3905085c..2de46bcb 100644 --- a/common/IndexingSettings.cpp +++ b/common/IndexingSettings.cpp @@ -215,5 +215,12 @@ IndexingSettings &IndexingSettings::BlockingBehavior(bool input) { } int64_t IndexingSettings::GetMaxExtraLattices() const { - return 3; + return max_extra_lattices; +} + +IndexingSettings &IndexingSettings::MaxExtraLattices(int64_t input) { + check_min("Max extra lattices", input, 0); + check_max("Max extra lattices", input, 10); + max_extra_lattices = input; + return *this; } diff --git a/common/IndexingSettings.h b/common/IndexingSettings.h index cca6ba92..6e900440 100644 --- a/common/IndexingSettings.h +++ b/common/IndexingSettings.h @@ -23,6 +23,8 @@ class IndexingSettings { int64_t indexing_threads = 4; int64_t viable_cell_min_spots = 9; + int64_t max_extra_lattices = 2; + bool blocking_behavior = true; bool index_ice_rings = false; @@ -51,6 +53,7 @@ public: IndexingSettings& RotationIndexingMinAngularRange_deg(float input); IndexingSettings& RotationIndexingAngularStride_deg(float input); IndexingSettings& BlockingBehavior(bool input); + IndexingSettings& MaxExtraLattices(int64_t input); [[nodiscard]] int64_t GetViableCellMinSpots() const; [[nodiscard]] IndexingAlgorithmEnum GetAlgorithm() const;