From 679787858332cf593c914449221597a4afc5542f Mon Sep 17 00:00:00 2001 From: Zaher Salman Date: Thu, 27 Aug 2009 14:02:28 +0000 Subject: [PATCH] Added controls on fourier parameters. --- src/external/MuSRFitGUI/MSR.pm | 52 +- src/external/MuSRFitGUI/MuSRFit.pl | 347 +++++++++++-- src/external/MuSRFitGUI/MuSRFit.ui | 705 ++++++++++++++++++++++++--- src/external/MuSRFitGUI/MuSRFit.ui.h | 43 +- 4 files changed, 1030 insertions(+), 117 deletions(-) diff --git a/src/external/MuSRFitGUI/MSR.pm b/src/external/MuSRFitGUI/MSR.pm index 023a0d4e..8d7e0f21 100755 --- a/src/external/MuSRFitGUI/MSR.pm +++ b/src/external/MuSRFitGUI/MSR.pm @@ -194,8 +194,10 @@ FITPARAMETER my @Params = split( /\s+/, $Parameters ); # For the first component we need Alpha for Asymmetry fits - unshift( @Params, "Alpha" ); - + if ($component == 1) { + unshift( @Params, "Alpha" ); + } + foreach $Param (@Params) { $Param_ORG = $Param; if ( ($#FitTypes != 0) && ($Param ne "Alpha") ) { @@ -361,12 +363,16 @@ FITPARAMETER $Bg_Line = "background 66000 66500 66000 66500"; $Data_Line = "data 3419 63000 3419 63000"; - # Omit background and data lines for LTG,GPS and Dolly - if ( $BeamLine ne "LEM" ) { + # Omit background and data lines for LTF,GPS and Dolly + if ( $BeamLine eq "Dolly" ) { $Bg_Line = "background 50 250 50 250"; $Data_Line = "t0 287 284\ndata 297 8000 294 8000"; - } + } elsif ( $BeamLine eq "GPS" ) { + $Bg_Line = "background 40 120 40 120"; + $Data_Line = "t0 124 129\ndata 135 8000 135 8000"; +# $Data_Line = "data 135 8000 135 8000"; + } $FRANGE_Line = "fit TINI TFIN"; $PAC_Line = "packing BINNING"; @@ -443,15 +449,24 @@ runs $RUNS_Line $PRANGE_Line $logxy"; + if ($All{"FUNITS"} eq "") {$All{"FUNITS"}="MHz";} + if ($All{"FAPODIZATION"} eq "") {$All{"FAPODIZATION"}="STRONG";} + if ($All{"FPLOT"} eq "") {$All{"FPLOT"}="POWER";} + + $FOURIER_Block= "################################################################### FOURIER -units MHz # units either 'Gauss', 'MHz', or 'Mc/s' +units FUNITS # units either 'Gauss', 'MHz', or 'Mc/s' fourier_power 12 -apodization STRONG # NONE, WEAK, MEDIUM, STRONG -plot POWER # REAL, IMAG, REAL_AND_IMAG, POWER, PHASE +apodization FAPODIZATION # NONE, WEAK, MEDIUM, STRONG +plot FPLOT # REAL, IMAG, REAL_AND_IMAG, POWER, PHASE phase 8.50"; + $FOURIER_Block=~ s/FUNITS/$All{"FUNITS"}/g; + $FOURIER_Block=~ s/FAPODIZATION/$All{"FAPODIZATION"}/g; + $FOURIER_Block=~ s/FPLOT/$All{"FPLOT"}/g; + # Don't know why but it is needed initially $STAT_Block = "############################################################### @@ -796,10 +811,14 @@ FITPARAMETER $Data_Line = "data 3419 63000"; # Omit background and data lines for LTG,GPS and Dolly - if ( $BeamLine ne "LEM" ) { + if ( $BeamLine eq "Dolly" ) { $Bg_Line = "background 50 250 50 250"; $Data_Line = "t0 287 284\ndata 297 8000 294 8000"; + } elsif ( $BeamLine eq "GPS" ) { + $Bg_Line = "background 40 120 40 120"; + $Data_Line = "t0 124 129\ndata 135 8000 135 8000"; +# $Data_Line = "data 135 8000 135 8000"; } # $MAP_Line = "map 0 0 0 0 0 0 0 0 0 0"; @@ -881,15 +900,24 @@ runs $RUNS_Line $PRANGE_Line $logxy"; + if ($All{"FUNITS"} eq "") {$All{"FUNITS"}="MHz";} + if ($All{"FAPODIZATION"} eq "") {$All{"FAPODIZATION"}="STRONG";} + if ($All{"FPLOT"} eq "") {$All{"FPLOT"}="POWER";} + + $FOURIER_Block= "################################################################### FOURIER -units MHz # units either 'Gauss', 'MHz', or 'Mc/s' +units FUNITS # units either 'Gauss', 'MHz', or 'Mc/s' fourier_power 12 -apodization STRONG # NONE, WEAK, MEDIUM, STRONG -plot POWER # REAL, IMAG, REAL_AND_IMAG, POWER, PHASE +apodization FAPODIZATION # NONE, WEAK, MEDIUM, STRONG +plot FPLOT # REAL, IMAG, REAL_AND_IMAG, POWER, PHASE phase 8.50"; + $FOURIER_Block=~ s/FUNITS/$All{"FUNITS"}/g; + $FOURIER_Block=~ s/FAPODIZATION/$All{"FAPODIZATION"}/g; + $FOURIER_Block=~ s/FPLOT/$All{"FPLOT"}/g; + # Don't know why but it is needed initially $STAT_Block = "############################################################### diff --git a/src/external/MuSRFitGUI/MuSRFit.pl b/src/external/MuSRFitGUI/MuSRFit.pl index 1c80c717..f31ed60c 100755 --- a/src/external/MuSRFitGUI/MuSRFit.pl +++ b/src/external/MuSRFitGUI/MuSRFit.pl @@ -1,6 +1,6 @@ # Form implementation generated from reading ui file 'MuSRFit.ui' # -# Created: Thu Aug 27 09:03:25 2009 +# Created: Thu Aug 27 15:58:41 2009 # by: The PerlQt User Interface Compiler (puic) # # WARNING! All changes made in this file will be lost! @@ -30,12 +30,14 @@ use Qt::slots CreateAllInput => [], CallMSRCreate => [], UpdateMSRFileInitTable => [], + ActivateT0Hists => [], ActivateShComp => [], InitializeTab => [], TabChanged => [], GoFit => [], - UpdeateTable => []; + ShowMuSRT0 => []; use Qt::attributes qw( + textLabel2_2 musrfit_tabs RUNSPage TITLELabel @@ -102,18 +104,58 @@ use Qt::attributes qw( ShParam_3_9 InitializationPage InitParamTable + TableUpdate FittingPage textMSROutput TabPage + ErrorCalc + HESSE + MINOS Minimization MINIMIZE MIGRAD SIMPLEX - ErrorCalc - HESSE - MINOS - go FitTextOutput + go + TabPage_2 + FPlot + FApodization + FApodizationLabel + FUnits + FPlotLabel + FUnitsLabel + TabPage_3 + groupHist0 + textLabel2 + textLabel2_2_2_3 + textLabel2_2_2 + textLabel2_2_2_2 + textLabel2_2_2_2_2 + groupHist1 + t01 + Bg11 + Bg21 + Data11 + Data21 + groupHist2 + t02 + Bg12 + Bg22 + Data12 + Data22 + groupHist3 + t03 + Bg13 + Bg23 + Data13 + Data23 + groupHist4 + t04 + Bg14 + Bg24 + Data14 + Data24 + ShowT0 MenuBar fileMenu editMenu @@ -510,6 +552,9 @@ sub NEW setCentralWidget(Qt::Widget(this, "qt_central_widget")); + textLabel2_2 = Qt::Label(centralWidget(), "textLabel2_2"); + textLabel2_2->setGeometry( Qt::Rect(13, 78, 55, 19) ); + musrfit_tabs = Qt::TabWidget(centralWidget(), "musrfit_tabs"); musrfit_tabs->setEnabled( 1 ); musrfit_tabs->setGeometry( Qt::Rect(5, 0, 560, 400) ); @@ -830,7 +875,7 @@ sub NEW InitParamTable->horizontalHeader()->setLabel(InitParamTable->numCols() - 1, trUtf8("Min")); InitParamTable->setNumCols(InitParamTable->numCols() + 1); InitParamTable->horizontalHeader()->setLabel(InitParamTable->numCols() - 1, trUtf8("Max")); - InitParamTable->setGeometry( Qt::Rect(5, 0, 545, 560) ); + InitParamTable->setGeometry( Qt::Rect(5, 5, 545, 325) ); InitParamTable->setSizePolicy( Qt::SizePolicy(5, 5, 0, 0, InitParamTable->sizePolicy()->hasHeightForWidth()) ); InitParamTable->setMaximumSize( Qt::Size(32767, 32767) ); InitParamTable->setFocusPolicy( &Qt::Table::TabFocus() ); @@ -846,6 +891,9 @@ sub NEW InitParamTable->setShowGrid( 1 ); InitParamTable->setRowMovingEnabled( 0 ); InitParamTable->setFocusStyle( &Qt::Table::SpreadSheet() ); + + TableUpdate = Qt::PushButton(InitializationPage, "TableUpdate"); + TableUpdate->setGeometry( Qt::Rect(435, 335, 115, 28) ); musrfit_tabs->insertTab( InitializationPage, "" ); FittingPage = Qt::Widget(musrfit_tabs, "FittingPage"); @@ -857,6 +905,20 @@ sub NEW TabPage = Qt::Widget(musrfit_tabs, "TabPage"); + ErrorCalc = Qt::ButtonGroup(TabPage, "ErrorCalc"); + ErrorCalc->setGeometry( Qt::Rect(223, 11, 211, 125) ); + ErrorCalc->setAlignment( int(&Qt::ButtonGroup::AlignTop) ); + ErrorCalc->setExclusive( 1 ); + ErrorCalc->setRadioButtonExclusive( 1 ); + ErrorCalc->setProperty( "selectedId", Qt::Variant(int(0) ) ); + + HESSE = Qt::RadioButton(ErrorCalc, "HESSE"); + HESSE->setGeometry( Qt::Rect(19, 30, 69, 22) ); + HESSE->setChecked( 1 ); + + MINOS = Qt::RadioButton(ErrorCalc, "MINOS"); + MINOS->setGeometry( Qt::Rect(19, 59, 69, 22) ); + Minimization = Qt::ButtonGroup(TabPage, "Minimization"); Minimization->setGeometry( Qt::Rect(6, 11, 211, 125) ); Minimization->setExclusive( 1 ); @@ -873,30 +935,181 @@ sub NEW SIMPLEX = Qt::RadioButton(Minimization, "SIMPLEX"); SIMPLEX->setGeometry( Qt::Rect(16, 88, 83, 22) ); - ErrorCalc = Qt::ButtonGroup(TabPage, "ErrorCalc"); - ErrorCalc->setGeometry( Qt::Rect(223, 11, 211, 125) ); - ErrorCalc->setAlignment( int(&Qt::ButtonGroup::AlignTop) ); - ErrorCalc->setExclusive( 1 ); - ErrorCalc->setRadioButtonExclusive( 1 ); - ErrorCalc->setProperty( "selectedId", Qt::Variant(int(0) ) ); - - HESSE = Qt::RadioButton(ErrorCalc, "HESSE"); - HESSE->setGeometry( Qt::Rect(19, 30, 69, 22) ); - HESSE->setChecked( 1 ); - - MINOS = Qt::RadioButton(ErrorCalc, "MINOS"); - MINOS->setGeometry( Qt::Rect(19, 59, 69, 22) ); + FitTextOutput = Qt::TextEdit(TabPage, "FitTextOutput"); + FitTextOutput->setGeometry( Qt::Rect(5, 140, 545, 225) ); + FitTextOutput->setOverwriteMode( 1 ); go = Qt::PushButton(TabPage, "go"); go->setGeometry( Qt::Rect(440, 15, 111, 31) ); go->setAutoDefault( 0 ); go->setDefault( 1 ); - - FitTextOutput = Qt::TextEdit(TabPage, "FitTextOutput"); - FitTextOutput->setGeometry( Qt::Rect(5, 140, 545, 225) ); - FitTextOutput->setOverwriteMode( 1 ); musrfit_tabs->insertTab( TabPage, "" ); + TabPage_2 = Qt::Widget(musrfit_tabs, "TabPage_2"); + + my $LayoutWidget_5 = Qt::Widget(TabPage_2, '$LayoutWidget_5'); + $LayoutWidget_5->setGeometry( Qt::Rect(8, 18, 225, 92) ); + my $layout11 = Qt::GridLayout($LayoutWidget_5, 1, 1, 11, 6, '$layout11'); + + FPlot = Qt::ComboBox(0, $LayoutWidget_5, "FPlot"); + FPlot->setSizePolicy( Qt::SizePolicy(5, 5, 0, 0, FPlot->sizePolicy()->hasHeightForWidth()) ); + + $layout11->addWidget(FPlot, 2, 1); + + FApodization = Qt::ComboBox(0, $LayoutWidget_5, "FApodization"); + FApodization->setSizePolicy( Qt::SizePolicy(5, 5, 0, 0, FApodization->sizePolicy()->hasHeightForWidth()) ); + + $layout11->addWidget(FApodization, 1, 1); + + FApodizationLabel = Qt::Label($LayoutWidget_5, "FApodizationLabel"); + + $layout11->addWidget(FApodizationLabel, 1, 0); + + FUnits = Qt::ComboBox(0, $LayoutWidget_5, "FUnits"); + FUnits->setSizePolicy( Qt::SizePolicy(5, 5, 0, 0, FUnits->sizePolicy()->hasHeightForWidth()) ); + + $layout11->addWidget(FUnits, 0, 1); + + FPlotLabel = Qt::Label($LayoutWidget_5, "FPlotLabel"); + + $layout11->addWidget(FPlotLabel, 2, 0); + + FUnitsLabel = Qt::Label($LayoutWidget_5, "FUnitsLabel"); + + $layout11->addWidget(FUnitsLabel, 0, 0); + musrfit_tabs->insertTab( TabPage_2, "" ); + + TabPage_3 = Qt::Widget(musrfit_tabs, "TabPage_3"); + + my $LayoutWidget_6 = Qt::Widget(TabPage_3, '$LayoutWidget_6'); + $LayoutWidget_6->setGeometry( Qt::Rect(7, 5, 540, 180) ); + my $layout27 = Qt::HBoxLayout($LayoutWidget_6, 0, 6, '$layout27'); + + groupHist0 = Qt::GroupBox($LayoutWidget_6, "groupHist0"); + groupHist0->setSizePolicy( Qt::SizePolicy(5, 5, 0, 0, groupHist0->sizePolicy()->hasHeightForWidth()) ); + groupHist0->setMinimumSize( Qt::Size(0, 0) ); + + my $LayoutWidget_7 = Qt::Widget(groupHist0, '$LayoutWidget_7'); + $LayoutWidget_7->setGeometry( Qt::Rect(5, 28, 100, 135) ); + my $layout16_2 = Qt::VBoxLayout($LayoutWidget_7, 11, 0, '$layout16_2'); + + textLabel2 = Qt::Label($LayoutWidget_7, "textLabel2"); + $layout16_2->addWidget(textLabel2); + + textLabel2_2_2_3 = Qt::Label($LayoutWidget_7, "textLabel2_2_2_3"); + $layout16_2->addWidget(textLabel2_2_2_3); + + textLabel2_2_2 = Qt::Label($LayoutWidget_7, "textLabel2_2_2"); + $layout16_2->addWidget(textLabel2_2_2); + + textLabel2_2_2_2 = Qt::Label($LayoutWidget_7, "textLabel2_2_2_2"); + $layout16_2->addWidget(textLabel2_2_2_2); + + textLabel2_2_2_2_2 = Qt::Label($LayoutWidget_7, "textLabel2_2_2_2_2"); + $layout16_2->addWidget(textLabel2_2_2_2_2); + $layout27->addWidget(groupHist0); + + groupHist1 = Qt::GroupBox($LayoutWidget_6, "groupHist1"); + groupHist1->setFrameShadow( &Qt::GroupBox::Plain() ); + + my $LayoutWidget_8 = Qt::Widget(groupHist1, '$LayoutWidget_8'); + $LayoutWidget_8->setGeometry( Qt::Rect(8, 17, 75, 150) ); + my $layout18_2 = Qt::VBoxLayout($LayoutWidget_8, 0, 0, '$layout18_2'); + + t01 = Qt::LineEdit($LayoutWidget_8, "t01"); + $layout18_2->addWidget(t01); + + Bg11 = Qt::LineEdit($LayoutWidget_8, "Bg11"); + $layout18_2->addWidget(Bg11); + + Bg21 = Qt::LineEdit($LayoutWidget_8, "Bg21"); + $layout18_2->addWidget(Bg21); + + Data11 = Qt::LineEdit($LayoutWidget_8, "Data11"); + $layout18_2->addWidget(Data11); + + Data21 = Qt::LineEdit($LayoutWidget_8, "Data21"); + $layout18_2->addWidget(Data21); + $layout27->addWidget(groupHist1); + + groupHist2 = Qt::GroupBox($LayoutWidget_6, "groupHist2"); + groupHist2->setEnabled( 1 ); + groupHist2->setFrameShadow( &Qt::GroupBox::Plain() ); + + my $LayoutWidget_9 = Qt::Widget(groupHist2, '$LayoutWidget_9'); + $LayoutWidget_9->setGeometry( Qt::Rect(8, 17, 75, 150) ); + my $layout18_2_2 = Qt::VBoxLayout($LayoutWidget_9, 0, 0, '$layout18_2_2'); + + t02 = Qt::LineEdit($LayoutWidget_9, "t02"); + $layout18_2_2->addWidget(t02); + + Bg12 = Qt::LineEdit($LayoutWidget_9, "Bg12"); + $layout18_2_2->addWidget(Bg12); + + Bg22 = Qt::LineEdit($LayoutWidget_9, "Bg22"); + $layout18_2_2->addWidget(Bg22); + + Data12 = Qt::LineEdit($LayoutWidget_9, "Data12"); + $layout18_2_2->addWidget(Data12); + + Data22 = Qt::LineEdit($LayoutWidget_9, "Data22"); + $layout18_2_2->addWidget(Data22); + $layout27->addWidget(groupHist2); + + groupHist3 = Qt::GroupBox($LayoutWidget_6, "groupHist3"); + groupHist3->setEnabled( 1 ); + groupHist3->setFrameShadow( &Qt::GroupBox::Plain() ); + + my $LayoutWidget_10 = Qt::Widget(groupHist3, '$LayoutWidget_10'); + $LayoutWidget_10->setGeometry( Qt::Rect(8, 17, 75, 150) ); + my $layout18_3 = Qt::VBoxLayout($LayoutWidget_10, 0, 0, '$layout18_3'); + + t03 = Qt::LineEdit($LayoutWidget_10, "t03"); + $layout18_3->addWidget(t03); + + Bg13 = Qt::LineEdit($LayoutWidget_10, "Bg13"); + $layout18_3->addWidget(Bg13); + + Bg23 = Qt::LineEdit($LayoutWidget_10, "Bg23"); + $layout18_3->addWidget(Bg23); + + Data13 = Qt::LineEdit($LayoutWidget_10, "Data13"); + $layout18_3->addWidget(Data13); + + Data23 = Qt::LineEdit($LayoutWidget_10, "Data23"); + $layout18_3->addWidget(Data23); + $layout27->addWidget(groupHist3); + + groupHist4 = Qt::GroupBox($LayoutWidget_6, "groupHist4"); + groupHist4->setEnabled( 1 ); + groupHist4->setFrameShadow( &Qt::GroupBox::Plain() ); + + my $LayoutWidget_11 = Qt::Widget(groupHist4, '$LayoutWidget_11'); + $LayoutWidget_11->setGeometry( Qt::Rect(8, 17, 75, 150) ); + my $layout18_4 = Qt::VBoxLayout($LayoutWidget_11, 0, 0, '$layout18_4'); + + t04 = Qt::LineEdit($LayoutWidget_11, "t04"); + $layout18_4->addWidget(t04); + + Bg14 = Qt::LineEdit($LayoutWidget_11, "Bg14"); + $layout18_4->addWidget(Bg14); + + Bg24 = Qt::LineEdit($LayoutWidget_11, "Bg24"); + $layout18_4->addWidget(Bg24); + + Data14 = Qt::LineEdit($LayoutWidget_11, "Data14"); + $layout18_4->addWidget(Data14); + + Data24 = Qt::LineEdit($LayoutWidget_11, "Data24"); + $layout18_4->addWidget(Data24); + $layout27->addWidget(groupHist4); + + ShowT0 = Qt::PushButton(TabPage_3, "ShowT0"); + ShowT0->setGeometry( Qt::Rect(435, 190, 111, 31) ); + ShowT0->setAutoDefault( 0 ); + ShowT0->setDefault( 1 ); + musrfit_tabs->insertTab( TabPage_3, "" ); + fileNewAction= Qt::Action(this, "fileNewAction"); fileNewAction->setIconSet( Qt::IconSet($image1) ); fileOpenAction= Qt::Action(this, "fileOpenAction"); @@ -1009,7 +1222,8 @@ sub NEW Qt::Object::connect(fileChangeDirAction, SIGNAL "activated()", this, SLOT "fileChangeDir()"); Qt::Object::connect(musrfit_tabs, SIGNAL "selected(const QString&)", this, SLOT "TabChanged()"); Qt::Object::connect(go, SIGNAL "clicked()", this, SLOT "GoFit()"); - Qt::Object::connect(InitParamTable, SIGNAL "valueChanged(int,int)", this, SLOT "UpdateMSRFileInitTable()"); + Qt::Object::connect(TableUpdate, SIGNAL "clicked()", this, SLOT "CallMSRCreate()"); + Qt::Object::connect(ShowT0, SIGNAL "clicked()", this, SLOT "ShowMuSRT0()"); setTabOrder(musrfit_tabs, TITLE); setTabOrder(TITLE, FILENAME); @@ -1059,6 +1273,7 @@ sub languageChange { setCaption(trUtf8("MuSRFit GUI") ); setIconText(trUtf8("MuSRFitGUI") ); + textLabel2_2->setText( trUtf8("Bg1") ); TITLELabel->setText( trUtf8("Enter the label (defaul is run title from the first run)") ); TITLE->setText( trUtf8("","Title line for MSR file (optional)") ); Qt::ToolTip::add(TITLE, trUtf8("Title line for MSR file (optional)")); @@ -1184,17 +1399,49 @@ sub languageChange InitParamTable->horizontalHeader()->setLabel( 1, trUtf8("Error") ); InitParamTable->horizontalHeader()->setLabel( 2, trUtf8("Min") ); InitParamTable->horizontalHeader()->setLabel( 3, trUtf8("Max") ); + TableUpdate->setText( trUtf8("Update") ); musrfit_tabs->changeTab( InitializationPage, trUtf8("Initialization") ); musrfit_tabs->changeTab( FittingPage, trUtf8("MSR File") ); + ErrorCalc->setTitle( trUtf8("Error Calculation") ); + HESSE->setText( trUtf8("Hesse") ); + MINOS->setText( trUtf8("Minos") ); Minimization->setTitle( trUtf8("Minimization") ); MINIMIZE->setText( trUtf8("Minimize") ); MIGRAD->setText( trUtf8("Migrad") ); SIMPLEX->setText( trUtf8("Simplex") ); - ErrorCalc->setTitle( trUtf8("Error Calculation") ); - HESSE->setText( trUtf8("Hesse") ); - MINOS->setText( trUtf8("Minos") ); go->setText( trUtf8("Fit") ); musrfit_tabs->changeTab( TabPage, trUtf8("Fitting") ); + FPlot->clear(); + FPlot->insertItem( trUtf8("power") ); + FPlot->insertItem( trUtf8("real") ); + FPlot->insertItem( trUtf8("imag") ); + FPlot->insertItem( trUtf8("real_and_imag") ); + FPlot->insertItem( trUtf8("phase") ); + FApodization->clear(); + FApodization->insertItem( trUtf8("NONE") ); + FApodization->insertItem( trUtf8("WEAK") ); + FApodization->insertItem( trUtf8("MEDIUM") ); + FApodization->insertItem( trUtf8("STRONG") ); + FApodizationLabel->setText( trUtf8("Apodization") ); + FUnits->clear(); + FUnits->insertItem( trUtf8("MHz") ); + FUnits->insertItem( trUtf8("Gauss") ); + FUnits->insertItem( trUtf8("Mc/s") ); + FPlotLabel->setText( trUtf8("Plot") ); + FUnitsLabel->setText( trUtf8("Units") ); + musrfit_tabs->changeTab( TabPage_2, trUtf8("Fourier") ); + groupHist0->setTitle( undef ); + textLabel2->setText( trUtf8("t0") ); + textLabel2_2_2_3->setText( trUtf8("Bg1") ); + textLabel2_2_2->setText( trUtf8("Bg2") ); + textLabel2_2_2_2->setText( trUtf8("Data 1") ); + textLabel2_2_2_2_2->setText( trUtf8("Data 2") ); + groupHist1->setTitle( trUtf8("Hist1") ); + groupHist2->setTitle( trUtf8("Hist2") ); + groupHist3->setTitle( trUtf8("Hist3") ); + groupHist4->setTitle( trUtf8("Hist4") ); + ShowT0->setText( trUtf8("Show") ); + musrfit_tabs->changeTab( TabPage_3, trUtf8("t0/Bg Bins") ); fileNewAction->setText( trUtf8("&New") ); fileNewAction->setMenuText( trUtf8("&New") ); fileNewAction->setAccel( Qt::KeySequence( trUtf8("Ctrl+N") ) ); @@ -1395,6 +1642,7 @@ sub CreateAllInput # TODO: Need to deliver shared parameters also my %All=(); +# From RUNS Tab $All{"TITLE"}= TITLE->text; $All{"FILENAME"}= FILENAME->text; $All{"RunNumbers"} = RunNumbers->text; @@ -1409,6 +1657,11 @@ sub CreateAllInput my @RUNS = split( /,/, $All{"RunNumbers"} ); my @Hists = split(/,/, $All{"LRBF"} ); +# From Fourier Tab + $All{"FUNITS"}= FUnits->currentText; + $All{"FAPODIZATION"}= FApodization->currentText; + $All{"FPLOT"}= FPlot->currentText; + # Construct fittypes that can be understood by MSR.pm my %FTs=(0,"Exponential", 1,"Gaussian", @@ -1488,7 +1741,9 @@ sub CreateAllInput foreach my $Param (@Params) { my $Param_ORG = $Param; # TODO: I need to take care of single hist fits here - if ( $All{"FitAsyType"} eq "SingleHist" ) { $Param=$Param.$Hists[0]; } + if ( $All{"FitAsyType"} eq "SingleHist" ) { + $Param=$Param.$Hists[0]; + } if ( $#FitTypes != 0 && ( $Param ne "Alpha" && $Param ne "N0" && $Param ne "NBg" ) ){ $Param = join( "", $Param, "_", $Component); } @@ -1599,6 +1854,32 @@ sub UpdateMSRFileInitTable } return; +} + +sub ActivateT0Hists +{ + + my %All=CreateAllInput(); + my @Hists = split(/,/, $All{"LRBF"} ); + my $HistBox = ""; + for (my $iHist=1; $iHist<=4; $iHist++) { + $HistBox="groupHist$iHist"; + my $HistBoxHandle = child($HistBox); + if ($iHist<=$#Hists+1) { +# Activate this histogram box + $HistBoxHandle->setHidden(0); + $HistBoxHandle->setEnabled(1); + $HistBoxHandle->setTitle("Hist # $Hists[$iHist-1]"); + } else { +# Deactivate this histogram box + $HistBoxHandle->setHidden(1); + $HistBoxHandle->setEnabled(0); + } + } + +# TODO: Set default values + + } sub ActivateShComp @@ -1850,6 +2131,8 @@ sub TabChanged ActivateShComp(); InitializeTab(); UpdateMSRFileInitTable(); +# And also setup T0 and Bg bins + ActivateT0Hists(); } @@ -1879,9 +2162,11 @@ sub GoFit } -sub UpdeateTable +sub ShowMuSRT0 { - print "MuSRFitform->UpdeateTable(): Not implemented yet.\n"; + +# Create MSR file and then run musrt0 + } 1; diff --git a/src/external/MuSRFitGUI/MuSRFit.ui b/src/external/MuSRFitGUI/MuSRFit.ui index ba06c50d..c76458af 100755 --- a/src/external/MuSRFitGUI/MuSRFit.ui +++ b/src/external/MuSRFitGUI/MuSRFit.ui @@ -35,6 +35,22 @@ MuSRFitGUI + + + textLabel2_2 + + + + 13 + 78 + 55 + 19 + + + + Bg1 + + musrfit_tabs @@ -1446,9 +1462,9 @@ 5 - 0 + 5 545 - 560 + 325 @@ -1505,6 +1521,22 @@ SpreadSheet + + + TableUpdate + + + + 435 + 335 + 115 + 28 + + + + Update + + @@ -1537,6 +1569,69 @@ Fitting + + + ErrorCalc + + + + 223 + 11 + 211 + 125 + + + + Error Calculation + + + AlignTop + + + true + + + true + + + 0 + + + + HESSE + + + + 19 + 30 + 69 + 22 + + + + Hesse + + + true + + + + + MINOS + + + + 19 + 59 + 69 + 22 + + + + Minos + + + Minimization @@ -1613,68 +1708,21 @@ - + - ErrorCalc + FitTextOutput - 223 - 11 - 211 - 125 + 5 + 140 + 545 + 225 - - Error Calculation - - - AlignTop - - + true - - true - - - 0 - - - - HESSE - - - - 19 - 30 - 69 - 22 - - - - Hesse - - - true - - - - - MINOS - - - - 19 - 59 - 69 - 22 - - - - Minos - - @@ -1698,19 +1746,535 @@ true - + + + + TabPage + + + Fourier + + - FitTextOutput + layout11 - 5 - 140 - 545 - 225 + 8 + 18 + 225 + 92 - + + + unnamed + + + + + power + + + + + real + + + + + imag + + + + + real_and_imag + + + + + phase + + + + FPlot + + + + 5 + 5 + 0 + 0 + + + + + + + STRONG + + + + + MEDIUM + + + + + WEAK + + + + + NONE + + + + FApodization + + + + 5 + 5 + 0 + 0 + + + + + + FApodizationLabel + + + Apodization + + + + + + MHz + + + + + Gauss + + + + + Mc/s + + + + FUnits + + + + 5 + 5 + 0 + 0 + + + + + + FPlotLabel + + + Plot + + + + + FUnitsLabel + + + Units + + + + + + + + TabPage + + + t0/Bg Bins + + + + layout27 + + + + 7 + 5 + 540 + 180 + + + + + unnamed + + + 0 + + + + groupHist0 + + + + 5 + 5 + 0 + 0 + + + + + 0 + 0 + + + + + + + + layout16_2 + + + + 5 + 28 + 100 + 135 + + + + + unnamed_2 + + + 0 + + + + textLabel2 + + + t0 + + + + + textLabel2_2_2_3 + + + Bg1 + + + + + textLabel2_2_2 + + + Bg2 + + + + + textLabel2_2_2_2 + + + Data 1 + + + + + textLabel2_2_2_2_2 + + + Data 2 + + + + + + + + groupHist1 + + + Plain + + + Hist1 + + + + layout18 + + + + 8 + 17 + 75 + 150 + + + + + unnamed + + + 0 + + + 0 + + + + t01 + + + + + Bg11 + + + + + Bg21 + + + + + Data11 + + + + + Data21 + + + + + + + + groupHist2 + + + true + + + Plain + + + Hist2 + + + + layout18_2 + + + + 8 + 17 + 75 + 150 + + + + + unnamed_2 + + + 0 + + + 0 + + + + t02 + + + + + Bg12 + + + + + Bg22 + + + + + Data12 + + + + + Data22 + + + + + + + + groupHist3 + + + true + + + Plain + + + Hist3 + + + + layout18_3 + + + + 8 + 17 + 75 + 150 + + + + + unnamed_2 + + + 0 + + + 0 + + + + t03 + + + + + Bg13 + + + + + Bg23 + + + + + Data13 + + + + + Data23 + + + + + + + + groupHist4 + + + true + + + Plain + + + Hist4 + + + + layout18_4 + + + + 8 + 17 + 75 + 150 + + + + + unnamed_2 + + + 0 + + + 0 + + + + t04 + + + + + Bg14 + + + + + Bg24 + + + + + Data14 + + + + + Data24 + + + + + + + + + + ShowT0 + + + + 435 + 190 + 111 + 31 + + + + Show + + + false + + true @@ -2245,10 +2809,16 @@ GoFit() - InitParamTable - valueChanged(int,int) + TableUpdate + clicked() MuSRFitform - UpdateMSRFileInitTable() + CallMSRCreate() + + + ShowT0 + clicked() + MuSRFitform + ShowMuSRT0() @@ -2304,11 +2874,12 @@ CreateAllInput() CallMSRCreate() UpdateMSRFileInitTable() + ActivateT0Hists() ActivateShComp() InitializeTab() TabChanged() GoFit() - UpdeateTable() + ShowMuSRT0() diff --git a/src/external/MuSRFitGUI/MuSRFit.ui.h b/src/external/MuSRFitGUI/MuSRFit.ui.h index d35d095e..f215c3f1 100755 --- a/src/external/MuSRFitGUI/MuSRFit.ui.h +++ b/src/external/MuSRFitGUI/MuSRFit.ui.h @@ -161,6 +161,7 @@ void MuSRFitform::CreateAllInput() { # TODO: Need to deliver shared parameters also my %All=(); +# From RUNS Tab $All{"TITLE"}= TITLE->text; $All{"FILENAME"}= FILENAME->text; $All{"RunNumbers"} = RunNumbers->text; @@ -175,6 +176,11 @@ void MuSRFitform::CreateAllInput() my @RUNS = split( /,/, $All{"RunNumbers"} ); my @Hists = split(/,/, $All{"LRBF"} ); +# From Fourier Tab + $All{"FUNITS"}= FUnits->currentText; + $All{"FAPODIZATION"}= FApodization->currentText; + $All{"FPLOT"}= FPlot->currentText; + # Construct fittypes that can be understood by MSR.pm my %FTs=(0,"Exponential", 1,"Gaussian", @@ -254,7 +260,9 @@ void MuSRFitform::CreateAllInput() foreach my $Param (@Params) { my $Param_ORG = $Param; # TODO: I need to take care of single hist fits here - if ( $All{"FitAsyType"} eq "SingleHist" ) { $Param=$Param.$Hists[0]; } + if ( $All{"FitAsyType"} eq "SingleHist" ) { + $Param=$Param.$Hists[0]; + } if ( $#FitTypes != 0 && ( $Param ne "Alpha" && $Param ne "N0" && $Param ne "NBg" ) ){ $Param = join( "", $Param, "_", $Component); } @@ -362,6 +370,29 @@ void MuSRFitform::UpdateMSRFileInitTable() return; } +void MuSRFitform::ActivateT0Hists() +{ + my %All=CreateAllInput(); + my @Hists = split(/,/, $All{"LRBF"} ); + my $HistBox = ""; + for (my $iHist=1; $iHist<=4; $iHist++) { + $HistBox="groupHist$iHist"; + my $HistBoxHandle = child($HistBox); + if ($iHist<=$#Hists+1) { +# Activate this histogram box + $HistBoxHandle->setHidden(0); + $HistBoxHandle->setEnabled(1); + $HistBoxHandle->setTitle("Hist # $Hists[$iHist-1]"); + } else { +# Deactivate this histogram box + $HistBoxHandle->setHidden(1); + $HistBoxHandle->setEnabled(0); + } + } + +# TODO: Set default values + +} void MuSRFitform::ActivateShComp() { my %All=CreateAllInput(); @@ -606,6 +637,8 @@ void MuSRFitform::TabChanged() ActivateShComp(); InitializeTab(); UpdateMSRFileInitTable(); +# And also setup T0 and Bg bins + ActivateT0Hists(); } @@ -633,11 +666,7 @@ void MuSRFitform::GoFit() return; } - - -void MuSRFitform::UpdeateTable() +void MuSRFitform::ShowMuSRT0() { - +# Create MSR file and then run musrt0 } - -