From c50811f61f76f699231261bb0f1acaaabeb2cf48 Mon Sep 17 00:00:00 2001 From: Gesner Passos Date: Fri, 29 Nov 2013 11:55:26 +0000 Subject: [PATCH] re #8528: Extends Reducer to support slicings --- Code/Mantid/scripts/SANS/isis_reducer.py | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Code/Mantid/scripts/SANS/isis_reducer.py b/Code/Mantid/scripts/SANS/isis_reducer.py index e6d38b2c5632..03fa2f9ab99a 100644 --- a/Code/Mantid/scripts/SANS/isis_reducer.py +++ b/Code/Mantid/scripts/SANS/isis_reducer.py @@ -10,6 +10,7 @@ import isis_reduction_steps from mantid.simpleapi import * from mantid.api import IEventWorkspace +import SANSUtility as su import os import copy @@ -202,6 +203,9 @@ def __init__(self): self.__transmission_sample = "" # register the value of transmission can self.__transmission_can = "" + # keep information about event slicing + self._slices_def = [] + self._slice_index = 0 def set_sample(self, run, reload, period): @@ -535,6 +539,31 @@ def get_beam_center(self, bank = None): return self._front_beam_finder.get_beam_center() else: return self._beam_finder.get_beam_center() + + def getCurrSliceLimit(self): + if not self._slices_def: + self._slices_def = su.sliceParser("") + assert(self._slice_index == 0) + return self._slices_def[self._slice_index] + + def getNumSlices(self): + # slices are defined only for event workspaces + ws = mtd[self.get_sample().wksp_name] + if not isinstance(ws, IEventWorkspace): + return 0 + if not self._slices_def: + return 0 + return len(self._slices_def) + + def setSliceIndex(self, index): + if index < self.getNumSlices(): + self._slice_index = index + else: + raise IndexError("Outside range") + + def setSlicesLimits(self, str_def): + self._slices_def = su.sliceParser(str_def) + self._slice_index = 0 def deleteWorkspaces(workspaces): """