diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/Fury.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/Fury.cpp index f0f30f8741ea..f9b5fd8b0611 100644 --- a/Code/Mantid/MantidQt/CustomInterfaces/src/Fury.cpp +++ b/Code/Mantid/MantidQt/CustomInterfaces/src/Fury.cpp @@ -191,14 +191,34 @@ namespace IDA QString wsName = uiForm().fury_dsInput->getCurrentDataName(); QString resName = uiForm().fury_dsResInput->getCurrentDataName(); + if(wsName.isEmpty() || resName.isEmpty()) + return; double energyMin = m_dblManager->value(m_properties["ELow"]); double energyMax = m_dblManager->value(m_properties["EHigh"]); - long numBins = static_cast(m_dblManager->value(m_properties["SampleBinning"])); - if(wsName.isEmpty() || resName.isEmpty() || numBins == 0) + // Estimate number of SampleBinning according to whether the workspace has angles or momentum transfer + MatrixWorkspace_const_sptr workspace; + try + { + workspace = Mantid::API::AnalysisDataService::Instance().retrieveWS(wsName.toStdString()); + } + catch(Mantid::Kernel::Exception::NotFoundError&) + { + showMessageBox(QString("Unable to retrieve workspace: " + wsName)); + return; + } + long numBins = static_cast(m_dblManager->value(m_properties["SampleBinning"])); // Default value + const std::string unitID( workspace->getAxis(0)->unit()->unitID() ); + if( unitID == "MomentumTransfer") + { + numBins = 1; + } + + if(numBins == 0) return; + bool verbose = uiForm().fury_ckVerbose->isChecked(); IAlgorithm_sptr furyAlg = AlgorithmManager::Instance().create("Fury");