diff --git a/image_analysis/RotationIndexer.cpp b/image_analysis/RotationIndexer.cpp index fcacf5b0..ed46490a 100644 --- a/image_analysis/RotationIndexer.cpp +++ b/image_analysis/RotationIndexer.cpp @@ -90,6 +90,7 @@ void RotationIndexer::TryIndex() { .min_spots = experiment.GetIndexingSettings().GetViableCellMinSpots(), .refine_beam_center = true, .refine_distance_mm = false, + .index_ice_rings = experiment.GetIndexingSettings().GetIndexIceRings(), .axis = axis_ }; diff --git a/image_analysis/geom_refinement/XtalOptimizer.cpp b/image_analysis/geom_refinement/XtalOptimizer.cpp index 0dd5b482..736f412c 100644 --- a/image_analysis/geom_refinement/XtalOptimizer.cpp +++ b/image_analysis/geom_refinement/XtalOptimizer.cpp @@ -413,8 +413,12 @@ bool XtalOptimizerInternal(XtalOptimizerData &data, break; } + const float tolerance_sq = tolerance * tolerance; // Add residuals for each point for (const auto &pt: spots) { + if (!data.index_ice_rings && pt.ice_ring) + continue; + Eigen::Matrix3d gonio_back_rot = Eigen::Matrix3d::Identity(); Coord recip = data.geom.DetectorToRecip(pt.x, pt.y); @@ -442,10 +446,9 @@ bool XtalOptimizerInternal(XtalOptimizerData &data, double norm_sq = (h - h_fp) * (h - h_fp) + (k - k_fp) * (k - k_fp) + (l - l_fp) * (l - l_fp); - if (norm_sq > tolerance * tolerance) + if (norm_sq > tolerance_sq) continue; - problem.AddResidualBlock( new ceres::AutoDiffCostFunction( new XtalResidual(pt.x, pt.y, diff --git a/image_analysis/geom_refinement/XtalOptimizer.h b/image_analysis/geom_refinement/XtalOptimizer.h index 0a3cfcb2..38c53cd3 100644 --- a/image_analysis/geom_refinement/XtalOptimizer.h +++ b/image_analysis/geom_refinement/XtalOptimizer.h @@ -27,6 +27,8 @@ struct XtalOptimizerData { bool refine_distance_mm = false; bool refine_detector_angles = false; + bool index_ice_rings = true; + float max_time = 1.0; std::optional axis; diff --git a/image_analysis/indexing/AnalyzeIndexing.cpp b/image_analysis/indexing/AnalyzeIndexing.cpp index 74cdb170..14d95e3b 100644 --- a/image_analysis/indexing/AnalyzeIndexing.cpp +++ b/image_analysis/indexing/AnalyzeIndexing.cpp @@ -6,7 +6,6 @@ #include "AnalyzeIndexing.h" #include "FitProfileRadius.h" -#include "spdlog/fmt/bundled/format.h" namespace { inline bool ok(float x) {