diff --git a/scripts/Diffraction/isis_powder/polaris.py b/scripts/Diffraction/isis_powder/polaris.py index 66172962f710376f8ade80689e5d886272d16b99..92160b65a47d7b9555c0d1023d2f7db6f2613578 100644 --- a/scripts/Diffraction/isis_powder/polaris.py +++ b/scripts/Diffraction/isis_powder/polaris.py @@ -10,7 +10,7 @@ from isis_powder.polaris_routines import polaris_advanced_config, polaris_algs, class Polaris(AbstractInst): def __init__(self, **kwargs): self._inst_settings = instrument_settings.InstrumentSettings( - param_map=polaris_param_mapping.attr_mapping, adv_conf_dict=polaris_advanced_config.variables, + param_map=polaris_param_mapping.attr_mapping, adv_conf_dict=polaris_advanced_config.get_all_adv_variables(), kwargs=kwargs) super(Polaris, self).__init__(user_name=self._inst_settings.user_name, @@ -24,17 +24,20 @@ class Polaris(AbstractInst): # Public API def focus(self, **kwargs): + self._switch_mode_specific_inst_settings(kwargs.get("mode")) self._inst_settings.update_attributes(kwargs=kwargs) return self._focus(run_number_string=self._inst_settings.run_number, do_van_normalisation=self._inst_settings.do_van_normalisation, do_absorb_corrections=self._inst_settings.do_absorb_corrections) def create_vanadium(self, **kwargs): + self._switch_mode_specific_inst_settings(kwargs.get("mode")) self._inst_settings.update_attributes(kwargs=kwargs) return self._create_vanadium(run_number_string=self._inst_settings.run_in_range, do_absorb_corrections=self._inst_settings.do_absorb_corrections) def set_sample_details(self, **kwargs): + self._switch_mode_specific_inst_settings(kwargs.get("mode")) kwarg_name = "sample" sample_details_obj = common.dictionary_key_helper( dictionary=kwargs, key=kwarg_name, @@ -122,3 +125,7 @@ class Polaris(AbstractInst): spline_number=spline_coeff, mask_path=masking_file_path) return output + + def _switch_mode_specific_inst_settings(self, mode): + self._inst_settings.update_attributes(advanced_config=polaris_advanced_config.get_mode_specific_dict(mode), + suppress_warnings=True) diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py index e81ef098a24ebedbd497dd218fc38a996909b37c..b5dd0a4517c2c8c71a76cec0a751818034daa9b6 100644 --- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py +++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py @@ -22,7 +22,7 @@ script_params = { "spline_coefficient": 100, } -focused_cropping_values = [ +pdf_focused_cropping_values = [ (1500, 19900), # Bank 1 (1500, 19900), # Bank 2 (1500, 19900), # Bank 3 @@ -30,6 +30,14 @@ focused_cropping_values = [ (1500, 19900), # Bank 5 ] +rietveld_focused_cropping_values = [ + (700, 30000), # Bank 1 + (1200, 24900), # Bank 2 + (1100, 19950), # Bank 3 + (1100, 19950), # Bank 4 + (1100, 19950), # Bank 5 +] + focused_bin_widths = [ # Note you want these to be negative for logarithmic (dt / t) binning # else the output file will be larger than 1GB @@ -41,11 +49,11 @@ focused_bin_widths = [ ] vanadium_cropping_values = [ - (800, 19995), # Bank 1 - (800, 19995), # Bank 2 - (800, 19995), # Bank 3 - (800, 19995), # Bank 4 - (800, 19995), # Bank 5 + (600, 31000), # Bank 1 + (1000, 24950), # Bank 2 + (1000, 19975), # Bank 3 + (900, 19975), # Bank 4 + (800, 19975), # Bank 5 ] sample_empty_scale = 1.0 @@ -78,8 +86,20 @@ variables = { # Used by the script to find the dictionaries in advanced config. "file_names_dict": file_names, "script_params": script_params, - "focused_cropping_values": focused_cropping_values, "vanadium_cropping_values": vanadium_cropping_values, "focused_bin_widths": focused_bin_widths, "sample_empty_scale": sample_empty_scale } + + +def get_mode_specific_dict(mode): + return {"focused_cropping_values": + pdf_focused_cropping_values if mode == "PDF" + else rietveld_focused_cropping_values} + + +def get_all_adv_variables(mode="PDF"): + advanced_config_dict = {} + advanced_config_dict.update(variables) + advanced_config_dict.update(get_mode_specific_dict(mode)) + return advanced_config_dict