v1.0.0-rc.44
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#include "ScanResultGenerator.h"
|
||||
|
||||
ScanResultGenerator::ScanResultGenerator(const DiffractionExperiment &experiment) {
|
||||
grid_scan = experiment.GetGridScan();
|
||||
if (grid_scan)
|
||||
v.resize(grid_scan->GetNElem());
|
||||
else
|
||||
v.resize(experiment.GetImageNum());
|
||||
file_prefix = experiment.GetFilePrefix();
|
||||
}
|
||||
|
||||
void ScanResultGenerator::Add(const DataMessage &message) {
|
||||
std::unique_lock ul(m);
|
||||
|
||||
int64_t image_number = message.number;
|
||||
if (grid_scan)
|
||||
image_number = grid_scan->Rearrange(image_number);
|
||||
|
||||
if (image_number < v.size()) {
|
||||
v[image_number].number = message.number;
|
||||
v[image_number].pixel_sum = message.pixel_sum;
|
||||
v[image_number].collection_efficiency = message.image_collection_efficiency.value_or(1.0);
|
||||
v[image_number].bkg = message.bkg_estimate;
|
||||
v[image_number].spot_count = message.spots.size();
|
||||
v[image_number].indexing_solution = message.indexing_result;
|
||||
v[image_number].mosaicity = message.mosaicity;
|
||||
v[image_number].b_factor = message.b_factor;
|
||||
v[image_number].uc = message.indexing_unit_cell;
|
||||
v[image_number].xfel_pulse_id = message.xfel_pulse_id;
|
||||
v[image_number].err_pixels = message.error_pixel_count;
|
||||
v[image_number].max_viable_pixel = message.max_viable_pixel_value;
|
||||
v[image_number].sat_pixels = message.saturated_pixel_count;
|
||||
}
|
||||
}
|
||||
|
||||
ScanResult ScanResultGenerator::GetResult() const {
|
||||
std::unique_lock ul(m);
|
||||
ScanResult ret;
|
||||
ret.file_prefix = file_prefix;
|
||||
ret.images = v;
|
||||
return ret;
|
||||
}
|
||||
Reference in New Issue
Block a user