Skip to content

Commit

Permalink
Added the option to ignore invalid data to fit browser. Re #7182.
Browse files Browse the repository at this point in the history
  • Loading branch information
mantid-roman committed Jun 25, 2013
1 parent 3a18cc7 commit ac202b6
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,10 @@ class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS FitPropertyBrowser: public QDockWidget,
void setOutputName(const std::string&);
/// Get the minimizer
std::string minimizer(bool withProperties = false)const;
/// Get the ignore invalid data option
bool ignoreInvalidData() const;
/// Set the ignore invalid data option
void setIgnoreInvalidData(bool on);
/// Get the cost function
std::string costFunction()const;

Expand Down Expand Up @@ -351,6 +355,7 @@ private slots:
QtProperty *m_endX;
QtProperty *m_output;
QtProperty *m_minimizer;
QtProperty *m_ignoreInvalidData;
QtProperty *m_costFunction;
QtProperty *m_logValue;
QtProperty *m_plotDiff;
Expand Down
20 changes: 19 additions & 1 deletion Code/Mantid/MantidQt/MantidWidgets/src/FitPropertyBrowser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,10 @@ void FitPropertyBrowser::init()
<< "Conjugate gradient (Polak-Ribiere imp.)"
<< "BFGS"
<< "Damping";

m_ignoreInvalidData = m_boolManager->addProperty("Ignore invalid data");
setIgnoreInvalidData( settings.value("Ignore invalid data",false).toBool() );

m_enumManager->setEnumNames(m_minimizer, m_minimizers);
m_costFunction = m_enumManager->addProperty("Cost function");
m_costFunctions << "Least squares";
Expand Down Expand Up @@ -239,6 +243,7 @@ void FitPropertyBrowser::init()
// Include minimiser and plot difference under a different settings section.
settingsGroup->addSubProperty(m_output);
settingsGroup->addSubProperty(m_minimizer);
settingsGroup->addSubProperty(m_ignoreInvalidData);
settingsGroup->addSubProperty(m_costFunction);
settingsGroup->addSubProperty(m_plotDiff);
settingsGroup->addSubProperty(m_plotCompositeMembers);
Expand Down Expand Up @@ -1099,6 +1104,18 @@ std::string FitPropertyBrowser::minimizer(bool withProperties)const
return minimStr.toStdString();
}

/// Get the ignore invalid data option
bool FitPropertyBrowser::ignoreInvalidData() const
{
return m_boolManager->value( m_ignoreInvalidData );
}

/// Set the ignore invalid data option
void FitPropertyBrowser::setIgnoreInvalidData(bool on)
{
m_boolManager->setValue( m_ignoreInvalidData, on );
}

/// Get the cost function
std::string FitPropertyBrowser::costFunction()const
{
Expand Down Expand Up @@ -1180,7 +1197,7 @@ void FitPropertyBrowser::boolChanged(QtProperty* prop)
{
if ( ! m_changeSlotsEnabled ) return;

if (prop == m_plotDiff || prop == m_plotCompositeMembers)
if ( prop == m_plotDiff || prop == m_plotCompositeMembers || prop == m_ignoreInvalidData )
{
QSettings settings;
settings.beginGroup("Mantid/FitBrowser");
Expand Down Expand Up @@ -1520,6 +1537,7 @@ void FitPropertyBrowser::doFit(int maxIterations)
alg->setProperty("EndX",endX());
alg->setPropertyValue("Output",outputName());
alg->setPropertyValue("Minimizer",minimizer(true));
alg->setProperty("IgnoreInvalidData",ignoreInvalidData());
alg->setPropertyValue("CostFunction",costFunction());
alg->setProperty( "MaxIterations", maxIterations );
// Always output each composite function but not necessarily plot it
Expand Down

0 comments on commit ac202b6

Please sign in to comment.