// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #pragma once #include #include #include #include #include #include "../common/CrystalLattice.h" struct CcHalfByResolutionResult { std::vector cc; std::vector pairs; std::vector shell_mean_one_over_d2; }; struct HKLData { int64_t h ,k,l; double I = 0.0; double sigma = 0.0; int32_t last_image = 0; int32_t count = 0; float rlp = 0.0; float image_number = -100; std::vector tail; // any remaining numeric columns }; using IntegrateMap = std::unordered_map>; IntegrateMap ParseXdsIntegrateHkl(const std::string& filename); CcHalfByResolutionResult ComputeCcByResolution( const CrystalLattice& lattice, const IntegrateMap& ours, const IntegrateMap& xds, float d_min, float d_max, int32_t nshells);