From 1633cc3f01db4689f370f97adefeb02454f8d29b Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 17 Feb 2016 18:04:24 +0100 Subject: [PATCH] incorporated rate correction of eiger into gui --- slsDetectorGui/forms/form_tab_dataoutput.ui | 7 ++- slsDetectorGui/src/qTabDataOutput.cpp | 53 ++++++++++++++------- 2 files changed, 42 insertions(+), 18 deletions(-) diff --git a/slsDetectorGui/forms/form_tab_dataoutput.ui b/slsDetectorGui/forms/form_tab_dataoutput.ui index 5e383bb75..5a0d355ab 100644 --- a/slsDetectorGui/forms/form_tab_dataoutput.ui +++ b/slsDetectorGui/forms/form_tab_dataoutput.ui @@ -80,7 +80,7 @@ Directory where one saves the data. 10 10 716 - 86 + 92 @@ -396,7 +396,10 @@ Compression using Root. Available only for Gotthard in Expert Mode. ns - 6 + 9 + + + -2.000000000000000 2000000000.000000000000000 diff --git a/slsDetectorGui/src/qTabDataOutput.cpp b/slsDetectorGui/src/qTabDataOutput.cpp index 9c12888e7..5ca1a3841 100644 --- a/slsDetectorGui/src/qTabDataOutput.cpp +++ b/slsDetectorGui/src/qTabDataOutput.cpp @@ -5,8 +5,6 @@ * Author: l_maliakal_d */ /********************************************************************** - * TO DO - * 1. Rate correction auto: for eiger depends on settings, tdeadtime{vv,vv,vv} in postprocessing.h * ********************************************************************/ #include "qTabDataOutput.h" @@ -155,7 +153,7 @@ void qTabDataOutput::Initialization(){ connect(chkRate, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); connect(radioAuto, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); connect(radioDeadTime, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); - connect(spinDeadTime, SIGNAL(valueChanged(double)), this, SLOT(SetRateCorrection())); + connect(spinDeadTime, SIGNAL(editingFinished()), this, SLOT(SetRateCorrection())); //angular correction connect(chkAngular, SIGNAL(toggled(bool)), this, SLOT(SetAngularCorrection())); //discard bad channels @@ -230,7 +228,7 @@ void qTabDataOutput::SetFlatField(){ chkFlatField->setToolTip(flatFieldTip); dispFlatField->setToolTip(flatFieldTip); - chkFlatField->setPalette(chkRate->palette()); + chkFlatField->setPalette(chkDiscardBad->palette()); chkFlatField->setText("Flat Field File:"); //set ff dir myDet->setFlatFieldCorrectionDir(dir.toAscii().constData()); @@ -261,7 +259,7 @@ void qTabDataOutput::SetFlatField(){ }else{ chkFlatField->setToolTip(flatFieldTip); dispFlatField->setToolTip(flatFieldTip); - chkFlatField->setPalette(chkRate->palette()); + chkFlatField->setPalette(chkDiscardBad->palette()); chkFlatField->setText("Flat Field File:"); //Unsetting flat field myDet->setFlatFieldCorrectionFile(""); @@ -298,7 +296,7 @@ void qTabDataOutput::UpdateFlatFieldFromServer(){ chkFlatField->setToolTip(flatFieldTip); dispFlatField->setToolTip(flatFieldTip); - chkFlatField->setPalette(chkRate->palette()); + chkFlatField->setPalette(chkDiscardBad->palette()); chkFlatField->setText("Flat Field File:"); connect(dispFlatField, SIGNAL(editingFinished()), this, SLOT(SetFlatField())); @@ -330,7 +328,7 @@ void qTabDataOutput::BrowseFlatFieldPath(){ void qTabDataOutput::SetRateCorrection(){ disconnect(radioAuto, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); disconnect(radioDeadTime, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); - disconnect(spinDeadTime, SIGNAL(valueChanged(double)), this, SLOT(SetRateCorrection())); + disconnect(spinDeadTime, SIGNAL(editingFinished()), this, SLOT(SetRateCorrection())); #ifdef VERBOSE cout << "Entering Set Rate Correction function" << endl; @@ -352,7 +350,10 @@ void qTabDataOutput::SetRateCorrection(){ }//custom dead time else{ spinDeadTime->setEnabled(true); - myDet->setRateCorrection((double)spinDeadTime->value()); + if(spinDeadTime->value()>=-1) + myDet->setRateCorrection((double)spinDeadTime->value()); + else + qDefs::Message(qDefs::WARNING,"Dead time is inconsistent for all detectors. Returned Value: -2.","qTabDataOutput::SetRateCorrection"); #ifdef VERBOSE cout << "Setting rate corrections with dead time "<< spinDeadTime->value() << endl; #endif @@ -371,9 +372,11 @@ void qTabDataOutput::SetRateCorrection(){ } connect(radioAuto, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); connect(radioDeadTime, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); - connect(spinDeadTime, SIGNAL(valueChanged(double)), this, SLOT(SetRateCorrection())); + connect(spinDeadTime, SIGNAL(editingFinished()), this, SLOT(SetRateCorrection())); qDefs::checkErrorMessage(myDet,"qTabDataOutput::SetRateCorrection"); + + } @@ -384,7 +387,7 @@ void qTabDataOutput::UpdateRateCorrectionFromServer(){ disconnect(chkRate, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); disconnect(radioAuto, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); disconnect(radioDeadTime, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); - disconnect(spinDeadTime, SIGNAL(valueChanged(double)), this, SLOT(SetRateCorrection())); + disconnect(spinDeadTime, SIGNAL(editingFinished()), this, SLOT(SetRateCorrection())); double rate; rate = (double)myDet->getRateCorrectionTau(); @@ -399,35 +402,53 @@ void qTabDataOutput::UpdateRateCorrectionFromServer(){ radioAuto->setEnabled(false); radioDeadTime->setEnabled(false); spinDeadTime->setEnabled(false); - chkRate->setChecked(false); - }else if(rate<0){ + }else if(rate==-1){ #ifdef VERBOSE cout << "Auto" << endl; #endif radioAuto->setEnabled(true); radioDeadTime->setEnabled(true); spinDeadTime->setEnabled(false); - chkRate->setChecked(true); radioAuto->setChecked(true); }else{ #ifdef VERBOSE cout << "Custom" << endl; -#endif +#endif\ radioAuto->setEnabled(true); radioDeadTime->setEnabled(true); spinDeadTime->setEnabled(true); - chkRate->setChecked(true); radioDeadTime->setChecked(true); spinDeadTime->setValue((double)rate); } + if(rate == -2){ + qDefs::Message(qDefs::WARNING,"Dead time is inconsistent for all detectors. Returned Value: -2.","qTabDataOutput::UpdateRateCorrectionFromServer"); + QString errorTip = QString("Rate Corrections.
" + " #ratecorr# tau in seconds

")+ + QString("" + "Dead time is inconsistent for all detectors."); + chkRate->setToolTip(errorTip); + radioDeadTime->setToolTip(errorTip); + spinDeadTime->setToolTip(errorTip); + chkRate->setPalette(red); + chkRate->setText("Rate:*"); + }else{ + QString normalTip = QString("Rate Corrections.
" + " #ratecorr# tau in seconds

"); + chkRate->setToolTip(normalTip); + radioDeadTime->setToolTip(normalTip); + spinDeadTime->setToolTip(normalTip); + chkRate->setPalette(chkDiscardBad->palette()); + chkRate->setText("Rate:"); + } + connect(chkRate, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); connect(radioAuto, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); connect(radioDeadTime, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); - connect(spinDeadTime, SIGNAL(valueChanged(double)), this, SLOT(SetRateCorrection())); + connect(spinDeadTime, SIGNAL(editingFinished()), this, SLOT(SetRateCorrection())); }