Skip to content

Commit

Permalink
Refs #8808 Add sample log for both types of constraint.
Browse files Browse the repository at this point in the history
  • Loading branch information
Samuel Jackson committed Feb 11, 2014
1 parent 7abed5f commit 64308f1
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 12 deletions.
14 changes: 8 additions & 6 deletions Code/Mantid/MantidQt/CustomInterfaces/src/FuryFit.cpp
Expand Up @@ -113,7 +113,6 @@ namespace IDA
uiForm().furyfit_ckPlotGuess->setChecked(false);

const int fitType = uiForm().furyfit_cbFitType->currentIndex();

if ( uiForm().furyfit_ckConstrainIntensities->isChecked() )
{
switch ( fitType )
Expand Down Expand Up @@ -539,7 +538,8 @@ namespace IDA

// Function Ties
func->tie("f0.A1", "0");
if ( uiForm().furyfit_ckConstrainIntensities->isChecked() )
const bool constrainIntensities = uiForm().furyfit_ckConstrainIntensities->isChecked();
if ( constrainIntensities )
{
switch ( uiForm().furyfit_cbFitType->currentIndex() )
{
Expand All @@ -563,8 +563,10 @@ namespace IDA
"ftype = '" + fitTypeString() + "'\n"
"startx = " + m_ffProp["StartX"]->valueText() + "\n"
"endx = " + m_ffProp["EndX"]->valueText() + "\n"
"plot = '" + uiForm().furyfit_cbPlotOutput->currentText() + "'\n"
"save = ";
"plot = '" + uiForm().furyfit_cbPlotOutput->currentText() + "'\n";

if (constrainIntensities) pyInput += "constrain_intens = True \n";
else pyInput += "constrain_intens = False \n";

if ( uiForm().furyfit_ckVerbose->isChecked() ) pyInput += "verbose = True\n";
else pyInput += "verbose = False\n";
Expand All @@ -574,11 +576,11 @@ namespace IDA

if (!constrainBeta)
{
pyInput += "furyfitSeq(input, func, ftype, startx, endx, save, plot, verbose)\n";
pyInput += "furyfitSeq(input, func, ftype, startx, endx, constrain_intens, Save=save, Plot=plot, Verbose=verbose)\n";
}
else
{
pyInput += "furyfitMult(input, func, ftype, startx, endx, save, plot, verbose)\n";
pyInput += "furyfitMult(input, func, ftype, startx, endx, constrain_intens, Save=save, Plot=plot, Verbose=verbose)\n";
}

QString pyOutput = runPythonCode(pyInput);
Expand Down
14 changes: 8 additions & 6 deletions Code/Mantid/scripts/Inelastic/IndirectDataAnalysis.py
Expand Up @@ -802,7 +802,7 @@ def furyfitPlotSeq(inputWS, Plot):
plotSpecs.append(i)
mp.plotSpectrum(inputWS, plotSpecs, True)

def furyfitSeq(inputWS, func, ftype, startx, endx, Save, Plot, Verbose=False):
def furyfitSeq(inputWS, func, ftype, startx, endx, intensities_constrined=False, Save=False, Plot='None', Verbose=False):
StartTime('FuryFit')

workdir = config['defaultsave.directory']
Expand Down Expand Up @@ -833,7 +833,7 @@ def furyfitSeq(inputWS, func, ftype, startx, endx, Save, Plot, Verbose=False):
wsnames = [fitWS, outNm+'_Result']
params = [startx, endx, fitType]
for ws in wsnames:
furyAddSampleLogs(inputWS, ws, params)
furyAddSampleLogs(inputWS, ws, params, intensities_constrined=intensities_constrined)

if Save:
#save workspace to default directory
Expand All @@ -843,6 +843,7 @@ def furyfitSeq(inputWS, func, ftype, startx, endx, Save, Plot, Verbose=False):
if Verbose:
logger.notice(ws + ' output to file : '+fpath)

print Plot
if ( Plot != 'None' ):
furyfitPlotSeq(fitWS, Plot)

Expand All @@ -851,12 +852,13 @@ def furyfitSeq(inputWS, func, ftype, startx, endx, Save, Plot, Verbose=False):
return mtd[fitWS]

#Copy logs from sample and add some addtional ones
def furyAddSampleLogs(inputWs, ws, params, beta_constrained=False):
def furyAddSampleLogs(inputWs, ws, params, intensities_constrined=False, beta_constrained=False):
startx, endx, fitType = params
CopyLogs(InputWorkspace=inputWs, OutputWorkspace=ws)
AddSampleLog(Workspace=ws, LogName="start_x", LogType="Number", LogText=str(startx))
AddSampleLog(Workspace=ws, LogName="end_x", LogType="Number", LogText=str(endx))
AddSampleLog(Workspace=ws, LogName="fit_type", LogType="String", LogText=fitType)
AddSampleLog(Workspace=ws, LogName="intensities_constrined", LogType="String", LogText=str(intensities_constrined))
AddSampleLog(Workspace=ws, LogName="beta_constrained", LogType="String", LogText=str(beta_constrained))

def furyfitMultParsToWS(Table, Data):
Expand Down Expand Up @@ -970,7 +972,7 @@ def getFuryMultResult(inputWS, outNm, function, Verbose):
group += ',' + fout
GroupWorkspaces(InputWorkspaces=group,OutputWorkspace=fitWS[:-1])

def furyfitMult(inputWS, function, ftype, startx, endx, Save, Plot, Verbose=False):
def furyfitMult(inputWS, function, ftype, startx, endx, intensities_constrined=False, Save=False, Plot='None', Verbose=False):
StartTime('FuryFit Mult')
workdir = config['defaultsave.directory']
option = ftype[:-2]
Expand Down Expand Up @@ -1000,8 +1002,8 @@ def furyfitMult(inputWS, function, ftype, startx, endx, Save, Plot, Verbose=Fals
getFuryMultResult(inputWS, outNm, function, Verbose)

params = [startx, endx, ftype]
furyAddSampleLogs(inputWS, outWS, params, True)
furyAddSampleLogs(inputWS, result_workspace, params, True)
furyAddSampleLogs(inputWS, outWS, params, intensities_constrined=intensities_constrined, beta_constrained=True)
furyAddSampleLogs(inputWS, result_workspace, params, intensities_constrined=intensities_constrined, beta_constrained=True)

if Save:
opath = os.path.join(workdir, outWS+'.nxs') # path name for nxs file
Expand Down

0 comments on commit 64308f1

Please sign in to comment.