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
73 lines
2.8 KiB
C++
73 lines
2.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 <QMainWindow>
|
|
#include <QCheckBox>
|
|
#include <QLabel>
|
|
#include <QPushButton>
|
|
|
|
#include "JFJochHelperWindow.h"
|
|
#include "../common/IndexingSettings.h"
|
|
#include "../widgets/SliderPlusBox.h"
|
|
#include "../../image_analysis/spot_finding/SpotFindingSettings.h"
|
|
|
|
class QButtonGroup;
|
|
|
|
// Holds the spot finding and indexing controls. The two are exposed as separate pages
|
|
// (TakeSpotFindingPage / TakeIndexingPage) so the settings window can show them as two tabs.
|
|
class JFJochViewerProcessingWindow : public JFJochHelperWindow {
|
|
Q_OBJECT
|
|
|
|
QCheckBox *m_enableCheckBox;
|
|
|
|
SliderPlusBox *m_signalToNoise;
|
|
SliderPlusBox *m_photonCount;
|
|
SliderPlusBox *m_minPixPerSpot;
|
|
SliderPlusBox *m_maxPixPerSpot;
|
|
SliderPlusBox *m_highResolution;
|
|
SliderPlusBox *m_lowResolution;
|
|
SliderPlusBox *m_maxSpotCount; // New: Max spot count slider
|
|
QCheckBox *m_highResSpuriousFilterCheckBox;
|
|
SliderPlusBox *m_highResSpuriousGapOneOverD; // [0.01 .. 0.5], step 0.001
|
|
|
|
QCheckBox *m_indexingCheckBox;
|
|
QCheckBox *m_quickIntegrationCheckBox;
|
|
|
|
QButtonGroup *m_indexAlgGroup; // indexing algorithm (FFBIDX/FFT/FFTW/Auto/None)
|
|
QButtonGroup *m_geomRefGroup; // geometry refinement (None/Orientation/Beam/Pixel)
|
|
QLabel *m_resolvedAlgLabel; // what Auto/FFBIDX resolves to on this system
|
|
bool m_unitCellKnown = false; // drives FFBIDX vs FFT resolution of Auto
|
|
|
|
SliderPlusBox *m_idxTolerance; // [0.0 .. 0.5], step 0.001
|
|
SliderPlusBox *m_idxUnitCellDistTolerance; // [0.0001 .. 0.2001], step 0.0001
|
|
QCheckBox *m_idxIndexIceRings;
|
|
SliderPlusBox *m_idxViableCellMinSpots; // integer >= 6
|
|
|
|
SliderPlusBox *m_iceRingWidthQRecipA;
|
|
|
|
QWidget *m_spotFindingPage;
|
|
QWidget *m_indexingPage;
|
|
|
|
SpotFindingSettings m_settings;
|
|
IndexingSettings m_indexing;
|
|
|
|
void Update();
|
|
void UpdateResolvedAlgorithmLabel(); // refresh the "effective on this system" hint
|
|
public:
|
|
explicit JFJochViewerProcessingWindow(const SpotFindingSettings &settings, const IndexingSettings& indexing,
|
|
QWidget *parent = nullptr);
|
|
|
|
// The two pages, for lifting into tabs. Ownership passes to the caller (e.g. a QTabWidget).
|
|
QWidget *TakeSpotFindingPage() { return m_spotFindingPage; }
|
|
QWidget *TakeIndexingPage() { return m_indexingPage; }
|
|
|
|
public slots:
|
|
// Whether the current dataset has a known unit cell (affects how Auto/FFBIDX resolve).
|
|
void setUnitCellKnown(bool known);
|
|
|
|
signals:
|
|
void settingsChanged(const SpotFindingSettings &settings, const IndexingSettings &indexing, int64_t max_spots);
|
|
};
|