Beispiel #1
0
    def __init__(self,
                 muon_data_context=None,
                 muon_gui_context=None,
                 muon_group_context=None,
                 base_directory='Muon Data',
                 muon_phase_context=None,
                 workspace_suffix=' MA',
                 fitting_context=None,
                 frequency_context=None):
        self._data_context = muon_data_context
        self._gui_context = muon_gui_context
        self._group_pair_context = muon_group_context
        self._phase_context = muon_phase_context
        self.fitting_context = fitting_context
        self.base_directory = base_directory
        self.workspace_suffix = workspace_suffix

        self.ads_observer = MuonContextADSObserver(self.remove_workspace,
                                                   self.clear_context,
                                                   self.workspace_replaced)

        self.gui_context.update({
            'DeadTimeSource': 'None',
            'LastGoodDataFromFile': True,
            'selected_group_pair': '',
            'PlotMode': PlotMode.Data
        })

        self.update_view_from_model_notifier = Observable()
        self.update_plots_notifier = Observable()
        self.deleted_plots_notifier = Observable()
Beispiel #2
0
    def __init__(self, muon_data_context=None, muon_gui_context=None, muon_group_context=None, corrections_context=None,
                 base_directory='Muon Data', muon_phase_context=None, workspace_suffix=' MA', fitting_context=None,
                 results_context=None, model_fitting_context=None, plot_panes_context=None, frequency_context=None):
        self._data_context = muon_data_context
        self._gui_context = muon_gui_context
        self._group_pair_context = muon_group_context
        self._corrections_context = corrections_context
        self._phase_context = muon_phase_context
        self.fitting_context = fitting_context
        self.results_context = results_context
        self.model_fitting_context = model_fitting_context
        self.base_directory = base_directory
        self.workspace_suffix = workspace_suffix
        self._plot_panes_context = plot_panes_context
        self.ads_observer = MuonContextADSObserver(
            self.remove_workspace,
            self.clear_context,
            self.workspace_replaced)

        self.gui_context.update(
            {'LastGoodDataFromFile': True,
             'selected_group_pair': ''})

        self.update_view_from_model_notifier = Observable()
        self.update_plots_notifier = Observable()
        self.deleted_plots_notifier = Observable()
    def __init__(self, view, context):
        self.view = view
        self.context = context
        self.current_alg = None
        self._phasequad_obj = None
        self._new_table_name = ""

        self.group_change_observer = GenericObserver(
            self.update_current_groups_list)
        self.run_change_observer = GenericObserver(
            self.update_current_run_list)
        self.instrument_changed_observer = GenericObserver(
            self.update_current_phase_tables)

        self.phase_table_calculation_complete_notifier = Observable()
        self.phase_table_observer = GenericObserver(
            self.update_current_phase_tables)
        self.phasequad_calculation_complete_notifier = Observable()
        self.enable_editing_notifier = Observable()
        self.disable_editing_notifier = Observable()

        self.disable_tab_observer = GenericObserver(self.view.disable_widget)
        self.enable_tab_observer = GenericObserver(self.view.enable_widget)
        self.selected_phasequad_changed_notifier = GenericObservable()
        self.calculation_finished_notifier = GenericObservable()

        self.update_view_from_model_observer = GenericObserver(
            self.update_view_from_model)
        self.update_current_phase_tables()

        self.view.on_first_good_data_changed(
            self.handle_first_good_data_changed)
        self.view.on_last_good_data_changed(self.handle_last_good_data_changed)
        self.view.on_phasequad_table_data_changed(
            self.handle_phasequad_table_data_changed)
    def __init__(self, view, context):
        self.view = view
        self.context = context
        self.thread = None
        self._optional_output_names = {}
        # set data
        self.getWorkspaceNames()
        self.view.set_methods([USEGROUPS, USEDETECTORS])
        # connect
        self.view.maxEntButtonSignal.connect(self.handleMaxEntButton)
        self.view.method_changed_slot(self.update_phase_table_options)
        self.view.method_changed_slot(self.notify_method_changed)
        self.view.period_changed_slot(self.notify_period_changed)
        self.view.cancelSignal.connect(self.cancel)
        self.view.run_changed_slot(self._load_periods)

        self.phase_table_observer = GenericObserver(
            self.update_phase_table_options)
        self.calculation_finished_notifier = GenericObservable()
        self.calculation_started_notifier = GenericObservable()
        self.new_phase_table = GenericObservable()
        self.update_phase_table_options()
        self.method_changed = Observable()
        self.period_changed = Observable()
        self.new_reconstructed_data = Observable()
Beispiel #5
0
    def __init__(self):
        # A dictionary containing the fit histories for different fitting modes. The key should represent a fitting
        # mode, and the value should be a list of FitInformation's indicating all the fits that have been done up to
        # this point
        self._fit_history: dict = {}

        self.new_fit_results_notifier = Observable()
        self.fit_removed_notifier = Observable()
Beispiel #6
0
 def __init__(self, fit_list=None):
     self.fit_list = fit_list if fit_list is not None else []
     # Register callbacks with this object to observe when new fits
     # are added
     self.new_fit_notifier = Observable()
     self.plot_guess_notifier = Observable()
     self._number_of_fits = 0
     self._number_of_fits_cache = 0
     self._plot_guess = False
     self._guess = None
    def __init__(self, view, context):
        self.view = view
        self.context = context
        self.current_alg = None

        self.group_change_observer = GenericObserver(self.update_current_groups_list)
        self.run_change_observer = GenericObserver(self.update_current_run_list)
        self.instrument_changed_observer = GenericObserver(self.update_current_phase_tables)

        self.phase_table_calculation_complete_notifier = Observable()
        self.phase_quad_calculation_complete_nofifier = Observable()

        self.update_view_from_model_observer = GenericObserver(self.update_view_from_model)

        self.update_current_phase_tables()
Beispiel #8
0
    def __init__(self, view, model):
        self._view = view
        self._model = model

        self.load_run_widget = None
        self.load_file_widget = None

        self.view.on_subwidget_loading_started(self.disable_loading)
        self.view.on_subwidget_loading_finished(self.enable_loading)

        self.view.on_file_widget_data_changed(
            self.handle_file_widget_data_changed)
        self.view.on_run_widget_data_changed(
            self.handle_run_widget_data_changed)

        self.view.on_clear_button_clicked(self.clear_data_and_view)

        self._view.on_multiple_load_type_changed(
            self.handle_multiple_runs_option_changed)
        self._use_threading = True

        self.loadNotifier = Observable()

        self.disable_observer = GenericObserver(self.disable_loading)
        self.enable_observer = GenericObserver(self.enable_loading)

        self.update_view_from_model_observer = GenericObserver(self.update_view_from_model)
Beispiel #9
0
class SansGuiObservable:
    reduction_dim: Observable = Observable()
    save_options: Observable = Observable()