25 lines
912 B
Python
25 lines
912 B
Python
from matchingmanager import MatchManager
|
|
|
|
class Matching:
|
|
def __init__(self,parent=None,model=None):
|
|
self.parent = parent
|
|
self.model = model
|
|
self.manager = MatchManager(parent=parent)
|
|
self.parent.UIMFodoMatchSingle.clicked.connect(self.matchingFodo)
|
|
|
|
def matchingFodo(self):
|
|
print('matching')
|
|
par = self.manager.getFODOParameters()
|
|
if par is None:
|
|
return
|
|
quads=par['Quads']
|
|
vals=par['Init']
|
|
if par['FlipPol']:
|
|
vals = [-val for val in vals]
|
|
var = {name:vals[i] for i,name in enumerate(quads)}
|
|
cond = {'range':'#e','mux':par['mu'],'muy':par['mu']}
|
|
twiss,tar = self.model.match(sequence=par['Sequence'], destination=par['Destination'],variables=var, conditions=cond, periodic=True)
|
|
par['Result']=tar
|
|
par['Twiss']=twiss
|
|
self.manager.setFODOParameters(par)
|