First round of matching
This commit is contained in:
68
matchingmanager.py
Normal file
68
matchingmanager.py
Normal file
@@ -0,0 +1,68 @@
|
||||
class MatchManager:
|
||||
def __init__(self,parent=None):
|
||||
self.parent=parent
|
||||
self.FODO={}
|
||||
self.defineFODO()
|
||||
self.updateFODOWidget()
|
||||
self.parent.UIMFodoList.currentIndexChanged.connect(self.updateFODOWidget)
|
||||
|
||||
def getFODOInfo(self,reference):
|
||||
"""
|
||||
retrieve if a seciton is matched and if yes get initial fodo values
|
||||
:param reference:
|
||||
:return:
|
||||
"""
|
||||
if reference == 'Injector':
|
||||
a = 1
|
||||
elif reference == 'Linac 1':
|
||||
a = 1
|
||||
elif reference == 'Linac 2':
|
||||
a = 1
|
||||
elif reference == 'Linac 3':
|
||||
a = 1
|
||||
elif reference == 'Aramis Undulator':
|
||||
a = 1
|
||||
elif reference == 'Athos Undulator':
|
||||
a = 1
|
||||
|
||||
###########################
|
||||
##### generic FODO matching
|
||||
|
||||
def updateFODOWidget(self):
|
||||
reference = self.parent.UIMFodoList.currentText()
|
||||
if not reference in self.FODO.keys():
|
||||
print('Not Supported')
|
||||
return
|
||||
self.parent.UIMFodoPhase.setText('%7.3f' % self.FODO[reference]['mu'])
|
||||
self.parent.UIMFodoFlip.setChecked(self.FODO[reference]['FlipPol'])
|
||||
if self.FODO[reference]['Result'] is None:
|
||||
self.parent.UIMFodoResult.setText('Not matched yet')
|
||||
else:
|
||||
self.parent.UIMFodoResult.setText('%7.3e' % self.FODO[reference]['Result'])
|
||||
|
||||
def setFODOParameters(self,par):
|
||||
reference = self.parent.UIMFodoList.currentText()
|
||||
if not reference in self.FODO.keys():
|
||||
print('Not Supported')
|
||||
return None
|
||||
self.FODO[reference]=par
|
||||
|
||||
def getFODOParameters(self):
|
||||
reference = self.parent.UIMFodoList.currentText()
|
||||
if not reference in self.FODO.keys():
|
||||
print('Not Supported')
|
||||
return None
|
||||
self.FODO[reference]['mu'] = float(str(self.parent.UIMFodoPhase.text()))
|
||||
self.FODO[reference]['FlipPol'] = self.parent.UIMFodoFlip.isChecked()
|
||||
return self.FODO[reference]
|
||||
|
||||
def defineFODO(self):
|
||||
self.FODO.clear()
|
||||
self.FODO['Injector']={'Sequence':'SINSB04','Destination': 'SARBD01',
|
||||
'Quads':['sinsb04.mqua130.k1','sinsb04.mqua230.k1'],
|
||||
'Init':[0.722,-0.7156],'FlipPol':False,'mu':0.2,'Result':None,'Twiss':None}
|
||||
|
||||
self.FODO['Linac 1']={'Sequence':'S10CB01','Destination': 'SARBD01',
|
||||
'Quads':['s10cb01.mqua230.k1','s10cb01.mqua430.k1'],
|
||||
'Init':[-1.491,1.4905],'FlipPol':False,'mu':0.1883,'Result':None,'Twiss':None}
|
||||
|
||||
Reference in New Issue
Block a user