75e401f0e5
Build Packages / Unit tests (push) Successful in 1h31m59s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 8m43s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 10m5s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 9m27s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 8m56s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m24s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 10m27s
Build Packages / build:rpm (rocky8) (push) Successful in 9m20s
Build Packages / build:rpm (rocky9) (push) Successful in 10m50s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 9m54s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m38s
Build Packages / DIALS test (push) Successful in 12m13s
Build Packages / XDS test (durin plugin) (push) Successful in 7m8s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 7m8s
Build Packages / XDS test (neggia plugin) (push) Successful in 7m50s
Build Packages / Generate python client (push) Successful in 16s
Build Packages / Build documentation (push) Successful in 50s
Build Packages / Create release (push) Skipped
This is an UNSTABLE release. It includes many experimental features, as well as many AI generated fixes. We recommend using rc.152 for production use. * jfjoch_broker: Add EXPERIMENTAL pixelrefine mode for image processing * jfjoch_broker: Allow to load user mask from 8-bit and 16-bit TIFF files * jfjoch_broker: Add ROI calculation in non-FPGA workflow * jfjoch_broker: Fixes to TCP image pusher * jfjoch_broker: Remove NUMA bindings * jfjoch_broker: Improvements to indexing * jfjoch_broker: For PSI EIGER, trimming energies are taken from the detector configuration (now compulsory) instead of hardcoded values * jfjoch_writer: Save ROI definitions and the per-pixel ROI bitmap in the master file; azimuthal ROIs support phi (angular) sectors * jfjoch_viewer: Major redesign with dockable panels and saved layouts, plus on-canvas creation/move/resize of box, circle and azimuthal ROIs * jfjoch_viewer: Run jfjoch_process reprocessing jobs from inside the GUI and overlay per-run results Reviewed-on: #63
52 lines
1.9 KiB
C++
52 lines
1.9 KiB
C++
// SPDX-FileCopyrightText: 2026 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
#include "JFJochBraggIntegrationPanel.h"
|
|
|
|
#include <QFormLayout>
|
|
#include <QGroupBox>
|
|
#include <QVBoxLayout>
|
|
|
|
JFJochBraggIntegrationPanel::JFJochBraggIntegrationPanel(const BraggIntegrationSettings &settings, QWidget *parent)
|
|
: QWidget(parent) {
|
|
auto *layout = new QVBoxLayout(this);
|
|
auto *group = new QGroupBox("Bragg integration", this);
|
|
auto *form = new QFormLayout(group);
|
|
|
|
m_r1 = new SliderPlusBox(1.0, 20.0, 0.5, 1, this);
|
|
m_r1->setValue(settings.GetR1());
|
|
form->addRow("Signal box radius r1 [px]", m_r1);
|
|
|
|
m_r2 = new SliderPlusBox(1.0, 25.0, 0.5, 1, this);
|
|
m_r2->setValue(settings.GetR2());
|
|
form->addRow("Background inner radius r2 [px]", m_r2);
|
|
|
|
m_r3 = new SliderPlusBox(1.0, 30.0, 0.5, 1, this);
|
|
m_r3->setValue(settings.GetR3());
|
|
form->addRow("Background outer radius r3 [px]", m_r3);
|
|
|
|
m_profileMultiplier = new SliderPlusBox(1.0, 15.0, 0.5, 1, this);
|
|
m_profileMultiplier->setValue(settings.GetProfileMultiplier());
|
|
form->addRow("Profile multiplier (PixelRefine)", m_profileMultiplier);
|
|
|
|
m_dMin = new SliderPlusBox(0.3, 5.0, 0.1, 1, this);
|
|
m_dMin->setValue(settings.GetDMinLimit_A());
|
|
form->addRow("High-resolution limit [Å]", m_dMin);
|
|
|
|
layout->addWidget(group);
|
|
layout->addStretch();
|
|
|
|
for (auto *slider: {m_r1, m_r2, m_r3, m_profileMultiplier, m_dMin})
|
|
connect(slider, &SliderPlusBox::valueChanged, this, [this](double) { emitChanged(); });
|
|
}
|
|
|
|
void JFJochBraggIntegrationPanel::emitChanged() {
|
|
BraggIntegrationSettings s;
|
|
s.R1(static_cast<float>(m_r1->value()))
|
|
.R2(static_cast<float>(m_r2->value()))
|
|
.R3(static_cast<float>(m_r3->value()))
|
|
.ProfileMultiplier(static_cast<float>(m_profileMultiplier->value()))
|
|
.DMinLimit_A(static_cast<float>(m_dMin->value()));
|
|
emit settingsChanged(s);
|
|
}
|