v1.0.0-rc.70
This commit is contained in:
@@ -2,10 +2,11 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#include "MXAnalyzer.h"
|
||||
#include "CPUSpotFinder.h"
|
||||
#include "spot_finding/DetModuleSpotFinder_cpu.h"
|
||||
#include "../common/CUDAWrapper.h"
|
||||
#include "indexing/IndexerFactory.h"
|
||||
#include "SpotAnalysis.h"
|
||||
#include "spot_finding/SpotAnalysis.h"
|
||||
#include "geom_refinement/XtalOptimizer.h"
|
||||
|
||||
double stddev(const std::vector<float> &v) {
|
||||
if (v.size() <= 1)
|
||||
@@ -139,11 +140,38 @@ void MXAnalyzer::Process(DataMessage &message, const SpotFindingSettings& settin
|
||||
if (indexer && settings.indexing) {
|
||||
auto latt = indexer->Run(experiment, message).get();
|
||||
|
||||
if (latt && settings.quick_integration) {
|
||||
auto res = BraggIntegrate2D(experiment, message.image, latt.value());
|
||||
if (latt) {
|
||||
DiffractionExperiment experiment_copy(experiment);
|
||||
XtalOptimizerData data{
|
||||
.geom = experiment_copy.GetDiffractionGeometry(),
|
||||
.latt = latt.value()
|
||||
};
|
||||
switch (experiment.GetIndexingSettings().GetGeomRefinementAlgorithm()) {
|
||||
case GeomRefinementAlgorithmEnum::None:
|
||||
break;
|
||||
case GeomRefinementAlgorithmEnum::BeamCenter:
|
||||
XtalOptimizer(data, message.spots, false);
|
||||
experiment_copy.BeamX_pxl(data.geom.GetBeamX_pxl()).BeamY_pxl(data.geom.GetBeamY_pxl());
|
||||
message.beam_center_x = data.geom.GetBeamX_pxl();
|
||||
message.beam_center_y = data.geom.GetBeamY_pxl();
|
||||
message.indexing_lattice = data.latt;
|
||||
latt = data.latt;
|
||||
break;
|
||||
case GeomRefinementAlgorithmEnum::BeamCenterTetragonal:
|
||||
XtalOptimizer(data, message.spots, true);
|
||||
experiment_copy.BeamX_pxl(data.geom.GetBeamX_pxl()).BeamY_pxl(data.geom.GetBeamY_pxl());
|
||||
message.beam_center_x = data.geom.GetBeamX_pxl();
|
||||
message.beam_center_y = data.geom.GetBeamY_pxl();
|
||||
message.indexing_lattice = data.latt;
|
||||
latt = data.latt;
|
||||
break;
|
||||
}
|
||||
|
||||
message.reflections = res.reflections;
|
||||
message.b_factor = res.b_factor;
|
||||
if (settings.quick_integration) {
|
||||
auto res = BraggIntegrate2D(experiment_copy, message.image, latt.value());
|
||||
message.reflections = res.reflections;
|
||||
message.b_factor = res.b_factor;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user