diff --git a/Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp b/Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp index baf17f78e250ac2d8e9c0cb1f8a65e85ff9df9dc..ba8168f87f5c91d70e57d83cace0f09521bb4d53 100644 --- a/Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp +++ b/Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp @@ -285,6 +285,7 @@ IAlgorithm_sptr createProcessIndirectFitParametersAlgorithm( const std::vector<std::string> ¶meterNames) { auto pifp = AlgorithmManager::Instance().create("ProcessIndirectFitParameters"); + pifp->setChild(true); pifp->setAlwaysStoreInADS(false); pifp->setProperty("InputWorkspace", parameterWorkspace); pifp->setProperty("ColumnX", "axis-1"); diff --git a/Framework/CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp b/Framework/CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp index d3d640f72fb04a8896f1d2e8f7cf56380df44e58..b23ca868ef4ee7f56c2b508a2b602f96ac804f08 100644 --- a/Framework/CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp +++ b/Framework/CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp @@ -170,6 +170,7 @@ IAlgorithm_sptr createProcessIndirectFitParametersAlgorithm( const std::vector<std::string> ¶meterNames) { auto pifp = AlgorithmManager::Instance().create("ProcessIndirectFitParameters"); + pifp->setChild(true); pifp->setAlwaysStoreInADS(false); pifp->setProperty("InputWorkspace", parameterWorkspace); pifp->setProperty("ColumnX", "axis-1"); @@ -179,12 +180,12 @@ IAlgorithm_sptr createProcessIndirectFitParametersAlgorithm( } ITableWorkspace_sptr transposeFitTable(ITableWorkspace_sptr table, - IFunction_sptr function, + const IFunction &function, const std::string &yAxisType) { auto transposed = WorkspaceFactory::Instance().createTable(); transposed->addColumn(yAxisType, "axis-1"); - auto parameters = function->getParameterNames(); + auto parameters = function.getParameterNames(); for (const auto ¶meter : parameters) { transposed->addColumn("double", parameter); transposed->addColumn("double", parameter + "_Err"); diff --git a/Framework/WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp b/Framework/WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp index 63b4466292b1472d02db8f26e5e6f155d3613e00..e345e8bebf637b54da71b5a349ab1f90b0a34b4f 100644 --- a/Framework/WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp +++ b/Framework/WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp @@ -92,9 +92,10 @@ std::vector<T> getColumnValues(Column const &column, std::size_t startRow, std::vector<double> getNumericColumnValuesOrIndices(Column const &column, std::size_t startRow, std::size_t endRow) { + auto const length = startRow >= endRow ? 1 + startRow - endRow : 0; if (column.isNumber()) return getColumnValues<double>(column, startRow, endRow); - return getIncrementingSequence(0.0, endRow - startRow + 1); + return getIncrementingSequence(0.0, length); } std::string getColumnName(Column_const_sptr column) { return column->name(); }