00001 // $Id: QFitPeakFinderWidget.cpp 1134 2014-01-22 14:53:40Z linev $ 00002 //----------------------------------------------------------------------- 00003 // The GSI Online Offline Object Oriented (Go4) Project 00004 // Experiment Data Processing at EE department, GSI 00005 //----------------------------------------------------------------------- 00006 // Copyright (C) 2000- GSI Helmholtzzentrum für Schwerionenforschung GmbH 00007 // Planckstr. 1, 64291 Darmstadt, Germany 00008 // Contact: http://go4.gsi.de 00009 //----------------------------------------------------------------------- 00010 // This software can be used under the license agreements as stated 00011 // in Go4License.txt file which is part of the distribution. 00012 //----------------------------------------------------------------------- 00013 00014 #include "QFitPeakFinderWidget.h" 00015 00016 #include "TGo4FitPeakFinder.h" 00017 00018 QFitPeakFinderWidget::QFitPeakFinderWidget(QWidget *parent, const char* name) 00019 : QFitNamedWidget(parent, name) 00020 { 00021 setupUi(this); 00022 } 00023 00024 TGo4FitPeakFinder * QFitPeakFinderWidget::GetPF() { 00025 return dynamic_cast<TGo4FitPeakFinder*> (GetObject()); 00026 } 00027 00028 void QFitPeakFinderWidget::FillSpecificData() { 00029 QFitNamedWidget::FillSpecificData(); 00030 TGo4FitPeakFinder* finder = GetPF(); 00031 if (finder) { 00032 DataNameEdt->setText(finder->GetDataName()); 00033 ClearModelsChk->setChecked(finder->GetClearModels()); 00034 00035 UsePolynChk->setChecked(finder->GetUsePolynom()); 00036 PolynSpin->setValue(finder->GetPolynomOrder()); 00037 PolynSpin->setEnabled(finder->GetUsePolynom()); 00038 00039 FindersTab->setCurrentIndex(finder->GetPeakFinderType()); 00040 00041 ThresholdEdt->setText(QString::number(finder->Get0MaxAmplFactor())); 00042 MinWidthEdt->setText(QString::number(finder->Get0MinWidth())); 00043 MaxWidthEdt->setText(QString::number(finder->Get0MaxWidth())); 00044 00045 WidthEdit->setText(QString::number(finder->Get1LineWidth())); 00046 00047 NoiseFactorEdit->setText(QString::number(finder->Get2NoiseFactor())); 00048 NoiseMinEdit->setText(QString::number(finder->Get2NoiseMinimum())); 00049 SumUpSpin->setValue(finder->Get2ChannelSum()); 00050 } 00051 } 00052 00053 00054 void QFitPeakFinderWidget::DataNameEdt_textChanged( const QString & name) 00055 { 00056 if (!fbFillWidget && GetPF()) 00057 GetPF()->SetDataName(name.toLatin1().constData()); 00058 } 00059 00060 00061 void QFitPeakFinderWidget::ClearModelsChk_toggled( bool zn) 00062 { 00063 if (!fbFillWidget && GetPF()) 00064 GetPF()->SetClearModels(zn); 00065 } 00066 00067 00068 void QFitPeakFinderWidget::UsePolynChk_toggled( bool zn) 00069 { 00070 if (!fbFillWidget && GetPF()) { 00071 GetPF()->SetUsePolynom(zn); 00072 PolynSpin->setEnabled(zn); 00073 } 00074 } 00075 00076 00077 void QFitPeakFinderWidget::PolynSpin_valueChanged( int zn) 00078 { 00079 if (!fbFillWidget && GetPF()) 00080 GetPF()->SetPolynomOrder(zn); 00081 } 00082 00083 00084 void QFitPeakFinderWidget::FindersTab_currentChanged( int indx) 00085 { 00086 if (!fbFillWidget && GetPF()) 00087 GetPF()->SetPeakFinderType(indx); 00088 } 00089 00090 00091 void QFitPeakFinderWidget::ThresholdEdt_textChanged( const QString & value) 00092 { 00093 if (!fbFillWidget && GetPF()) { 00094 bool ok = false; 00095 double zn = value.toDouble(&ok); 00096 if (ok && (zn>0) && (zn<=1.)) GetPF()->Set0MaxAmplFactor(zn); 00097 } 00098 } 00099 00100 00101 void QFitPeakFinderWidget::MinWidthEdt_textChanged( const QString & value) 00102 { 00103 if (!fbFillWidget && GetPF()) { 00104 bool ok = false; 00105 double zn = value.toDouble(&ok); 00106 if (ok && (zn>=0)) GetPF()->Set0MinWidth(zn); 00107 } 00108 } 00109 00110 00111 void QFitPeakFinderWidget::MaxWidthEdt_textChanged( const QString & value) 00112 { 00113 if (!fbFillWidget && GetPF()) { 00114 bool ok = false; 00115 double zn = value.toDouble(&ok); 00116 if (ok && (zn>0)) GetPF()->Set0MaxWidth(zn); 00117 } 00118 } 00119 00120 00121 void QFitPeakFinderWidget::WidthEdit_textChanged( const QString & value ) 00122 { 00123 if (!fbFillWidget && GetPF()) { 00124 bool ok = false; 00125 double zn = value.toDouble(&ok); 00126 if (ok && (zn>0)) GetPF()->Set1LineWidth(zn); 00127 } 00128 } 00129 00130 00131 void QFitPeakFinderWidget::NoiseFactorEdit_textChanged( const QString & value ) 00132 { 00133 if (!fbFillWidget && GetPF()) { 00134 bool ok = false; 00135 double zn = value.toDouble(&ok); 00136 if (ok && (zn>0)) GetPF()->Set2NoiseFactor(zn); 00137 } 00138 } 00139 00140 00141 void QFitPeakFinderWidget::NoiseMinEdit_textChanged( const QString & value) 00142 { 00143 if (!fbFillWidget && GetPF()) { 00144 bool ok = false; 00145 double zn = value.toDouble(&ok); 00146 if (ok && (zn>=0)) GetPF()->Set2NoiseMinimum(zn); 00147 } 00148 } 00149 00150 00151 void QFitPeakFinderWidget::SumUpSpin_valueChanged( int zn) 00152 { 00153 if (!fbFillWidget && GetPF()) 00154 GetPF()->Set2ChannelSum(zn); 00155 }