Esempio n. 1
0
 def __init__(self, measurement, masses, icon_manager):
     '''Inits TofeHistogramWidget widget.
     
     Args:
         measurement: A measurement class object.
         masses: A masses class object.
         icon_manager: An iconmanager class object.
     '''
     super().__init__()
     self.ui = uic.loadUi(join("ui_files", "ui_histogram_widget.ui"), self)
     self.measurement = measurement
     self.matplotlib = MatplotlibHistogramWidget(self, measurement,
                                                 masses, icon_manager)
     self.ui.saveCutsButton.clicked.connect(self.matplotlib.save_cuts)
     self.ui.loadSelectionsButton.clicked.connect(
                                              self.matplotlib.load_selections)
     self.connect(self.matplotlib,
                  QtCore.SIGNAL("selectionsChanged(PyQt_PyObject)"),
                  self.set_cut_button_enabled)
     self.connect(self.matplotlib,
                  QtCore.SIGNAL("saveCuts(PyQt_PyObject)"),
                  self.__save_cuts)
     self.__set_shortcuts()
     self.set_cut_button_enabled(measurement.selector.selections)
     
     count = len(self.measurement.data)
     self.ui.setWindowTitle("ToF-E Histogram - Event count: {0}".format(count))        
Esempio n. 2
0
class TofeHistogramWidget(QtGui.QWidget):
    '''HistogramWidget used to draw ToF-E Histograms.
    '''
    def __init__(self, measurement, masses, icon_manager):
        '''Inits TofeHistogramWidget widget.
        
        Args:
            measurement: A measurement class object.
            masses: A masses class object.
            icon_manager: An iconmanager class object.
        '''
        super().__init__()
        self.ui = uic.loadUi(join("ui_files", "ui_histogram_widget.ui"), self)
        self.measurement = measurement
        self.matplotlib = MatplotlibHistogramWidget(self, measurement,
                                                    masses, icon_manager)
        self.ui.saveCutsButton.clicked.connect(self.matplotlib.save_cuts)
        self.ui.loadSelectionsButton.clicked.connect(
                                                 self.matplotlib.load_selections)
        self.connect(self.matplotlib,
                     QtCore.SIGNAL("selectionsChanged(PyQt_PyObject)"),
                     self.set_cut_button_enabled)
        self.connect(self.matplotlib,
                     QtCore.SIGNAL("saveCuts(PyQt_PyObject)"),
                     self.__save_cuts)
        self.__set_shortcuts()
        self.set_cut_button_enabled(measurement.selector.selections)
        
        count = len(self.measurement.data)
        self.ui.setWindowTitle("ToF-E Histogram - Event count: {0}".format(count))        
    
    
    def set_cut_button_enabled(self, selections=None):
        """Enables save cuts button if the given selections list's length is not 0.
        Otherwise disable.
        
        Args:
            selections: list of Selection objects
        """
        if not selections:
            selections = self.measurement.selector.selections
        if len(selections) == 0:
            self.ui.saveCutsButton.setEnabled(False)
        else:
            self.ui.saveCutsButton.setEnabled(True)
            # self.measurement.project.save_selection(self.measurement)
            
        
    def __save_cuts(self, unused_measurement):
        """Connect to saving cuts. Issue it to project for every other measurement.
        """
        # self.measurement.project.save_cuts(self.measurement)
        
        
    def __set_shortcuts(self):
        """Set shortcuts for the ToF-E histogram.
        """
        # X axis
        self.__sc_comp_x_inc = QtGui.QShortcut(self)
        self.__sc_comp_x_inc.setKey(QtCore.Qt.Key_Q)
        self.__sc_comp_x_inc.activated.connect(lambda: self.matplotlib.sc_comp_inc(0))
        self.__sc_comp_x_dec = QtGui.QShortcut(self)
        self.__sc_comp_x_dec.setKey(QtCore.Qt.Key_W)
        self.__sc_comp_x_dec.activated.connect(lambda: self.matplotlib.sc_comp_dec(0))
        # Y axis
        self.__sc_comp_y_inc = QtGui.QShortcut(self)
        self.__sc_comp_y_inc.setKey(QtCore.Qt.Key_Z)
        self.__sc_comp_y_inc.activated.connect(lambda: self.matplotlib.sc_comp_inc(1))
        self.__sc_comp_y_dec = QtGui.QShortcut(self)
        self.__sc_comp_y_dec.setKey(QtCore.Qt.Key_X)
        self.__sc_comp_y_dec.activated.connect(lambda: self.matplotlib.sc_comp_dec(1))
        # Both axes
        self.__sc_comp_inc = QtGui.QShortcut(self)
        self.__sc_comp_inc.setKey(QtCore.Qt.Key_A)
        self.__sc_comp_inc.activated.connect(lambda: self.matplotlib.sc_comp_inc(2))
        self.__sc_comp_dec = QtGui.QShortcut(self)
        self.__sc_comp_dec.setKey(QtCore.Qt.Key_S)
        self.__sc_comp_dec.activated.connect(lambda: self.matplotlib.sc_comp_dec(2))