Files
Jungfraujoch/viewer/windows/JFJochBraggIntegrationPanel.cpp
T
leonarski_f 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
v1.0.0-rc.153 (#63)
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
2026-06-23 20:29:49 +02:00

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);
}