Indexing: Fixes to better handling ice ring spots
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 13m3s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 14m8s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m19s
Build Packages / Generate python client (push) Successful in 15s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m38s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8) (push) Successful in 14m43s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 14m46s
Build Packages / Build documentation (push) Successful in 37s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 14m46s
Build Packages / build:rpm (rocky9) (push) Successful in 15m13s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 7m22s
Build Packages / Unit tests (push) Failing after 50m39s

This commit is contained in:
2025-12-17 21:11:01 +01:00
parent fe6e3cb15a
commit fc3d112596
4 changed files with 8 additions and 3 deletions
@@ -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<XtalResidual, 3, 1, 1, 1, 2, 3, 3, 3>(
new XtalResidual(pt.x, pt.y,