Files
OpticsTools/matching.py
2026-01-26 12:51:49 +01:00

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)