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)