from __future__ import (absolute_import, division, print_function) from reduction_gui.instruments.interface import InstrumentInterface from reduction_gui.widgets.inelastic.dgs_sample_setup import SampleSetupWidget from reduction_gui.widgets.inelastic.dgs_data_corrections import DataCorrectionsWidget from reduction_gui.widgets.inelastic.dgs_diagnose_detectors import DiagnoseDetectorsWidget from reduction_gui.widgets.inelastic.dgs_absolute_units import AbsoluteUnitsWidget from reduction_gui.reduction.inelastic.dgs_reduction_script import DgsReductionScripter class DgsInterface(InstrumentInterface): """ Defines the widgets for direct geometry spectrometer reduction """ # Allowed extensions for loading data files data_type = "Data files * (*)" def __init__(self, name, settings): super(DgsInterface, self).__init__(name, settings) self.ERROR_REPORT_NAME = "dgs_error_report.xml" # Scripter object to interface with Mantid self.scripter = DgsReductionScripter(name=name, facility=settings.facility_name) # Sample run setup self.attach(SampleSetupWidget(settings = self._settings, data_type = self.data_type)) # Data corrections self.attach(DataCorrectionsWidget(settings = self._settings, data_type = self.data_type)) # Diagnose detectors self.attach(DiagnoseDetectorsWidget(settings = self._settings, data_type = self.data_type)) # Absolute units normalisation self.attach(AbsoluteUnitsWidget(settings = self._settings, data_type = self.data_type)) return