diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectDiffScan.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectDiffScan.py index 864777eb6e46d96b47d91df6605fba3b6bad3bc7..79e483befb71f7cb0857ec10cd71483f93572f0f 100644 --- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectDiffScan.py +++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectDiffScan.py @@ -4,6 +4,8 @@ from mantid.api import * from mantid.simpleapi import * from mantid import config +from IndirectCommon import formatRuns + class IndirectDiffScan(DataProcessorAlgorithm): _data_files = None @@ -78,7 +80,7 @@ class IndirectDiffScan(DataProcessorAlgorithm): process_prog = Progress(self, start=0.1, end=0.9, nreports=len(self._workspace_names)) process_prog.report("Running diffraction") scan_alg = self.createChildAlgorithm("ISISIndirectDiffractionReduction", 0.05, 0.95) - scan_alg.setProperty('InputFiles', self._data_files) + scan_alg.setProperty('InputFiles', formatRuns(self._data_files, self._instrument_name)) scan_alg.setProperty('ContainerFiles', self._can_files) scan_alg.setProperty('ContainerScaleFactor', self._can_scale) scan_alg.setProperty('CalFile', self._calib_file) diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/SofQWMomentsScan.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/SofQWMomentsScan.py index e5a3ed17c56c6f6302507e40a78f2391f69003ae..7e2d29bfbd4394106db18edc2a4ca5cd70fe3514 100644 --- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/SofQWMomentsScan.py +++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/SofQWMomentsScan.py @@ -6,6 +6,8 @@ from mantid import config import os import numpy as np +from IndirectCommon import formatRuns + class SofQWMomentsScan(DataProcessorAlgorithm): _data_files = None @@ -110,7 +112,7 @@ class SofQWMomentsScan(DataProcessorAlgorithm): progress.report('Energy transfer') scan_alg = self.createChildAlgorithm("ISISIndirectEnergyTransfer", 0.05, 0.95) - scan_alg.setProperty('InputFiles', self._data_files) + scan_alg.setProperty('InputFiles', formatRuns(self._data_files, self._instrument_name)) scan_alg.setProperty('SumFiles', self._sum_files) scan_alg.setProperty('LoadLogFiles', self._load_logs) scan_alg.setProperty('CalibrationWorkspace', self._calibration_ws) diff --git a/scripts/Inelastic/IndirectCommon.py b/scripts/Inelastic/IndirectCommon.py index 8272143fa72b61a967d8f395a9637ba4cf5700d6..8f316f01cec9ba06fb91c3ac53efbdb0ad902177 100644 --- a/scripts/Inelastic/IndirectCommon.py +++ b/scripts/Inelastic/IndirectCommon.py @@ -5,7 +5,6 @@ from six.moves import range import mantid.simpleapi as s_api from mantid import config, logger - import os.path import math import datetime @@ -522,3 +521,24 @@ def firstNonZero(data): for i in range(len(data)): if data[i] != 0: return i + + +def formatRuns(runs, instrument_name): + """ + :return: A list of runs prefixed with the given instrument name + """ + run_list = [] + for run in runs: + if '-' in run: + a, b = run.split('-') + run_list.extend(range(int(a), int(b) + 1)) + else: + try: + run_list.append(int(run)) + except: + # run already has instrument eg 'osi1000' + run_list.append(run) + for idx, run in enumerate(run_list): + if type(run) == int: + run_list[idx] = instrument_name + str(run) + return run_list