Skip to content
Snippets Groups Projects
Commit 98152e3e authored by David Fairbrother's avatar David Fairbrother
Browse files

Re #18643 Move create_vanadium to accept a RunDetails obj

parent 77d70f58
No related merge requests found
...@@ -34,8 +34,7 @@ class AbstractInst(object): ...@@ -34,8 +34,7 @@ class AbstractInst(object):
def user_name(self): def user_name(self):
return self._user_name return self._user_name
def _create_vanadium(self, vanadium_runs, empty_runs, def _create_vanadium(self, run_details, do_absorb_corrections=True, gen_absorb_correction=False):
do_absorb_corrections=True, gen_absorb_correction=False):
""" """
Creates a vanadium calibration - should be called by the concrete instrument Creates a vanadium calibration - should be called by the concrete instrument
:param vanadium_runs: The vanadium run or run in range (depending on instrument) to process :param vanadium_runs: The vanadium run or run in range (depending on instrument) to process
...@@ -44,7 +43,7 @@ class AbstractInst(object): ...@@ -44,7 +43,7 @@ class AbstractInst(object):
:param gen_absorb_correction: Set to true if absorption corrections should be recalculated :param gen_absorb_correction: Set to true if absorption corrections should be recalculated
:return: d_spacing focused vanadium group :return: d_spacing focused vanadium group
""" """
return calibrate.create_van(instrument=self, van=vanadium_runs, empty=empty_runs, return calibrate.create_van(instrument=self, run_details=run_details,
absorb=do_absorb_corrections, gen_absorb=gen_absorb_correction) absorb=do_absorb_corrections, gen_absorb=gen_absorb_correction)
def _focus(self, run_number_string, do_van_normalisation): def _focus(self, run_number_string, do_van_normalisation):
......
...@@ -4,7 +4,7 @@ import mantid.simpleapi as mantid ...@@ -4,7 +4,7 @@ import mantid.simpleapi as mantid
from isis_powder.abstract_inst import AbstractInst from isis_powder.abstract_inst import AbstractInst
from isis_powder.gem_routines import gem_advanced_config, gem_param_mapping from isis_powder.gem_routines import gem_advanced_config, gem_param_mapping
from isis_powder.routines import InstrumentSettings, yaml_parser from isis_powder.routines import InstrumentSettings, RunDetails, yaml_parser
class Gem(AbstractInst): class Gem(AbstractInst):
...@@ -24,27 +24,37 @@ class Gem(AbstractInst): ...@@ -24,27 +24,37 @@ class Gem(AbstractInst):
raise NotImplementedError() raise NotImplementedError()
def focus(self, **kwargs): def focus(self, **kwargs):
raise NotImplementedError() self._inst_settings.update_attributes(kwargs=kwargs)
return self._focus(run_number_string=self._inst_settings.run_number,
do_van_normalisation=self._inst_settings.van_norm)
def create_vanadium(self, **kwargs): def create_vanadium(self, **kwargs):
raise NotImplementedError() self._inst_settings.update_attributes(kwargs=kwargs)
# First get a run_details object to find out the vanadium number
run_details = self._get_run_details(run_number_string=self._inst_settings.run_in_range)
# Set the run and vanadium run equal
run_details.run_number = run_details.vanadium_run_numbers
# TODO remove gen absorb_corrections param if we remove it on POLARIS
return self._create_vanadium(run_details=run_details,
do_absorb_corrections=self._inst_settings.do_absorb_corrections,
gen_absorb_correction=None)
def _get_run_details(self, run_number_string): def _get_run_details(self, run_number_string):
pass raise NotImplementedError()
def _generate_auto_vanadium_calibration(self, run_details): def _generate_auto_vanadium_calibration(self, run_details):
pass raise NotImplementedError()
def _generate_output_file_name(self, run_number_string): def _generate_output_file_name(self, run_number_string):
pass raise NotImplementedError()
@staticmethod @staticmethod
def _generate_input_file_name(run_number): def _generate_input_file_name(run_number):
pass raise NotImplementedError()
def _apply_absorb_corrections(self, run_details, van_ws, gen_absorb=False): def _apply_absorb_corrections(self, run_details, van_ws, gen_absorb=False):
pass raise NotImplementedError()
def _spline_vanadium_ws(self, focused_vanadium_banks): def _spline_vanadium_ws(self, focused_vanadium_banks):
pass raise NotImplementedError()
...@@ -4,4 +4,7 @@ from __future__ import (absolute_import, division, print_function) ...@@ -4,4 +4,7 @@ from __future__ import (absolute_import, division, print_function)
attr_mapping = [("calibration_directory", "calibration_dir"), attr_mapping = [("calibration_directory", "calibration_dir"),
("config_file", "config_file"), ("config_file", "config_file"),
("output_directory", "output_dir"), ("output_directory", "output_dir"),
("user_name", "user_name")] ("run_in_range", "run_in_range"),
\ No newline at end of file ("run_number", "run_number"),
("user_name", "user_name"),
("vanadium_normalisation", "do_van_norm")]
...@@ -45,8 +45,7 @@ class Pearl(AbstractInst): ...@@ -45,8 +45,7 @@ class Pearl(AbstractInst):
# Provides a minimal wrapper so if we have tt_mode 'all' we can loop round # Provides a minimal wrapper so if we have tt_mode 'all' we can loop round
run_details = self._get_run_details(run_number_string=self._inst_settings.run_in_range) run_details = self._get_run_details(run_number_string=self._inst_settings.run_in_range)
run_details.run_number = run_details.vanadium_run_numbers run_details.run_number = run_details.vanadium_run_numbers
return self._create_vanadium(vanadium_runs=run_details.vanadium_run_numbers, return self._create_vanadium(run_details=run_details,
empty_runs=run_details.empty_runs,
do_absorb_corrections=self._inst_settings.absorb_corrections) do_absorb_corrections=self._inst_settings.absorb_corrections)
def _get_run_details(self, run_number_string): def _get_run_details(self, run_number_string):
......
...@@ -37,10 +37,10 @@ class Polaris(AbstractInst): ...@@ -37,10 +37,10 @@ class Polaris(AbstractInst):
run_details = self._get_run_details(run_number_string=int(self._inst_settings.run_in_range)) run_details = self._get_run_details(run_number_string=int(self._inst_settings.run_in_range))
run_details.run_number = run_details.vanadium_run_numbers run_details.run_number = run_details.vanadium_run_numbers
return self._create_vanadium( # TODO POLARIS doesn't need this flag to gen abs. corrections does PEARL?
vanadium_runs=run_details.vanadium_run_numbers, empty_runs=run_details.empty_runs, return self._create_vanadium(run_details=run_details,
do_absorb_corrections=self._inst_settings.do_absorb_corrections, do_absorb_corrections=self._inst_settings.do_absorb_corrections,
gen_absorb_correction=None) # TODO POLARIS doesn't need this flag to gen abs. corrections does PEARL? gen_absorb_correction=None)
# Overrides # Overrides
......
...@@ -6,7 +6,8 @@ import isis_powder.routines.common as common ...@@ -6,7 +6,8 @@ import isis_powder.routines.common as common
from isis_powder.routines.common_enums import InputBatchingEnum from isis_powder.routines.common_enums import InputBatchingEnum
def create_van(instrument, van, empty, absorb, gen_absorb): def create_van(instrument, run_details, absorb, gen_absorb):
van = run_details.vanadium_run_numbers
run_details = instrument._get_run_details(run_number_string=van) run_details = instrument._get_run_details(run_number_string=van)
# Always sum a range of inputs as its a vanadium run over multiple captures # Always sum a range of inputs as its a vanadium run over multiple captures
input_van_ws_list = common.load_current_normalised_ws_list(run_number_string=van, instrument=instrument, input_van_ws_list = common.load_current_normalised_ws_list(run_number_string=van, instrument=instrument,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment