diff --git a/src/external/MuSRFitGUI/MSR.pm b/src/external/MuSRFitGUI/MSR.pm
index 416f7a4a..704fec18 100755
--- a/src/external/MuSRFitGUI/MSR.pm
+++ b/src/external/MuSRFitGUI/MSR.pm
@@ -161,14 +161,7 @@ FITPARAMETER
else {
if ( $All{"Sh_Alpha"} == 1 ) {
my $shcount = 1;
- }
- elsif ( $All{"Sh_N0"} == 1 ) {
- my $shcount = 1;
- }
- elsif ( $All{"Sh_NBg"} == 1 ) {
- my $shcount = 1;
- }
- else {
+ } else {
my $shcount = 0;
}
}
@@ -191,7 +184,7 @@ FITPARAMETER
# How many non-shared parameter for this RUN?
my $nonsh = 0;
- # Prepeare Alpha/N0/NBg line for the RUN block. Empty initially.
+ # Prepeare Alpha line for the RUN block. Empty initially.
my $Alpha_Line = $EMPTY;
# Loop over all components in the fit
@@ -201,17 +194,11 @@ FITPARAMETER
my @Params = split( /\s+/, $Parameters );
# For the first component we need Alpha for Asymmetry fits
- if ( $component == 1 && $All{"FitAsyType"} eq "Asymmetry" ) {
- unshift( @Params, "Alpha" );
- }
- # For the first component we need No and NBg for SingleHist fits
- elsif ( $component == 1 && $All{"FitAsyType"} eq "SingleHist" ) {
- unshift( @Params, ( "N0", "NBg" ) );
- }
-
+ unshift( @Params, "Alpha" );
+
foreach $Param (@Params) {
$Param_ORG = $Param;
- if ( ($#FitTypes != 0) && ($Param ne "Alpha" && $Param ne "N0" && $Param ne "NBg" ) ) {
+ if ( ($#FitTypes != 0) && ($Param ne "Alpha") ) {
$Param = join( $EMPTY, $Param, "_", "$component" );
}
@@ -224,7 +211,7 @@ FITPARAMETER
$Shared = $All{"Sh_$Param"};
}
- # Alpha, N0 and NBg Lines
+ # Alpha Line
#
# If you encounter alpha in the parameters list make sure
# to fill this line for the RUN block.
@@ -238,34 +225,8 @@ FITPARAMETER
$Alpha_Line = "alpha $j\n";
}
}
- # If you encounter N0 in the parameters list make sure
- # to fill this line for the RUN block.
- elsif ( $Param_ORG eq "N0" ) {
- if ($Shared) {
- $Alpha_Line = "norm 1\n";
- }
- else {
- $Alpha_Line = "norm $j\n";
- }
- # Optional - add lifetime correction for SingleHist fits
- if ( $All{"ltc"} eq "y" ) {
- $Alpha_Line = $Alpha_Line . "lifetimecorrection\n";
- }
-
- # If you encounter NBg in the parameters list make sure
- # to fill this line for the RUN block.
- }
- elsif ( $Param_ORG eq "NBg" ) {
- if ($Shared) {
- $Alpha_Line = $Alpha_Line . "backgr.fit 2\n";
- }
- else {
- $Alpha_Line = $Alpha_Line . "backgr.fit $j\n";
- }
- }
-
- # End of Alpha, N0 and NBg Lines
+ # End of Alpha Line
####################################################################################################
####################################################################################################
@@ -307,10 +268,7 @@ FITPARAMETER
$j $Name $value $error $error $minvalue $maxvalue";
# Skip adding to map line in these cases
- if ( $Param ne "Alpha"
- && $Param ne "N0"
- && $Param ne "NBg"
- && $#RUNS != 0 )
+ if ( $Param ne "Alpha" && $#RUNS != 0 )
{
++$nonsh;
$Full_T_Block =~ s/$Param_ORG/map$nonsh/;
@@ -396,26 +354,13 @@ FITPARAMETER
$Def_Format{$BeamLine} );
}
- # What kind of fit? 0 - Single Histogram, 2 - Asymmetry, 4 - RRF
- if ( $All{"FitAsyType"} eq "Asymmetry" ) {
- $Type_Line = "fittype 2";
- $PLT = 2;
- $Hist_Lines =
- "forward $Hists[0]\nbackward $Hists[1]";
- $Bg_Line = "background 66000 66500 66000 66500";
- $Data_Line = "data 3419 63000 3419 63000";
- }
- elsif ( $All{"FitAsyType"} eq "SingleHist" ) {
- $Type_Line = "fittype 0";
- $PLT = 0;
- $Hist_Lines = "forward HIST";
- $Bg_Line = $EMPTY;
- $Data_Line = "data 3419 63000";
- }
- elsif ( $All{"FitAsyType"} eq "RotRF" ) {
- $Type_Line = "fittype 4";
- }
-
+ $Type_Line = "fittype 2";
+ $PLT = 2;
+ $Hist_Lines =
+ "forward $Hists[0]\nbackward $Hists[1]";
+ $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" ) {
$Bg_Line = "background 50 250 50 250";
@@ -423,24 +368,12 @@ FITPARAMETER
"t0 287 284\ndata 297 8000 294 8000";
}
- # $MAP_Line = "map 0 0 0 0 0 0 0 0 0 0";
$FRANGE_Line = "fit TINI TFIN";
$PAC_Line = "packing BINNING";
- if ( $All{"FitAsyType"} eq "Asymmetry" ) {
- $Single_RUN =
+ $Single_RUN =
"$RUN_Line\n$Type_Line\n$Alpha_Line$Hist_Lines\n$Bg_Line\n$Data_Line\n$MAP_Line\n$FRANGE_Line\n$PAC_Line\n\n";
- }
- elsif ( $All{"FitAsyType"} eq "SingleHist" ) {
- $Single_RUN = $EMPTY;
- foreach my $Hist (@Hists) {
- $Tmp_Hist_Line = $Hist_Lines;
- $Tmp_Hist_Line =~ s/HIST/$Hist/g;
- $Single_RUN = $Single_RUN
- . "$RUN_Line\n$Type_Line\n$Alpha_Line$Tmp_Hist_Line\n$Data_Line\n$MAP_Line\n$FRANGE_Line\n$PAC_Line\n\n";
- }
- }
-
+
# Now add the appropriate values of fit range and packing
my $Range_Min = 8;
my $Range_Max = 0;
@@ -456,17 +389,11 @@ FITPARAMETER
# For multiple ranges use this
if ( $Ti < $Range_Min ) { $Range_Min = $Ti; }
if ( $Tf > $Range_Max ) { $Range_Max = $Tf; }
- if ( $All{"FitAsyType"} eq "Asymmetry" ) {
- $RUNS_Line = "$RUNS_Line " . $Range_Order;
- }
- elsif ( $All{"FitAsyType"} eq "SingleHist" ) {
- $RUNS_Line = "$RUNS_Line " . $Range_Order;
- }
- ++$k;
+
+ $RUNS_Line = "$RUNS_Line " . $Range_Order;
+ ++$k;
++$Range_Order;
}
-
- # if ($FitAsyType eq "Asymmetry") {$RUNS_Line="$RUNS_Line ".$iRun*$k;}
++$iRun;
}
@@ -532,6 +459,436 @@ STATISTIC --- 0000-00-00 00:00:00
return($Full_T_Block,\@Paramcomp);
}
+########################
+# CreateMSRSingleHist
+########################
+sub CreateMSRSingleHist {
+ my %All = %{$_[0]};
+
+# "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"
+ );
+ # Start with empty array
+ my @FitTypes = ();
+
+ foreach ($All{"FitType1"},$All{"FitType2"},$All{"FitType3"}) {
+ if ($_ ne "None") {
+ @FitTypes=(@FitTypes,$_);
+ }
+ }
+
+ my @Hists = split( /,/, $All{"LRBF"} );
+ my @TiVals = split( /,/, $All{"Tis"} );
+ my @TfVals = split( /,/, $All{"Tfs"} );
+ my @BINVals = split( /,/, $All{"BINS"} );
+ my $FILENAME = $All{"FILENAME"};
+ my $BeamLine = $All{"BeamLine"};
+ my $YEAR = $All{"YEAR"};
+ my $DATADIR = $DATADIRS{$BeamLine};
+
+ my $Step = $All{"go"};
+ if ( $Step eq "PLOT" ) {
+ $FITMINTYPE = $EMPTY;
+ } elsif ( $Step eq "MIGRAD" ) {
+ $FITMINTYPE = "MINIMIZE\nMIGRAD\nHESSE";
+ } elsif ( $Step eq "MINOS" ) {
+ $FITMINTYPE = "MIGRAD\nMINOS";
+ } elsif ( $Step eq "SIMPLEX" ) {
+ $FITMINTYPE = "SCAN\nSIMPLEX";
+ }
+
+ # First create the THEORY Block
+ my ($Full_T_Block,$Paramcomp_ref)=MSR::CreateTheory(@FitTypes);
+
+ my @Paramcomp = @$Paramcomp_ref;
+
+ my $TitleLine = $All{"TITLE"}."\n# Run Numbers: ".$All{"RunNumbers"};
+ $TitleLine =~ s/,/:/g;
+
+ # Fit parameters block
+ my $FitParaBlk = "
+###################################################################
+FITPARAMETER
+###################################################################
+# No Name Value Err Min Max ";
+
+ # Counter for RUNS
+ my $iRun = 1;
+
+ # Counter of Params
+ my $j = 1;
+
+ my @RUNS=split( /,/, $All{"RunNumbers"});
+ # $shcount is a counter for shared parameters
+ if ( $#RUNS == 0 && $#Hists == 0) {
+ my $shcount = 1;
+ } else {
+ if ( $All{"Sh_N0"} == 1 ) {
+ my $shcount = 1;
+ } elsif ( $All{"Sh_NBg"} == 1 ) {
+ my $shcount = 1;
+ } else {
+ my $shcount = 0;
+ }
+ }
+
+ $shcount = 1;
+ my $RUN_Block = $EMPTY;
+ my $RUNS_Line = $EMPTY;
+
+ # range order
+ my $Range_Order = 1;
+ foreach my $RUN (@RUNS) {
+#######################################################################
+# For a single histogram fit we basically need to repeat this for each hist
+ foreach my $Hist (@Hists) {
+
+ # Prepare the Parameters and initial values block
+ my $component = 0;
+ my $Single_RUN = $EMPTY;
+
+ # Prepare map line for each run
+ my $MAP_Line = "map ";
+
+ # How many non-shared parameter for this RUN?
+ my $nonsh = 0;
+
+ # Prepeare N0/NBg line for the RUN block. Empty initially.
+ my $N0Bg_Line = $EMPTY;
+
+ # Loop over all components in the fit
+ foreach my $FitType (@FitTypes) {
+ ++$component;
+ my $Parameters = $Paramcomp[ $component - 1 ];
+ my @Params = split( /\s+/, $Parameters );
+
+ # For the first component we need N0 and NBg for SingleHist fits
+ if ( $component == 1 && $All{"FitAsyType"} eq "SingleHist" ) {
+ unshift( @Params, ( "N0", "NBg" ) );
+ }
+
+ foreach $Param (@Params) {
+ $Param_ORG = $Param;
+ $Param=$Param.$Hist;
+ if ( ($#FitTypes != 0) && ( $Param ne "N0" && $Param ne "NBg" ) ) {
+ $Param = join( $EMPTY, $Param, "_", "$component" );
+ }
+
+ # If we have only one RUN with one Histogram then everything is shared
+ if ( $#RUNS == 0 && $#Hists == 0 ) {
+ $Shared = 1;
+ }
+ # Otherwise check input if it was marked as shared
+ else {
+ $Shared = $All{"Sh_$Param"};
+ print "Shared=$Shared\n";
+ }
+
+ # N0 and NBg Lines
+ #
+ # If you encounter N0 in the parameters list make sure
+ # to fill this line for the RUN block.
+ if ( $Param_ORG eq "N0" ) {
+ if ($Shared) {
+ $N0Bg_Line = "norm 1\n";
+ }
+ else {
+ $N0Bg_Line = "norm $j\n";
+ }
+
+ # Optional - add lifetime correction for SingleHist fits
+ if ( $All{"ltc"} eq "y" ) {
+ $N0Bg_Line = $N0Bg_Line . "lifetimecorrection\n";
+ }
+ }
+ # If you encounter NBg in the parameters list make sure
+ # to fill this line for the RUN block.
+ elsif ( $Param_ORG eq "NBg" ) {
+ if ($Shared) {
+ $N0Bg_Line = $N0Bg_Line . "backgr.fit 2\n";
+ }
+ else {
+ $N0Bg_Line = $N0Bg_Line . "backgr.fit $j\n";
+ }
+ }
+
+ # End of N0 and NBg Lines
+####################################################################################################
+
+####################################################################################################
+ # Extract initial values, error and max/min from input
+ $Name = $Param . "_" . $iRun;
+ $value = $All{"$Name"};
+ $error = $All{"$erradd$Name"};
+ $minvalue = $All{"$Name$minadd"};
+ $maxvalue = $All{"$Name$maxadd"};
+# If these values are not in the input then take the defaulst
+# I think that this can go at the end if we use a separate initialization routine
+ if ($value eq $EMPTY) {
+ $value = $Defaults{"$Param_ORG"};
+ $error = $Defaults{"$erradd$Param_ORG"};
+ $minvalue = $Defaults{"$Param_ORG$minadd"};
+ $maxvalue = $Defaults{"$Param_ORG$maxadd"};
+ }
+ if ( $minvalue == $maxvalue ) {
+ $minvalue = $EMPTY;
+ $maxvalue = $EMPTY;
+ }
+####################################################################################################
+
+ # Start preparing the parameters block
+ print "Param=$Param_ORG is Shared=$Shared\n";
+ if ($Shared) {
+
+ # Parameter is shared enough to keep order from first run
+ if ( $iRun == 1 ) {
+ $FitParaBlk = $FitParaBlk . "
+ $j $Name $value $error $error $minvalue $maxvalue";
+ $Full_T_Block =~ s/$Param_ORG/$j/;
+ ++$shcount;
+ ++$j;
+ }
+ } else {
+
+ # Parameter is not shared, use map unless it is a single RUN fit
+ $FitParaBlk = $FitParaBlk . "
+ $j $Name $value $error $error $minvalue $maxvalue";
+
+ # Skip adding to map line in these cases
+ if ( $Param ne "N0" && $Param ne "NBg" && ($#RUNS != 0 || $#Hist != 0)) {
+ ++$nonsh;
+ $Full_T_Block =~ s/$Param_ORG/map$nonsh/;
+ $MAP_Line = join( ' ', $MAP_Line, $j );
+ }
+ ++$j;
+ }
+ $NtotPar = $j;
+ }
+ }
+
+ # Finished preparing the FITPARAMETERS block
+#######################################################################
+
+ # For each defined range we need a block in the RUN-Block
+ # Also for each histogram in Single Histograms fits
+ # Also for Imaginaryand and Real for RRF fits
+
+ $RUN = $RUNS[ $iRun - 1 ];
+ if ( $RUN < 10 ) { $RUNtmp = "000" . $RUN; }
+ elsif ( $RUN < 100 ) { $RUNtmp = "00" . $RUN; }
+ elsif ( $RUN < 1000 ) { $RUNtmp = "0" . $RUN; }
+
+ # Get current year
+ ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) =
+ localtime( time() );
+ my $current_year = $year + 1900;
+
+ if ( $BeamLine eq "LEM" ) {
+ $RUN_File_Name = "lem" . substr( $YEAR, 2 ) . "_his_" . $RUNtmp;
+ $RUNFILE = "$DATADIR/$YEAR/$RUN_File_Name";
+ $RUN_Line = join( $SPACE,
+ "RUN", $RUNFILE, $BeamLines{$BeamLine}, "PSI",
+ $Def_Format{$BeamLine} );
+ }
+ elsif ( $BeamLine eq "GPS" ) {
+ $RUN_File_Name = "deltat_pta_gps_" . $RUNtmp;
+ if ( $YEAR == $current_year ) {
+ $RUNFILE = "$DATADIR/$RUN_File_Name";
+ }
+ else {
+ $RUNFILE = "$DATADIR/d$YEAR/pta/$RUN_File_Name";
+ }
+ $RUN_Line = join( $SPACE,
+ "RUN", $RUNFILE, $BeamLines{$BeamLine}, "PSI",
+ $Def_Format{$BeamLine} );
+ }
+ elsif ( $BeamLine eq "LTF" ) {
+ $RUN_File_Name = "deltat_pta_ltf_" . $RUNtmp;
+ if ( $YEAR == $current_year ) {
+ $RUNFILE = "$DATADIR/$RUN_File_Name";
+ }
+ else {
+ $RUNFILE = "$DATADIR/d$YEAR/pta/$RUN_File_Name";
+ }
+ $RUN_Line = join( $SPACE,
+ "RUN", $RUNFILE, $BeamLines{$BeamLine}, "PSI",
+ $Def_Format{$BeamLine} );
+ }
+ elsif ( $BeamLine eq "Dolly" ) {
+ $RUN_File_Name = "deltat_pta_dolly_" . $RUNtmp;
+ if ( $YEAR == $current_year ) {
+ $RUNFILE = "$DATADIR/$RUN_File_Name";
+ }
+ else {
+ $RUNFILE = "$DATADIR/d$YEAR/pta/$RUN_File_Name";
+ }
+ $RUN_Line = join( $SPACE,
+ "RUN", $RUNFILE, $BeamLines{$BeamLine}, "PSI",
+ $Def_Format{$BeamLine} );
+ }
+ elsif ( $BeamLine eq "GPD" ) {
+ $RUN_File_Name = "deltat_pta_gpd_" . $RUNtmp;
+ if ( $YEAR == $current_year ) {
+ $RUNFILE = "$DATADIR/$RUN_File_Name";
+ }
+ else {
+ $RUNFILE = "$DATADIR/d$YEAR/pta/$RUN_File_Name";
+ }
+ $RUN_Line = join( $SPACE,
+ "RUN", $RUNFILE, $BeamLines{$BeamLine}, "PSI",
+ $Def_Format{$BeamLine} );
+ }
+
+ # What kind of fit? 0 - Single Histogram, 2 - Asymmetry, 4 - RRF
+ $Type_Line = "fittype 0";
+ $PLT = 0;
+ $Hist_Lines = "forward HIST";
+ $Bg_Line = $EMPTY;
+ $Data_Line = "data 3419 63000";
+
+ # Omit background and data lines for LTG,GPS and Dolly
+ if ( $BeamLine ne "LEM" ) {
+ $Bg_Line = "background 50 250 50 250";
+ $Data_Line =
+ "t0 287 284\ndata 297 8000 294 8000";
+ }
+
+ # $MAP_Line = "map 0 0 0 0 0 0 0 0 0 0";
+ $FRANGE_Line = "fit TINI TFIN";
+ $PAC_Line = "packing BINNING";
+
+ $Single_RUN = $EMPTY;
+ $Tmp_Hist_Line = $Hist_Lines;
+ $Tmp_Hist_Line =~ s/HIST/$Hist/g;
+ $Single_RUN = $Single_RUN
+ . "$RUN_Line\n$Type_Line\n$N0Bg_Line$Tmp_Hist_Line\n$Data_Line\n$MAP_Line\n$FRANGE_Line\n$PAC_Line\n\n";
+
+ # Now add the appropriate values of fit range and packing
+ my $Range_Min = 8;
+ my $Range_Max = 0;
+ my $k = 0;
+ foreach my $Ti (@TiVals) {
+ my $Tf = $TfVals[$k];
+ my $BIN = $BINVals[$k];
+ $RUN_Block = $RUN_Block . $Single_RUN;
+ $RUN_Block =~ s/TINI/$Ti/g;
+ $RUN_Block =~ s/TFIN/$Tf/g;
+ $RUN_Block =~ s/BINNING/$BIN/g;
+
+ # For multiple ranges use this
+ if ( $Ti < $Range_Min ) { $Range_Min = $Ti; }
+ if ( $Tf > $Range_Max ) { $Range_Max = $Tf; }
+ $RUNS_Line = "$RUNS_Line " . $Range_Order;
+ ++$k;
+ ++$Range_Order;
+ }
+ }
+ ++$iRun;
+ }
+
+ # The number of runs is
+ $NRUNS = $iRun - 1;
+
+ $Full_T_Block = "
+###################################################################
+THEORY
+###################################################################
+$Full_T_Block
+";
+
+ $RUN_Block =
+ "###################################################################
+$RUN_Block";
+
+ $COMMANDS_Block =
+ "###################################################################
+COMMANDS
+FITMINTYPE
+SAVE
+";
+ $COMMANDS_Block =~ s/FITMINTYPE/$FITMINTYPE/g;
+
+ # Check if log x and log y are selected
+ my $logxy = $EMPTY;
+ if ( $All{"logx"} eq "y" ) { $logxy = $logxy . "logx\n"; }
+ if ( $All{"logy"} eq "y" ) { $logxy = $logxy . "logy\n"; }
+
+ # Check if a plot range is defined (i.e. different from fit)
+ $PRANGE_Line = "use_fit_ranges";
+ if ( $All{"Xi"} != $All{"Xf"} ) {
+
+ # if ($Yi != $Yf) {
+ $PRANGE_Line = "range ".$All{"Xi"}." ".$All{"Xf"}." ".$All{"Yi"}." ".$All{"Yf"};
+
+ # } else {
+ # $PRANGE_Line = "range $Xi $Xf";
+ # }
+ }
+
+ $PLOT_Block =
+ "###################################################################
+PLOT $PLT
+runs $RUNS_Line
+$PRANGE_Line
+$logxy";
+
+ # Don't know why but it is needed initially
+ $STAT_Block =
+ "###############################################################
+STATISTIC --- 0000-00-00 00:00:00
+*** FIT DID NOT CONVERGE ***";
+
+ # Empty line at the end of each block
+ my $FullMSRFile = "$TitleLine$FitParaBlk\n$Full_T_Block\n$RUN_Block\n$COMMANDS_Block\n$PLOT_Block\n$STAT_Block\n";
+
+# Open output file FILENAME.msr
+ open( OUTF,q{>},"$FILENAME.msr" );
+ print OUTF ("$FullMSRFile");
+ close(OUTF);
+ return($Full_T_Block,\@Paramcomp);
+}
+
+
########################
# Createheory
########################
diff --git a/src/external/MuSRFitGUI/MuSRFit.pl b/src/external/MuSRFitGUI/MuSRFit.pl
index fb79bb7b..a5f2c81d 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: Tue Aug 25 16:34:16 2009
+# Created: Wed Aug 26 17:07:14 2009
# by: The PerlQt User Interface Compiler (puic)
#
# WARNING! All changes made in this file will be lost!
@@ -14,7 +14,6 @@ package MuSRFitform;
use Qt;
use Qt::isa qw(Qt::MainWindow);
use Qt::slots
- fileNew => [],
fileOpen => [],
fileSave => [],
fileChangeDir => [],
@@ -69,12 +68,16 @@ use Qt::attributes qw(
SharingPahe
buttonGroupSharing
SharingComp1
+ Comp1ShLabel
ShParam_1_1
ShParam_1_2
ShParam_1_3
ShParam_1_4
ShParam_1_5
- Comp1ShLabel
+ ShParam_1_6
+ ShParam_1_7
+ ShParam_1_8
+ ShParam_1_9
SharingComp2
Comp2ShLabel
ShParam_2_1
@@ -82,6 +85,10 @@ use Qt::attributes qw(
ShParam_2_3
ShParam_2_4
ShParam_2_5
+ ShParam_2_6
+ ShParam_2_7
+ ShParam_2_8
+ ShParam_2_9
SharingComp3
Comp3ShLabel
ShParam_3_1
@@ -89,6 +96,10 @@ use Qt::attributes qw(
ShParam_3_3
ShParam_3_4
ShParam_3_5
+ ShParam_3_6
+ ShParam_3_7
+ ShParam_3_8
+ ShParam_3_9
InitializationPage
InitParamTable
FittingPage
@@ -646,72 +657,117 @@ sub NEW
buttonGroupSharing->setAlignment( int(&Qt::ButtonGroup::AlignLeft) );
buttonGroupSharing->setCheckable( 0 );
- my $LayoutWidget_2 = Qt::Widget(buttonGroupSharing, '$LayoutWidget_2');
- $LayoutWidget_2->setGeometry( Qt::Rect(30, 50, 500, 311) );
- my $layoutShComp = Qt::HBoxLayout($LayoutWidget_2, 11, 6, '$layoutShComp');
-
- SharingComp1 = Qt::ButtonGroup($LayoutWidget_2, "SharingComp1");
+ SharingComp1 = Qt::ButtonGroup(buttonGroupSharing, "SharingComp1");
SharingComp1->setEnabled( 0 );
+ SharingComp1->setGeometry( Qt::Rect(31, 25, 162, 335) );
SharingComp1->setSizePolicy( Qt::SizePolicy(5, 3, 0, 0, SharingComp1->sizePolicy()->hasHeightForWidth()) );
SharingComp1->setAlignment( int(&Qt::ButtonGroup::AlignLeft) );
- my $LayoutWidget_3 = Qt::Widget(SharingComp1, '$LayoutWidget_3');
- $LayoutWidget_3->setGeometry( Qt::Rect(30, 70, 81, 190) );
- my $layoutComp1 = Qt::VBoxLayout($LayoutWidget_3, 11, 6, '$layoutComp1');
-
- ShParam_1_1 = Qt::CheckBox($LayoutWidget_3, "ShParam_1_1");
- $layoutComp1->addWidget(ShParam_1_1);
-
- ShParam_1_2 = Qt::CheckBox($LayoutWidget_3, "ShParam_1_2");
- $layoutComp1->addWidget(ShParam_1_2);
-
- ShParam_1_3 = Qt::CheckBox($LayoutWidget_3, "ShParam_1_3");
- $layoutComp1->addWidget(ShParam_1_3);
-
- ShParam_1_4 = Qt::CheckBox($LayoutWidget_3, "ShParam_1_4");
- $layoutComp1->addWidget(ShParam_1_4);
-
- ShParam_1_5 = Qt::CheckBox($LayoutWidget_3, "ShParam_1_5");
- ShParam_1_5->setEnabled( 0 );
- ShParam_1_5->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
- ShParam_1_5->setTristate( 0 );
- $layoutComp1->addWidget(ShParam_1_5);
-
Comp1ShLabel = Qt::Label(SharingComp1, "Comp1ShLabel");
Comp1ShLabel->setGeometry( Qt::Rect(2, 30, 185, 20) );
Comp1ShLabel->setPaletteBackgroundColor( Qt::Color(255, 255, 127) );
- $layoutShComp->addWidget(SharingComp1);
- SharingComp2 = Qt::ButtonGroup($LayoutWidget_2, "SharingComp2");
+ my $LayoutWidget_2 = Qt::Widget(SharingComp1, '$LayoutWidget_2');
+ $LayoutWidget_2->setGeometry( Qt::Rect(40, 60, 81, 266) );
+ my $layout14 = Qt::VBoxLayout($LayoutWidget_2, 0, 0, '$layout14');
+
+ ShParam_1_1 = Qt::CheckBox($LayoutWidget_2, "ShParam_1_1");
+ $layout14->addWidget(ShParam_1_1);
+
+ ShParam_1_2 = Qt::CheckBox($LayoutWidget_2, "ShParam_1_2");
+ $layout14->addWidget(ShParam_1_2);
+
+ ShParam_1_3 = Qt::CheckBox($LayoutWidget_2, "ShParam_1_3");
+ $layout14->addWidget(ShParam_1_3);
+
+ ShParam_1_4 = Qt::CheckBox($LayoutWidget_2, "ShParam_1_4");
+ $layout14->addWidget(ShParam_1_4);
+
+ ShParam_1_5 = Qt::CheckBox($LayoutWidget_2, "ShParam_1_5");
+ ShParam_1_5->setEnabled( 0 );
+ ShParam_1_5->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_1_5->setTristate( 0 );
+ $layout14->addWidget(ShParam_1_5);
+
+ ShParam_1_6 = Qt::CheckBox($LayoutWidget_2, "ShParam_1_6");
+ ShParam_1_6->setEnabled( 0 );
+ ShParam_1_6->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_1_6->setTristate( 0 );
+ $layout14->addWidget(ShParam_1_6);
+
+ ShParam_1_7 = Qt::CheckBox($LayoutWidget_2, "ShParam_1_7");
+ ShParam_1_7->setEnabled( 0 );
+ ShParam_1_7->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_1_7->setTristate( 0 );
+ $layout14->addWidget(ShParam_1_7);
+
+ ShParam_1_8 = Qt::CheckBox($LayoutWidget_2, "ShParam_1_8");
+ ShParam_1_8->setEnabled( 0 );
+ ShParam_1_8->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_1_8->setTristate( 0 );
+ $layout14->addWidget(ShParam_1_8);
+
+ ShParam_1_9 = Qt::CheckBox($LayoutWidget_2, "ShParam_1_9");
+ ShParam_1_9->setEnabled( 0 );
+ ShParam_1_9->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_1_9->setTristate( 0 );
+ $layout14->addWidget(ShParam_1_9);
+
+ SharingComp2 = Qt::ButtonGroup(buttonGroupSharing, "SharingComp2");
SharingComp2->setEnabled( 0 );
+ SharingComp2->setGeometry( Qt::Rect(199, 25, 162, 335) );
SharingComp2->setSizePolicy( Qt::SizePolicy(5, 3, 0, 0, SharingComp2->sizePolicy()->hasHeightForWidth()) );
Comp2ShLabel = Qt::Label(SharingComp2, "Comp2ShLabel");
Comp2ShLabel->setGeometry( Qt::Rect(2, 30, 185, 20) );
Comp2ShLabel->setPaletteBackgroundColor( Qt::Color(255, 255, 127) );
- my $LayoutWidget_4 = Qt::Widget(SharingComp2, '$LayoutWidget_4');
- $LayoutWidget_4->setGeometry( Qt::Rect(20, 70, 81, 190) );
- my $layoutComp2 = Qt::VBoxLayout($LayoutWidget_4, 11, 6, '$layoutComp2');
+ my $LayoutWidget_3 = Qt::Widget(SharingComp2, '$LayoutWidget_3');
+ $LayoutWidget_3->setGeometry( Qt::Rect(40, 60, 81, 266) );
+ my $layout13 = Qt::VBoxLayout($LayoutWidget_3, 0, 0, '$layout13');
- ShParam_2_1 = Qt::CheckBox($LayoutWidget_4, "ShParam_2_1");
- $layoutComp2->addWidget(ShParam_2_1);
+ ShParam_2_1 = Qt::CheckBox($LayoutWidget_3, "ShParam_2_1");
+ $layout13->addWidget(ShParam_2_1);
- ShParam_2_2 = Qt::CheckBox($LayoutWidget_4, "ShParam_2_2");
- $layoutComp2->addWidget(ShParam_2_2);
+ ShParam_2_2 = Qt::CheckBox($LayoutWidget_3, "ShParam_2_2");
+ $layout13->addWidget(ShParam_2_2);
- ShParam_2_3 = Qt::CheckBox($LayoutWidget_4, "ShParam_2_3");
- $layoutComp2->addWidget(ShParam_2_3);
+ ShParam_2_3 = Qt::CheckBox($LayoutWidget_3, "ShParam_2_3");
+ $layout13->addWidget(ShParam_2_3);
- ShParam_2_4 = Qt::CheckBox($LayoutWidget_4, "ShParam_2_4");
- $layoutComp2->addWidget(ShParam_2_4);
+ ShParam_2_4 = Qt::CheckBox($LayoutWidget_3, "ShParam_2_4");
+ $layout13->addWidget(ShParam_2_4);
- ShParam_2_5 = Qt::CheckBox($LayoutWidget_4, "ShParam_2_5");
- $layoutComp2->addWidget(ShParam_2_5);
- $layoutShComp->addWidget(SharingComp2);
+ ShParam_2_5 = Qt::CheckBox($LayoutWidget_3, "ShParam_2_5");
+ $layout13->addWidget(ShParam_2_5);
- SharingComp3 = Qt::ButtonGroup($LayoutWidget_2, "SharingComp3");
+ ShParam_2_6 = Qt::CheckBox($LayoutWidget_3, "ShParam_2_6");
+ ShParam_2_6->setEnabled( 0 );
+ ShParam_2_6->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_2_6->setTristate( 0 );
+ $layout13->addWidget(ShParam_2_6);
+
+ ShParam_2_7 = Qt::CheckBox($LayoutWidget_3, "ShParam_2_7");
+ ShParam_2_7->setEnabled( 0 );
+ ShParam_2_7->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_2_7->setTristate( 0 );
+ $layout13->addWidget(ShParam_2_7);
+
+ ShParam_2_8 = Qt::CheckBox($LayoutWidget_3, "ShParam_2_8");
+ ShParam_2_8->setEnabled( 0 );
+ ShParam_2_8->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_2_8->setTristate( 0 );
+ $layout13->addWidget(ShParam_2_8);
+
+ ShParam_2_9 = Qt::CheckBox($LayoutWidget_3, "ShParam_2_9");
+ ShParam_2_9->setEnabled( 0 );
+ ShParam_2_9->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_2_9->setTristate( 0 );
+ $layout13->addWidget(ShParam_2_9);
+
+ SharingComp3 = Qt::ButtonGroup(buttonGroupSharing, "SharingComp3");
SharingComp3->setEnabled( 0 );
+ SharingComp3->setGeometry( Qt::Rect(367, 25, 162, 335) );
SharingComp3->setSizePolicy( Qt::SizePolicy(5, 3, 0, 0, SharingComp3->sizePolicy()->hasHeightForWidth()) );
SharingComp3->setAlignment( int(&Qt::ButtonGroup::AlignJustify | &Qt::ButtonGroup::AlignVCenter) );
@@ -719,25 +775,48 @@ sub NEW
Comp3ShLabel->setGeometry( Qt::Rect(2, 30, 185, 20) );
Comp3ShLabel->setPaletteBackgroundColor( Qt::Color(255, 255, 127) );
- my $LayoutWidget_5 = Qt::Widget(SharingComp3, '$LayoutWidget_5');
- $LayoutWidget_5->setGeometry( Qt::Rect(30, 70, 81, 190) );
- my $layoutComp3 = Qt::VBoxLayout($LayoutWidget_5, 11, 6, '$layoutComp3');
+ my $LayoutWidget_4 = Qt::Widget(SharingComp3, '$LayoutWidget_4');
+ $LayoutWidget_4->setGeometry( Qt::Rect(41, 58, 81, 266) );
+ my $layout15 = Qt::VBoxLayout($LayoutWidget_4, 11, 6, '$layout15');
- ShParam_3_1 = Qt::CheckBox($LayoutWidget_5, "ShParam_3_1");
- $layoutComp3->addWidget(ShParam_3_1);
+ ShParam_3_1 = Qt::CheckBox($LayoutWidget_4, "ShParam_3_1");
+ $layout15->addWidget(ShParam_3_1);
- ShParam_3_2 = Qt::CheckBox($LayoutWidget_5, "ShParam_3_2");
- $layoutComp3->addWidget(ShParam_3_2);
+ ShParam_3_2 = Qt::CheckBox($LayoutWidget_4, "ShParam_3_2");
+ $layout15->addWidget(ShParam_3_2);
- ShParam_3_3 = Qt::CheckBox($LayoutWidget_5, "ShParam_3_3");
- $layoutComp3->addWidget(ShParam_3_3);
+ ShParam_3_3 = Qt::CheckBox($LayoutWidget_4, "ShParam_3_3");
+ $layout15->addWidget(ShParam_3_3);
- ShParam_3_4 = Qt::CheckBox($LayoutWidget_5, "ShParam_3_4");
- $layoutComp3->addWidget(ShParam_3_4);
+ ShParam_3_4 = Qt::CheckBox($LayoutWidget_4, "ShParam_3_4");
+ $layout15->addWidget(ShParam_3_4);
- ShParam_3_5 = Qt::CheckBox($LayoutWidget_5, "ShParam_3_5");
- $layoutComp3->addWidget(ShParam_3_5);
- $layoutShComp->addWidget(SharingComp3);
+ ShParam_3_5 = Qt::CheckBox($LayoutWidget_4, "ShParam_3_5");
+ $layout15->addWidget(ShParam_3_5);
+
+ ShParam_3_6 = Qt::CheckBox($LayoutWidget_4, "ShParam_3_6");
+ ShParam_3_6->setEnabled( 0 );
+ ShParam_3_6->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_3_6->setTristate( 0 );
+ $layout15->addWidget(ShParam_3_6);
+
+ ShParam_3_7 = Qt::CheckBox($LayoutWidget_4, "ShParam_3_7");
+ ShParam_3_7->setEnabled( 0 );
+ ShParam_3_7->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_3_7->setTristate( 0 );
+ $layout15->addWidget(ShParam_3_7);
+
+ ShParam_3_8 = Qt::CheckBox($LayoutWidget_4, "ShParam_3_8");
+ ShParam_3_8->setEnabled( 0 );
+ ShParam_3_8->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_3_8->setTristate( 0 );
+ $layout15->addWidget(ShParam_3_8);
+
+ ShParam_3_9 = Qt::CheckBox($LayoutWidget_4, "ShParam_3_9");
+ ShParam_3_9->setEnabled( 0 );
+ ShParam_3_9->setPaletteBackgroundColor( Qt::Color(234, 233, 232) );
+ ShParam_3_9->setTristate( 0 );
+ $layout15->addWidget(ShParam_3_9);
musrfit_tabs->insertTab( SharingPahe, "" );
InitializationPage = Qt::Widget(musrfit_tabs, "InitializationPage");
@@ -874,7 +953,7 @@ sub NEW
MenuBar= Qt::MenuBar( this, "MenuBar");
MenuBar->setEnabled( 1 );
- MenuBar->setGeometry( Qt::Rect(0, 0, 567, 27) );
+ MenuBar->setGeometry( Qt::Rect(0, 0, 570, 27) );
fileMenu = Qt::PopupMenu( this );
fileOpenAction->addTo( fileMenu );
@@ -910,12 +989,11 @@ sub NEW
MenuBar->insertSeparator( 7 );
languageChange();
- my $resize = Qt::Size(567, 490);
+ my $resize = Qt::Size(570, 490);
$resize = $resize->expandedTo(minimumSizeHint());
resize( $resize );
clearWState( &Qt::WState_Polished );
- Qt::Object::connect(musrfit_tabs, SIGNAL "selected(const QString&)", this, SLOT "TabChanged()");
Qt::Object::connect(helpAboutAction, SIGNAL "activated()", this, SLOT "helpAbout()");
Qt::Object::connect(helpContentsAction, SIGNAL "activated()", this, SLOT "helpContents()");
Qt::Object::connect(helpIndexAction, SIGNAL "activated()", this, SLOT "helpIndex()");
@@ -928,10 +1006,10 @@ sub NEW
Qt::Object::connect(filePrintAction, SIGNAL "activated()", this, SLOT "filePrint()");
Qt::Object::connect(fileSaveAction, SIGNAL "activated()", this, SLOT "fileSave()");
Qt::Object::connect(fileOpenAction, SIGNAL "activated()", this, SLOT "fileOpen()");
- Qt::Object::connect(fileNewAction, SIGNAL "activated()", this, SLOT "fileNew()");
+ 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 "UpdeateTable()");
- Qt::Object::connect(fileChangeDirAction, SIGNAL "activated()", this, SLOT "fileChangeDir()");
setTabOrder(musrfit_tabs, TITLE);
setTabOrder(TITLE, FILENAME);
@@ -1063,18 +1141,22 @@ sub languageChange
FitAsyTypeLabel->setText( trUtf8("Fit type") );
FitAsyType->clear();
FitAsyType->insertItem( trUtf8("Asymmetry") );
- FitAsyType->insertItem( trUtf8("Single Histogram") );
+ FitAsyType->insertItem( trUtf8("SingleHist") );
LRBFLabel->setText( trUtf8("Histograms list") );
LRBF->setText( trUtf8("1,3") );
musrfit_tabs->changeTab( RUNSPage, trUtf8("RUNS") );
buttonGroupSharing->setTitle( trUtf8("Shared Parameters") );
SharingComp1->setTitle( trUtf8("1st Component") );
+ Comp1ShLabel->setText( trUtf8("FitType1") );
ShParam_1_1->setText( trUtf8("Param1") );
ShParam_1_2->setText( trUtf8("Param2") );
ShParam_1_3->setText( trUtf8("Param3") );
ShParam_1_4->setText( trUtf8("Param4") );
ShParam_1_5->setText( trUtf8("Param5") );
- Comp1ShLabel->setText( trUtf8("FitType1") );
+ ShParam_1_6->setText( trUtf8("Param6") );
+ ShParam_1_7->setText( trUtf8("Param7") );
+ ShParam_1_8->setText( trUtf8("Param8") );
+ ShParam_1_9->setText( trUtf8("Param9") );
SharingComp2->setTitle( trUtf8("2nd Component") );
Comp2ShLabel->setText( trUtf8("FitType2") );
ShParam_2_1->setText( trUtf8("Param1") );
@@ -1082,6 +1164,10 @@ sub languageChange
ShParam_2_3->setText( trUtf8("Param3") );
ShParam_2_4->setText( trUtf8("Param4") );
ShParam_2_5->setText( trUtf8("Param5") );
+ ShParam_2_6->setText( trUtf8("Param6") );
+ ShParam_2_7->setText( trUtf8("Param7") );
+ ShParam_2_8->setText( trUtf8("Param8") );
+ ShParam_2_9->setText( trUtf8("Param9") );
SharingComp3->setTitle( trUtf8("3rd Component") );
Comp3ShLabel->setText( trUtf8("FitType3") );
ShParam_3_1->setText( trUtf8("Param1") );
@@ -1089,6 +1175,10 @@ sub languageChange
ShParam_3_3->setText( trUtf8("Param3") );
ShParam_3_4->setText( trUtf8("Param4") );
ShParam_3_5->setText( trUtf8("Param5") );
+ ShParam_3_6->setText( trUtf8("Param6") );
+ ShParam_3_7->setText( trUtf8("Param7") );
+ ShParam_3_8->setText( trUtf8("Param8") );
+ ShParam_3_9->setText( trUtf8("Param9") );
musrfit_tabs->changeTab( SharingPahe, trUtf8("Sharing") );
InitParamTable->horizontalHeader()->setLabel( 0, trUtf8("Value") );
InitParamTable->horizontalHeader()->setLabel( 1, trUtf8("Error") );
@@ -1113,7 +1203,7 @@ sub languageChange
fileOpenAction->setAccel( Qt::KeySequence( trUtf8("Ctrl+O") ) );
fileSaveAction->setText( trUtf8("&Save MSR") );
fileSaveAction->setMenuText( trUtf8("&Save MSR") );
- fileSaveAction->setStatusTip( trUtf8("&Save MSRave") );
+ fileSaveAction->setStatusTip( trUtf8("&Save MSR") );
fileSaveAction->setAccel( Qt::KeySequence( trUtf8("Ctrl+S") ) );
fileSaveAsAction->setText( trUtf8("Save MSR &As...") );
fileSaveAsAction->setMenuText( trUtf8("Save MSR &As...") );
@@ -1160,8 +1250,9 @@ sub languageChange
FileExistCheck->setWhatsThis( trUtf8("Enable/Disable checking for MSR files.") );
MaualFile->setText( trUtf8("Maual file selection") );
MaualFile->setMenuText( trUtf8("Maual file selection") );
- fileChangeDirAction->setText( trUtf8("Change dir") );
- fileChangeDirAction->setMenuText( trUtf8("Change dir") );
+ fileChangeDirAction->setText( trUtf8("&Change dir") );
+ fileChangeDirAction->setMenuText( trUtf8("&Change dir") );
+ fileChangeDirAction->setAccel( Qt::KeySequence( trUtf8("Ctrl+C") ) );
toolBar->setLabel( trUtf8("Tools") );
MenuBar->findItem( 3 )->setText( trUtf8("&File") );
MenuBar->findItem( 4 )->setText( trUtf8("&Edit") );
@@ -1170,11 +1261,6 @@ sub languageChange
}
-sub fileNew
-{
- print "MuSRFitform->fileNew(): Not implemented yet.\n";
-}
-
sub fileOpen
{
@@ -1321,6 +1407,7 @@ sub CreateAllInput
$All{"LRBF"} = LRBF->text;
$All{"RunNumbers"} =~ s/[\ \.\~\/\&\*\[\;\>\<\^\$\(\)\`\|\]\'\@]/,/g;
my @RUNS = split( /,/, $All{"RunNumbers"} );
+ my @Hists = split(/,/, $All{"LRBF"} );
# Construct fittypes that can be understood by MSR.pm
my %FTs=(0,"Exponential",
@@ -1400,12 +1487,17 @@ sub CreateAllInput
# Change state/label of parameters
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 ( $#FitTypes != 0 && ( $Param ne "Alpha" && $Param ne "N0" && $Param ne "NBg" ) ){
$Param = join( "", $Param, "_", $Component);
}
# Is there any point of sharing, multiple runs?
- if ( $#RUNS == 0 ) {
+ if ( $#RUNS == 0 && $All{"FitAsyType"} eq "Asymmetry") {
+ $Shared = 1;
+ }
+ elsif ( $#RUNS == 0 && $#Hists == 0 && $All{"FitAsyType"} eq "SingleHist" ) {
$Shared = 1;
} else {
# Check if shared or not, construct name of checkbox, find its handle and then
@@ -1467,7 +1559,12 @@ sub CallMSRCreate
use MSR;
my %All=CreateAllInput();
if ($All{"RunNumbers"} ne "") {
- my ($Full_T_Block,$Paramcomp_ref)= MSR::CreateMSR(\%All);
+ if ( $All{"FitAsyType"} eq "Asymmetry" ) {
+ my ($Full_T_Block,$Paramcomp_ref)= MSR::CreateMSR(\%All);
+ }
+ elsif ( $All{"FitAsyType"} eq "SingleHist" ) {
+ my ($Full_T_Block,$Paramcomp_ref)= MSR::CreateMSRSingleHist(\%All);
+ }
UpdateMSRFileInitTable();
}
@@ -1557,7 +1654,7 @@ sub ActivateShComp
$CompShL->setText($All{"FitType$Component"});
# Change state/label of parameters
- for (my $i=1; $i<=5;$i++) {
+ for (my $i=1; $i<=9;$i++) {
my $ParamChkBx="ShParam_".$Component."_".$i;
my $ChkBx = child($ParamChkBx);
if ($Params[$i-1] ne "") {
@@ -1741,8 +1838,11 @@ sub TabChanged
if ($All{"RunNumbers"} ne "" && $SlectedTab==4 && $FileExistCheck==1) {
if (-e $FILENAME) {
# Warning: MSR file exists
- my $Warning = "Warning: MSR file $FILENAME Already exists!\nChange name or backup file if you do not want to loose it.";
+ my $Warning = "Warning: MSR file $FILENAME Already exists!\nIf you continue it will overwriten.";
my $WarningWindow = Qt::MessageBox::information( this, "Warning",$Warning);
+# my $Answer= Qt::MessageBox::warning( this, "Warning",$Warning, "&No", "&Yes", undef, 1,1);
+# $Answer =1,0 for yes and no
+# print "Answer=$Answer\n";
}
}
diff --git a/src/external/MuSRFitGUI/MuSRFit.ui b/src/external/MuSRFitGUI/MuSRFit.ui
index a7c78a51..104a328c 100755
--- a/src/external/MuSRFitGUI/MuSRFit.ui
+++ b/src/external/MuSRFitGUI/MuSRFit.ui
@@ -8,7 +8,7 @@
0
0
- 567
+ 570
490
@@ -731,7 +731,7 @@
-
- Single Histogram
+ SingleHist
@@ -803,342 +803,612 @@
false
-
+
- layoutShComp
+ SharingComp1
+
+
+ false
- 30
- 50
- 500
- 311
+ 31
+ 25
+ 162
+ 335
-
+
+
+ 5
+ 3
+ 0
+ 0
+
+
+
+ 1st Component
+
+
+ AlignLeft
+
+
- unnamed
+ Comp1ShLabel
-
+
+
+ 2
+ 30
+ 185
+ 20
+
+
+
+
+ 255
+ 255
+ 127
+
+
+
+ FitType1
+
+
+
+
+ layout14
+
+
+
+ 40
+ 60
+ 81
+ 266
+
+
+
- SharingComp1
+ unnamed
-
- false
+
+ 0
-
-
- 5
- 3
- 0
- 0
-
+
+ 0
-
- 1st Component
-
-
- AlignLeft
-
-
+
- layoutComp1
+ ShParam_1_1
-
-
- 30
- 70
- 81
- 190
-
+
+ Param1
-
-
- unnamed
-
-
-
- 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
-
-
-
-
+
- Comp1ShLabel
+ ShParam_1_2
-
-
- 2
- 30
- 185
- 20
-
+
+ Param2
+
+
+
+
+ ShParam_1_3
+
+
+ Param3
+
+
+
+
+ ShParam_1_4
+
+
+ Param4
+
+
+
+
+ ShParam_1_5
+
+
+ false
- 255
- 255
- 127
+ 234
+ 233
+ 232
- FitType1
+ Param5
+
+
+ false
-
-
-
- SharingComp2
-
-
- false
-
-
-
- 5
- 3
- 0
- 0
-
-
-
- 2nd Component
-
-
+
- Comp2ShLabel
+ ShParam_1_6
-
-
- 2
- 30
- 185
- 20
-
+
+ false
- 255
- 255
- 127
+ 234
+ 233
+ 232
- FitType2
+ Param6
+
+
+ false
-
+
- layoutComp2
+ ShParam_1_7
-
-
- 20
- 70
- 81
- 190
-
-
-
-
- unnamed
-
-
-
- ShParam_2_1
-
-
- Param1
-
-
-
-
- ShParam_2_2
-
-
- Param2
-
-
-
-
- ShParam_2_3
-
-
- Param3
-
-
-
-
- ShParam_2_4
-
-
- Param4
-
-
-
-
- ShParam_2_5
-
-
- Param5
-
-
-
-
-
-
-
- SharingComp3
-
-
- false
-
-
-
- 5
- 3
- 0
- 0
-
-
-
- 3rd Component
-
-
- AlignJustify|AlignVCenter
-
-
-
- Comp3ShLabel
-
-
-
- 2
- 30
- 185
- 20
-
+
+ false
- 255
- 255
- 127
+ 234
+ 233
+ 232
- FitType3
+ Param7
+
+
+ false
-
+
- layoutComp3
+ ShParam_1_8
-
-
- 30
- 70
- 81
- 190
-
+
+ false
+
+
+
+ 234
+ 233
+ 232
+
+
+
+ Param8
+
+
+ false
-
-
- unnamed
-
-
-
- ShParam_3_1
-
-
- Param1
-
-
-
-
- ShParam_3_2
-
-
- Param2
-
-
-
-
- ShParam_3_3
-
-
- Param3
-
-
-
-
- ShParam_3_4
-
-
- Param4
-
-
-
-
- ShParam_3_5
-
-
- Param5
-
-
-
-
-
+
+
+ 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
+
+
+
+
+ unnamed
+
+
+ 0
+
+
+ 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
+
+
+
+
@@ -1458,7 +1728,7 @@
0
0
- 567
+ 570
27
@@ -1558,7 +1828,7 @@
&Save MSR
- &Save MSRave
+ &Save MSR
Ctrl+S
@@ -1838,10 +2108,13 @@
fileChangeDirAction
- Change dir
+ &Change dir
- Change dir
+ &Change dir
+
+
+ Ctrl+C
@@ -1881,12 +2154,6 @@
-
- musrfit_tabs
- selected(const QString&)
- MuSRFitform
- TabChanged()
-
helpAboutAction
activated()
@@ -1960,10 +2227,16 @@
fileOpen()
- fileNewAction
+ fileChangeDirAction
activated()
MuSRFitform
- fileNew()
+ fileChangeDir()
+
+
+ musrfit_tabs
+ selected(const QString&)
+ MuSRFitform
+ TabChanged()
go
@@ -1977,12 +2250,6 @@
MuSRFitform
UpdeateTable()
-
- fileChangeDirAction
- activated()
- MuSRFitform
- fileChangeDir()
-
musrfit_tabs
@@ -2021,7 +2288,6 @@
MuSRFit.ui.h
- fileNew()
fileOpen()
fileSave()
fileChangeDir()
diff --git a/src/external/MuSRFitGUI/MuSRFit.ui.h b/src/external/MuSRFitGUI/MuSRFit.ui.h
index 6a6e0ef8..d35d095e 100755
--- a/src/external/MuSRFitGUI/MuSRFit.ui.h
+++ b/src/external/MuSRFitGUI/MuSRFit.ui.h
@@ -28,10 +28,6 @@
# Copyright 2009 by Zaher Salman and the LEM Group.
#
-void Form1::fileNew()
-{
-}
-
void Form1::fileOpen()
{
my $file=Qt::FileDialog::getOpenFileName(
@@ -177,6 +173,7 @@ void MuSRFitform::CreateAllInput()
$All{"LRBF"} = LRBF->text;
$All{"RunNumbers"} =~ s/[\ \.\~\/\&\*\[\;\>\<\^\$\(\)\`\|\]\'\@]/,/g;
my @RUNS = split( /,/, $All{"RunNumbers"} );
+ my @Hists = split(/,/, $All{"LRBF"} );
# Construct fittypes that can be understood by MSR.pm
my %FTs=(0,"Exponential",
@@ -256,12 +253,17 @@ void MuSRFitform::CreateAllInput()
# Change state/label of parameters
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 ( $#FitTypes != 0 && ( $Param ne "Alpha" && $Param ne "N0" && $Param ne "NBg" ) ){
$Param = join( "", $Param, "_", $Component);
}
# Is there any point of sharing, multiple runs?
- if ( $#RUNS == 0 ) {
+ if ( $#RUNS == 0 && $All{"FitAsyType"} eq "Asymmetry") {
+ $Shared = 1;
+ }
+ elsif ( $#RUNS == 0 && $#Hists == 0 && $All{"FitAsyType"} eq "SingleHist" ) {
$Shared = 1;
} else {
# Check if shared or not, construct name of checkbox, find its handle and then
@@ -321,7 +323,12 @@ void MuSRFitform::CallMSRCreate()
use MSR;
my %All=CreateAllInput();
if ($All{"RunNumbers"} ne "") {
- my ($Full_T_Block,$Paramcomp_ref)= MSR::CreateMSR(\%All);
+ if ( $All{"FitAsyType"} eq "Asymmetry" ) {
+ my ($Full_T_Block,$Paramcomp_ref)= MSR::CreateMSR(\%All);
+ }
+ elsif ( $All{"FitAsyType"} eq "SingleHist" ) {
+ my ($Full_T_Block,$Paramcomp_ref)= MSR::CreateMSRSingleHist(\%All);
+ }
UpdateMSRFileInitTable();
}
}
@@ -407,7 +414,7 @@ void MuSRFitform::ActivateShComp()
$CompShL->setText($All{"FitType$Component"});
# Change state/label of parameters
- for (my $i=1; $i<=5;$i++) {
+ for (my $i=1; $i<=9;$i++) {
my $ParamChkBx="ShParam_".$Component."_".$i;
my $ChkBx = child($ParamChkBx);
if ($Params[$i-1] ne "") {
@@ -587,8 +594,11 @@ void MuSRFitform::TabChanged()
if ($All{"RunNumbers"} ne "" && $SlectedTab==4 && $FileExistCheck==1) {
if (-e $FILENAME) {
# Warning: MSR file exists
- my $Warning = "Warning: MSR file $FILENAME Already exists!\nChange name or backup file if you do not want to loose it.";
+ my $Warning = "Warning: MSR file $FILENAME Already exists!\nIf you continue it will overwriten.";
my $WarningWindow = Qt::MessageBox::information( this, "Warning",$Warning);
+# my $Answer= Qt::MessageBox::warning( this, "Warning",$Warning, "&No", "&Yes", undef, 1,1);
+# $Answer =1,0 for yes and no
+# print "Answer=$Answer\n";
}
}