diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/SANSILLAutoProcess.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/SANSILLAutoProcess.py index 2ec4cc510de2b775bb77f5def5168448edeaeb83..a3a92c02a933efe688425ccc5061a90a38981d75 100644 --- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/SANSILLAutoProcess.py +++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/SANSILLAutoProcess.py @@ -392,14 +392,14 @@ class SANSILLAutoProcess(DataProcessorAlgorithm): else: self.log().information('Skipping empty token run.') + # rename to a user friendly naming scheme for i in range(len(outputSamples)): - ConvertToPointData(InputWorkspace=outputSamples[i], - OutputWorkspace=outputSamples[i]) suffix = self.createCustomSuffix(outputSamples[i]) RenameWorkspace(InputWorkspace=outputSamples[i], OutputWorkspace=outputSamples[i] + suffix) outputSamples[i] += suffix + # try to stitch automatically if (len(outputSamples) > 1 and self.getPropertyValue('OutputType') == 'I(Q)'): try: @@ -413,7 +413,18 @@ class SANSILLAutoProcess(DataProcessorAlgorithm): GroupWorkspaces(InputWorkspaces=outputSamples, OutputWorkspace=self.output) + self.setProperty('OutputWorkspace', mtd[self.output]) + + if outputWedges: + self.outputWedges(outputWedges) + + if self.output_sens: + self.outputSensitivity(sensitivity_outputs) + + if panel_output_groups: + self.outputPanels(panel_output_groups) + def outputWedges(self, outputWedges): # convert to point data and remove nan and 0 from wedges for i in range(self.dimensionality): for j in range(len(outputWedges[i])): @@ -443,34 +454,32 @@ class SANSILLAutoProcess(DataProcessorAlgorithm): inWs.append(stitched) except RuntimeError as re: self.log().warning("Unable to stitch automatically, consider " - "stitching manually: "+ str(re)) - GroupWorkspaces(InputWorkspaces=inWs, OutputWorkspace=self.output - + "_wedge_" + str(i + 1)) + "stitching manually: " + str(re)) + GroupWorkspaces(InputWorkspaces=inWs, + OutputWorkspace=self.output + "_wedge_" + str(i + 1)) - self.setProperty('OutputWorkspace', mtd[self.output]) - if self.output_sens: - if len(sensitivity_outputs) > 1: - GroupWorkspaces(InputWorkspaces=sensitivity_outputs, OutputWorkspace=self.output_sens) - if self.getProperty('SensitivityWithOffsets').value: - tmp_group_name = self.output_sens + '_group' - RenameWorkspace(InputWorkspace=self.output_sens, OutputWorkspace=tmp_group_name) - CalculateEfficiency(InputWorkspace=tmp_group_name, MergeGroup=True, OutputWorkspace=self.output_sens) - DeleteWorkspace(Workspace=tmp_group_name) - self.setProperty('SensitivityOutputWorkspace', mtd[self.output_sens]) - - # group panels - if panel_output_groups: - panelWs = [] - for groupName in panel_output_groups: - wsNames = mtd[groupName].getNames() - UnGroupWorkspace(InputWorkspace=groupName) - for ws in wsNames: - suffix = self.createCustomSuffix(ws) - RenameWorkspace(InputWorkspace=ws, - OutputWorkspace=ws + suffix) - panelWs.append(ws + suffix) - GroupWorkspaces(InputWorkspaces=panelWs, - OutputWorkspace=self.output_panels) + def outputSensitivity(self, sensitivity_outputs): + if len(sensitivity_outputs) > 1: + GroupWorkspaces(InputWorkspaces=sensitivity_outputs, OutputWorkspace=self.output_sens) + if self.getProperty('SensitivityWithOffsets').value: + tmp_group_name = self.output_sens + '_group' + RenameWorkspace(InputWorkspace=self.output_sens, OutputWorkspace=tmp_group_name) + CalculateEfficiency(InputWorkspace=tmp_group_name, MergeGroup=True, OutputWorkspace=self.output_sens) + DeleteWorkspace(Workspace=tmp_group_name) + self.setProperty('SensitivityOutputWorkspace', mtd[self.output_sens]) + + def outputPanels(self, panel_output_groups): + panelWs = [] + for groupName in panel_output_groups: + wsNames = mtd[groupName].getNames() + UnGroupWorkspace(InputWorkspace=groupName) + for ws in wsNames: + suffix = self.createCustomSuffix(ws) + RenameWorkspace(InputWorkspace=ws, + OutputWorkspace=ws + suffix) + panelWs.append(ws + suffix) + GroupWorkspaces(InputWorkspaces=panelWs, + OutputWorkspace=self.output_panels) def processTransmissions(self): absorber_transmission_names = [] @@ -821,6 +830,8 @@ class SANSILLAutoProcess(DataProcessorAlgorithm): WavelengthRange=self.getProperty('WavelengthRange').value ) + ConvertToPointData(InputWorkspace=output_sample, OutputWorkspace=output_sample) + # wedges ungrouping and renaming if output_wedges: wedges_old_names = [output_wedges + "_" + str(w + 1)