diff --git a/OpticsTools.py b/OpticsTools.py
index c7ae160..7cba2dd 100644
--- a/OpticsTools.py
+++ b/OpticsTools.py
@@ -98,8 +98,8 @@ class OpticsTools(QtWidgets.QMainWindow, QtCore.QObject, Ui_OpticsGUI):
if self.UISaveMatchSettings.isChecked():
fileName = self.match.scriptdir+'/settings.json'
self.saveSettingsdirect(fileName)
- if self.UIReportMatchStrength.isChecked():
- self.model.checkMagnetLimit()
+
+
def updateMatchingCase(self):
diff --git a/Scripts/SFPlus/matchAramis.madx b/Scripts/SFPlus/matchAramis.madx
index 3d59dbd..4da53af 100644
--- a/Scripts/SFPlus/matchAramis.madx
+++ b/Scripts/SFPlus/matchAramis.madx
@@ -14,7 +14,7 @@ s20bc01.mqua010.k1:=1.;
MATCH,SEQUENCE=Swissfel,range=s20sy02$start/s20bc02$end,beta0=twisssep;
VARY,NAME=s20bc01.mqua010.k1,STEP=0.0001;
VARY,NAME=s20bc01.mqua030.k1,STEP=0.0001;
-VARY,NAME=s20bc01.mqua050.k1,STEP=0.0001;
+VARY,NAME=s20bc01.mqua060.k1,STEP=0.0001;
CONSTRAINT,SEQUENCE=SwissFEL,range= s20bc02$end,betx<4;
CONSTRAINT,SEQUENCE=SwissFEL,range= s20bc02$end,bety<90;
CONSTRAINT,SEQUENCE=SwissFEL,range= s20bc01$end,betx<250;
@@ -260,7 +260,7 @@ sarcl01.mqua190.k1 := -1.475278354;
use,sequence=swissfel;
MATCH,SEQUENCE=swissfel,range=s20SY02$start/sarma02$start,beta0=twisssep;
-VARY,NAME=sarcl01.mqua020.k1,STEP=0.0001;
+VARY,NAME=sarcl01.mqua020.k1,STEP=0.0001,lower=-1., upper =1.;
VARY,NAME=sarcl01.mqua050.k1,STEP=0.0001;
VARY,NAME=sarcl01.mqua080.k1,STEP=0.0001;
VARY,NAME=sarcl01.mqua100.k1,STEP=0.0001;
@@ -294,7 +294,7 @@ plot,haxis=s,vaxis=betx,bety,range=S30CB15$START/SARCL02$END,colour=100;
!-----------------
-muAR=0.17;
+muAR=0.16;
match,SEQUENCE=swissfel,range=sarun02$start/sarun03$end;
Vary,name=sarun02.mqua080.k1,step=0.0001;
Vary,name=sarun03.mqua080.k1,step=0.0001;
diff --git a/Scripts/SFPlus/matchAthos.madx b/Scripts/SFPlus/matchAthos.madx
index 30b25ab..00a2c72 100644
--- a/Scripts/SFPlus/matchAthos.madx
+++ b/Scripts/SFPlus/matchAthos.madx
@@ -117,7 +117,7 @@ twiss,SEQUENCE=swissfel,range=s20sy02$start/Satsy03.mbnd200,beta0=twisssep;
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
plot,haxis=s,vaxis=dx,dy,range=#s/#e,colour=100;
-exit;
+
MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satbc01$end,beta0=twisssep;
VARY,NAME=satsy03.mqua220.k1,STEP=0.0001;
diff --git a/issues.txt b/issues.txt
index e29a78b..c32a84b 100644
--- a/issues.txt
+++ b/issues.txt
@@ -8,11 +8,11 @@
2) switch between references
3) Allo filter to update quadrupoles to be part of the match scripts and not globally written in the code
-#
+
#) Give feedback on the matching results to GUI
#) allow for some progress indication of matching
-
-#
#) Check for maximum gradient for matched values
3) Match for sextupoles!
+
+#) check why program crashes when matching all 3 beamlines
diff --git a/model.py b/model.py
index 97f5bf9..807f95a 100644
--- a/model.py
+++ b/model.py
@@ -33,6 +33,7 @@ class Model:
def eventHandling(self):
self.parent.UITrack.clicked.connect(self.track)
+ self.parent.UIReportMagnetStrength.clicked.connect(self.checkMagnetLimit)
def forceLatticeUpdate(self):
self.forceLat=True
@@ -308,6 +309,7 @@ class Model:
########################################3
def checkMagnetLimit(self):
# using magnet calibration
+ self.updateEnergy(140.)
quad={}
quad['QFA'] = [0.15, 0.173, 150.0, 91.1, 0.0, 0.74521, -0.00813, -0.03542,
22.5e-3] # From MEASUREMENT. Documentation: https://intranet.psi.ch/pub/Swiss_FEL/FinQuadrupoles/QFA.pdf
@@ -317,6 +319,7 @@ class Model:
1.0] # From DESIGN(?). Documentation: Injector wiki, Subsystems (as of 14th Aug 2014)
quad['QFD'] = [0.15, 0.1628, 10.0, 5.6, 0.0, 0.23313, -27.6e-4, 15.5e-4,
0.011] # From Measurement. Documentation: FEL-SS88-007-7.pdf (found in Alfresco: Company Home > Projects > SwissFEL > Facility > 8850 Magnets)
+ quad['QFDM'] = quad['QFD'] # same type but weaker windings for corrector
quad['QFF'] = [0.08, 0.0875, 10.0, 2.9, 0.0, 0.32897, -0.5e-4, -42.9e-4,
0.006] # From Measurement. Documentation: FEL-SS88-008-8.pdf (found in Alfresco)
quad['QFM'] = [0.3, 0.311, 50.0, 21.1, 0.0, 0.64541, -0.00296, -0.00617, 0.011] # From Measurement
@@ -345,4 +348,6 @@ class Model:
k1max=k1brho[bg]/brho
rat=np.abs(ele.k1/k1max)*100.
print('%s: %5.1f (percent)' % (ele.Name.replace('.','-'),rat))
+ else:
+ print('%s: Unsupported type %s' % (ele.Name.replace('.','-'),bg))
diff --git a/ui/OpticsToolsGui.py b/ui/OpticsToolsGui.py
index c317936..f97199f 100644
--- a/ui/OpticsToolsGui.py
+++ b/ui/OpticsToolsGui.py
@@ -356,9 +356,6 @@ class Ui_OpticsGUI(object):
self.UIInitAllMagnets = QtWidgets.QCheckBox(self.widget)
self.UIInitAllMagnets.setObjectName("UIInitAllMagnets")
self.verticalLayout_3.addWidget(self.UIInitAllMagnets)
- self.UIReportMatchStrength = QtWidgets.QCheckBox(self.widget)
- self.UIReportMatchStrength.setObjectName("UIReportMatchStrength")
- self.verticalLayout_3.addWidget(self.UIReportMatchStrength)
self.label_19 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setBold(True)
@@ -383,6 +380,9 @@ class Ui_OpticsGUI(object):
item = QtWidgets.QTableWidgetItem()
self.UIMatchKnobs.setHorizontalHeaderItem(1, item)
self.verticalLayout_3.addWidget(self.UIMatchKnobs)
+ self.UIReportMagnetStrength = QtWidgets.QPushButton(self.widget)
+ self.UIReportMagnetStrength.setObjectName("UIReportMagnetStrength")
+ self.verticalLayout_3.addWidget(self.UIReportMagnetStrength)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_3.addItem(spacerItem1)
self.horizontalLayout_4.addWidget(self.widget)
@@ -660,13 +660,13 @@ class Ui_OpticsGUI(object):
self.UIMatchAramis.setText(_translate("OpticsGUI", "Aramis"))
self.UISaveMatchSettings.setText(_translate("OpticsGUI", "Save matched machine settings automtically"))
self.UIInitAllMagnets.setText(_translate("OpticsGUI", "Initialize all magnets to zero before matching"))
- self.UIReportMatchStrength.setText(_translate("OpticsGUI", "Report matched quadrupole strength"))
self.label_19.setText(_translate("OpticsGUI", "Matching Variables"))
self.UIModifyKnobs.setText(_translate("OpticsGUI", "Overwrite default values for matching variables "))
item = self.UIMatchKnobs.horizontalHeaderItem(0)
item.setText(_translate("OpticsGUI", "Parameter"))
item = self.UIMatchKnobs.horizontalHeaderItem(1)
item.setText(_translate("OpticsGUI", "Value"))
+ self.UIReportMagnetStrength.setText(_translate("OpticsGUI", "Report Matched Quadrupole Strength"))
self.TabMaster.setTabText(self.TabMaster.indexOf(self.tab_3), _translate("OpticsGUI", "Track"))
self.groupBox_8.setTitle(_translate("OpticsGUI", "Magnets (Angle/ k1L / k2L)"))
self.label_23.setText(_translate("OpticsGUI", "Start"))
diff --git a/ui/OpticsToolsGui.ui b/ui/OpticsToolsGui.ui
index 8326cea..099aac8 100644
--- a/ui/OpticsToolsGui.ui
+++ b/ui/OpticsToolsGui.ui
@@ -581,13 +581,6 @@
- -
-
-
- Report matched quadrupole strength
-
-
-
-
@@ -628,6 +621,13 @@
+ -
+
+
+ Report Matched Quadrupole Strength
+
+
+
-