From 7e891fdb8984a56ba447e28fd652e610e59d5a5a Mon Sep 17 00:00:00 2001 From: Alex Buts Date: Thu, 6 Mar 2014 19:26:26 +0000 Subject: [PATCH] refs #9135 Work with monitors loaded separately. --- Code/Mantid/scripts/Inelastic/CommonFunctions.py | 4 ++++ .../scripts/Inelastic/DirectEnergyConversion.py | 15 +++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Code/Mantid/scripts/Inelastic/CommonFunctions.py b/Code/Mantid/scripts/Inelastic/CommonFunctions.py index 106371d74482..fed5dc29b66e 100644 --- a/Code/Mantid/scripts/Inelastic/CommonFunctions.py +++ b/Code/Mantid/scripts/Inelastic/CommonFunctions.py @@ -132,12 +132,16 @@ def load_run(inst_name, run_number, calibration=None, force=False): args={}; ext = os.path.splitext(filename)[1].lower(); + wrong_monitors_name = False; if ext.endswith("raw"): args['LoadMonitors']='Separate' + wrong_monitors_name = True elif ext.endswith('nxs'): args['LoadMonitors'] = '1' loaded_ws = Load(Filename=filename, OutputWorkspace=output_name,**args) + if wrong_monitors_name: + RenameWorkspace(InputWorkspace=output_name+'_Monitors',OutputWorkspace=output_name+'_monitors'); if isinstance(loaded_ws,tuple) and len(loaded_ws)>1: mon_ws = loaded_ws[1]; loaded_ws=loaded_ws[0]; diff --git a/Code/Mantid/scripts/Inelastic/DirectEnergyConversion.py b/Code/Mantid/scripts/Inelastic/DirectEnergyConversion.py index 938e46601f6b..d567d69efb78 100644 --- a/Code/Mantid/scripts/Inelastic/DirectEnergyConversion.py +++ b/Code/Mantid/scripts/Inelastic/DirectEnergyConversion.py @@ -556,10 +556,11 @@ def get_ei(self, input_ws, resultws_name, ei_guess): if type(monitor_ws) is str: monitor_ws = mtd[monitor_ws] try: - nsp = monitor_ws.getSpectrum(int(self.ei_mon_spectra[0])); + # check if the spectra with correspondent number is present in the worksace + nsp = monitor_ws.getIndexFromSpectrumNumber(int(self.ei_mon_spectra[0])); except: monitors_from_separate_ws = True - mon_ws = monitor_ws.getName()+'_Monitors' + mon_ws = monitor_ws.getName()+'_monitors' monitor_ws = mtd[mon_ws]; #------------------------------------------------------------- @@ -618,8 +619,14 @@ def normalise(self, data_ws, result_name, method, range_offset=0.0,mon_number=No mon_spectr_num=int(self.mon1_norm_spec) else: mon_spectr_num=mon_number - NormaliseToMonitor(InputWorkspace=data_ws, OutputWorkspace=result_name, MonitorSpectrum=mon_spectr_num, - IntegrationRangeMin=float(str(range_min)), IntegrationRangeMax=float(str(range_max)),IncludePartialBins=True) + + monWS_name = data_ws.getName()+'_monitors' + if monWS_name in mtd: + NormaliseToMonitor(InputWorkspace=data_ws, OutputWorkspace=result_name, MonitorWorkspace=monWS_name, + IntegrationRangeMin=float(str(range_min)), IntegrationRangeMax=float(str(range_max)),IncludePartialBins=True) + else: + NormaliseToMonitor(InputWorkspace=data_ws, OutputWorkspace=result_name, MonitorSpectrum=mon_spectr_num, + IntegrationRangeMin=float(str(range_min)), IntegrationRangeMax=float(str(range_max)),IncludePartialBins=True) output = mtd[result_name] elif method == 'current': NormaliseByCurrent(InputWorkspace=data_ws, OutputWorkspace=result_name)