-
David Fairbrother authoredDavid Fairbrother authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
gem.py 2.53 KiB
from __future__ import (absolute_import, division, print_function)
import mantid.simpleapi as mantid
from isis_powder.abstract_inst import AbstractInst
from isis_powder.gem_routines import gem_advanced_config, gem_param_mapping
from isis_powder.routines import InstrumentSettings, RunDetails, yaml_parser
class Gem(AbstractInst):
def __init__(self, **kwargs):
basic_config_dict = yaml_parser.open_yaml_file_as_dictionary(kwargs.get("config_file", None))
self._inst_settings = InstrumentSettings.InstrumentSettings(
attr_mapping=gem_param_mapping.attr_mapping, adv_conf_dict=gem_advanced_config,
kwargs=kwargs, basic_conf_dict=basic_config_dict)
super(Gem, self).__init__(user_name=self._inst_settings.user_name,
calibration_dir=self._inst_settings.calibration_dir,
output_dir=self._inst_settings.output_dir)
self._cached_run_details = None
self._cached_run_number = None
raise NotImplementedError()
def focus(self, **kwargs):
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):
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):
raise NotImplementedError()
def _generate_auto_vanadium_calibration(self, run_details):
raise NotImplementedError()
def _generate_output_file_name(self, run_number_string):
raise NotImplementedError()
@staticmethod
def _generate_input_file_name(run_number):
raise NotImplementedError()
def _apply_absorb_corrections(self, run_details, van_ws, gen_absorb=False):
raise NotImplementedError()
def _spline_vanadium_ws(self, focused_vanadium_banks):
raise NotImplementedError()