XtalOptimizer: Add lattice rotation-only optimizer
This commit is contained in:
@@ -103,20 +103,20 @@ void IndexAndRefine::RefineGeometryIfNeeded(DataMessage &msg, IndexAndRefine::In
|
||||
.max_time = 0.04 // 40 ms is max allowed time for the operation
|
||||
};
|
||||
|
||||
if (experiment.IsRotationIndexing()) {
|
||||
data.refine_beam_center = false;
|
||||
data.refine_rotation_axis = false;
|
||||
data.refine_unit_cell = false;
|
||||
}
|
||||
|
||||
if (outcome.symmetry.crystal_system == gemmi::CrystalSystem::Trigonal)
|
||||
data.crystal_system = gemmi::CrystalSystem::Hexagonal;
|
||||
|
||||
|
||||
switch (experiment.GetIndexingSettings().GetGeomRefinementAlgorithm()) {
|
||||
case GeomRefinementAlgorithmEnum::None:
|
||||
break;
|
||||
case GeomRefinementAlgorithmEnum::BeamCenter:
|
||||
if (XtalOptimizer(data, msg.spots)) {
|
||||
if (experiment.IsRotationIndexing()) {
|
||||
XtalOptimizerRotationOnly(data, msg.spots, 0.2);
|
||||
XtalOptimizerRotationOnly(data, msg.spots, 0.1);
|
||||
XtalOptimizerRotationOnly(data, msg.spots, 0.05);
|
||||
} else if (XtalOptimizer(data, msg.spots)) {
|
||||
outcome.experiment.BeamX_pxl(data.geom.GetBeamX_pxl())
|
||||
.BeamY_pxl(data.geom.GetBeamY_pxl());
|
||||
outcome.beam_center_updated = true;
|
||||
|
||||
Reference in New Issue
Block a user