Files
Jungfraujoch/image_analysis/bragg_integration/BraggPredictionRotation.h

38 lines
1.1 KiB
C++

// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#ifndef JFJOCH_BRAGGPREDICTIONROTATION_H
#define JFJOCH_BRAGGPREDICTIONROTATION_H
#include <vector>
#include <cstdint>
#include "../../common/CrystalLattice.h"
#include "../../common/DiffractionExperiment.h"
#include "../../common/Reflection.h"
struct BraggPredictionRotationSettings {
float high_res_A = 1.5f;
int max_hkl = 100;
char centering = 'P';
// Predict only in this image interval (inclusive)
int64_t image_first = 0;
int64_t image_last = 0;
// If true, expands [phi_start, phi_end] by one wedge on each side
// (useful if you later want to model partials / edge effects).
bool pad_one_wedge = false;
};
class BraggPredictionRotation {
public:
BraggPredictionRotation() = default;
std::vector<Reflection> Calc(const DiffractionExperiment& experiment,
const CrystalLattice& lattice,
const BraggPredictionRotationSettings& settings) const;
};
#endif //JFJOCH_BRAGGPREDICTIONROTATION_H