Skip to content
Snippets Groups Projects
Commit 7a370c94 authored by Harriet Brown's avatar Harriet Brown
Browse files

undo running vanadium and corrections withiout focussing

parent f304cf41
No related branches found
No related tags found
No related merge requests found
...@@ -57,8 +57,9 @@ class Polaris(AbstractInst): ...@@ -57,8 +57,9 @@ class Polaris(AbstractInst):
pdf_output = polaris_algs.generate_ts_pdf(run_number=self._inst_settings.run_number, pdf_output = polaris_algs.generate_ts_pdf(run_number=self._inst_settings.run_number,
focus_file_path=focus_file_path, focus_file_path=focus_file_path,
merge_banks=self._inst_settings.merge_banks, merge_banks=self._inst_settings.merge_banks,
q_lims=self._inst_settings.q_lims, # q_lims=self._inst_settings.q_lims,
grouping_file_path=run_details.grouping_file_path) # grouping_file_path=run_details.grouping_file_path
)
return pdf_output return pdf_output
def set_sample_details(self, **kwargs): def set_sample_details(self, **kwargs):
......
...@@ -63,24 +63,25 @@ def get_run_details(run_number_string, inst_settings, is_vanadium_run): ...@@ -63,24 +63,25 @@ def get_run_details(run_number_string, inst_settings, is_vanadium_run):
def save_unsplined_vanadium(vanadium_ws, output_path): def save_unsplined_vanadium(vanadium_ws, output_path):
converted_workspaces = [] converted_workspaces = []
if vanadium_ws.id() != "Workspace2D":
for ws_index in range(vanadium_ws.getNumberOfEntries()):
ws = vanadium_ws.getItem(ws_index)
previous_units = ws.getAxis(0).getUnit().unitID()
for ws_index in range(vanadium_ws.getNumberOfEntries()): if previous_units != WORKSPACE_UNITS.tof:
ws = vanadium_ws.getItem(ws_index) ws = mantid.ConvertUnits(InputWorkspace=ws, Target=WORKSPACE_UNITS.tof)
previous_units = ws.getAxis(0).getUnit().unitID()
if previous_units != WORKSPACE_UNITS.tof: ws = mantid.RenameWorkspace(InputWorkspace=ws, OutputWorkspace="van_bank_{}".format(ws_index + 1))
ws = mantid.ConvertUnits(InputWorkspace=ws, Target=WORKSPACE_UNITS.tof) converted_workspaces.append(ws)
ws = mantid.RenameWorkspace(InputWorkspace=ws, OutputWorkspace="van_bank_{}".format(ws_index + 1)) converted_group = mantid.GroupWorkspaces(",".join(ws.name() for ws in converted_workspaces))
converted_workspaces.append(ws) mantid.SaveNexus(InputWorkspace=converted_group, Filename=output_path, Append=False)
mantid.DeleteWorkspace(converted_group)
converted_group = mantid.GroupWorkspaces(",".join(ws.name() for ws in converted_workspaces)) else:
mantid.SaveNexus(InputWorkspace=converted_group, Filename=output_path, Append=False) mantid.SaveNexus(InputWorkspace=vanadium_ws, Filename=output_path, Append=False)
mantid.DeleteWorkspace(converted_group)
def generate_ts_pdf(run_number, focus_file_path, merge_banks=False, instrument=None, q_lims=None, def generate_ts_pdf(run_number, focus_file_path, merge_banks=False, q_lims=None):
grouping_file_path=None):
focused_ws = _obtain_focused_run(run_number, focus_file_path) focused_ws = _obtain_focused_run(run_number, focus_file_path)
pdf_output = mantid.ConvertUnits(InputWorkspace=focused_ws.name(), Target="MomentumTransfer") pdf_output = mantid.ConvertUnits(InputWorkspace=focused_ws.name(), Target="MomentumTransfer")
...@@ -88,8 +89,6 @@ def generate_ts_pdf(run_number, focus_file_path, merge_banks=False, instrument=N ...@@ -88,8 +89,6 @@ def generate_ts_pdf(run_number, focus_file_path, merge_banks=False, instrument=N
placzek_self_scattering = mantid.CalculatePlaczekSelfScattering(InputWorkspace=pdf_output) placzek_self_scattering = mantid.CalculatePlaczekSelfScattering(InputWorkspace=pdf_output)
pdf_output = mantid.Subtract(LHSWorkspace=pdf_output, RHSWorkspace=placzek_self_scattering) pdf_output = mantid.Subtract(LHSWorkspace=pdf_output, RHSWorkspace=placzek_self_scattering)
pdf_output = mantid.DiffractionFocussing(InputWorkspace=pdf_output,
GroupingFileName=grouping_file_path)
pdf_output = mantid.MatchSpectra(InputWorkspace=pdf_output, ReferenceSpectrum=1) pdf_output = mantid.MatchSpectra(InputWorkspace=pdf_output, ReferenceSpectrum=1)
if type(q_lims) == str: if type(q_lims) == str:
q_min = [] q_min = []
......
...@@ -47,33 +47,28 @@ def create_van(instrument, run_details, absorb): ...@@ -47,33 +47,28 @@ def create_van(instrument, run_details, absorb):
CalibrationFile=run_details.offset_file_path) CalibrationFile=run_details.offset_file_path)
solid_angle = instrument.get_solid_angle_corrections(run_details.run_number, run_details) solid_angle = instrument.get_solid_angle_corrections(run_details.run_number, run_details)
if solid_angle: if solid_angle:
aligned_ws = mantid.Divide(LHSWorkspace=aligned_ws, RHSWorkspace=solid_angle) aligned_ws = mantid.Divide(LHSWorkspace=aligned_ws,RHSWorkspace=solid_angle)
mantid.DeleteWorkspace(solid_angle) mantid.DeleteWorkspace(solid_angle)
focused_vanadium = mantid.DiffractionFocussing(InputWorkspace=aligned_ws,
GroupingFileName=run_details.grouping_file_path)
if instrument._inst_settings.mode != 'PDF': focused_spectra = common.extract_ws_spectra(focused_vanadium)
focused_vanadium = mantid.DiffractionFocussing(InputWorkspace=aligned_ws, focused_spectra = instrument._crop_van_to_expected_tof_range(focused_spectra)
GroupingFileName=run_details.grouping_file_path)
focused_spectra = common.extract_ws_spectra(focused_vanadium) d_spacing_group, tof_group = instrument._output_focused_ws(processed_spectra=focused_spectra,
focused_spectra = instrument._crop_van_to_expected_tof_range(focused_spectra) run_details=run_details)
d_spacing_group, tof_group = instrument._output_focused_ws(processed_spectra=focused_spectra, _create_vanadium_splines(focused_spectra, instrument, run_details)
run_details=run_details)
_create_vanadium_splines(focused_spectra, instrument, run_details) common.keep_single_ws_unit(d_spacing_group=d_spacing_group, tof_group=tof_group,
unit_to_keep=instrument._get_unit_to_keep())
common.keep_single_ws_unit(d_spacing_group=d_spacing_group, tof_group=tof_group, common.remove_intermediate_workspace(corrected_van_ws)
unit_to_keep=instrument._get_unit_to_keep()) common.remove_intermediate_workspace(aligned_ws)
common.remove_intermediate_workspace(focused_vanadium)
common.remove_intermediate_workspace(focused_spectra)
common.remove_intermediate_workspace(corrected_van_ws) return d_spacing_group
common.remove_intermediate_workspace(aligned_ws)
common.remove_intermediate_workspace(focused_vanadium)
common.remove_intermediate_workspace(focused_spectra)
return d_spacing_group
else:
common.remove_intermediate_workspace(corrected_van_ws)
return aligned_ws
def _create_vanadium_splines(focused_spectra, instrument, run_details): def _create_vanadium_splines(focused_spectra, instrument, run_details):
......
...@@ -65,43 +65,35 @@ def _focus_one_ws(input_workspace, run_number, instrument, perform_vanadium_norm ...@@ -65,43 +65,35 @@ def _focus_one_ws(input_workspace, run_number, instrument, perform_vanadium_norm
mantid.DeleteWorkspace(solid_angle) mantid.DeleteWorkspace(solid_angle)
# Focus the spectra into banks # Focus the spectra into banks
if instrument._inst_settings.mode != 'PDF': focused_ws = mantid.DiffractionFocussing(InputWorkspace=aligned_ws,
focused_ws = mantid.DiffractionFocussing(InputWorkspace=aligned_ws, GroupingFileName=run_details.grouping_file_path)
GroupingFileName=run_details.grouping_file_path)
calibrated_spectra = _apply_vanadium_corrections(instrument=instrument, calibrated_spectra = _apply_vanadium_corrections(instrument=instrument,
input_workspace=focused_ws, input_workspace=focused_ws,
perform_vanadium_norm=perform_vanadium_norm, perform_vanadium_norm=perform_vanadium_norm,
vanadium_splines=vanadium_path) vanadium_splines=vanadium_path)
output_spectra = instrument._crop_banks_to_user_tof(calibrated_spectra) output_spectra = instrument._crop_banks_to_user_tof(calibrated_spectra)
bin_widths = instrument._get_instrument_bin_widths() bin_widths = instrument._get_instrument_bin_widths()
if bin_widths: if bin_widths:
# Reduce the bin width if required on this instrument # Reduce the bin width if required on this instrument
output_spectra = common.rebin_workspace_list(workspace_list=output_spectra, output_spectra = common.rebin_workspace_list(workspace_list=output_spectra,
bin_width_list=bin_widths) bin_width_list=bin_widths)
# Output # Output
d_spacing_group, tof_group = instrument._output_focused_ws(output_spectra, run_details=run_details) d_spacing_group, tof_group = instrument._output_focused_ws(output_spectra, run_details=run_details)
common.keep_single_ws_unit(d_spacing_group=d_spacing_group, tof_group=tof_group, common.keep_single_ws_unit(d_spacing_group=d_spacing_group, tof_group=tof_group,
unit_to_keep=instrument._get_unit_to_keep()) unit_to_keep=instrument._get_unit_to_keep())
# Tidy workspaces from Mantid # Tidy workspaces from Mantid
common.remove_intermediate_workspace(input_workspace) common.remove_intermediate_workspace(input_workspace)
common.remove_intermediate_workspace(aligned_ws) common.remove_intermediate_workspace(aligned_ws)
common.remove_intermediate_workspace(focused_ws) common.remove_intermediate_workspace(focused_ws)
common.remove_intermediate_workspace(output_spectra) common.remove_intermediate_workspace(output_spectra)
return d_spacing_group return d_spacing_group
else:
calibrated_spectra = _apply_vanadium_corrections(instrument=instrument,
input_workspace=aligned_ws,
perform_vanadium_norm=perform_vanadium_norm,
vanadium_splines=vanadium_path)
common.remove_intermediate_workspace(input_workspace)
return calibrated_spectra
def _apply_vanadium_corrections(instrument, input_workspace, perform_vanadium_norm, vanadium_splines): def _apply_vanadium_corrections(instrument, input_workspace, perform_vanadium_norm, vanadium_splines):
......
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