Exemple #1
0
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        QtCore.QObject.connect(self.ui.calc, QtCore.SIGNAL("clicked()"),
                               self.calc)
        QtCore.QObject.connect(self.ui.ei, QtCore.SIGNAL("returnPressed()"),
                               self.ei)
        QtCore.QObject.connect(self.ui.actionMari,
                               QtCore.SIGNAL("triggered()"),
                               lambda: self.set_inst('MAR'))
        QtCore.QObject.connect(self.ui.actionMaps,
                               QtCore.SIGNAL("triggered()"),
                               lambda: self.set_inst('MAP'))
        QtCore.QObject.connect(self.ui.actionMerlin,
                               QtCore.SIGNAL("triggered()"),
                               lambda: self.set_inst('MER'))

        QtCore.QObject.connect(self.ui.actionGadolinium,
                               QtCore.SIGNAL("triggered()"),
                               lambda: self.set_chop('g'))
        QtCore.QObject.connect(self.ui.actionSloppy,
                               QtCore.SIGNAL("triggered()"),
                               lambda: self.set_chop('s'))
        QtCore.QObject.connect(self.ui.actionA, QtCore.SIGNAL("triggered()"),
                               lambda: self.set_chop('a'))
        QtCore.QObject.connect(self.ui.actionRType,
                               QtCore.SIGNAL("triggered()"),
                               lambda: self.set_chop('r'))

        self.inst = config['default.instrument']
        self.chop = ''
        self.ei = 0.0
Exemple #2
0
 def __init__(self, parent=None):
     QtGui.QMainWindow.__init__(self,parent)
     self.ui = Ui_MainWindow()
     self.ui.setupUi(self)
     QtCore.QObject.connect(self.ui.calc, QtCore.SIGNAL("clicked()"), self.calc )
     QtCore.QObject.connect(self.ui.ei, QtCore.SIGNAL("returnPressed()"), self.ei)
     QtCore.QObject.connect(self.ui.actionMari, QtCore.SIGNAL("triggered()"), lambda : self.set_inst('MAR'))
     QtCore.QObject.connect(self.ui.actionMaps, QtCore.SIGNAL("triggered()"), lambda : self.set_inst('MAP'))
     QtCore.QObject.connect(self.ui.actionMerlin, QtCore.SIGNAL("triggered()"), lambda : self.set_inst('MER') )
     
     QtCore.QObject.connect(self.ui.actionGadolinium, QtCore.SIGNAL("triggered()"),lambda : self.set_chop('g') )
     QtCore.QObject.connect(self.ui.actionSloppy, QtCore.SIGNAL("triggered()"), lambda : self.set_chop('s') )
     QtCore.QObject.connect(self.ui.actionA, QtCore.SIGNAL("triggered()"),lambda : self.set_chop('a') )
     QtCore.QObject.connect(self.ui.actionRType, QtCore.SIGNAL("triggered()"), lambda : self.set_chop('r') )
     
     
     
     self.inst=config['default.instrument']
     self.chop=''
     self.ei=0.0
Exemple #3
0
class MainWindow(QtGui.QMainWindow):

    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self,parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        QtCore.QObject.connect(self.ui.calc, QtCore.SIGNAL("clicked()"), self.calc )
        QtCore.QObject.connect(self.ui.ei, QtCore.SIGNAL("returnPressed()"), self.ei)
        QtCore.QObject.connect(self.ui.actionMari, QtCore.SIGNAL("triggered()"), lambda : self.set_inst('MAR'))
        QtCore.QObject.connect(self.ui.actionMaps, QtCore.SIGNAL("triggered()"), lambda : self.set_inst('MAP'))
        QtCore.QObject.connect(self.ui.actionMerlin, QtCore.SIGNAL("triggered()"), lambda : self.set_inst('MER') )
        
        QtCore.QObject.connect(self.ui.actionGadolinium, QtCore.SIGNAL("triggered()"),lambda : self.set_chop('g') )
        QtCore.QObject.connect(self.ui.actionSloppy, QtCore.SIGNAL("triggered()"), lambda : self.set_chop('s') )
        QtCore.QObject.connect(self.ui.actionA, QtCore.SIGNAL("triggered()"),lambda : self.set_chop('a') )
        QtCore.QObject.connect(self.ui.actionRType, QtCore.SIGNAL("triggered()"), lambda : self.set_chop('r') )
        
        
        
        self.inst=config['default.instrument']
        self.chop=''
        self.ei=0.0
        
    def set_inst(self,name):
        self.inst=name
        config['default.instrument']=name
        if len(self.chop)>0:
           message,err = PyChop.setchoptype(self.inst,self.chop)
           if err>0:
             self.chop=''   
    
    def set_chop(self,chop_type):
        message,err = PyChop.setchoptype(self.inst,chop_type)
        if err > 0:
            self.chop = ''
            QtGui.QMessageBox.warning(self, "PyChop",message)        
            return
        else:
            self.chop=chop_type
       
        
    def ei(self):
        self.ei=float(self.ui.ei.text())
        
    def calc(self):
        self.ei=float(self.ui.ei.text())
        if len(self.chop) == 0:
            QtGui.QMessageBox.warning(self, "PyChop","Choper has not been selected. Select the chopper first.")        
            return
            
        message,err = PyChop.setchoptype(self.inst,self.chop)
        if err > 0:
            QtGui.QMessageBox.warning(self, "PyChop",message)        
            return
            
            
        string='Calculation for '+self.inst+' '+self.chop+' chopper at '+self.ui.ei.text()+'meV'
        self.ui.disp.addItem(string)
        string_title = 'Frequency(Hz)   Flux(n/s/cm^2)     Resolution[mEv]'                    
        self.ui.disp.addItem(string_title)        
        for freq in range(50,650,50):
            van_el,van,flux=PyChop.calculate(self.ei,freq,all=True)
            
            #string1= 'Flux at sample position at   '+str(freq)+ ' Hz = '+" %.2f" % flux+'n/s/cm^2'
            # calc resolution as a function of energy trans
            #string2= 'Resolution of elastic line at '+str(freq)+ 'Hz = '+"%.2f" %van_el+ 'meV = '+"%.2f" % ((van_el/self.ei)*100)+ '%'
            #string1 = '\t {0:.2f} \t {1:.2f} \t {2:.2f}'.format(freq,flux,(van_el/self.ei)*100)
            #string1 = '\t {0:.2f} \t {1:.2f} \t {2:.2f}'.format(freq,flux,(van_el/self.ei)*100)
            string1 = ' {0}    \t {1:.2f}  \t  {2:.2f}'.format(freq,float(flux),((van_el/self.ei)*100))
            self.ui.disp.addItem(string1)
