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 c8fb286fe01e5ed06931e90e6cfa4f5c159edc64..3a5d0c563298e5d21f03bb26dfbe37b83c60c998 100644 --- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py +++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py @@ -100,10 +100,7 @@ variables = { def get_mode_specific_dict(mode): if mode is None: - raise RuntimeError("The parameter with name: 'mode' is required but " - "was not set or passed.\n" - "Acceptable values for this parameter are: PDF, Rietveld.") - + return {"focused_cropping_values": 'auto'} mode = mode.lower() if mode == "pdf": return {"focused_cropping_values": pdf_focused_cropping_values} @@ -112,7 +109,7 @@ def get_mode_specific_dict(mode): raise ValueError("Invalid chopper mode: \"{}\"".format(mode)) -def get_all_adv_variables(mode="PDF"): +def get_all_adv_variables(mode=None): advanced_config_dict = {} advanced_config_dict.update(variables) advanced_config_dict.update(get_mode_specific_dict(mode)) diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py index 144d0e441ea3fa21cfb96aeb1b4bd10138c78f86..c55182a29dc3a903c109cfad46c298fcfd9e098d 100644 --- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py +++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py @@ -34,6 +34,12 @@ def _get_run_numbers_for_key(current_mode_run_numbers, key): def _get_current_mode_dictionary(run_number_string, inst_settings): mapping_dict = get_cal_mapping_dict(run_number_string, inst_settings.cal_mapping_path) + if inst_settings.mode is None: + ws = mantid.Load('POLARIS'+run_number_string+'.nxs') + mode, cropping_vals = _determine_chopper_mode(ws) + inst_settings.mode = mode + inst_settings.focused_cropping_values = cropping_vals + mantid.DeleteWorkspace(ws) # Get the current mode "Rietveld" or "PDF" run numbers return common.cal_map_dictionary_key_helper(mapping_dict, inst_settings.mode) @@ -161,3 +167,17 @@ def _read_masking_file(masking_file_path): if bank_masking_list: all_banks_masking_list.append(bank_masking_list) return all_banks_masking_list + + +def _determine_chopper_mode(ws): + if ws.getRun().hasProperty('Frequency'): + frequency = ws.getRun()['Frequency'].lastValue() + print("No chopper mode provided") + if frequency == 50: + print("automatically chose Rietveld") + return 'Rietveld', polaris_advanced_config.rietveld_focused_cropping_values + if frequency == 0: + print("automatically chose PDF") + return 'PDF', polaris_advanced_config.pdf_focused_cropping_values + else: + raise ValueError("Chopper frequency not in log data. Please specify a chopper mode") diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_param_mapping.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_param_mapping.py index 30423875773d90b4e6165a679b7f2517cc7a787c..0f9b0bb316a4537f44c8e957c2080a9373e8f1b5 100644 --- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_param_mapping.py +++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_param_mapping.py @@ -25,7 +25,7 @@ attr_mapping = \ ParamMapEntry(ext_name="grouping_file_name", int_name="grouping_file_name"), ParamMapEntry(ext_name="input_mode", int_name="input_mode", enum_class=INPUT_BATCHING), ParamMapEntry(ext_name="merge_banks", int_name="merge_banks"), - ParamMapEntry(ext_name="mode", int_name="mode", enum_class=POLARIS_CHOPPER_MODES), + ParamMapEntry(ext_name="mode", int_name="mode", enum_class=POLARIS_CHOPPER_MODES, optional=True), ParamMapEntry(ext_name="multiple_scattering", int_name="multiple_scattering", optional=True), ParamMapEntry(ext_name="raw_data_cropping_values", int_name="raw_data_crop_values"), ParamMapEntry(ext_name="run_number", int_name="run_number"),