diff --git a/src/external/MuSRFitGUI/MSR.pm b/src/external/MuSRFitGUI/MSR.pm index 9ed6bfb0..8ba0019a 100755 --- a/src/external/MuSRFitGUI/MSR.pm +++ b/src/external/MuSRFitGUI/MSR.pm @@ -1235,4 +1235,144 @@ sub T0BgData { } +######################## +# PrepParamTable +# Function return a Hash with a table of parameters for the fit +# input should be +# %All +######################## +sub PrepParamTable { +# Take this information as input arguments +# "Smart" default value of the fit parameters. + my %Defaults = ( + "Asy", "0.15", "dAsy", "0.01", + "Asy_min", "0", "Asy_max", "0", + "Alpha", "1.0", "dAlpha", "0.01", + "Alpha_min", "0", "Alpha_max", "0", + "N0", "300.0", "dN0", "0.01", + "N0_min", "0", "N0_max", "0", + "NBg", "30.0", "dNBg", "0.01", + "NBg_min", "0", "NBg_max", "0", + "Lam", "1.0", "dLam", "0.01", + "Lam_min", "0", "Lam_max", "0", + "Gam", "1.0", "dGam", "0.01", + "Gam_min", "0", "Gam_max", "0", + "Bet", "0.5", "dBet", "0.01", + "Bet_min", "0", "Bet_max", "0", + "Two", "2.0", "dTwo", "0.0", + "Two_min", "0", "Two_max", "0", + "Del", "0.1", "dDel", "0.01", + "Del_min", "0", "Del_max", "0", + "Sgm", "0.1", "dSgm", "0.01", + "Sgm_min", "0", "Sgm_max", "0", + "Aa", "0.1", "dAa", "0.01", + "Aa_min", "0", "Aa_max", "0", + "q", "0.1", "dq", "0.01", + "q_min", "0", "q_max", "0", + "Bg", "0.036", "dBg", "0.01", + "Bg_min", "0", "Bg_max", "0", + "bgrlx", "0.", "dbgrlx", "0.0", + "bgrlx_min", "0", "bgrlx_max", "0", + "Frq", "1.0", "dFrq", "1.", + "Frq_min", "0", "Frq_max", "0", + "Field", "100.0", "dField", "1.", + "Field_min", "0", "Field_max", "0", + "Energy", "14.1", "dEnergy", "0.", + "Energy_min", "0", "Energy_max", "0", + "DeadLayer", "10.", "dDeadLayer", "0.1", + "DeadLayer_min", "0", "DeadLayer_max", "0", + "Lambda", "128.1", "dLambda", "0.1", + "Lambda_min", "0", "Lambda_max", "0", + "Phi", "1.", "dPhi", "0.01", + "Phi_min", "0", "Phi_max", "0" + ); + + my $erradd = "d"; + my $minadd = "_min"; + my $maxadd = "_max"; + +# First assume nothing is shared + my $Shared = 0; + +# Reset output Hash + %ParTable = (); + + my %All = %{$_[0]}; + my @RUNS = split( /,/, $All{"RunNumbers"} ); + + my @FitTypes =(); + foreach my $FitType ($All{"FitType1"}, $All{"FitType2"}, $All{"FitType3"}) { + if ( $FitType ne "None" ) { push( @FitTypes, $FitType ); } + } +# Get theory block to determine the size of the table + my ($Full_T_Block,$Paramcomp_ref)= MSR::CreateTheory(@FitTypes); +# For now the line below does not work. Why? +# my $Paramcomp_ref=$All{"Paramcomp_ref"}; + my @Paramcomp = @$Paramcomp_ref; + my $Full_T_Block= $All{"Full_T_Block"}; + my $PCount =0; + my $iRun =0; + my $value =0; + my $error = 0; + my $minvalue = 0; + my $maxvalue = 0; + + foreach my $RUN (@RUNS) { + $iRun++; + my $Component=1; + foreach my $FitType (@FitTypes) { + my $Parameters=$Paramcomp[$Component-1]; + my @Params = split( /\s+/, $Parameters ); + + if ( $Component == 1 && $All{"FitAsyType"} eq "Asymmetry" ) { + unshift( @Params, "Alpha" ); + } + elsif ( $Component == 1 && $All{"FitAsyType"} eq "SingleHist" ) { + unshift( @Params, ( "N0", "NBg" ) ); + } + + +# This is the counter for parameters of this component + my $NP=1; + $Shared = 0; +# Change state/label of parameters + foreach my $Param (@Params) { + my $Param_ORG = $Param; + if ( $#FitTypes != 0 && ( $Param ne "Alpha" && $Param ne "N0" && $Param ne "NBg" ) ){ + $Param = join( "", $Param, "_", "$Component" ); + } + + $Shared = $All{"Sh_$Param"}; +# It there are multiple runs index the parameters accordingly + $Param=$Param."_".$iRun; +# Check if this parameter has been initialized befor. If not take from defaults +# print "$Param=".$All{"$Param"}."\n"; + $value = $All{"$Param"}; + if ( $value ne "" ) { + $error = $All{"$erradd$Param"}; + $minvalue = $All{"$Param$minadd"}; + $maxvalue = $All{"$Param$maxadd"}; + } else { +# I need this although it is already in the MSR.pm module, just for this table +# We can remove it from the MSR module later... +# Or keep in the MSR as function ?? + $value = $Defaults{$Param_ORG}; + $error = $Defaults{ join( "", $erradd, $Param_ORG ) }; + $minvalue = $Defaults{ join("", $Param_ORG, $minadd ) }; + $maxvalue = $Defaults{ join("", $Param_ORG, $maxadd ) }; + } + $values=join(",",$Param,$value,$error,$minvalue,$maxvalue); + $ParTable{$PCount}=$values; + + if ( $Shared!=1 || $iRun == 1 ) { + $PCount++; + } + $NP++; + } + $Component++; + } + } + return %ParTable; +} + 1; diff --git a/src/external/MuSRFitGUI/MuSRFit.pl b/src/external/MuSRFitGUI/MuSRFit.pl index f2449ccb..a721fd5c 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: Mon Aug 31 17:50:38 2009 +# Created: Tue Sep 1 10:19:23 2009 # by: The PerlQt User Interface Compiler (puic) # # WARNING! All changes made in this file will be lost! @@ -556,17 +556,18 @@ sub NEW setName("MuSRFitform" ); } setSizePolicy(Qt::SizePolicy(3, 3, 1, 1, this->sizePolicy()->hasHeightForWidth()) ); - setMinimumSize(Qt::Size(21, 227) ); + setMinimumSize(Qt::Size(582, 505) ); setIcon($image0 ); setCentralWidget(Qt::Widget(this, "qt_central_widget")); + my $MuSRFitformLayout = Qt::GridLayout(centralWidget(), 1, 1, 11, 6, '$MuSRFitformLayout'); textLabel2_2 = Qt::Label(centralWidget(), "textLabel2_2"); - textLabel2_2->setGeometry( Qt::Rect(13, 78, 55, 19) ); + + $MuSRFitformLayout->addWidget(textLabel2_2, 0, 0); musrfit_tabs = Qt::TabWidget(centralWidget(), "musrfit_tabs"); musrfit_tabs->setEnabled( 1 ); - musrfit_tabs->setGeometry( Qt::Rect(5, 0, 560, 400) ); musrfit_tabs->setSizePolicy( Qt::SizePolicy(7, 7, 1, 1, musrfit_tabs->sizePolicy()->hasHeightForWidth()) ); musrfit_tabs->setMinimumSize( Qt::Size(560, 400) ); musrfit_tabs->setMaximumSize( Qt::Size(95, 32767) ); @@ -1154,6 +1155,8 @@ sub NEW ShowT0->setDefault( 1 ); musrfit_tabs->insertTab( TabPage_3, "" ); + $MuSRFitformLayout->addWidget(musrfit_tabs, 0, 0); + fileNewAction= Qt::Action(this, "fileNewAction"); fileNewAction->setIconSet( Qt::IconSet($image1) ); fileOpenAction= Qt::Action(this, "fileOpenAction"); @@ -1212,7 +1215,6 @@ sub NEW MenuBar= Qt::MenuBar( this, "MenuBar"); MenuBar->setEnabled( 1 ); - MenuBar->setGeometry( Qt::Rect(0, 0, 574, 27) ); fileMenu = Qt::PopupMenu( this ); fileOpenAction->addTo( fileMenu ); @@ -1222,7 +1224,7 @@ sub NEW filePrintAction->addTo( fileMenu ); fileMenu->insertSeparator(); fileExitAction->addTo( fileMenu ); - MenuBar->insertItem( "", fileMenu, 3 ); + MenuBar->insertItem( "", fileMenu, 2 ); editMenu = Qt::PopupMenu( this ); editUndoAction->addTo( editMenu ); @@ -1231,24 +1233,24 @@ sub NEW editCutAction->addTo( editMenu ); editCopyAction->addTo( editMenu ); editPasteAction->addTo( editMenu ); - MenuBar->insertItem( "", editMenu, 4 ); + MenuBar->insertItem( "", editMenu, 3 ); Options = Qt::PopupMenu( this ); FileExistCheck->addTo( Options ); MaualFile->addTo( Options ); - MenuBar->insertItem( "", Options, 5 ); + MenuBar->insertItem( "", Options, 4 ); helpMenu = Qt::PopupMenu( this ); helpContentsAction->addTo( helpMenu ); helpIndexAction->addTo( helpMenu ); helpMenu->insertSeparator(); helpAboutAction->addTo( helpMenu ); - MenuBar->insertItem( "", helpMenu, 6 ); + MenuBar->insertItem( "", helpMenu, 5 ); - MenuBar->insertSeparator( 7 ); + MenuBar->insertSeparator( 6 ); languageChange(); - my $resize = Qt::Size(574, 485); + my $resize = Qt::Size(582, 505); $resize = $resize->expandedTo(minimumSizeHint()); resize( $resize ); clearWState( &Qt::WState_Polished ); @@ -1554,10 +1556,10 @@ sub languageChange Action_2->setText( trUtf8("Unnamed") ); Action_3->setText( trUtf8("Unnamed") ); toolBar->setLabel( trUtf8("Tools") ); - MenuBar->findItem( 3 )->setText( trUtf8("&File") ); - MenuBar->findItem( 4 )->setText( trUtf8("&Edit") ); - MenuBar->findItem( 5 )->setText( trUtf8("Options") ); - MenuBar->findItem( 6 )->setText( trUtf8("&Help") ); + MenuBar->findItem( 2 )->setText( trUtf8("&File") ); + MenuBar->findItem( 3 )->setText( trUtf8("&Edit") ); + MenuBar->findItem( 4 )->setText( trUtf8("Options") ); + MenuBar->findItem( 5 )->setText( trUtf8("&Help") ); } @@ -2049,74 +2051,8 @@ sub ActivateShComp sub InitializeTab { -# "Smart" default value of the fit parameters. - my %Defaults = ( - "Asy", "0.15", "dAsy", "0.01", - "Asy_min", "0", "Asy_max", "0", - "Alpha", "1.0", "dAlpha", "0.01", - "Alpha_min", "0", "Alpha_max", "0", - "N0", "300.0", "dN0", "0.01", - "N0_min", "0", "N0_max", "0", - "NBg", "30.0", "dNBg", "0.01", - "NBg_min", "0", "NBg_max", "0", - "Lam", "1.0", "dLam", "0.01", - "Lam_min", "0", "Lam_max", "0", - "Gam", "1.0", "dGam", "0.01", - "Gam_min", "0", "Gam_max", "0", - "Bet", "0.5", "dBet", "0.01", - "Bet_min", "0", "Bet_max", "0", - "Two", "2.0", "dTwo", "0.0", - "Two_min", "0", "Two_max", "0", - "Del", "0.1", "dDel", "0.01", - "Del_min", "0", "Del_max", "0", - "Sgm", "0.1", "dSgm", "0.01", - "Sgm_min", "0", "Sgm_max", "0", - "Aa", "0.1", "dAa", "0.01", - "Aa_min", "0", "Aa_max", "0", - "q", "0.1", "dq", "0.01", - "q_min", "0", "q_max", "0", - "Bg", "0.036", "dBg", "0.01", - "Bg_min", "0", "Bg_max", "0", - "bgrlx", "0.", "dbgrlx", "0.0", - "bgrlx_min", "0", "bgrlx_max", "0", - "Frq", "1.0", "dFrq", "1.", - "Frq_min", "0", "Frq_max", "0", - "Field", "100.0", "dField", "1.", - "Field_min", "0", "Field_max", "0", - "Energy", "14.1", "dEnergy", "0.", - "Energy_min", "0", "Energy_max", "0", - "DeadLayer", "10.", "dDeadLayer", "0.1", - "DeadLayer_min", "0", "DeadLayer_max", "0", - "Lambda", "128.1", "dLambda", "0.1", - "Lambda_min", "0", "Lambda_max", "0", - "Phi", "1.", "dPhi", "0.01", - "Phi_min", "0", "Phi_max", "0" - ); - - my $erradd = "d"; - my $minadd = "_min"; - my $maxadd = "_max"; - -# First assume nothing is shared - my $Shared = 0; - - my %All=CreateAllInput(); - my @RUNS = split( /,/, $All{"RunNumbers"} ); - - my @FitTypes =(); - foreach my $FitType ($All{"FitType1"}, $All{"FitType2"}, $All{"FitType3"}) { - if ( $FitType ne "None" ) { push( @FitTypes, $FitType ); } - } - + my %All=CreateAllInput(); InitParamTable->setLeftMargin(100); - -# Get theory block to determine the size of the table - my ($Full_T_Block,$Paramcomp_ref)= MSR::CreateTheory(@FitTypes); -# For now the line below does not work. Why? -# my $Paramcomp_ref=$All{"Paramcomp_ref"}; - my @Paramcomp = @$Paramcomp_ref; - my $Full_T_Block= $All{"Full_T_Block"}; - my $NRows = InitParamTable->numRows(); # Remove any rows in table @@ -2126,77 +2062,26 @@ sub InitializeTab InitParamTable->hideRow($i); } } - - my $PCount =0; - my $iRun =0; - my $value =0; - my $error = 0; - my $minvalue = 0; - my $maxvalue = 0; - foreach my $RUN (@RUNS) { - $iRun++; - my $Component=1; - foreach my $FitType (@FitTypes) { - my $Parameters=$Paramcomp[$Component-1]; - my @Params = split( /\s+/, $Parameters ); - - if ( $Component == 1 && $All{"FitAsyType"} eq "Asymmetry" ) { - unshift( @Params, "Alpha" ); - } - elsif ( $Component == 1 && $All{"FitAsyType"} eq "SingleHist" ) { - unshift( @Params, ( "N0", "NBg" ) ); - } - - -# This is the counter for parameters of this component - my $NP=1; - $Shared = 0; -# Change state/label of parameters - foreach my $Param (@Params) { - my $Param_ORG = $Param; - if ( $#FitTypes != 0 && ( $Param ne "Alpha" && $Param ne "N0" && $Param ne "NBg" ) ){ - $Param = join( "", $Param, "_", "$Component" ); - } - - $Shared = $All{"Sh_$Param"}; -# It there are multiple runs index the parameters accordingly - $Param=$Param."_".$iRun; -# Check if this parameter has been initialized befor. If not take from defaults -# print "$Param=".$All{"$Param"}."\n"; - $value = $All{"$Param"}; - if ( $value ne "" ) { - $error = $All{"$erradd$Param"}; - $minvalue = $All{"$Param$minadd"}; - $maxvalue = $All{"$Param$maxadd"}; - } else { -# I need this although it is already in the MSR.pm module, just for this table -# We can remove it from the MSR module later... - $value = $Defaults{$Param_ORG}; - $error = $Defaults{ join( "", $erradd, $Param_ORG ) }; - $minvalue = $Defaults{ join("", $Param_ORG, $minadd ) }; - $maxvalue = $Defaults{ join("", $Param_ORG, $maxadd ) }; - } - - if ( $Shared!=1 || $iRun == 1 ) { - $PCount++; - -# Add row in table, set its label and fill the values of parametr - if ($PCount>$NRows) { - InitParamTable->setNumRows($PCount); - } - InitParamTable->verticalHeader()->setLabel( $PCount-1,$Param); - InitParamTable->showRow($PCount-1); - InitParamTable->setText($PCount-1,0,$value); - InitParamTable->setText($PCount-1,1,$error); - InitParamTable->setText($PCount-1,2,$minvalue); - InitParamTable->setText($PCount-1,3,$maxvalue); - } - $NP++; - }#Loop on parameters - $Component++; - }# Loop on components - }# Loop on runs + my %PTable=MSR::PrepParamTable(\%All); + +# Setup the table with the right size + my $NParam=scalar keys( %PTable ); + print "Size of P:".$NParam."\n"; + if ($NParam>$NRows) { + InitParamTable->setNumRows($NParam); + } + +# Fill the table with labels and values of parametr + for (my $PCount=0;$PCount<$NParam;$PCount++) { + my ($Param,$value,$error,$minvalue,$maxvalue) = split(/,/,$PTable{$PCount}); + InitParamTable->verticalHeader()->setLabel( $PCount,$Param); + InitParamTable->showRow($PCount); + InitParamTable->setText($PCount,0,$value); + InitParamTable->setText($PCount,1,$error); + InitParamTable->setText($PCount,2,$minvalue); + InitParamTable->setText($PCount,3,$maxvalue); + } } diff --git a/src/external/MuSRFitGUI/MuSRFit.ui b/src/external/MuSRFitGUI/MuSRFit.ui index 187bc61c..62b84c49 100755 --- a/src/external/MuSRFitGUI/MuSRFit.ui +++ b/src/external/MuSRFitGUI/MuSRFit.ui @@ -8,8 +8,8 @@ 0 0 - 574 - 485 + 582 + 505 @@ -22,8 +22,8 @@ - 21 - 227 + 582 + 505 @@ -35,2113 +35,840 @@ MuSRFitGUI - + - textLabel2_2 + unnamed - - - 13 - 78 - 55 - 19 - - - - Bg1 - - - - - musrfit_tabs - - - true - - - - 5 - 0 - 560 - 400 - - - - - 7 - 7 - 1 - 1 - - - - - 560 - 400 - - - - - 95 - 32767 - - - + - RUNSPage + textLabel2_2 + + + Bg1 - - RUNS - - - - layout24 - - - - 5 - 1 - 545 - 360 - - - - - unnamed - - - - TITLELabel - - - - 5 - 5 - 0 - 0 - - - - Enter the label (defaul is run title from the first run) - - - TITLE - - - - - TITLE - - - - 5 - 0 - 1 - 1 - - - - - Title line for MSR file (optional) - - - Title line for MSR file (optional) - - - - - layout17 - - - - unnamed - - - - FILENAMELabel - - - Enter [name] for output [name].msr file (optional) - - - FILENAME - - - - - FILENAME - - - - 5 - 0 - 0 - 0 - - - - - - - - layout16 - - - - unnamed - - - - RUNSLabel - - - Input the RUN numbers separated with commas - - - RunNumbers - - - - - RunNumbers - - - - 5 - 0 - 0 - 0 - - - - - - - - layout18 - - - - unnamed - - - - BeamLineLabel - - - On beam line - - - - - - LEM - - - - - GPS - - - - - Dolly - - - - - LTF - - - - BeamLine - - - - - YEARLabel - - - Year - - - - - - 2009 - - - - - 2008 - - - - - 2007 - - - - - 2006 - - - - - 2005 - - - - - 2004 - - - - YEAR - - - - - - - ComponentsLabel - - - Chose type of fitting function - - - - - layout19 - - - - unnamed - - - - Comp1Label - - - First Component - - - FitType1 - - - - - Comp3Label - - - Third Component - - - FitType1_2_2 - - - - - - Exponential - - - - - Gaussian - - - - - Stretch Exp. - - - - - Exponential Cos - - - - - Gaussian Cos - - - - - Stretch Cos - - - - - Lorentzian Dynamic KT - - - - - Gaussian Dynamic KT - - - - - Background - - - - - Lorentzian Kubo-Toyabe LF x Exp - - - - - Gaussian Kubo-Toyabe LF x Exp - - - - - Lorentzian Kubo-Toyabe LF x Str Exp - - - - - Gaussian Kubo-Toyabe LF x Str Exp - - - - - Meissner State Model - - - - - None - - - - FitType2 - - - - 5 - 0 - 0 - 0 - - - - 14 - - - - - - Exponential - - - - - Gaussian - - - - - Stretch Exp. - - - - - Exponential Cos - - - - - Gaussian Cos - - - - - Stretch Cos - - - - - Lorentzian Dynamic KT - - - - - Gaussian Dynamic KT - - - - - Background - - - - - Lorentzian Kubo-Toyabe LF x Exp - - - - - Gaussian Kubo-Toyabe LF x Exp - - - - - Lorentzian Kubo-Toyabe LF x Str Exp - - - - - Gaussian Kubo-Toyabe LF x Str Exp - - - - - Meissner State Model - - - - - None - - - - FitType1 - - - - 5 - 0 - 0 - 0 - - - - 20 - - - false - - - false - - - - - - Exponential - - - - - Gaussian - - - - - Stretch Exp. - - - - - Exponential Cos - - - - - Gaussian Cos - - - - - Stretch Cos - - - - - Lorentzian Dynamic KT - - - - - Gaussian Dynamic KT - - - - - Background - - - - - Lorentzian Kubo-Toyabe LF x Exp - - - - - Gaussian Kubo-Toyabe LF x Exp - - - - - Lorentzian Kubo-Toyabe LF x Str Exp - - - - - Gaussian Kubo-Toyabe LF x Str Exp - - - - - Meissner State Model - - - - - None - - - - FitType3 - - - - 5 - 0 - 0 - 0 - - - - 14 - - - - - Comp2Label - - - Second Component - - - FitType1_2 - - - - - - - layout20 - - - - unnamed - - - - BINS - - - - 5 - 0 - 0 - 0 - - - - 100 - - - - - Tfs - - - - 5 - 0 - 0 - 0 - - - - 8 - - - - - BINSLabel - - - Binning Factor - - - BINS - - - - - Tis - - - - 5 - 0 - 0 - 0 - - - - 0 - - - - - TfsLabel - - - Final Time - - - Tfs - - - - - TisLabel - - - Initial Time - - - Tis - - - - - - - layout23 - - - - unnamed - - - - FitAsyTypeLabel - - - Fit type - - - - - - Asymmetry - - - - - SingleHist - - - - FitAsyType - - - - - LRBFLabel - - - Histograms list - - - - - LRBF - - - - 5 - 0 - 0 - 0 - - - - 1,3 - - - - - - - + - SharingPahe + musrfit_tabs - - Sharing - - + + true + + + + 7 + 7 + 1 + 1 + + + + + 560 + 400 + + + + + 95 + 32767 + + + - buttonGroupSharing + RUNSPage - - - 0 - 0 - 550 - 400 - - - - - 7 - 7 - 0 - 0 - - - - Shared Parameters - - - AlignLeft - - - false - - + + RUNS + + - SharingComp1 - - - false + layout24 - 31 - 25 - 162 - 335 + 5 + 1 + 545 + 360 - - - 5 - 3 - 0 - 0 - - - - 1st Component - - - AlignLeft - - + - Comp1ShLabel + unnamed - - - 2 - 30 - 185 - 20 - - - - - 255 - 255 - 127 - - - - FitType1 - - - - - layout14 - - - - 40 - 60 - 81 - 266 - - - + - unnamed + TITLELabel - - 0 + + + 5 + 5 + 0 + 0 + - - 0 + + Enter the label (defaul is run title from the first run) - - - ShParam_1_1 - - - Param1 - - - - - ShParam_1_2 - - - Param2 - - - - - ShParam_1_3 - - - Param3 - - - - - ShParam_1_4 - - - Param4 - - - - - ShParam_1_5 - - - false - - - - 234 - 233 - 232 - - - - Param5 - - - false - - - - - ShParam_1_6 - - - false - - - - 234 - 233 - 232 - - - - Param6 - - - false - - - - - ShParam_1_7 - - - false - - - - 234 - 233 - 232 - - - - Param7 - - - false - - - - - ShParam_1_8 - - - false - - - - 234 - 233 - 232 - - - - Param8 - - - false - - - - - ShParam_1_9 - - - false - - - - 234 - 233 - 232 - - - - Param9 - - - false - - - - - - - - SharingComp2 - - - false - - - - 199 - 25 - 162 - 335 - - - - - 5 - 3 - 0 - 0 - - - - 2nd Component - - - - Comp2ShLabel - - - - 2 - 30 - 185 - 20 - - - - - 255 - 255 - 127 - - - - FitType2 - - - - - layout13 - - - - 40 - 60 - 81 - 266 - - - + + TITLE + + + - unnamed + TITLE - - 0 + + + 5 + 0 + 1 + 1 + - - 0 - - - - ShParam_2_1 - - - Param1 - - - - - ShParam_2_2 - - - Param2 - - - - - ShParam_2_3 - - - Param3 - - - - - ShParam_2_4 - - - Param4 - - - - - ShParam_2_5 - - - Param5 - - - - - ShParam_2_6 - - - false - - - - 234 - 233 - 232 - - - - Param6 - - - false - - - - - ShParam_2_7 - - - false - - - - 234 - 233 - 232 - - - - Param7 - - - false - - - - - ShParam_2_8 - - - false - - - - 234 - 233 - 232 - - - - Param8 - - - false - - - - - ShParam_2_9 - - - false - - - - 234 - 233 - 232 - - - - Param9 - - - false - - - - - - - - SharingComp3 - - - false - - - - 367 - 25 - 162 - 335 - - - - - 5 - 3 - 0 - 0 - - - - 3rd Component - - - AlignJustify|AlignVCenter - - - - Comp3ShLabel - - - - 2 - 30 - 185 - 20 - - - - - 255 - 255 - 127 - - - - FitType3 - - - - - layout15 - - - - 41 - 58 - 81 - 266 - - - - - unnamed - - - - ShParam_3_1 - - - Param1 - - - - - ShParam_3_2 - - - Param2 - - - - - ShParam_3_3 - - - Param3 - - - - - ShParam_3_4 - - - Param4 - - - - - ShParam_3_5 - - - Param5 - - - - - ShParam_3_6 - - - false - - - - 234 - 233 - 232 - - - - Param6 - - - false - - - - - ShParam_3_7 - - - false - - - - 234 - 233 - 232 - - - - Param7 - - - false - - - - - ShParam_3_8 - - - false - - - - 234 - 233 - 232 - - - - Param8 - - - false - - - - - ShParam_3_9 - - - false - - - - 234 - 233 - 232 - - - - Param9 - - - false - - - - - - - - - - InitializationPage - - - Initialization - - - - - Value - - - - - Error - - - - - Min - - - - - Max - - - - InitParamTable - - - - 5 - 5 - 545 - 325 - - - - - 5 - 5 - 0 - 0 - - - - - 32767 - 32767 - - - - TabFocus - - - PopupPanel - - - 2 - - - 0 - - - 0 - - - Default - - - Auto - - - false - - - 0 - - - 4 - - - true - - - false - - - SpreadSheet - - - - - TableUpdate - - - - 460 - 335 - 90 - 30 - - - - - 90 - 30 - - - - - 90 - 30 - - - - Update - - - - - - FittingPage - - - MSR File - - - - textMSROutput - - - - 5 - 5 - 545 - 365 - - - - true - - - - - - TabPage - - - Fitting - - - - FitTextOutput - - - - 5 - 135 - 545 - 230 - - - - true - - - - - Minimization - - - - 6 - 1 - 200 - 125 - - - - Minimization - - - true - - - true - - - 0 - - - - MINIMIZE - - - - 16 - 30 - 83 - 22 - - - - Minimize - - - true - - - - - MIGRAD - - - - 16 - 59 - 83 - 22 - - - - Migrad - - - - - SIMPLEX - - - - 16 - 88 - 83 - 22 - - - - Simplex - - - - - - ErrorCalc - - - - 208 - 1 - 200 - 125 - - - - Error Calculation - - - AlignTop - - - true - - - true - - - 0 - - - - HESSE - - - - 19 - 30 - 69 - 22 - - - - Hesse - - - true - - - - - MINOS - - - - 19 - 59 - 69 - 22 - - - - Minos - - - - - - layout28 - - - - 418 - 5 - 125 - 120 - - - - - unnamed - - - - go - - - - 7 - 0 - 1 - 0 - - - - - 95 - 30 - - - - - 95 - 30 - - - - Fit - - - false - - - true - - - - - PlotMSR - - - - 7 - 0 - 1 - 0 - - - - - 95 - 30 - - - - - 95 - 30 - - - - Plot - - - false - - - true - - - - - - - - TabPage - - - Fourier - - - - layout11 - - - - 8 - 18 - 225 - 105 - - - - - unnamed - - - - power + + Title line for MSR file (optional) - - - - real + + Title line for MSR file (optional) - - - - 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 - - - - - - - layout19 - - - - 250 - 20 - 290 - 40 - - - - - unnamed - - - - textLabel1 - - - Range: from - - - - - lineEdit28 - - - - - textLabel1_2 - - - to - - - - - lineEdit28_2 - - - - - - - - TabPage - - - t0/Bg Bins - - - - layout27 - - - - 7 - 5 - 540 - 180 - - - - - unnamed - - - 0 - - - - groupHist0 - - - - 5 - 5 - 0 - 0 - - - - - 0 - 0 - - - - - + - layout16_2 + layout17 - - - 5 - 18 - 100 - 150 - - - + - unnamed_2 + unnamed - textLabel2 + FILENAMELabel - t0 + Enter [name] for output [name].msr file (optional) + + + FILENAME - + - textLabel2_2_2_3 + FILENAME - - Bg1 + + + 5 + 0 + 0 + 0 + - - - textLabel2_2_2 - - - Bg2 - - - - - textLabel2_2_2_2 - - - Data 1 - - - - - textLabel2_2_2_2_2 - - - Data 2 - - - + + + + + layout16 + + + + unnamed + + + + RUNSLabel + + + Input the RUN numbers separated with commas + + + RunNumbers + + + + + RunNumbers + + + + 5 + 0 + 0 + 0 + + + + - - - - groupHist1 - - - Plain - - - Hist1 - layout18 + + + unnamed + + + + BeamLineLabel + + + On beam line + + + + + + LEM + + + + + GPS + + + + + Dolly + + + + + LTF + + + + BeamLine + + + + + YEARLabel + + + Year + + + + + + 2009 + + + + + 2008 + + + + + 2007 + + + + + 2006 + + + + + 2005 + + + + + 2004 + + + + YEAR + + + + + + + ComponentsLabel + + + Chose type of fitting function + + + + + layout19 + + + + unnamed + + + + Comp1Label + + + First Component + + + FitType1 + + + + + Comp3Label + + + Third Component + + + FitType1_2_2 + + + + + + Exponential + + + + + Gaussian + + + + + Stretch Exp. + + + + + Exponential Cos + + + + + Gaussian Cos + + + + + Stretch Cos + + + + + Lorentzian Dynamic KT + + + + + Gaussian Dynamic KT + + + + + Background + + + + + Lorentzian Kubo-Toyabe LF x Exp + + + + + Gaussian Kubo-Toyabe LF x Exp + + + + + Lorentzian Kubo-Toyabe LF x Str Exp + + + + + Gaussian Kubo-Toyabe LF x Str Exp + + + + + Meissner State Model + + + + + None + + + + FitType2 + + + + 5 + 0 + 0 + 0 + + + + 14 + + + + + + Exponential + + + + + Gaussian + + + + + Stretch Exp. + + + + + Exponential Cos + + + + + Gaussian Cos + + + + + Stretch Cos + + + + + Lorentzian Dynamic KT + + + + + Gaussian Dynamic KT + + + + + Background + + + + + Lorentzian Kubo-Toyabe LF x Exp + + + + + Gaussian Kubo-Toyabe LF x Exp + + + + + Lorentzian Kubo-Toyabe LF x Str Exp + + + + + Gaussian Kubo-Toyabe LF x Str Exp + + + + + Meissner State Model + + + + + None + + + + FitType1 + + + + 5 + 0 + 0 + 0 + + + + 20 + + + false + + + false + + + + + + Exponential + + + + + Gaussian + + + + + Stretch Exp. + + + + + Exponential Cos + + + + + Gaussian Cos + + + + + Stretch Cos + + + + + Lorentzian Dynamic KT + + + + + Gaussian Dynamic KT + + + + + Background + + + + + Lorentzian Kubo-Toyabe LF x Exp + + + + + Gaussian Kubo-Toyabe LF x Exp + + + + + Lorentzian Kubo-Toyabe LF x Str Exp + + + + + Gaussian Kubo-Toyabe LF x Str Exp + + + + + Meissner State Model + + + + + None + + + + FitType3 + + + + 5 + 0 + 0 + 0 + + + + 14 + + + + + Comp2Label + + + Second Component + + + FitType1_2 + + + + + + + layout20 + + + + unnamed + + + + BINS + + + + 5 + 0 + 0 + 0 + + + + 100 + + + + + Tfs + + + + 5 + 0 + 0 + 0 + + + + 8 + + + + + BINSLabel + + + Binning Factor + + + BINS + + + + + Tis + + + + 5 + 0 + 0 + 0 + + + + 0 + + + + + TfsLabel + + + Final Time + + + Tfs + + + + + TisLabel + + + Initial Time + + + Tis + + + + + + + layout23 + + + + unnamed + + + + FitAsyTypeLabel + + + Fit type + + + + + + Asymmetry + + + + + SingleHist + + + + FitAsyType + + + + + LRBFLabel + + + Histograms list + + + + + LRBF + + + + 5 + 0 + 0 + 0 + + + + 1,3 + + + + + + + + + + SharingPahe + + + Sharing + + + + buttonGroupSharing + + + + 0 + 0 + 550 + 400 + + + + + 7 + 7 + 0 + 0 + + + + Shared Parameters + + + AlignLeft + + + false + + + + SharingComp1 + + + false + + + + 31 + 25 + 162 + 335 + + + + + 5 + 3 + 0 + 0 + + + + 1st Component + + + AlignLeft + + + + Comp1ShLabel + - 8 - 17 - 75 - 150 + 2 + 30 + 185 + 20 + + + + + 255 + 255 + 127 + + + + FitType1 + + + + + layout14 + + + + 40 + 60 + 81 + 266 @@ -2154,62 +881,210 @@ 0 - + - t01 + ShParam_1_1 + + + Param1 - + - Bg11 + ShParam_1_2 + + + Param2 - + - Bg21 + ShParam_1_3 + + + Param3 - + - Data11 + ShParam_1_4 + + + Param4 - + - Data21 + ShParam_1_5 + + + false + + + + 234 + 233 + 232 + + + + Param5 + + + false + + + + + ShParam_1_6 + + + false + + + + 234 + 233 + 232 + + + + Param6 + + + false + + + + + ShParam_1_7 + + + false + + + + 234 + 233 + 232 + + + + Param7 + + + false + + + + + ShParam_1_8 + + + false + + + + 234 + 233 + 232 + + + + Param8 + + + false + + + + + ShParam_1_9 + + + false + + + + 234 + 233 + 232 + + + + Param9 + + + false - + - groupHist2 + SharingComp2 - true + false - - Plain + + + 199 + 25 + 162 + 335 + + + + + 5 + 3 + 0 + 0 + - Hist2 + 2nd Component - + - layout18_2 + Comp2ShLabel - 8 - 17 - 75 - 150 + 2 + 30 + 185 + 20 + + + + + 255 + 255 + 127 + + + + FitType2 + + + + + layout13 + + + + 40 + 60 + 81 + 266 - unnamed_2 + unnamed 0 @@ -2217,198 +1092,1312 @@ 0 - + - t02 + ShParam_2_1 + + + Param1 - + - Bg12 + ShParam_2_2 + + + Param2 - + - Bg22 + ShParam_2_3 + + + Param3 - + - Data12 + ShParam_2_4 + + + Param4 - + - Data22 + ShParam_2_5 + + + Param5 + + + + + ShParam_2_6 + + + false + + + + 234 + 233 + 232 + + + + Param6 + + + false + + + + + ShParam_2_7 + + + false + + + + 234 + 233 + 232 + + + + Param7 + + + false + + + + + ShParam_2_8 + + + false + + + + 234 + 233 + 232 + + + + Param8 + + + false + + + + + ShParam_2_9 + + + false + + + + 234 + 233 + 232 + + + + Param9 + + + false - + - groupHist3 + SharingComp3 - true + false - - Plain + + + 367 + 25 + 162 + 335 + + + + + 5 + 3 + 0 + 0 + - Hist3 + 3rd Component - + + AlignJustify|AlignVCenter + + - layout18_3 + Comp3ShLabel - 8 - 17 - 75 - 150 + 2 + 30 + 185 + 20 + + + + + 255 + 255 + 127 + + + + FitType3 + + + + + layout15 + + + + 41 + 58 + 81 + 266 - unnamed_2 + unnamed - - 0 - - - 0 - - + - t03 + ShParam_3_1 + + + Param1 - + - Bg13 + ShParam_3_2 + + + Param2 - + - Bg23 + ShParam_3_3 + + + Param3 - + - Data13 + ShParam_3_4 + + + Param4 - + - Data23 + ShParam_3_5 + + + Param5 + + + + + ShParam_3_6 + + + false + + + + 234 + 233 + 232 + + + + Param6 + + + false + + + + + ShParam_3_7 + + + false + + + + 234 + 233 + 232 + + + + Param7 + + + false + + + + + ShParam_3_8 + + + false + + + + 234 + 233 + 232 + + + + Param8 + + + false + + + + + ShParam_3_9 + + + false + + + + 234 + 233 + 232 + + + + Param9 + + + false - - - groupHist4 - - - true - - - Plain - - - Hist4 - - - - layout18_4 - - - - 8 - 17 - 75 - 150 - - - - - unnamed_2 - - - 0 - - - 0 - - - - t04 - - - - - Bg14 - - - - - Bg24 - - - - - Data14 - - - - - Data24 - - - - - - + - + - ShowT0 + InitializationPage - - - 451 - 190 - 95 - 30 - + + Initialization + + + + + Value + + + + + Error + + + + + Min + + + + + Max + + + + InitParamTable + + + + 5 + 5 + 545 + 325 + + + + + 5 + 5 + 0 + 0 + + + + + 32767 + 32767 + + + + TabFocus + + + PopupPanel + + + 2 + + + 0 + + + 0 + + + Default + + + Auto + + + false + + + 0 + + + 4 + + + true + + + false + + + SpreadSheet + + + + + TableUpdate + + + + 460 + 335 + 90 + 30 + + + + + 90 + 30 + + + + + 90 + 30 + + + + Update + + + + + + FittingPage - - - 95 - 30 - + + MSR File + + + + textMSROutput + + + + 5 + 5 + 545 + 365 + + + + true + + + + + + TabPage - - - 95 - 30 - + + Fitting + + + + FitTextOutput + + + + 5 + 135 + 545 + 230 + + + + true + + + + + Minimization + + + + 6 + 1 + 200 + 125 + + + + Minimization + + + true + + + true + + + 0 + + + + MINIMIZE + + + + 16 + 30 + 83 + 22 + + + + Minimize + + + true + + + + + MIGRAD + + + + 16 + 59 + 83 + 22 + + + + Migrad + + + + + SIMPLEX + + + + 16 + 88 + 83 + 22 + + + + Simplex + + + + + + ErrorCalc + + + + 208 + 1 + 200 + 125 + + + + Error Calculation + + + AlignTop + + + true + + + true + + + 0 + + + + HESSE + + + + 19 + 30 + 69 + 22 + + + + Hesse + + + true + + + + + MINOS + + + + 19 + 59 + 69 + 22 + + + + Minos + + + + + + layout28 + + + + 418 + 5 + 125 + 120 + + + + + unnamed + + + + go + + + + 7 + 0 + 1 + 0 + + + + + 95 + 30 + + + + + 95 + 30 + + + + Fit + + + false + + + true + + + + + PlotMSR + + + + 7 + 0 + 1 + 0 + + + + + 95 + 30 + + + + + 95 + 30 + + + + Plot + + + false + + + true + + + + + + + + TabPage - - Show - - - false - - - true + + Fourier + + + + layout11 + + + + 8 + 18 + 225 + 105 + + + + + 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 + + + + + + + layout19 + + + + 250 + 20 + 290 + 40 + + + + + unnamed + + + + textLabel1 + + + Range: from + + + + + lineEdit28 + + + + + textLabel1_2 + + + to + + + + + lineEdit28_2 + + + + + + + + TabPage + + t0/Bg Bins + + + + layout27 + + + + 7 + 5 + 540 + 180 + + + + + unnamed + + + 0 + + + + groupHist0 + + + + 5 + 5 + 0 + 0 + + + + + 0 + 0 + + + + + + + + layout16_2 + + + + 5 + 18 + 100 + 150 + + + + + unnamed_2 + + + + 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 + + + + 451 + 190 + 95 + 30 + + + + + 95 + 30 + + + + + 95 + 30 + + + + Show + + + false + + + true + + - + @@ -2417,14 +2406,6 @@ true - - - 0 - 0 - 574 - 27 - - diff --git a/src/external/MuSRFitGUI/MuSRFit.ui.h b/src/external/MuSRFitGUI/MuSRFit.ui.h index 371113cf..33f41cdf 100755 --- a/src/external/MuSRFitGUI/MuSRFit.ui.h +++ b/src/external/MuSRFitGUI/MuSRFit.ui.h @@ -434,6 +434,7 @@ void MuSRFitform::ActivateT0Hists() # TODO: Set default values } + void MuSRFitform::ActivateShComp() { my %All=CreateAllInput(); @@ -503,74 +504,8 @@ void MuSRFitform::ActivateShComp() void MuSRFitform::InitializeTab() { -# "Smart" default value of the fit parameters. - my %Defaults = ( - "Asy", "0.15", "dAsy", "0.01", - "Asy_min", "0", "Asy_max", "0", - "Alpha", "1.0", "dAlpha", "0.01", - "Alpha_min", "0", "Alpha_max", "0", - "N0", "300.0", "dN0", "0.01", - "N0_min", "0", "N0_max", "0", - "NBg", "30.0", "dNBg", "0.01", - "NBg_min", "0", "NBg_max", "0", - "Lam", "1.0", "dLam", "0.01", - "Lam_min", "0", "Lam_max", "0", - "Gam", "1.0", "dGam", "0.01", - "Gam_min", "0", "Gam_max", "0", - "Bet", "0.5", "dBet", "0.01", - "Bet_min", "0", "Bet_max", "0", - "Two", "2.0", "dTwo", "0.0", - "Two_min", "0", "Two_max", "0", - "Del", "0.1", "dDel", "0.01", - "Del_min", "0", "Del_max", "0", - "Sgm", "0.1", "dSgm", "0.01", - "Sgm_min", "0", "Sgm_max", "0", - "Aa", "0.1", "dAa", "0.01", - "Aa_min", "0", "Aa_max", "0", - "q", "0.1", "dq", "0.01", - "q_min", "0", "q_max", "0", - "Bg", "0.036", "dBg", "0.01", - "Bg_min", "0", "Bg_max", "0", - "bgrlx", "0.", "dbgrlx", "0.0", - "bgrlx_min", "0", "bgrlx_max", "0", - "Frq", "1.0", "dFrq", "1.", - "Frq_min", "0", "Frq_max", "0", - "Field", "100.0", "dField", "1.", - "Field_min", "0", "Field_max", "0", - "Energy", "14.1", "dEnergy", "0.", - "Energy_min", "0", "Energy_max", "0", - "DeadLayer", "10.", "dDeadLayer", "0.1", - "DeadLayer_min", "0", "DeadLayer_max", "0", - "Lambda", "128.1", "dLambda", "0.1", - "Lambda_min", "0", "Lambda_max", "0", - "Phi", "1.", "dPhi", "0.01", - "Phi_min", "0", "Phi_max", "0" - ); - - my $erradd = "d"; - my $minadd = "_min"; - my $maxadd = "_max"; - -# First assume nothing is shared - my $Shared = 0; - - my %All=CreateAllInput(); - my @RUNS = split( /,/, $All{"RunNumbers"} ); - - my @FitTypes =(); - foreach my $FitType ($All{"FitType1"}, $All{"FitType2"}, $All{"FitType3"}) { - if ( $FitType ne "None" ) { push( @FitTypes, $FitType ); } - } - + my %All=CreateAllInput(); InitParamTable->setLeftMargin(100); - -# Get theory block to determine the size of the table - my ($Full_T_Block,$Paramcomp_ref)= MSR::CreateTheory(@FitTypes); -# For now the line below does not work. Why? -# my $Paramcomp_ref=$All{"Paramcomp_ref"}; - my @Paramcomp = @$Paramcomp_ref; - my $Full_T_Block= $All{"Full_T_Block"}; - my $NRows = InitParamTable->numRows(); # Remove any rows in table @@ -580,79 +515,29 @@ void MuSRFitform::InitializeTab() InitParamTable->hideRow($i); } } - - my $PCount =0; - my $iRun =0; - my $value =0; - my $error = 0; - my $minvalue = 0; - my $maxvalue = 0; - foreach my $RUN (@RUNS) { - $iRun++; - my $Component=1; - foreach my $FitType (@FitTypes) { - my $Parameters=$Paramcomp[$Component-1]; - my @Params = split( /\s+/, $Parameters ); - - if ( $Component == 1 && $All{"FitAsyType"} eq "Asymmetry" ) { - unshift( @Params, "Alpha" ); - } - elsif ( $Component == 1 && $All{"FitAsyType"} eq "SingleHist" ) { - unshift( @Params, ( "N0", "NBg" ) ); - } - - -# This is the counter for parameters of this component - my $NP=1; - $Shared = 0; -# Change state/label of parameters - foreach my $Param (@Params) { - my $Param_ORG = $Param; - if ( $#FitTypes != 0 && ( $Param ne "Alpha" && $Param ne "N0" && $Param ne "NBg" ) ){ - $Param = join( "", $Param, "_", "$Component" ); - } - - $Shared = $All{"Sh_$Param"}; -# It there are multiple runs index the parameters accordingly - $Param=$Param."_".$iRun; -# Check if this parameter has been initialized befor. If not take from defaults -# print "$Param=".$All{"$Param"}."\n"; - $value = $All{"$Param"}; - if ( $value ne "" ) { - $error = $All{"$erradd$Param"}; - $minvalue = $All{"$Param$minadd"}; - $maxvalue = $All{"$Param$maxadd"}; - } else { -# I need this although it is already in the MSR.pm module, just for this table -# We can remove it from the MSR module later... - $value = $Defaults{$Param_ORG}; - $error = $Defaults{ join( "", $erradd, $Param_ORG ) }; - $minvalue = $Defaults{ join("", $Param_ORG, $minadd ) }; - $maxvalue = $Defaults{ join("", $Param_ORG, $maxadd ) }; - } - - if ( $Shared!=1 || $iRun == 1 ) { - $PCount++; - -# Add row in table, set its label and fill the values of parametr - if ($PCount>$NRows) { - InitParamTable->setNumRows($PCount); - } - InitParamTable->verticalHeader()->setLabel( $PCount-1,$Param); - InitParamTable->showRow($PCount-1); - InitParamTable->setText($PCount-1,0,$value); - InitParamTable->setText($PCount-1,1,$error); - InitParamTable->setText($PCount-1,2,$minvalue); - InitParamTable->setText($PCount-1,3,$maxvalue); - } - $NP++; - }#Loop on parameters - $Component++; - }# Loop on components - }# Loop on runs + my %PTable=MSR::PrepParamTable(\%All); + +# Setup the table with the right size + my $NParam=scalar keys( %PTable ); + print "Size of P:".$NParam."\n"; + if ($NParam>$NRows) { + InitParamTable->setNumRows($NParam); + } + +# Fill the table with labels and values of parametr + for (my $PCount=0;$PCount<$NParam;$PCount++) { + my ($Param,$value,$error,$minvalue,$maxvalue) = split(/,/,$PTable{$PCount}); + InitParamTable->verticalHeader()->setLabel( $PCount,$Param); + InitParamTable->showRow($PCount); + InitParamTable->setText($PCount,0,$value); + InitParamTable->setText($PCount,1,$error); + InitParamTable->setText($PCount,2,$minvalue); + InitParamTable->setText($PCount,3,$maxvalue); + } } + void MuSRFitform::TabChanged() { # TODO: First check if there are some runs given, otherwise disbale