Exemple #4
0
class MainWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        QtCore.QObject.connect(self.ui.calc, QtCore.SIGNAL("clicked()"),
                               self.calc)
        QtCore.QObject.connect(self.ui.ei, QtCore.SIGNAL("returnPressed()"),
                               self.ei)
        QtCore.QObject.connect(self.ui.actionMari,
                               QtCore.SIGNAL("triggered()"),
                               lambda: self.set_inst('MAR'))
        QtCore.QObject.connect(self.ui.actionMaps,
                               QtCore.SIGNAL("triggered()"),
                               lambda: self.set_inst('MAP'))
        QtCore.QObject.connect(self.ui.actionMerlin,
                               QtCore.SIGNAL("triggered()"),
                               lambda: self.set_inst('MER'))

        QtCore.QObject.connect(self.ui.actionGadolinium,
                               QtCore.SIGNAL("triggered()"),
                               lambda: self.set_chop('g'))
        QtCore.QObject.connect(self.ui.actionSloppy,
                               QtCore.SIGNAL("triggered()"),
                               lambda: self.set_chop('s'))
        QtCore.QObject.connect(self.ui.actionA, QtCore.SIGNAL("triggered()"),
                               lambda: self.set_chop('a'))
        QtCore.QObject.connect(self.ui.actionRType,
                               QtCore.SIGNAL("triggered()"),
                               lambda: self.set_chop('r'))

        self.inst = config['default.instrument']
        self.chop = ''
        self.ei = 0.0

    def set_inst(self, name):
        self.inst = name
        config['default.instrument'] = name
        if len(self.chop) > 0:
            message, err = PyChop.setchoptype(self.inst, self.chop)
            if err > 0:
                self.chop = ''

    def set_chop(self, chop_type):
        message, err = PyChop.setchoptype(self.inst, chop_type)
        if err > 0:
            self.chop = ''
            QtGui.QMessageBox.warning(self, "PyChop", message)
            return
        else:
            self.chop = chop_type

    def ei(self):
        self.ei = float(self.ui.ei.text())

    def calc(self):
        self.ei = float(self.ui.ei.text())
        if len(self.chop) == 0:
            QtGui.QMessageBox.warning(
                self, "PyChop",
                "Choper has not been selected. Select the chopper first.")
            return

        message, err = PyChop.setchoptype(self.inst, self.chop)
        if err > 0:
            QtGui.QMessageBox.warning(self, "PyChop", message)
            return

        string = 'Calculation for ' + self.inst + ' ' + self.chop + ' chopper at ' + self.ui.ei.text(
        ) + 'meV'
        self.ui.disp.addItem(string)
        string_title = 'Frequency(Hz)   Flux(n/s/cm^2)     Resolution[mEv]'
        self.ui.disp.addItem(string_title)
        for freq in range(50, 650, 50):
            van_el, van, flux = PyChop.calculate(self.ei, freq, all=True)

            #string1= 'Flux at sample position at   '+str(freq)+ ' Hz = '+" %.2f" % flux+'n/s/cm^2'
            # calc resolution as a function of energy trans
            #string2= 'Resolution of elastic line at '+str(freq)+ 'Hz = '+"%.2f" %van_el+ 'meV = '+"%.2f" % ((van_el/self.ei)*100)+ '%'
            #string1 = '\t {0:.2f} \t {1:.2f} \t {2:.2f}'.format(freq,flux,(van_el/self.ei)*100)
            #string1 = '\t {0:.2f} \t {1:.2f} \t {2:.2f}'.format(freq,flux,(van_el/self.ei)*100)
            string1 = ' {0}    \t {1:.2f}  \t  {2:.2f}'.format(
                freq, float(flux), ((van_el / self.ei) * 100))
            self.ui.disp.addItem(string1)