Files
Jungfraujoch/image_analysis/scale_merge/Merge.h
T
leonarski_f 1d3ccdaa00
Build Packages / Unit tests (push) Failing after 7m12s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 8m58s
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 9m10s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 10m19s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 10m24s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 11m47s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 12m11s
Build Packages / build:rpm (rocky8) (push) Failing after 12m9s
Build Packages / Generate python client (push) Successful in 1m33s
Build Packages / build:rpm (rocky9) (push) Failing after 7m35s
Build Packages / Create release (push) Skipped
Build Packages / Build documentation (push) Successful in 2m8s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 9m13s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 9m28s
Build Packages / XDS test (JFJoch plugin) (push) Failing after 8m44s
Build Packages / XDS test (durin plugin) (push) Successful in 10m26s
Build Packages / XDS test (neggia plugin) (push) Successful in 9m10s
Build Packages / DIALS test (push) Successful in 13m37s
Add possible reflection and completeness to MergeStatistics
2026-05-17 20:05:28 +02:00

56 lines
1.8 KiB
C++

// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#pragma once
#include <vector>
#include "../../common/Logger.h"
#include "../../common/DiffractionExperiment.h"
#include "../../common/Reflection.h"
struct MergeStatisticsShell {
float d_min = 0.0f;
float d_max = 0.0f;
float mean_one_over_d2 = 0;
int total_observations = 0;
int unique_reflections = 0;
int possible_unique_reflections = 0;
double mean_i_over_sigma = 0.0;
double cc_half = 0.0f;
};
struct MergeStatistics {
std::vector<MergeStatisticsShell> shells;
MergeStatisticsShell overall;
void Print(Logger &logger) const;
};
struct MergeResult {
std::vector<MergedReflection> merged;
MergeStatistics statistics;
};
size_t CalcMergeMaskCC(const DiffractionExperiment &x,
const std::vector<float> &scale_cc,
std::vector<uint8_t> &result_mask);
size_t CalcMergeMaskUnitCell(const DiffractionExperiment &x,
const UnitCell &reference_cell,
const std::vector<std::optional<UnitCell> > &unit_cells,
std::vector<uint8_t> &mask);
std::vector<MergedReflection> MergeAll(const DiffractionExperiment &x,
const std::vector<std::vector<Reflection> > &reflections,
const std::vector<uint8_t> &merge_mask = {});
MergeStatistics MergeStats(const DiffractionExperiment &x,
const std::vector<MergedReflection> &merged,
const std::vector<std::vector<Reflection> > &reflections,
const UnitCell &cell,
const std::vector<uint8_t> &merge_mask = {});