From fc427202089582c0880b4eddebb84ca46ea17d72 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil <33750417+thattil@users.noreply.github.com> Date: Mon, 13 Feb 2023 11:21:35 +0100 Subject: [PATCH] allow half modules and odd number of half modules to use the gui with gap pixels disabled (#655) --- slsDetectorGui/include/qTabPlot.h | 4 ++- slsDetectorGui/src/qTabPlot.cpp | 43 +++++++++++++++++++++++-------- 2 files changed, 35 insertions(+), 12 deletions(-) diff --git a/slsDetectorGui/include/qTabPlot.h b/slsDetectorGui/include/qTabPlot.h index 3e57eb24a..77cefc0df 100644 --- a/slsDetectorGui/include/qTabPlot.h +++ b/slsDetectorGui/include/qTabPlot.h @@ -47,6 +47,7 @@ class qTabPlot : public QWidget, private Ui::TabPlotObject { private: void SetupWidgetWindow(); void Initialization(); + bool VerifyGapPixelsAllowed(); void Select1DPlot(bool enable); void GetGapPixels(); void GetStreamingFrequency(); @@ -60,7 +61,8 @@ class qTabPlot : public QWidget, private Ui::TabPlotObject { Detector *det; qDrawPlot *plot; - bool is1d; + bool is1d{false}; + bool isGapPixelsAllowed{false}; /** default plot and axis titles */ static QString defaultPlotTitle; diff --git a/slsDetectorGui/src/qTabPlot.cpp b/slsDetectorGui/src/qTabPlot.cpp index 19c856521..35d35add7 100644 --- a/slsDetectorGui/src/qTabPlot.cpp +++ b/slsDetectorGui/src/qTabPlot.cpp @@ -16,7 +16,7 @@ QString qTabPlot::defaultImageYAxisTitle("Pixel"); QString qTabPlot::defaultImageZAxisTitle("Intensity"); qTabPlot::qTabPlot(QWidget *parent, Detector *detector, qDrawPlot *p) - : QWidget(parent), det(detector), plot(p), is1d(false) { + : QWidget(parent), det(detector), plot(p) { setupUi(this); SetupWidgetWindow(); LOG(logDEBUG) << "Plot ready"; @@ -57,11 +57,7 @@ void qTabPlot::SetupWidgetWindow() { chkGainPlot1D->setChecked(true); plot->EnableGainPlot(true); break; - case slsDetectorDefs::EIGER: - chkGapPixels->setEnabled(true); - break; case slsDetectorDefs::JUNGFRAU: - chkGapPixels->setEnabled(true); chkGainPlot->setEnabled(true); chkGainPlot->setChecked(true); plot->EnableGainPlot(true); @@ -69,6 +65,8 @@ void qTabPlot::SetupWidgetWindow() { default: break; } + isGapPixelsAllowed = VerifyGapPixelsAllowed(); + chkGapPixels->setEnabled(isGapPixelsAllowed); Select1DPlot(is1d); Initialization(); @@ -195,6 +193,29 @@ void qTabPlot::Initialization() { connect(dispZMax, SIGNAL(editingFinished()), this, SLOT(isZMaxModified())); } +bool qTabPlot::VerifyGapPixelsAllowed() { + try { + switch (det->getDetectorType().squash()) { + case slsDetectorDefs::JUNGFRAU: + return true; + case slsDetectorDefs::EIGER: + if (det->getQuad().squash(false)) { + return true; + } + // full modules + if (det->getModuleGeometry().y % 2 == 0) { + return true; + } + return false; + default: + return false; + } + } + CATCH_DISPLAY("Could not verify if gap pixels allowed.", + "qTabPlot::VerifyGapPixelsAllowed") + return false; +} + void qTabPlot::Select1DPlot(bool enable) { LOG(logDEBUG) << "Selecting " << (enable ? "1" : "2") << "D Plot"; is1d = enable; @@ -772,15 +793,10 @@ void qTabPlot::Refresh() { boxFrequency->setEnabled(true); GetStreamingFrequency(); GetHwm(); - // gain plot, gap pixels enable + // gain plot switch (det->getDetectorType().squash()) { - case slsDetectorDefs::EIGER: - chkGapPixels->setEnabled(true); - GetGapPixels(); - break; case slsDetectorDefs::JUNGFRAU: chkGainPlot->setEnabled(true); - chkGapPixels->setEnabled(true); GetGapPixels(); break; case slsDetectorDefs::GOTTHARD2: @@ -789,6 +805,11 @@ void qTabPlot::Refresh() { default: break; } + // gap pixels + if (isGapPixelsAllowed) { + chkGapPixels->setEnabled(true); + GetGapPixels(); + } } else { boxFrequency->setEnabled(false); chkGainPlot->setEnabled(false);