diff --git a/scripts/Diffraction/isis_powder/gem.py b/scripts/Diffraction/isis_powder/gem.py index a53441e0d16bd8c58511b025169c5e21904902ee..b8a828d0e1f9a5b8e9687a179035d911261157a1 100644 --- a/scripts/Diffraction/isis_powder/gem.py +++ b/scripts/Diffraction/isis_powder/gem.py @@ -22,11 +22,13 @@ class Gem(AbstractInst): def focus(self, **kwargs): self._inst_settings.update_attributes(kwargs=kwargs) + check_mode_is_valid(self._inst_settings) return self._focus(run_number_string=self._inst_settings.run_number, do_van_normalisation=self._inst_settings.do_van_norm) def create_vanadium(self, **kwargs): self._inst_settings.update_attributes(kwargs=kwargs) + check_mode_is_valid(self._inst_settings) # 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 @@ -67,6 +69,21 @@ class Gem(AbstractInst): return common.crop_banks_in_tof(van_ws_to_crop, self._inst_settings.vanadium_cropping_values) +def check_mode_is_valid(inst_settings): + set_mode = str(inst_settings.mode).lower() + # Allowed values PDF / Rietveld + allowed_modes = ["Rietveld", "PDF"] + + if set_mode not in [val.lower() for val in allowed_modes]: + e_str = "The mode entered : '" + str(inst_settings.mode) + "' is not valid. Valid values are:\n" + for val in allowed_modes: + e_str += val + '\n' + raise ValueError(e_str) + else: + # Valid ensure its lower case version + inst_settings.mode = set_mode + + def _gem_generate_inst_name(run_number): if isinstance(run_number, list): # Use recursion on lists diff --git a/scripts/Diffraction/isis_powder/gem_routines/gem_algs.py b/scripts/Diffraction/isis_powder/gem_routines/gem_algs.py index 3e4bba06b542c30dd095951e8c2cd5723e549d00..981df0a393c38ca60e2d62529b18432740678b0c 100644 --- a/scripts/Diffraction/isis_powder/gem_routines/gem_algs.py +++ b/scripts/Diffraction/isis_powder/gem_routines/gem_algs.py @@ -26,8 +26,11 @@ def get_run_details(run_number_string, inst_settings): label = common.cal_map_dictionary_key_helper(cycle_map, "label") offset_file_name = common.cal_map_dictionary_key_helper(cycle_map, "offset_file_name") - empty_runs = common.cal_map_dictionary_key_helper(cycle_map, "empty_run_numbers") - vanadium_runs = common.cal_map_dictionary_key_helper(cycle_map, "vanadium_run_numbers") + + chopper_dict = common.cal_map_dictionary_key_helper(cycle_map, inst_settings.mode) + + empty_runs = common.cal_map_dictionary_key_helper(chopper_dict, "empty_run_numbers") + vanadium_runs = common.cal_map_dictionary_key_helper(chopper_dict, "vanadium_run_numbers") # For GEM the grouping and offset file are identical calibration_folder = os.path.normpath(os.path.expanduser(inst_settings.calibration_dir)) diff --git a/scripts/Diffraction/isis_powder/gem_routines/gem_param_mapping.py b/scripts/Diffraction/isis_powder/gem_routines/gem_param_mapping.py index e21ed9a9e717776f7f27533597e7d8c169d1ca78..5737a191e8271ba831d65d1dd2ab47f617f2edc7 100644 --- a/scripts/Diffraction/isis_powder/gem_routines/gem_param_mapping.py +++ b/scripts/Diffraction/isis_powder/gem_routines/gem_param_mapping.py @@ -6,6 +6,7 @@ attr_mapping = [("calibration_directory", "calibration_dir"), ("config_file", "config_file"), ("do_absorb_corrections", "do_absorb_corrections"), ("focused_cropping_values", "focused_cropping_values"), + ("mode", "mode"), ("multiple_scattering", "multiple_scattering"), ("raw_tof_cropping_values", "raw_tof_cropping_values"), ("run_in_range", "run_in_range"),