diff --git a/src/musrgui/PAdmin.cpp b/src/musrgui/PAdmin.cpp index 46305472..d6b2bb3e 100644 --- a/src/musrgui/PAdmin.cpp +++ b/src/musrgui/PAdmin.cpp @@ -78,8 +78,12 @@ bool PAdminXMLParser::startElement( const QString&, const QString&, fKeyWord = eInstitute; } else if (qName == "file_format") { fKeyWord = eFileFormat; + } else if (qName == "lifetime_correction") { + fKeyWord = eLifetimeCorrection; } else if (qName == "msr_default_file_path") { fKeyWord = eMsrDefaultFilePath; + } else if (qName == "help_main") { + fKeyWord = eHelpMain; } return true; @@ -120,9 +124,19 @@ bool PAdminXMLParser::characters(const QString& str) case eFileFormat: fAdmin->setFileFormat(QString(str.ascii()).stripWhiteSpace()); break; + case eLifetimeCorrection: + bool flag; + if (str == "y") + flag = true; + else + flag = false; + fAdmin->setLifetimeCorrectionFlag(flag); case eMsrDefaultFilePath: fAdmin->setMsrDefaultFilePath(QString(str.ascii()).stripWhiteSpace()); break; + case eHelpMain: + fAdmin->setHelpMain(str); + break; default: break; } diff --git a/src/musrgui/PAdmin.h b/src/musrgui/PAdmin.h index 71c67190..fd9a262c 100644 --- a/src/musrgui/PAdmin.h +++ b/src/musrgui/PAdmin.h @@ -47,7 +47,8 @@ class PAdminXMLParser : public QXmlDefaultHandler private: enum EAdminKeyWords {eEmpty, eExecPath, eDefaultSavePath, eBeamline, eInstitute, eFileFormat, - eMsrDefaultFilePath}; + eLifetimeCorrection, eMsrDefaultFilePath, + eHelpMain}; bool startDocument(); bool startElement( const QString&, const QString&, const QString& , @@ -73,7 +74,9 @@ class PAdmin QString getBeamline() { return fBeamline; } QString getInstitute() { return fInstitute; } QString getFileFormat() { return fFileFormat; } + bool getLifetimeCorrectionFlag() { return fLifetimeCorrection; } QString getMsrDefaultFilePath() { return fMsrDefaultFilePath; } + QString getHelpMain() { return fHelpMain; } protected: void setExecPath(const QString str) { fExecPath = str; } @@ -81,7 +84,9 @@ class PAdmin void setBeamline(const QString str) { fBeamline = str; } void setInstitute(const QString str) { fInstitute = str; } void setFileFormat(const QString str) { fFileFormat = str; } + void setLifetimeCorrectionFlag(const bool flag) { fLifetimeCorrection = flag; } void setMsrDefaultFilePath(const QString str) { fMsrDefaultFilePath = str; } + void setHelpMain(const QString str) { fHelpMain = str; } private: friend class PAdminXMLParser; @@ -92,8 +97,11 @@ class PAdmin QString fBeamline; QString fInstitute; QString fFileFormat; + bool fLifetimeCorrection; QString fMsrDefaultFilePath; + + QString fHelpMain; }; #endif // _PADMIN_H_ diff --git a/src/musrgui/PGetAsymmetryRunBlockDialog.cpp b/src/musrgui/PGetAsymmetryRunBlockDialog.cpp index a26255a3..5c757a28 100644 --- a/src/musrgui/PGetAsymmetryRunBlockDialog.cpp +++ b/src/musrgui/PGetAsymmetryRunBlockDialog.cpp @@ -68,14 +68,14 @@ PGetAsymmetryRunBlockDialog::PGetAsymmetryRunBlockDialog() */ QString PGetAsymmetryRunBlockDialog::GetRunHeaderInfo() { - QString str; + QString str; - str = "RUN " + fRunFileName_lineEdit->text() + " "; - str += fBeamline_lineEdit->text().upper() + " "; - str += fInstitute_comboBox->currentText() + " "; - str += fFileFormat_comboBox->currentText() + " (name beamline institute data-file-format)\n"; + str = "RUN " + fRunFileName_lineEdit->text() + " "; + str += fBeamline_lineEdit->text().upper() + " "; + str += fInstitute_comboBox->currentText() + " "; + str += fFileFormat_comboBox->currentText() + " (name beamline institute data-file-format)\n"; - return str; + return str; } //---------------------------------------------------------------------------------------------------- diff --git a/src/musrgui/PGetSingleHistoRunBlockDialog.cpp b/src/musrgui/PGetSingleHistoRunBlockDialog.cpp index 98c2f5e8..b4d6b0e6 100644 --- a/src/musrgui/PGetSingleHistoRunBlockDialog.cpp +++ b/src/musrgui/PGetSingleHistoRunBlockDialog.cpp @@ -40,29 +40,25 @@ /** *
*/
-PGetSingleHistoRunBlockDialog::PGetSingleHistoRunBlockDialog()
+PGetSingleHistoRunBlockDialog::PGetSingleHistoRunBlockDialog(QWidget * parent, const char *name,
+ bool modal, WFlags f,
+ const bool lifetimeCorrection) :
+ PGetSingleHistoRunBlockDialogBase(parent, name, modal, f)
{
fForward_lineEdit->setValidator( new QIntValidator(fForward_lineEdit) );
fNorm_lineEdit->setValidator( new QIntValidator(fNorm_lineEdit) );
-/*
- fDataForwardStart_lineEdit->setValidator( new QIntValidator(fDataForwardStart_lineEdit) );
- fDataForwardEnd_lineEdit->setValidator( new QIntValidator(fDataForwardEnd_lineEdit) );
- fDataBackwardStart_lineEdit->setValidator( new QIntValidator(fDataBackwardStart_lineEdit) );
- fDataBackwardEnd_lineEdit->setValidator( new QIntValidator(fDataBackwardEnd_lineEdit) );
- fBackgroundForwardStart_lineEdit->setValidator( new QIntValidator(fBackgroundForwardStart_lineEdit) );
- fBackgroundForwardEnd_lineEdit->setValidator( new QIntValidator(fBackgroundForwardEnd_lineEdit) );
- fBackgroundBackwardStart_lineEdit->setValidator( new QIntValidator(fBackgroundBackwardStart_lineEdit) );
- fBackgroundBackwardEnd_lineEdit->setValidator( new QIntValidator(fBackgroundBackwardEnd_lineEdit) );
- fBackgroundForwardFix_lineEdit->setValidator( new QDoubleValidator(fBackgroundForwardFix_lineEdit) );
- fBackgroundBackwardFix_lineEdit->setValidator( new QDoubleValidator(fBackgroundBackwardFix_lineEdit) );
+ fDataStart_lineEdit->setValidator( new QIntValidator(fDataStart_lineEdit) );
+ fDataEnd_lineEdit->setValidator( new QIntValidator(fDataEnd_lineEdit) );
+ fBackgroundFix_lineEdit->setValidator( new QDoubleValidator(fBackgroundFix_lineEdit) );
+ fBackgroundFit_lineEdit->setValidator( new QIntValidator(fBackgroundFit_lineEdit) );
+ fBackgroundStart_lineEdit->setValidator( new QIntValidator(fBackgroundStart_lineEdit) );
+ fBackgroundEnd_lineEdit->setValidator( new QIntValidator(fBackgroundEnd_lineEdit) );
fFitRangeStart_lineEdit->setValidator( new QDoubleValidator(fFitRangeStart_lineEdit) );
fFitRangeEnd_lineEdit->setValidator( new QDoubleValidator(fFitRangeEnd_lineEdit) );
fPacking_lineEdit->setValidator( new QIntValidator(fPacking_lineEdit) );
- fAlpha_lineEdit->setValidator( new QIntValidator(fAlpha_lineEdit) );
- fBeta_lineEdit->setValidator( new QIntValidator(fBeta_lineEdit) );
- fT0Forward_lineEdit->setValidator( new QIntValidator(fT0Forward_lineEdit) );
- fT0Backward_lineEdit->setValidator( new QIntValidator(fT0Backward_lineEdit) );
-*/
+ fT0_lineEdit->setValidator( new QIntValidator(fT0_lineEdit) );
+ fLifetime_lineEdit->setValidator( new QIntValidator(fLifetime_lineEdit) );
+ fLifetimeCorrection_checkBox->setChecked(lifetimeCorrection);
}
//----------------------------------------------------------------------------------------------------
@@ -73,6 +69,11 @@ QString PGetSingleHistoRunBlockDialog::GetRunHeaderInfo()
{
QString str="";
+ str = "RUN " + fRunFileName_lineEdit->text() + " ";
+ str += fBeamline_lineEdit->text().upper() + " ";
+ str += fInstitute_comboBox->currentText() + " ";
+ str += fFileFormat_comboBox->currentText() + " (name beamline institute data-file-format)\n";
+
return str;
}
@@ -82,7 +83,17 @@ QString PGetSingleHistoRunBlockDialog::GetRunHeaderInfo()
*/
QString PGetSingleHistoRunBlockDialog::GetMap(bool &valid)
{
- QString str="";
+ QString str = fMap_lineEdit->text().stripWhiteSpace().remove(" ");
+
+ // check if potentially proper map line
+ for (unsigned int i=0; i
*/
-PSubTextEdit::PSubTextEdit(QWidget *parent, const char *name) : QTextEdit(parent, name)
+PSubTextEdit::PSubTextEdit(QWidget *parent, const char *name, const bool lifetimeCorrectionFlag) :
+ QTextEdit(parent, name), fLifetimeCorrectionFlag(lifetimeCorrectionFlag)
{
}
@@ -177,7 +179,7 @@ void PSubTextEdit::insertAsymRunBlock()
str += workStr;
}
- // add alpha if present
+ // add beta if present
workStr = dlg->GetBetaParameter(present);
if (present) {
str += workStr;
@@ -205,7 +207,7 @@ void PSubTextEdit::insertAsymRunBlock()
str += workStr;
if (!valid) {
QMessageBox::critical(this, "**ERROR**",
- "Either Background or Background.Fix is needed!\nWill set Background to 0..10, please correct!",
+ "Either background or backgr.fix is needed!\nWill set background to 0..10, please correct!",
QMessageBox::Ok, QMessageBox::NoButton);
}
@@ -258,6 +260,98 @@ void PSubTextEdit::insertAsymRunBlock()
*/
void PSubTextEdit::insertSingleHistRunBlock()
{
+ PGetSingleHistoRunBlockDialog *dlg = new PGetSingleHistoRunBlockDialog();
+ if (dlg->exec() == QDialog::Accepted) {
+ QString str, workStr;
+ bool valid = true, present = true;
+ // check if there is already a run block present, necessary because of the '####' line
+ // STILL MISSING
+
+ // add run line
+ str += dlg->GetRunHeaderInfo();
+
+ // add fittype
+ str += "fittype 0 (single histogram fit)\n";
+
+ // add map
+ workStr = dlg->GetMap(valid);
+ if (valid) {
+ str += workStr;
+ } else {
+ QMessageBox::critical(this, "**ERROR**",
+ "Given map not valid, will add a default map line",
+ QMessageBox::Ok, QMessageBox::NoButton);
+ str += "map 0 0 0 0 0 0 0 0 0 0\n";
+ }
+
+ // add forward
+ str += dlg->GetForward();
+
+ // add norm
+ str += dlg->GetNorm();
+
+ // add lifetime parameter
+ workStr = dlg->GetMuonLifetimeParam(present);
+ if (present) {
+ str += workStr;
+ }
+
+ // add lifetime correction flag if present
+ workStr = dlg->GetLifetimeCorrection(present);
+ if (present) {
+ str += workStr;
+ }
+
+ // add background, backgr.fix or backgr.fit
+ workStr = dlg->GetBackground(valid);
+ str += workStr;
+ if (!valid) {
+ QMessageBox::critical(this, "**ERROR**",
+ "Either background, backgr.fix, or backgr.fit is needed!\nWill set background to 0..10, please correct!",
+ QMessageBox::Ok, QMessageBox::NoButton);
+ }
+
+ // add t0 if present
+ workStr = dlg->GetT0(present);
+ if (present) {
+ str += workStr;
+ } else {
+ QMessageBox::warning(this, "**ERROR**",
+ "T0's not given, assume that they are present in the data file!",
+ QMessageBox::Ok, QMessageBox::NoButton);
+ }
+
+ // add data
+ workStr = dlg->GetData(valid);
+ if (valid) {
+ str += workStr;
+ } else {
+ QMessageBox::critical(this, "**ERROR**",
+ "Not all Data entries are present.Fix is needed!\nWill not set anything!",
+ QMessageBox::Ok, QMessageBox::NoButton);
+ }
+
+ // add fit range
+ workStr = dlg->GetFitRange(valid);
+ str += workStr;
+ if (!valid) {
+ QMessageBox::critical(this, "**ERROR**",
+ "No valid fit range is given.Fix is needed!\nWill add a default one!",
+ QMessageBox::Ok, QMessageBox::NoButton);
+ }
+
+ // add packing
+ workStr = dlg->GetPacking(present);
+ str += workStr;
+ if (!present) {
+ QMessageBox::critical(this, "**ERROR**",
+ "No valid packing/binning is given.Fix is needed!\nWill add a default one!",
+ QMessageBox::Ok, QMessageBox::NoButton);
+ }
+
+ // insert Asymmetry Run Block at the current cursor position
+ insert(str);
+ }
}
//----------------------------------------------------------------------------------------------------
diff --git a/src/musrgui/PSubTextEdit.h b/src/musrgui/PSubTextEdit.h
index 00214ba7..5a9e89d4 100644
--- a/src/musrgui/PSubTextEdit.h
+++ b/src/musrgui/PSubTextEdit.h
@@ -38,24 +38,28 @@ class PSubTextEdit : public QTextEdit
{
Q_OBJECT
-public:
- PSubTextEdit( QWidget *parent = 0, const char *name = 0 );
+ public:
+ PSubTextEdit( QWidget *parent = 0, const char *name = 0 , const bool lifetimeCorrectionFlag = true);
-protected:
- virtual QPopupMenu *createPopupMenu( const QPoint &pos);
+ protected:
+ virtual QPopupMenu *createPopupMenu( const QPoint &pos);
+
+ private slots:
+ void insertTitle();
+ void insertParameterBlock();
+ void insertTheoryBlock();
+ void insertFunctionBlock();
+ void insertAsymRunBlock();
+ void insertSingleHistRunBlock();
+ void insertNonMusrRunBlock();
+ void insertCommandBlock();
+ void insertFourierBlock();
+ void insertPlotBlock();
+ void insertStatisticBlock();
+
+ private:
+ bool fLifetimeCorrectionFlag;
-private slots:
- void insertTitle();
- void insertParameterBlock();
- void insertTheoryBlock();
- void insertFunctionBlock();
- void insertAsymRunBlock();
- void insertSingleHistRunBlock();
- void insertNonMusrRunBlock();
- void insertCommandBlock();
- void insertFourierBlock();
- void insertPlotBlock();
- void insertStatisticBlock();
};
#endif // _PSUBTEXTEDIT_H_
diff --git a/src/musrgui/PTextEdit.cpp b/src/musrgui/PTextEdit.cpp
index d7a4f739..6132a4ef 100644
--- a/src/musrgui/PTextEdit.cpp
+++ b/src/musrgui/PTextEdit.cpp
@@ -329,7 +329,7 @@ void PTextEdit::load( const QString &f )
{
if ( !QFile::exists( f ) )
return;
- PSubTextEdit *edit = new PSubTextEdit( fTabWidget );
+ PSubTextEdit *edit = new PSubTextEdit( fTabWidget, "PSubTextEdit", fAdmin->getLifetimeCorrectionFlag() );
edit->setTextFormat( PlainText );
edit->setFamily("Courier");
edit->setPointSize(11); // 11pt
@@ -410,7 +410,7 @@ bool PTextEdit::validRunList(const QString runList)
*/
void PTextEdit::fileNew()
{
- PSubTextEdit *edit = new PSubTextEdit( fTabWidget );
+ PSubTextEdit *edit = new PSubTextEdit( fTabWidget, "PSubTextEdit", fAdmin->getLifetimeCorrectionFlag() );
edit->setTextFormat( PlainText );
edit->setFamily("Courier");
edit->setPointSize(11); // 11pt
diff --git a/src/musrgui/musrgui_startup.xml b/src/musrgui/musrgui_startup.xml
index 1e438ed1..3df63081 100644
--- a/src/musrgui/musrgui_startup.xml
+++ b/src/musrgui/musrgui_startup.xml
@@ -13,6 +13,12 @@