Added support to import LongTrack settings file and to match with user defined twiss values

This commit is contained in:
2026-03-05 11:00:17 +01:00
parent bc81dcce00
commit 9bef0adc13
6 changed files with 340 additions and 20 deletions
+13 -2
View File
@@ -87,7 +87,12 @@ class OpticsTools(QtWidgets.QMainWindow, QtCore.QObject, Ui_OpticsGUI):
vars = self.getMatchVariables()
else:
vars = None
twiss = self.match.match(self.model.om, variables = vars, Injector = injector,Athos = athos, Aramis = aramis, Porthos = porthos)
inittwiss={}
inittwiss['betax']=float(str(self.UIInitBetax.text()))
inittwiss['betay'] = float(str(self.UIInitBetay.text()))
inittwiss['alphax'] = float(str(self.UIInitAlphax.text()))
inittwiss['alphay'] = float(str(self.UIInitAlphay.text()))
twiss = self.match.match(self.model.om, variables = vars, initCond = inittwiss, Injector = injector,Athos = athos, Aramis = aramis, Porthos = porthos)
self.updateMatchResult(self.match.matchresult)
energy = self.model.calcEnergyProfile(twiss)
#enfore the writing of a new lattice so that the magnet settings are in the new lattice
@@ -187,7 +192,7 @@ class OpticsTools(QtWidgets.QMainWindow, QtCore.QObject, Ui_OpticsGUI):
"Json Files (*.json)", options=options)
if not fileName:
return
self.saveSettingdirect(fileName)
self.saveSettingsdirect(fileName)
@@ -206,9 +211,15 @@ class OpticsTools(QtWidgets.QMainWindow, QtCore.QObject, Ui_OpticsGUI):
def loadSettingsdirect(self,fileName):
print('Loading settings from %s ...' % fileName)
with open(fileName, 'r', encoding='utf-8') as f:
settings = json.load(f)
status=self.model.loadSettings(settings)
if 'InitialCondition' in settings.keys():
self.UIInitBetax.setText('%7.3f' % settings['InitialCondition']['betx'])
self.UIInitBetay.setText('%7.3f' % settings['InitialCondition']['bety'])
self.UIInitAlphax.setText('%7.3f' % settings['InitialCondition']['alfx'])
self.UIInitAlphay.setText('%7.3f' % settings['InitialCondition']['alfy'])
if status:
print('Reference loaded from file %s' % fileName)
self.status('Reference file loaded')