diff --git a/Settings/Reference.json b/MatchingConfig/Reference.json
similarity index 57%
rename from Settings/Reference.json
rename to MatchingConfig/Reference.json
index f03ac80..0582746 100644
--- a/Settings/Reference.json
+++ b/MatchingConfig/Reference.json
@@ -1,6 +1,14 @@
{
"Label": "Reference",
"Order": [
+ {
+ "Reference": null,
+ "MatchID": "Preset",
+ "End": null,
+ "Destination": "SATBD01",
+ "Sequence": null,
+ "Save": null
+ },
{
"Reference": "Start",
"MatchID": "Laser Heater",
@@ -107,6 +115,65 @@
"Destination": "SATBD01",
"Sequence": null,
"Save": null
+ },
+ {
+ "Reference": "Switchyard",
+ "MatchID": "Athos Diagnostics",
+ "End": "SATDI01",
+ "Destination": "SATBD01",
+ "Sequence": null,
+ "Save": null
+ },
+ {
+ "Reference": null,
+ "MatchID": "Athos Linac",
+ "End": null,
+ "Destination": "SATBD01",
+ "Sequence": "SATCB01",
+ "Save": true
+ },
+ {
+ "Reference": "HERO",
+ "MatchID": "Athos Stopper",
+ "End": "SATCL02",
+ "Destination": "SATBD01",
+ "Sequence": null,
+ "Save": null
+ },
+ {
+ "Reference": "HERO",
+ "MatchID": "Athos EEHG",
+ "End": "SATMA01",
+ "Destination": "SATBD01",
+ "Sequence": null,
+ "Save": null
+ },
+ {
+ "Reference": null,
+ "MatchID": "Athos Undulator",
+ "End": null,
+ "Destination": "SATBD01",
+ "Sequence": [
+ "SATUN06",
+ "SATUN07"
+ ],
+ "Save": true
+ },
+ {
+ "Reference": "EEHG",
+ "MatchID": "Match to Athos Undulator",
+ "End": "SATUN09",
+ "Destination": "SATBD01",
+ "Sequence": null,
+ "Save": null
+ },
+ {
+ "Reference": "EEHG",
+ "MatchID": "Match to Athos Deflector",
+ "End": "SATBD01",
+ "Destination": "SATBD01",
+ "Sequence": null,
+ "Save": null
}
],
"Dependence": {
@@ -132,6 +199,30 @@
],
"S20CB01-MQUA430": [
"S20CB03-MQUA430"
+ ],
+ "SATCB01-MQUA230": [
+ "SATCL02-MQUA430"
+ ],
+ "SATCB01-MQUA430": [
+ "SATCL02-MQUA430"
+ ],
+ "SATUN06-MQUA080": [
+ "SATUN08-MQUA080",
+ "SATUN10-MQUA080",
+ "SATUN12-MQUA080",
+ "SATUN14-MQUA420",
+ "SATUN16-MQUA080",
+ "SATUN18-MQUA080",
+ "SATUN20-MQUA080"
+ ],
+ "SATUN07-MQUA080": [
+ "SATUN09-MQUA080",
+ "SATUN11-MQUA080",
+ "SATUN13-MQUA080",
+ "SATUN15-MQUA080",
+ "SATUN17-MQUA080",
+ "SATUN19-MQUA080",
+ "SATUN21-MQUA080"
]
},
"Reference": {
@@ -198,7 +289,7 @@
"alphay": -6.363
}
},
- "Athos HERO": {
+ "HERO": {
"Location": "satdi01.mqua250$start",
"Twiss": {
"betax": 35.76,
@@ -215,9 +306,50 @@
"betay": 50,
"alphay": 0
}
+ },
+ "EEHG": {
+ "Location": "satma01.mqua610$start",
+ "Twiss": {
+ "betax": 10.0,
+ "alphax": 0.027,
+ "betay": 16.85,
+ "alphay": 0.027
+ }
}
},
"Parameter": {
+ "Preset": {
+ "Variable": [],
+ "Target": [
+ {
+ "Preset": {
+ "sinlh01.mqsk030.k1": 0,
+ "sinbc02.mqsk110.k1": 0,
+ "sinbc02.mqsk350.k1": 0,
+ "sindi01.mqsk030.k1": 0,
+ "s10bc02.mqsk110.k1": 0,
+ "s10bc02.mqsk350.k1": 0,
+ "sarcl02.mqsk160.k1": 0,
+ "sarcl02.mqsk300.k1": 0,
+ "sarcl02.mqsk420.k1": 0,
+ "satsy01.mqsk030.k1": 0,
+ "satsy01.mqsk270.k1": 0,
+ "sinbc02.mqua120.k1": 0,
+ "sinbc02.mqua340.k1": 0,
+ "s10bc02.mqua120.k1": 0,
+ "s10bc02.mqua340.k1": 0,
+ "sarcl02.mqua150.k1": 0,
+ "sarcl02.mqua430.k1": 0,
+ "satbd01.mqua010.k1": 0.50697,
+ "satbd01.mqua030.k1": -0.618466,
+ "satbd01.mqua050.k1": 0.13249,
+ "satbd01.mqua070.k1": 0.47403,
+ "satbd01.mqua090.k1": -0.74426,
+ "satbd02.mqua030.k1": -1.05081
+ }
+ }
+ ]
+ },
"Laser Heater": {
"Variable": [
"SINLH01-MQUA020",
@@ -419,7 +551,7 @@
"Location": "s20sy02$start",
"Twiss": {
"betax": 48.26,
- "alphax": 0,
+ "alphax": 7.322,
"betay": 14.293,
"alphay": -3.513
}
@@ -449,13 +581,192 @@
"SATSY01-MQUA020",
"SATSY01-MQUA040",
"SATSY01-MQUA070",
- "SATSY01-MQUA090"
+ "SATSY01-MQUA090",
+ "SATSY01-MQUA210",
+ "SATSY01-MQUA230",
+ "SATSY01-MQUA260",
+ "SATSY01-MQUA280",
+ "SATSY01-MQUA300",
+ "SATSY02-MQUA010",
+ "SATSY02-MQUA110",
+ "SATSY02-MQUA120",
+ "SATSY02-MQUA230",
+ "SATSY03-MQUA010",
+ "SATSY03-MQUA040",
+ "SATSY03-MQUA070",
+ "SATSY03-MQUA100",
+ "SATSY03-MQUA130",
+ "SATCL01-MQUA120",
+ "SATCL01-MQUA130",
+ "SATCL01-MQUA180",
+ "SATCL01-MQUA190"
],
"Target": [
{
"Script": "Scripts/switchyard.madx"
}
]
+ },
+ "Athos Diagnostics": {
+ "Variable": [
+ "SATDI01-MQUA025",
+ "SATDI01-MQUA080",
+ "SATDI01-MQUA220",
+ "SATDI01-MQUA230"
+ ],
+ "Target": [
+ {
+ "Location": "satdi01.mqua250$start",
+ "Twiss": {
+ "betax": 35.76,
+ "alphax": -1.166,
+ "betay": 24.087,
+ "alphay": 0.648
+ }
+ }
+ ]
+ },
+ "Athos Linac": {
+ "Variable": [
+ "SATCB01-MQUA230",
+ "SATCB01-MQUA430"
+ ],
+ "Target": [
+ {
+ "Location": "#e",
+ "Twiss": {
+ "MUX": 0.053,
+ "MUY": 0.053
+ }
+ }
+ ]
+ },
+ "Athos Stopper": {
+ "Variable": [
+ "SATDI01-MQUA250",
+ "SATDI01-MQUA260",
+ "SATDI01-MQUA280",
+ "SATDI01-MQUA300"
+ ],
+ "Target": [
+ {
+ "Location": "satcl01$start",
+ "SavedID": "Athos Linac"
+ }
+ ]
+ },
+ "Athos EEHG": {
+ "Variable": [
+ "SATMA01-MQUA050",
+ "SATMA01-MQUA120",
+ "SATMA01-MQUA140",
+ "SATMA01-MQUA160",
+ "SATMA01-MQUA180",
+ "SATMA01-MQUA230",
+ "SATMA01-MQUA250"
+ ],
+ "Target": [
+ {
+ "Location": "satma01.mqua610$start",
+ "Twiss": {
+ "betax": 10.0,
+ "alphax": 0.027,
+ "betay": 16.85,
+ "alphay": 0.027
+ }
+ },
+ {
+ "Location": "satma01.mqua140$start",
+ "Twiss": {
+ "betax": 70,
+ "betay": 70
+ },
+ "Limit": 1
+ },
+ {
+ "Location": "satma01.mqua160$start",
+ "Twiss": {
+ "betax": 70,
+ "betay": 70
+ },
+ "Limit": 1
+ },
+ {
+ "Location": "satma01.mqua180$start",
+ "Twiss": {
+ "betax": 70,
+ "betay": 70
+ },
+ "Limit": 1
+ }
+ ]
+ },
+ "Athos Undulator": {
+ "Variable": [
+ "SATUN06-MQUA080",
+ "SATUN07-MQUA080"
+ ],
+ "Target": [
+ {
+ "Location": "#e",
+ "Twiss": {
+ "MUX": 0.15,
+ "MUY": 0.15
+ }
+ }
+ ]
+ },
+ "Match to Athos Undulator": {
+ "Variable": [
+ "SATMA01-MQUA610",
+ "SATMA01-MQUA630",
+ "SATMA01-MQUA640",
+ "SATUN04-MQUA060",
+ "SATUN05-MQUA420"
+ ],
+ "Target": [
+ {
+ "Location": "satun06$start",
+ "SavedID": "Athos Undulator"
+ },
+ {
+ "Location": "satun07$end",
+ "Twiss": {
+ "x": 10,
+ "y": 10,
+ "px": 10
+ },
+ "Limit": 1
+ }
+ ]
+ },
+ "Match to Athos Deflector": {
+ "Variable": [
+ "SATUN22-MQUA080",
+ "SATMA02-MQUA010",
+ "SATMA02-MQUA020",
+ "SATMA02-MQUA040",
+ "SATMA02-MQUA050",
+ "SATMA02-MQUA070"
+ ],
+ "Target": [
+ {
+ "Location": "satbd01.mqua010$start",
+ "Twiss": {
+ "betax": 50,
+ "alphax": 0,
+ "betay": 50,
+ "alphay": 0
+ }
+ },
+ {
+ "Location": "satun22$end",
+ "Twiss": {
+ "x": 0,
+ "px": 0
+ }
+ }
+ ]
}
}
}
\ No newline at end of file
diff --git a/OpticsTools.py b/OpticsTools.py
index 7c38bc3..16affc9 100644
--- a/OpticsTools.py
+++ b/OpticsTools.py
@@ -41,7 +41,7 @@ class OpticsTools(QtWidgets.QMainWindow, Ui_OpticsGUI):
self.setWindowTitle(title)
# initialization
- self.loadSettingsdirect("/sf/data/applications/BD-OpticsTools/reference/settings/ReferenceSetting.json")
+ self.loadSettingsdirect("Settings/ReferenceSetting.json")
self.sandbox.updateSandbox()
self.reference = ReferenceManager(parent=self)
self.matching = Matching(parent=self, model=self.model, reference = self.reference)
diff --git a/Scripts/athosundulator.madx b/Scripts/athosundulator.madx
new file mode 100644
index 0000000..e69de29
diff --git a/Scripts/switchyard.madx b/Scripts/switchyard.madx
index 03d50e1..734f99f 100644
--- a/Scripts/switchyard.madx
+++ b/Scripts/switchyard.madx
@@ -41,7 +41,7 @@ CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01$end, X<10;
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
ENDMATCH;
-satsy01.mqua280.k1 = satsy01.mqua280.k1*1.3;
+!satsy01.mqua280.k1 = satsy01.mqua280.k1*1.3;
!------------------------------------------
! close vertical dispersion
@@ -73,7 +73,7 @@ satcl01.mqua190.k1:=satcl011;
-MATCH, SEQUENCE=swissfel, range=SATCL01$START/#SATCL01$END,betx=5,alfx=0,bety=30,alfy=0;
+MATCH, SEQUENCE=swissfel, range=SATCL01$START/SATCL01$END,betx=5,alfx=0,bety=30,alfy=0;
VARY, NAME=satcl011, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
VARY, NAME=satcl012, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, DX = 0;
@@ -107,5 +107,12 @@ LMDIF, CALLS=1000, TOLERANCE=1.E-21;
ENDMATCH;
+MATCH, SEQUENCE=swissfel, range=s20SY02$start/satcl01$end,beta0=initcon;
+VARY, NAME= satcl01.mqua180.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
+VARY, NAME= satcl01.mqua190.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
+CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, DX = 0;
+CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, DPX = 0;
+LMDIF, CALLS=1000, TOLERANCE=1.E-21;
+ENDMATCH;
twiss,sequence=swissfel,range=s20sy02$start/satcl01$end,rmatrix,beta0=initcon;
\ No newline at end of file
diff --git a/Settings/ReferenceSetting.json b/Settings/ReferenceSetting.json
new file mode 100644
index 0000000..4e02ffa
--- /dev/null
+++ b/Settings/ReferenceSetting.json
@@ -0,0 +1,1776 @@
+{
+ "Quadrupole": {
+ "SINEG01.MQUA140": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SINEG01.MQSK150": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SINEG01.MQUA212": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SINEG01.MQSK320": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SINLH01.MQUA020": {
+ "k1": -0.237197,
+ "k1L": -0.035579549999999995
+ },
+ "SINLH01.MQSK030": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SINLH01.MQUA040": {
+ "k1": -1.60556,
+ "k1L": -0.240834
+ },
+ "SINLH01.MQUA050": {
+ "k1": 14.036618,
+ "k1L": 2.1054927
+ },
+ "SINLH01.MQUA070": {
+ "k1": -12.81601,
+ "k1L": -1.9224014999999999
+ },
+ "SINLH02.MQUA010": {
+ "k1": 12.371069,
+ "k1L": 1.85566035
+ },
+ "SINLH02.MQUA410": {
+ "k1": -3.4378111034518337,
+ "k1L": -0.515671665517775
+ },
+ "SINLH03.MQUA030": {
+ "k1": 3.4573372527232578,
+ "k1L": 0.5186005879084886
+ },
+ "SINLH03.MQUA040": {
+ "k1": 0.3833558487534322,
+ "k1L": 0.05750337731301483
+ },
+ "SINLH03.MQUA060": {
+ "k1": -1.4514973347363687,
+ "k1L": -0.21772460021045528
+ },
+ "SINLH03.MQUA080": {
+ "k1": -3.1543289097164067,
+ "k1L": -0.473149336457461
+ },
+ "SINSB03.MQUA130": {
+ "k1": 1.4059041536107317,
+ "k1L": 0.21088562304160977
+ },
+ "SINSB03.MQUA230": {
+ "k1": -1.42634,
+ "k1L": -0.21395099999999997
+ },
+ "SINSB04.MQUA130": {
+ "k1": 1.42664,
+ "k1L": 0.213996
+ },
+ "SINSB04.MQUA230": {
+ "k1": -1.42634,
+ "k1L": -0.21395099999999997
+ },
+ "SINSB05.MQUA130": {
+ "k1": 1.42664,
+ "k1L": 0.213996
+ },
+ "SINSB05.MQUA230": {
+ "k1": -1.4263400000000002,
+ "k1L": -0.21395100000000003
+ },
+ "SINBC01.MQUA020": {
+ "k1": 0.300317,
+ "k1L": 0.04504755
+ },
+ "SINBC01.MQUA050": {
+ "k1": -0.050687,
+ "k1L": -0.00760305
+ },
+ "SINBC01.MQUA070": {
+ "k1": 0.62809,
+ "k1L": 0.0942135
+ },
+ "SINBC01.MQUA090": {
+ "k1": -2.208796,
+ "k1L": -0.3313194
+ },
+ "SINBC01.MQUA110": {
+ "k1": 1.816601,
+ "k1L": 0.27249015
+ },
+ "SINBC02.MQSK110": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SINBC02.MQUA120": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SINBC02.MQUA340": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SINBC02.MQSK350": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SINDI01.MQUA020": {
+ "k1": -0.229526,
+ "k1L": -0.0344289
+ },
+ "SINDI01.MQSK030": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SINDI01.MQUA070": {
+ "k1": 0.051959,
+ "k1L": 0.00779385
+ },
+ "SINDI02.MQUA020": {
+ "k1": -0.315785,
+ "k1L": -0.04736774999999999
+ },
+ "SINDI02.MQUA030": {
+ "k1": 0.230334,
+ "k1L": 0.0345501
+ },
+ "SINDI02.MQUA050": {
+ "k1": -1.474177,
+ "k1L": -0.22112655
+ },
+ "SINDI02.MQUA060": {
+ "k1": 1.015862,
+ "k1L": 0.1523793
+ },
+ "SINDI02.MQUA090": {
+ "k1": 0.917869,
+ "k1L": 0.13768035
+ },
+ "S10CB01.MQUA230": {
+ "k1": -0.386507,
+ "k1L": -0.057976049999999994
+ },
+ "S10CB01.MQUA430": {
+ "k1": 0.580752,
+ "k1L": 0.0871128
+ },
+ "S10CB02.MQUA230": {
+ "k1": -1.494493,
+ "k1L": -0.22417395
+ },
+ "S10CB02.MQUA430": {
+ "k1": 1.49398,
+ "k1L": 0.22409700000000002
+ },
+ "S10DI01.MQUA030": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "S10DI01.MQUA120": {
+ "k1": -1.494493,
+ "k1L": -0.22417395
+ },
+ "S10CB03.MQUA230": {
+ "k1": 1.49398,
+ "k1L": 0.22409700000000002
+ },
+ "S10CB03.MQUA430": {
+ "k1": -1.494493,
+ "k1L": -0.22417395
+ },
+ "S10CB04.MQUA230": {
+ "k1": 1.49398,
+ "k1L": 0.22409700000000002
+ },
+ "S10CB04.MQUA430": {
+ "k1": -1.494493,
+ "k1L": -0.22417395
+ },
+ "S10CB05.MQUA230": {
+ "k1": 1.49398,
+ "k1L": 0.22409700000000002
+ },
+ "S10CB05.MQUA430": {
+ "k1": -1.494493,
+ "k1L": -0.22417395
+ },
+ "S10CB06.MQUA230": {
+ "k1": 1.49398,
+ "k1L": 0.22409700000000002
+ },
+ "S10CB06.MQUA430": {
+ "k1": -1.494493,
+ "k1L": -0.22417395
+ },
+ "S10CB07.MQUA230": {
+ "k1": 1.49398,
+ "k1L": 0.22409700000000002
+ },
+ "S10CB07.MQUA430": {
+ "k1": -1.507062,
+ "k1L": -0.22605929999999996
+ },
+ "S10CB08.MQUA230": {
+ "k1": 1.507972,
+ "k1L": 0.2261958
+ },
+ "S10CB08.MQUA430": {
+ "k1": -1.511842,
+ "k1L": -0.2267763
+ },
+ "S10CB09.MQUA230": {
+ "k1": 1.497173,
+ "k1L": 0.22457595
+ },
+ "S10BC01.MQUA020": {
+ "k1": 1.7433,
+ "k1L": 0.261495
+ },
+ "S10BC01.MQUA040": {
+ "k1": -1.23226,
+ "k1L": -0.18483899999999998
+ },
+ "S10BC01.MQUA060": {
+ "k1": -0.756093,
+ "k1L": -0.11341395
+ },
+ "S10BC01.MQUA080": {
+ "k1": -0.925953,
+ "k1L": -0.13889295
+ },
+ "S10BC01.MQUA100": {
+ "k1": 1.843773,
+ "k1L": 0.27656595
+ },
+ "S10BC02.MQSK110": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "S10BC02.MQUA120": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "S10BC02.MQUA340": {
+ "k1": 0.0125,
+ "k1L": 0.001
+ },
+ "S10BC02.MQSK350": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "S10MA01.MQUA020": {
+ "k1": -1.032398,
+ "k1L": -0.1548597
+ },
+ "S10MA01.MQUA050": {
+ "k1": -0.204591,
+ "k1L": -0.030688649999999998
+ },
+ "S10MA01.MQUA070": {
+ "k1": 0.505964,
+ "k1L": 0.07589459999999999
+ },
+ "S10MA01.MQUA110": {
+ "k1": 1.179931,
+ "k1L": 0.17698965
+ },
+ "S10MA01.MQUA130": {
+ "k1": -0.535232,
+ "k1L": -0.0802848
+ },
+ "S20CB01.MQUA430": {
+ "k1": -0.86332,
+ "k1L": -0.129498
+ },
+ "S20CB02.MQUA430": {
+ "k1": 0.863313,
+ "k1L": 0.12949695
+ },
+ "S20CB03.MQUA430": {
+ "k1": -0.86332,
+ "k1L": -0.129498
+ },
+ "S20SY01.MQUA020": {
+ "k1": -1.409264,
+ "k1L": -0.2113896
+ },
+ "S20SY01.MQUA030": {
+ "k1": 1.653329,
+ "k1L": 0.24799935
+ },
+ "S20SY01.MQUA050": {
+ "k1": -1.245714,
+ "k1L": -0.1868571
+ },
+ "S20SY01.MQUA080": {
+ "k1": 1.391126,
+ "k1L": 0.20866890000000002
+ },
+ "S20SY02.MQUA070": {
+ "k1": -2.1177854407305055,
+ "k1L": -0.3176678161095758
+ },
+ "S20SY02.MQUA100": {
+ "k1": 1.33996,
+ "k1L": 0.200994
+ },
+ "S20SY02.MQUA140": {
+ "k1": 1.1490188410542805,
+ "k1L": 0.17235282615814207
+ },
+ "S20SY02.MQUA180": {
+ "k1": -1.4912517785966812,
+ "k1L": -0.22368776678950217
+ },
+ "S20SY03.MQUA020": {
+ "k1": 1.47384,
+ "k1L": 0.221076
+ },
+ "S20SY03.MQUA030": {
+ "k1": -0.6635266666666667,
+ "k1L": -0.099529
+ },
+ "S20SY03.MQUA050": {
+ "k1": 1.2635,
+ "k1L": 0.189525
+ },
+ "S20SY03.MQUA060": {
+ "k1": -1.8570733333333334,
+ "k1L": -0.278561
+ },
+ "S20SY03.MQUA100": {
+ "k1": 1.54432,
+ "k1L": 0.23164799999999997
+ },
+ "S30CB01.MQUA430": {
+ "k1": 0.8201533333333333,
+ "k1L": 0.123023
+ },
+ "S30CB02.MQUA430": {
+ "k1": -0.8201466666666667,
+ "k1L": -0.12302199999999999
+ },
+ "S30CB03.MQUA430": {
+ "k1": 0.8201533333333333,
+ "k1L": 0.123023
+ },
+ "S30CB04.MQUA430": {
+ "k1": -0.8201466666666667,
+ "k1L": -0.12302199999999999
+ },
+ "S30CB05.MQUA430": {
+ "k1": 0.8201533333333333,
+ "k1L": 0.123023
+ },
+ "S30CB06.MQUA430": {
+ "k1": -0.8191066666666668,
+ "k1L": -0.122866
+ },
+ "S30CB07.MQUA430": {
+ "k1": 0.8194866666666667,
+ "k1L": 0.122923
+ },
+ "S30CB08.MQUA430": {
+ "k1": -0.8180200000000001,
+ "k1L": -0.122703
+ },
+ "S30CB09.MQUA430": {
+ "k1": 0.81822,
+ "k1L": 0.12273299999999998
+ },
+ "S30CB10.MQUA430": {
+ "k1": -0.8201466666666667,
+ "k1L": -0.12302199999999999
+ },
+ "S30CB11.MQUA430": {
+ "k1": 0.8201533333333333,
+ "k1L": 0.123023
+ },
+ "S30CB12.MQUA430": {
+ "k1": -0.8201466666666667,
+ "k1L": -0.12302199999999999
+ },
+ "S30CB13.MQUA430": {
+ "k1": 0.8201533333333333,
+ "k1L": 0.123023
+ },
+ "S30CB14.MQUA430": {
+ "k1": -0.8201466666666667,
+ "k1L": -0.12302199999999999
+ },
+ "S30CB15.MQUA430": {
+ "k1": 0.8201533333333333,
+ "k1L": 0.123023
+ },
+ "SARCL01.MQUA020": {
+ "k1": -0.5674133333333333,
+ "k1L": -0.085112
+ },
+ "SARCL01.MQUA050": {
+ "k1": 0.7934866666666667,
+ "k1L": 0.23804599999999998
+ },
+ "SARCL01.MQUA080": {
+ "k1": -0.72643,
+ "k1L": -0.217929
+ },
+ "SARCL01.MQUA100": {
+ "k1": -0.14591,
+ "k1L": -0.043773
+ },
+ "SARCL01.MQUA140": {
+ "k1": 1.7667433333333336,
+ "k1L": 0.530023
+ },
+ "SARCL01.MQUA190": {
+ "k1": -1.4180733333333335,
+ "k1L": -0.425422
+ },
+ "SARCL02.MQUA130": {
+ "k1": 2.47047,
+ "k1L": 0.741141
+ },
+ "SARCL02.MQUA150": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SARCL02.MQSK160": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SARCL02.MQUA210": {
+ "k1": -2.22342,
+ "k1L": -0.667026
+ },
+ "SARCL02.MQUA250": {
+ "k1": 1.47725,
+ "k1L": 0.443175
+ },
+ "SARCL02.MQSK300": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SARCL02.MQUA310": {
+ "k1": 1.47725,
+ "k1L": 0.443175
+ },
+ "SARCL02.MQUA350": {
+ "k1": -2.22342,
+ "k1L": -0.667026
+ },
+ "SARCL02.MQSK420": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SARCL02.MQUA430": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SARCL02.MQUA460": {
+ "k1": 2.47047,
+ "k1L": 0.741141
+ },
+ "SARMA01.MQUA010": {
+ "k1": -1.6247900000000002,
+ "k1L": -0.487437
+ },
+ "SARMA01.MQUA060": {
+ "k1": 1.2823166666666668,
+ "k1L": 0.384695
+ },
+ "SARMA01.MQUA080": {
+ "k1": 0.12394000000000001,
+ "k1L": 0.037182
+ },
+ "SARMA01.MQUA120": {
+ "k1": -0.9487700000000001,
+ "k1L": -0.284631
+ },
+ "SARMA01.MQUA140": {
+ "k1": 0.7188366666666667,
+ "k1L": 0.215651
+ },
+ "SARMA02.MQUA050": {
+ "k1": -2.8361125,
+ "k1L": -0.226889
+ },
+ "SARMA02.MQUA120": {
+ "k1": 2.8361125,
+ "k1L": 0.226889
+ },
+ "SARUN01.MQUA080": {
+ "k1": -2.8361125,
+ "k1L": -0.226889
+ },
+ "SARUN02.MQUA080": {
+ "k1": 2.8361125,
+ "k1L": 0.226889
+ },
+ "SARUN03.MQUA080": {
+ "k1": -2.7167375,
+ "k1L": -0.21733899999999998
+ },
+ "SARUN04.MQUA080": {
+ "k1": 2.8063375,
+ "k1L": 0.224507
+ },
+ "SARUN05.MQUA080": {
+ "k1": -2.719025,
+ "k1L": -0.217522
+ },
+ "SARUN06.MQUA080": {
+ "k1": 2.8369625,
+ "k1L": 0.226957
+ },
+ "SARUN07.MQUA080": {
+ "k1": -2.718575,
+ "k1L": -0.217486
+ },
+ "SARUN08.MQUA080": {
+ "k1": 2.8063000000000002,
+ "k1L": 0.22450400000000004
+ },
+ "SARUN09.MQUA080": {
+ "k1": -2.719525,
+ "k1L": -0.217562
+ },
+ "SARUN10.MQUA080": {
+ "k1": 2.8364625,
+ "k1L": 0.226917
+ },
+ "SARUN11.MQUA080": {
+ "k1": -2.7189875,
+ "k1L": -0.217519
+ },
+ "SARUN12.MQUA080": {
+ "k1": 2.8064625,
+ "k1L": 0.224517
+ },
+ "SARUN13.MQUA080": {
+ "k1": -2.7200875,
+ "k1L": -0.217607
+ },
+ "SARUN14.MQUA080": {
+ "k1": 2.836525,
+ "k1L": 0.226922
+ },
+ "SARUN15.MQUA080": {
+ "k1": -2.7991625,
+ "k1L": -0.223933
+ },
+ "SARUN16.MQUA080": {
+ "k1": 2.8508999999999998,
+ "k1L": 0.228072
+ },
+ "SARUN17.MQUA080": {
+ "k1": -2.8655875,
+ "k1L": -0.229247
+ },
+ "SARUN18.MQUA080": {
+ "k1": 2.860225,
+ "k1L": 0.228818
+ },
+ "SARUN19.MQUA080": {
+ "k1": -3.0,
+ "k1L": -0.24
+ },
+ "SARUN20.MQUA080": {
+ "k1": 2.8022125,
+ "k1L": 0.22417700000000002
+ },
+ "SARBD01.MQUA020": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SATSY01.MQUA020": {
+ "k1": 0.48660586059056876,
+ "k1L": 0.14598175817717063
+ },
+ "SATSY01.MQSK030": {
+ "k1": 0.05,
+ "k1L": 0.004
+ },
+ "SATSY01.MQUA040": {
+ "k1": 1.0087581140227897,
+ "k1L": 0.15131371710341845
+ },
+ "SATSY01.MQUA070": {
+ "k1": -0.05069776110738714,
+ "k1L": -0.007604664166108071
+ },
+ "SATSY01.MQUA090": {
+ "k1": -0.8280230382090663,
+ "k1L": -0.12420345573135994
+ },
+ "SATSY01.MQUA210": {
+ "k1": -1.0429250612742882,
+ "k1L": -0.15643875919114322
+ },
+ "SATSY01.MQUA230": {
+ "k1": 0.14447962370530146,
+ "k1L": 0.021671943555795218
+ },
+ "SATSY01.MQUA260": {
+ "k1": 1.0087581140227897,
+ "k1L": 0.15131371710341845
+ },
+ "SATSY01.MQSK270": {
+ "k1": -0.02,
+ "k1L": -0.003
+ },
+ "SATSY01.MQUA280": {
+ "k1": 0.4154173003863646,
+ "k1L": 0.12462519011590938
+ },
+ "SATSY01.MQUA300": {
+ "k1": 0.5274,
+ "k1L": 0.07911
+ },
+ "SATSY02.MQUA010": {
+ "k1": -1.7080620959571267,
+ "k1L": -0.256209314393569
+ },
+ "SATSY02.MQUA110": {
+ "k1": 1.959261104743878,
+ "k1L": 0.2938891657115817
+ },
+ "SATSY02.MQUA120": {
+ "k1": -1.4090698555806758,
+ "k1L": -0.21136047833710137
+ },
+ "SATSY02.MQUA230": {
+ "k1": -0.13140025286907797,
+ "k1L": -0.019710037930361694
+ },
+ "SATSY03.MQUA010": {
+ "k1": 0.5686392250973631,
+ "k1L": 0.08529588376460447
+ },
+ "SATSY03.MQUA040": {
+ "k1": 0.7394030481479725,
+ "k1L": 0.11091045722219588
+ },
+ "SATSY03.MQUA070": {
+ "k1": 0.3959121491873279,
+ "k1L": 0.05938682237809918
+ },
+ "SATSY03.MQUA100": {
+ "k1": -0.05183539567068032,
+ "k1L": -0.0077753093506020485
+ },
+ "SATSY03.MQUA130": {
+ "k1": -0.6742001919717852,
+ "k1L": -0.10113002879576777
+ },
+ "SATCL01.MQUA120": {
+ "k1": -1.1820586458351845,
+ "k1L": -0.17730879687527767
+ },
+ "SATCL01.MQUA130": {
+ "k1": 1.7726821739375485,
+ "k1L": 0.26590232609063225
+ },
+ "SATCL01.MQUA180": {
+ "k1": 1.7075900466920062,
+ "k1L": 0.2561385070038009
+ },
+ "SATCL01.MQUA190": {
+ "k1": -1.070413017977504,
+ "k1L": -0.1605619526966256
+ },
+ "SATDI01.MQUA025": {
+ "k1": -1.0732185274832882,
+ "k1L": -0.16098277912249323
+ },
+ "SATDI01.MQUA080": {
+ "k1": 0.8923449729204195,
+ "k1L": 0.13385174593806293
+ },
+ "SATDI01.MQUA220": {
+ "k1": 0.7366134361225838,
+ "k1L": 0.11049201541838756
+ },
+ "SATDI01.MQUA230": {
+ "k1": -0.8543910736856596,
+ "k1L": -0.12815866105284893
+ },
+ "SATDI01.MQUA250": {
+ "k1": 0.513373,
+ "k1L": 0.07700594999999999
+ },
+ "SATDI01.MQUA260": {
+ "k1": 0.020907,
+ "k1L": 0.0031360499999999996
+ },
+ "SATDI01.MQUA280": {
+ "k1": -0.153973,
+ "k1L": -0.02309595
+ },
+ "SATDI01.MQUA300": {
+ "k1": -0.407693,
+ "k1L": -0.06115395
+ },
+ "SATCB01.MQUA230": {
+ "k1": 0.455653,
+ "k1L": 0.06834794999999999
+ },
+ "SATCB01.MQUA430": {
+ "k1": -0.455653,
+ "k1L": -0.06834794999999999
+ },
+ "SATCL02.MQUA230": {
+ "k1": 0.4556533333333334,
+ "k1L": 0.068348
+ },
+ "SATCL02.MQUA430": {
+ "k1": -0.455653,
+ "k1L": -0.06834794999999999
+ },
+ "SATMA01.MQUA050": {
+ "k1": -1.811994,
+ "k1L": -0.14495952
+ },
+ "SATMA01.MQUA120": {
+ "k1": 2.493105,
+ "k1L": 0.1994484
+ },
+ "SATMA01.MQUA140": {
+ "k1": -0.52144,
+ "k1L": -0.0417152
+ },
+ "SATMA01.MQUA160": {
+ "k1": -1.209155,
+ "k1L": -0.0967324
+ },
+ "SATMA01.MQUA180": {
+ "k1": -3.314513,
+ "k1L": -0.26516104
+ },
+ "SATMA01.MQUA230": {
+ "k1": 3.291655,
+ "k1L": 0.2633324
+ },
+ "SATMA01.MQUA250": {
+ "k1": 1.627992,
+ "k1L": 0.13023936
+ },
+ "SATMA01.MQUA610": {
+ "k1": 0.356469,
+ "k1L": 0.05347034999999999
+ },
+ "SATMA01.MQUA630": {
+ "k1": 0.131533,
+ "k1L": 0.01972995
+ },
+ "SATMA01.MQUA640": {
+ "k1": -1.838876,
+ "k1L": -0.2758314
+ },
+ "SATUN04.MQUA060": {
+ "k1": 3.427495,
+ "k1L": 0.2741996
+ },
+ "SATUN05.MQUA420": {
+ "k1": -0.620101,
+ "k1L": -0.04960808
+ },
+ "SATUN06.MQUA080": {
+ "k1": -4.015237,
+ "k1L": -0.32121896
+ },
+ "SATUN07.MQUA080": {
+ "k1": 4.063162,
+ "k1L": 0.32505296
+ },
+ "SATUN08.MQUA080": {
+ "k1": -4.015237,
+ "k1L": -0.32121896
+ },
+ "SATUN09.MQUA080": {
+ "k1": 4.063162,
+ "k1L": 0.32505296
+ },
+ "SATUN10.MQUA080": {
+ "k1": -4.015237,
+ "k1L": -0.32121896
+ },
+ "SATUN11.MQUA080": {
+ "k1": 4.063162,
+ "k1L": 0.32505296
+ },
+ "SATUN12.MQUA080": {
+ "k1": -4.015237,
+ "k1L": -0.32121896
+ },
+ "SATUN13.MQUA080": {
+ "k1": 4.063162,
+ "k1L": 0.32505296
+ },
+ "SATUN14.MQUA420": {
+ "k1": -4.015237,
+ "k1L": -0.32121896
+ },
+ "SATUN15.MQUA080": {
+ "k1": 4.063162,
+ "k1L": 0.32505296
+ },
+ "SATUN16.MQUA080": {
+ "k1": -4.015237,
+ "k1L": -0.32121896
+ },
+ "SATUN17.MQUA080": {
+ "k1": 4.063162,
+ "k1L": 0.32505296
+ },
+ "SATUN18.MQUA080": {
+ "k1": -4.015237,
+ "k1L": -0.32121896
+ },
+ "SATUN19.MQUA080": {
+ "k1": 4.063162,
+ "k1L": 0.32505296
+ },
+ "SATUN20.MQUA080": {
+ "k1": -4.015237,
+ "k1L": -0.32121896
+ },
+ "SATUN21.MQUA080": {
+ "k1": 4.063162,
+ "k1L": 0.32505296
+ },
+ "SATUN22.MQUA080": {
+ "k1": 0.4964329309887641,
+ "k1L": 0.03971463447910113
+ },
+ "SATMA02.MQUA010": {
+ "k1": -0.42315336842105267,
+ "k1L": -0.033852269473684214
+ },
+ "SATMA02.MQUA020": {
+ "k1": 1.4838107636716382,
+ "k1L": 0.11870486109373106
+ },
+ "SATMA02.MQUA040": {
+ "k1": -0.3968258867467391,
+ "k1L": -0.03174607093973913
+ },
+ "SATMA02.MQUA050": {
+ "k1": -2.912309351003254,
+ "k1L": -0.23298474808026032
+ },
+ "SATMA02.MQUA070": {
+ "k1": 2.546737474871309,
+ "k1L": 0.20373899798970474
+ },
+ "SATBD01.MQUA010": {
+ "k1": 0.5069800000000001,
+ "k1L": 0.15209400000000003
+ },
+ "SATBD01.MQUA030": {
+ "k1": -0.6184666666666667,
+ "k1L": -0.18554
+ },
+ "SATBD01.MQUA050": {
+ "k1": 0.13248666666666667,
+ "k1L": 0.039746
+ },
+ "SATBD01.MQUA070": {
+ "k1": 0.4740266666666667,
+ "k1L": 0.142208
+ },
+ "SATBD01.MQUA090": {
+ "k1": -0.7442633333333334,
+ "k1L": -0.223279
+ },
+ "S10BD01.MQUA010": {
+ "k1": 0.0,
+ "k1L": 0.0
+ },
+ "SARBD02.MQUA030": {
+ "k1": -0.86254,
+ "k1L": -0.258762
+ },
+ "SATBD02.MQUA030": {
+ "k1": -1.0508066666666669,
+ "k1L": -0.3152420000000001
+ }
+ },
+ "Sextupole": {
+ "SINBC02.MSEX130": {
+ "k2": -4.7,
+ "k2L": -0.376
+ },
+ "SINBC02.MSEX330": {
+ "k2": 0.1875,
+ "k2L": 0.015
+ },
+ "S10BC02.MSEX130": {
+ "k2": -0.9625,
+ "k2L": -0.077
+ },
+ "S10BC02.MSEX330": {
+ "k2": 3.8625,
+ "k2L": 0.309
+ },
+ "SARCL02.MSEX255": {
+ "k2": 89.42632499999999,
+ "k2L": 7.154106
+ },
+ "SARCL02.MSEX305": {
+ "k2": 89.42632499999999,
+ "k2L": 7.154106
+ },
+ "SATSY01.MSEX050": {
+ "k2": 46.178075,
+ "k2L": 3.694246
+ },
+ "SATSY01.MSEX080": {
+ "k2": -108.128425,
+ "k2L": -8.650274
+ },
+ "SATSY01.MSEX220": {
+ "k2": -13.3583125,
+ "k2L": -1.068665
+ },
+ "SATSY01.MSEX250": {
+ "k2": 41.50265,
+ "k2L": 3.320212
+ },
+ "SATCL01.MSEX110": {
+ "k2": 199.999975,
+ "k2L": 15.999998000000001
+ },
+ "SATCL01.MSEX160": {
+ "k2": -88.6932625,
+ "k2L": -7.095461
+ }
+ },
+ "Dipole": {
+ "SINLH02.MBND100": {
+ "angle": -2.988
+ },
+ "SINLH02.MBND200": {
+ "angle": 2.988
+ },
+ "SINLH02.MBND300": {
+ "angle": 2.988
+ },
+ "SINLH02.MBND400": {
+ "angle": -2.988
+ },
+ "SINBC02.MBND100": {
+ "angle": -4.072
+ },
+ "SINBC02.MBND200": {
+ "angle": 4.072
+ },
+ "SINBC02.MBND300": {
+ "angle": 4.072
+ },
+ "SINBC02.MBND400": {
+ "angle": -4.072
+ },
+ "S10BC02.MBND100": {
+ "angle": -2.079
+ },
+ "S10BC02.MBND200": {
+ "angle": 2.079
+ },
+ "S10BC02.MBND300": {
+ "angle": 2.079
+ },
+ "S10BC02.MBND400": {
+ "angle": -2.079
+ },
+ "SATMA01.MBND300": {
+ "angle": -0.0
+ },
+ "SATMA01.MBND400": {
+ "angle": 0.0
+ },
+ "SATMA01.MBND500": {
+ "angle": 0.0
+ },
+ "SATMA01.MBND600": {
+ "angle": -0.0
+ },
+ "SATUN05.MBND100": {
+ "angle": 0.0
+ },
+ "SATUN05.MBND200": {
+ "angle": -0.0
+ },
+ "SATUN05.MBND300": {
+ "angle": -0.0
+ },
+ "SATUN05.MBND400": {
+ "angle": 0.0
+ },
+ "SATUN14.MBND100": {
+ "angle": 0.0
+ },
+ "SATUN14.MBND200": {
+ "angle": -0.0
+ },
+ "SATUN14.MBND300": {
+ "angle": -0.0
+ },
+ "SATUN14.MBND400": {
+ "angle": 0.0
+ }
+ },
+ "RF": {
+ "SINSB01.RACC100": {
+ "Gradient": 73494000.0,
+ "Phase": 90.0
+ },
+ "SINSB02.RACC100": {
+ "Gradient": 71615820.0,
+ "Phase": 90.0
+ },
+ "SINSB03.RACC100": {
+ "Gradient": 43150000.0,
+ "Phase": 68.52
+ },
+ "SINSB03.RACC200": {
+ "Gradient": 43150000.0,
+ "Phase": 68.52
+ },
+ "SINSB04.RACC100": {
+ "Gradient": 43150000.0,
+ "Phase": 68.52
+ },
+ "SINSB04.RACC200": {
+ "Gradient": 43150000.0,
+ "Phase": 68.52
+ },
+ "SINXB01.RACC100": {
+ "Gradient": 7900000.0,
+ "Phase": 270.0
+ },
+ "SINXB01.RACC200": {
+ "Gradient": 7900000.0,
+ "Phase": 270.0
+ },
+ "S10CB01.RACC100": {
+ "Gradient": 57500000.0,
+ "Phase": 53.96
+ },
+ "S10CB01.RACC200": {
+ "Gradient": 57500000.0,
+ "Phase": 53.96
+ },
+ "S10CB01.RACC300": {
+ "Gradient": 57500000.0,
+ "Phase": 53.96
+ },
+ "S10CB01.RACC400": {
+ "Gradient": 57500000.0,
+ "Phase": 53.96
+ },
+ "S10CB02.RACC100": {
+ "Gradient": 60000000.0,
+ "Phase": 84.87
+ },
+ "S10CB02.RACC200": {
+ "Gradient": 60000000.0,
+ "Phase": 84.87
+ },
+ "S10CB02.RACC300": {
+ "Gradient": 60000000.0,
+ "Phase": 84.87
+ },
+ "S10CB02.RACC400": {
+ "Gradient": 60000000.0,
+ "Phase": 84.87
+ },
+ "S10CB03.RACC100": {
+ "Gradient": 66750000.0,
+ "Phase": 53.96
+ },
+ "S10CB03.RACC200": {
+ "Gradient": 66750000.0,
+ "Phase": 53.96
+ },
+ "S10CB03.RACC300": {
+ "Gradient": 66750000.0,
+ "Phase": 53.96
+ },
+ "S10CB03.RACC400": {
+ "Gradient": 66750000.0,
+ "Phase": 53.96
+ },
+ "S10CB04.RACC100": {
+ "Gradient": 62500000.0,
+ "Phase": 84.87
+ },
+ "S10CB04.RACC200": {
+ "Gradient": 62500000.0,
+ "Phase": 84.87
+ },
+ "S10CB04.RACC300": {
+ "Gradient": 62500000.0,
+ "Phase": 84.87
+ },
+ "S10CB04.RACC400": {
+ "Gradient": 62500000.0,
+ "Phase": 84.87
+ },
+ "S10CB05.RACC100": {
+ "Gradient": 61250000.0,
+ "Phase": 53.96
+ },
+ "S10CB05.RACC200": {
+ "Gradient": 61250000.0,
+ "Phase": 53.96
+ },
+ "S10CB05.RACC300": {
+ "Gradient": 61250000.0,
+ "Phase": 53.96
+ },
+ "S10CB05.RACC400": {
+ "Gradient": 61250000.0,
+ "Phase": 53.96
+ },
+ "S10CB06.RACC100": {
+ "Gradient": 59750000.0,
+ "Phase": 84.87
+ },
+ "S10CB06.RACC200": {
+ "Gradient": 59750000.0,
+ "Phase": 84.87
+ },
+ "S10CB06.RACC300": {
+ "Gradient": 59750000.0,
+ "Phase": 84.87
+ },
+ "S10CB06.RACC400": {
+ "Gradient": 59750000.0,
+ "Phase": 84.87
+ },
+ "S10CB07.RACC100": {
+ "Gradient": 61000000.0,
+ "Phase": 53.96
+ },
+ "S10CB07.RACC200": {
+ "Gradient": 61000000.0,
+ "Phase": 53.96
+ },
+ "S10CB07.RACC300": {
+ "Gradient": 61000000.0,
+ "Phase": 53.96
+ },
+ "S10CB07.RACC400": {
+ "Gradient": 61000000.0,
+ "Phase": 53.96
+ },
+ "S10CB08.RACC100": {
+ "Gradient": 58750000.0,
+ "Phase": 84.87
+ },
+ "S10CB08.RACC200": {
+ "Gradient": 58750000.0,
+ "Phase": 84.87
+ },
+ "S10CB08.RACC300": {
+ "Gradient": 58750000.0,
+ "Phase": 84.87
+ },
+ "S10CB08.RACC400": {
+ "Gradient": 58750000.0,
+ "Phase": 84.87
+ },
+ "S10CB09.RACC100": {
+ "Gradient": 57500000.0,
+ "Phase": 69.24
+ },
+ "S10CB09.RACC200": {
+ "Gradient": 57500000.0,
+ "Phase": 69.24
+ },
+ "S10CB09.RACC300": {
+ "Gradient": 57500000.0,
+ "Phase": 69.24
+ },
+ "S10CB09.RACC400": {
+ "Gradient": 57500000.0,
+ "Phase": 69.24
+ },
+ "S20CB01.RACC100": {
+ "Gradient": 60500000.0,
+ "Phase": 72.21
+ },
+ "S20CB01.RACC200": {
+ "Gradient": 60500000.0,
+ "Phase": 72.21
+ },
+ "S20CB01.RACC300": {
+ "Gradient": 60500000.0,
+ "Phase": 72.21
+ },
+ "S20CB01.RACC400": {
+ "Gradient": 60500000.0,
+ "Phase": 72.21
+ },
+ "S20CB02.RACC100": {
+ "Gradient": 60500000.0,
+ "Phase": 107.52
+ },
+ "S20CB02.RACC200": {
+ "Gradient": 60500000.0,
+ "Phase": 107.52
+ },
+ "S20CB02.RACC300": {
+ "Gradient": 60500000.0,
+ "Phase": 107.52
+ },
+ "S20CB02.RACC400": {
+ "Gradient": 60500000.0,
+ "Phase": 107.52
+ },
+ "S20CB03.RACC100": {
+ "Gradient": 56250000.0,
+ "Phase": 72.21
+ },
+ "S20CB03.RACC200": {
+ "Gradient": 56250000.0,
+ "Phase": 72.21
+ },
+ "S20CB03.RACC300": {
+ "Gradient": 56250000.0,
+ "Phase": 72.21
+ },
+ "S20CB03.RACC400": {
+ "Gradient": 56250000.0,
+ "Phase": 72.21
+ },
+ "S20CB04.RACC100": {
+ "Gradient": 58000000.0,
+ "Phase": 107.52
+ },
+ "S20CB04.RACC200": {
+ "Gradient": 58000000.0,
+ "Phase": 107.52
+ },
+ "S20CB04.RACC300": {
+ "Gradient": 58000000.0,
+ "Phase": 107.52
+ },
+ "S20CB04.RACC400": {
+ "Gradient": 58000000.0,
+ "Phase": 107.52
+ },
+ "S30CB01.RACC100": {
+ "Gradient": 60000000.0,
+ "Phase": 67.39
+ },
+ "S30CB01.RACC200": {
+ "Gradient": 60000000.0,
+ "Phase": 67.39
+ },
+ "S30CB01.RACC300": {
+ "Gradient": 60000000.0,
+ "Phase": 67.39
+ },
+ "S30CB01.RACC400": {
+ "Gradient": 60000000.0,
+ "Phase": 67.39
+ },
+ "S30CB02.RACC100": {
+ "Gradient": 61250000.0,
+ "Phase": 112.59
+ },
+ "S30CB02.RACC200": {
+ "Gradient": 61250000.0,
+ "Phase": 112.59
+ },
+ "S30CB02.RACC300": {
+ "Gradient": 61250000.0,
+ "Phase": 112.59
+ },
+ "S30CB02.RACC400": {
+ "Gradient": 61250000.0,
+ "Phase": 112.59
+ },
+ "S30CB03.RACC100": {
+ "Gradient": 60000000.0,
+ "Phase": 67.39
+ },
+ "S30CB03.RACC200": {
+ "Gradient": 60000000.0,
+ "Phase": 67.39
+ },
+ "S30CB03.RACC300": {
+ "Gradient": 60000000.0,
+ "Phase": 67.39
+ },
+ "S30CB03.RACC400": {
+ "Gradient": 60000000.0,
+ "Phase": 67.39
+ },
+ "S30CB04.RACC100": {
+ "Gradient": 59000000.0,
+ "Phase": 112.59
+ },
+ "S30CB04.RACC200": {
+ "Gradient": 59000000.0,
+ "Phase": 112.59
+ },
+ "S30CB04.RACC300": {
+ "Gradient": 59000000.0,
+ "Phase": 112.59
+ },
+ "S30CB04.RACC400": {
+ "Gradient": 59000000.0,
+ "Phase": 112.59
+ },
+ "S30CB05.RACC100": {
+ "Gradient": 57500000.0,
+ "Phase": 67.39
+ },
+ "S30CB05.RACC200": {
+ "Gradient": 57500000.0,
+ "Phase": 67.39
+ },
+ "S30CB05.RACC300": {
+ "Gradient": 57500000.0,
+ "Phase": 67.39
+ },
+ "S30CB05.RACC400": {
+ "Gradient": 57500000.0,
+ "Phase": 67.39
+ },
+ "S30CB06.RACC100": {
+ "Gradient": 57500000.0,
+ "Phase": 112.59
+ },
+ "S30CB06.RACC200": {
+ "Gradient": 57500000.0,
+ "Phase": 112.59
+ },
+ "S30CB06.RACC300": {
+ "Gradient": 57500000.0,
+ "Phase": 112.59
+ },
+ "S30CB06.RACC400": {
+ "Gradient": 57500000.0,
+ "Phase": 112.59
+ },
+ "S30CB07.RACC100": {
+ "Gradient": 58775000.0,
+ "Phase": 67.39
+ },
+ "S30CB07.RACC200": {
+ "Gradient": 58775000.0,
+ "Phase": 67.39
+ },
+ "S30CB07.RACC300": {
+ "Gradient": 58775000.0,
+ "Phase": 67.39
+ },
+ "S30CB07.RACC400": {
+ "Gradient": 58775000.0,
+ "Phase": 67.39
+ },
+ "S30CB08.RACC100": {
+ "Gradient": 58750000.0,
+ "Phase": 112.59
+ },
+ "S30CB08.RACC200": {
+ "Gradient": 58750000.0,
+ "Phase": 112.59
+ },
+ "S30CB08.RACC300": {
+ "Gradient": 58750000.0,
+ "Phase": 112.59
+ },
+ "S30CB08.RACC400": {
+ "Gradient": 58750000.0,
+ "Phase": 112.59
+ },
+ "S30CB09.RACC100": {
+ "Gradient": 57500000.0,
+ "Phase": 67.39
+ },
+ "S30CB09.RACC200": {
+ "Gradient": 57500000.0,
+ "Phase": 67.39
+ },
+ "S30CB09.RACC300": {
+ "Gradient": 57500000.0,
+ "Phase": 67.39
+ },
+ "S30CB09.RACC400": {
+ "Gradient": 57500000.0,
+ "Phase": 67.39
+ },
+ "S30CB10.RACC100": {
+ "Gradient": 57500000.0,
+ "Phase": 112.59
+ },
+ "S30CB10.RACC200": {
+ "Gradient": 57500000.0,
+ "Phase": 112.59
+ },
+ "S30CB10.RACC300": {
+ "Gradient": 57500000.0,
+ "Phase": 112.59
+ },
+ "S30CB10.RACC400": {
+ "Gradient": 57500000.0,
+ "Phase": 112.59
+ },
+ "S30CB11.RACC100": {
+ "Gradient": 60000000.0,
+ "Phase": 59.21
+ },
+ "S30CB11.RACC200": {
+ "Gradient": 60000000.0,
+ "Phase": 59.21
+ },
+ "S30CB11.RACC300": {
+ "Gradient": 60000000.0,
+ "Phase": 59.21
+ },
+ "S30CB11.RACC400": {
+ "Gradient": 60000000.0,
+ "Phase": 59.21
+ },
+ "S30CB12.RACC100": {
+ "Gradient": 61250000.0,
+ "Phase": 130.81
+ },
+ "S30CB12.RACC200": {
+ "Gradient": 61250000.0,
+ "Phase": 130.81
+ },
+ "S30CB12.RACC300": {
+ "Gradient": 61250000.0,
+ "Phase": 130.81
+ },
+ "S30CB12.RACC400": {
+ "Gradient": 61250000.0,
+ "Phase": 130.81
+ },
+ "S30CB13.RACC100": {
+ "Gradient": 52500000.0,
+ "Phase": 90.0
+ },
+ "S30CB13.RACC200": {
+ "Gradient": 52500000.0,
+ "Phase": 90.0
+ },
+ "S30CB13.RACC300": {
+ "Gradient": 52500000.0,
+ "Phase": 90.0
+ },
+ "S30CB13.RACC400": {
+ "Gradient": 52500000.0,
+ "Phase": 90.0
+ },
+ "SATCB01.RACC100": {
+ "Gradient": 0.0,
+ "Phase": 90.0
+ },
+ "SATCB01.RACC200": {
+ "Gradient": 0.0,
+ "Phase": 90.0
+ },
+ "SATCB01.RACC300": {
+ "Gradient": 0.0,
+ "Phase": 90.0
+ },
+ "SATCB01.RACC400": {
+ "Gradient": 0.0,
+ "Phase": 90.0
+ }
+ },
+ "Undulator": {
+ "SINLH02.UIND230": {
+ "K": 2.27,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN03.UIND030": {
+ "K": 1.7511,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN04.UIND030": {
+ "K": 1.7722,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN05.UIND030": {
+ "K": 1.7522,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN06.UIND030": {
+ "K": 1.7517,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN07.UIND030": {
+ "K": 1.7509,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN08.UIND030": {
+ "K": 1.7521,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN09.UIND030": {
+ "K": 1.753,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN10.UIND030": {
+ "K": 1.7531,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN11.UIND030": {
+ "K": 1.7515,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN12.UIND030": {
+ "K": 1.7495,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN13.UIND030": {
+ "K": 1.7474,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN14.UIND030": {
+ "K": 1.7535,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SARUN15.UIND030": {
+ "K": 1.7538,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATDI01.UMOD050": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATDI01.UMOD051": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATDI01.UMOD052": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATDI01.UMOD053": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATDI01.UMOD054": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATDI01.UMOD055": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATDI01.UMOD056": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATDI01.UMOD057": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATDI01.UMOD058": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATUN04.UMOD030": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATUN04.UMOD031": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATUN04.UMOD032": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATUN04.UMOD033": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATUN04.UMOD034": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATUN04.UMOD035": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATUN04.UMOD036": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATUN04.UMOD037": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATUN04.UMOD038": {
+ "K": 8.0,
+ "kx": 0,
+ "ky": 1
+ },
+ "SATUN06.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN07.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN08.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN09.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN10.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN11.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN12.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN13.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN15.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN16.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN17.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN18.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN19.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN20.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN21.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ },
+ "SATUN22.UIND030": {
+ "K": 2.5494,
+ "kx": 0.0,
+ "ky": 1.0
+ }
+ },
+ "Kicker": {
+ "S20SY02.MKDC010": {
+ "cory": 0.0002079977059769098,
+ "design_kick": 0.0002079977059769098
+ },
+ "S20SY02.MKAC020": {
+ "cory": 0.0003119965589653647,
+ "design_kick": 0.0003119965589653647
+ },
+ "S20SY02.MKDC030": {
+ "cory": 0.0002079977059769098,
+ "design_kick": 0.0002079977059769098
+ },
+ "S20SY02.MKAC040": {
+ "cory": 0.0003119965589653647,
+ "design_kick": 0.0003119965589653647
+ },
+ "S20SY02.MKDC050": {
+ "cory": 0.0002079977059769098,
+ "design_kick": 0.0002079977059769098
+ }
+ },
+ "Energy": {
+ "location": "SINLH01.DBAM010",
+ "energy": 140.0
+ },
+ "InitialCondition": {
+ "betax0": 29.941526031066736,
+ "betay0": 26.026225014163643,
+ "alphax0": 0.00588355857402991,
+ "alphay0": -0.29072274788589586,
+ "etax0": 4.660568715767627e-12,
+ "etay0": 0.0,
+ "etapx0": 9.257503881451997e-13,
+ "etapy0": -0.0,
+ "x0": 0.0,
+ "y0": 0.0,
+ "px0": -0.0,
+ "py0": -0.0
+ }
+}
\ No newline at end of file
diff --git a/generateMatchSettings.py b/generateMatchSettings.py
index 1562205..bb3563b 100644
--- a/generateMatchSettings.py
+++ b/generateMatchSettings.py
@@ -15,7 +15,7 @@ def MatchReference(loc,twiss,limit=None): # limit 1 -> smaller than, 2 -> large
def MatchParameter(var0,tar0):
return {'Variable':var0,'Target':tar0}
-path ="Settings/"
+path ="MatchingConfig/"
label='Reference'
order = []
@@ -27,6 +27,7 @@ order = []
# - sequence: sequence to use. If it is a list of sequence then a temporary sequence is used. Default to swissfel
# - flag to last twiss parameters, needed for other routines to refer to.
+order.append(MatchStep(None,'Preset',None,'SATBD01'))
order.append(MatchStep('Start', 'Laser Heater','SINLH02','SATBD01'))
order.append(MatchStep(None, 'SINSB04', None,'SATBD01','SINSB04',True))
order.append(MatchStep('Laser Heater', 'Match to SINSB04','SINSB04','SATBD01'))
@@ -40,7 +41,13 @@ order.append(MatchStep('Bunch Compressor 2', 'Match to Linac 2','S20CB04','SATBD
order.append(MatchStep('Bunch Compressor 2', 'Match to Switchyard','S20SY02','SATBD01'))
order.append(MatchStep('Switchyard', 'Resonant Kicker','S20SY02','SATBD01'))
order.append(MatchStep('Switchyard', 'Switchyard','SATCL01','SATBD01'))
-#order.append(MatchStep('Switchyard', 'Switchyard','SATSY03','SATBD01'))
+order.append(MatchStep('Switchyard', 'Athos Diagnostics','SATDI01','SATBD01'))
+order.append(MatchStep(None, 'Athos Linac', None,'SATBD01','SATCB01',True))
+order.append(MatchStep('HERO','Athos Stopper', 'SATCL02','SATBD01'))
+order.append(MatchStep('HERO','Athos EEHG', 'SATMA01','SATBD01'))
+order.append(MatchStep(None, 'Athos Undulator', None,'SATBD01',['SATUN06','SATUN07'],True))
+order.append(MatchStep('EEHG','Match to Athos Undulator', 'SATUN09','SATBD01'))
+order.append(MatchStep('EEHG','Match to Athos Deflector', 'SATBD01','SATBD01'))
# list of references with fixed twiss parameters
reference={}
@@ -48,17 +55,29 @@ reference['Start'] = MatchReference('start',{'betax':29.971,'alphax':0.003,'beta
reference['Laser Heater'] = MatchReference('sinlh02.mqua410$start',{'betax': 11.2, 'alphax': 3.2,'betay': 0.8, 'alphay': 0.75,})
reference['Bunch Compressor 1'] = MatchReference('sindi02.mqua020$start',{'betax': 11.1557, 'alphax': -1.17,'betay': 50, 'alphay': 0.})
reference['Bunch Compressor 2'] = MatchReference('s10ma01.mqua020$start',{'betax': 6.14, 'alphax': -0.83,'betay': 22.86, 'alphay': -1.18})
-#reference['Switchyard'] = MatchReference('s20sy02$start',{'betax': 48.26, 'alphax': 7.322,'betay': 14.293, 'alphay': -3.513})
-reference['Switchyard'] = MatchReference('s20sy02$start',{'betax': 48.26, 'alphax': 0,'betay': 14.293, 'alphay': -3.513})
+reference['Switchyard'] = MatchReference('s20sy02$start',{'betax': 48.26, 'alphax': 7.322,'betay': 14.293, 'alphay': -3.513})
reference['Linac3'] = MatchReference('s30cb10.mqua430$start',{'betax': 8.83,'alphax': 0.548,'betay': 30.44,'alphay': -1.866})
reference['Aramis Stopper'] = MatchReference('sarma01.mqua010$start',{'betax': 2.304, 'alphax': -1.4045, 'betay': 25.929, 'alphay': -6.363})
-reference['Athos HERO'] = MatchReference('satdi01.mqua250$start',{'betax': 35.76, 'alphax': -1.166,'betay': 24.087, 'alphay': 0.648})
+reference['HERO'] = MatchReference('satdi01.mqua250$start',{'betax': 35.76, 'alphax': -1.166,'betay': 24.087, 'alphay': 0.648})
reference['Athos Deflector'] = MatchReference('satbd01.mqua010$start',{'betax': 50, 'alphax': 0,'betay': 50, 'alphay': 0})
-
-
+reference['EEHG'] = MatchReference('satma01.mqua610$start',{'betax': 10., 'alphax': 0.027,'betay': 16.85, 'alphay': 0.027})
parameter={}
+var=[]
+tar = [{'Preset':{'sinlh01.mqsk030.k1':0,'sinbc02.mqsk110.k1':0,'sinbc02.mqsk350.k1':0,
+ 'sindi01.mqsk030.k1':0,'s10bc02.mqsk110.k1':0,'s10bc02.mqsk350.k1':0,
+ 'sarcl02.mqsk160.k1':0,'sarcl02.mqsk300.k1':0,'sarcl02.mqsk420.k1':0,
+ 'satsy01.mqsk030.k1':0,'satsy01.mqsk270.k1':0,
+ 'sinbc02.mqua120.k1':0,'sinbc02.mqua340.k1':0,
+ 's10bc02.mqua120.k1':0,'s10bc02.mqua340.k1':0,
+ 'sarcl02.mqua150.k1':0,'sarcl02.mqua430.k1':0,
+ 'satbd01.mqua010.k1':0.50697,'satbd01.mqua030.k1':-0.618466,
+ 'satbd01.mqua050.k1':0.13249,'satbd01.mqua070.k1':0.47403,
+ 'satbd01.mqua090.k1':-0.74426,'satbd02.mqua030.k1':-1.05081}}]
+
+parameter['Preset'] = MatchParameter(var,tar)
+
var = ['SINLH01-MQUA020', 'SINLH01-MQUA040','SINLH01-MQUA050','SINLH01-MQUA070','SINLH02-MQUA010']
tar = [reference['Laser Heater']]
parameter['Laser Heater'] = MatchParameter(var,tar)
@@ -115,47 +134,63 @@ tar=[{'Script':'Scripts/switchyard_kicker.madx'}]
parameter['Resonant Kicker']=MatchParameter(var, tar)
-#var = ['SATSY01-MQUA020','SATSY01-MQUA040','SATSY01-MQUA070','SATSY01-MQUA090']
-#tar =[MatchReference('satsy01.mbnd200',{'etax':0.082,'etapx':0.0084}),
-# MatchReference('satsy01.mbnd200',{'etay':0.09,'etapy':1},1)]
-#parameter['SATSY01 - I']=MatchParameter(var, tar)
-
-#var = ['SATSY01-MQUA280','SATSY01-MQUA300']
-#tar =[MatchReference('satsy01$end',{'etax':-0.030,'etapx':-0.001})]
-#parameter['SATSY01 - II']=MatchParameter(var, tar)
-
-#var = ['SATSY02-MQUA010','SATSY02-MQUA110','SATSY02-MQUA120']
-#tar =[MatchReference('satsy02$end',{'etay':0.,'etapy':0.,'x':0})]
-#parameter['SATSY02']=MatchParameter(var, tar)
-
-#var = ['SATSY02-MQUA210','SATSY03-MQUA010','SATSY03-MQUA040','SATSY03-MQUA070','SATSY03-MQUA100','SATSY03-MQUA130',
-# 'SATCL01-MQUA120','SATCL01-MQUA130','SATCL01-MQUA180','SATCL01-MQUA190']
-var=['SATSY01-MQUA020','SATSY01-MQUA040','SATSY01-MQUA070','SATSY01-MQUA090']
+var=['SATSY01-MQUA020','SATSY01-MQUA040','SATSY01-MQUA070','SATSY01-MQUA090','SATSY01-MQUA210','SATSY01-MQUA230','SATSY01-MQUA260','SATSY01-MQUA280',
+ 'SATSY01-MQUA300','SATSY02-MQUA010','SATSY02-MQUA110','SATSY02-MQUA120','SATSY02-MQUA230','SATSY03-MQUA010','SATSY03-MQUA040','SATSY03-MQUA070',
+ 'SATSY03-MQUA100','SATSY03-MQUA130','SATCL01-MQUA120','SATCL01-MQUA130','SATCL01-MQUA180','SATCL01-MQUA190']
tar=[{'Script':'Scripts/switchyard.madx'}]
parameter['Switchyard']=MatchParameter(var, tar)
+var=['SATDI01-MQUA025','SATDI01-MQUA080','SATDI01-MQUA220','SATDI01-MQUA230']
+tar = [reference['HERO']]
+parameter['Athos Diagnostics'] = MatchParameter(var,tar)
+
+var = ['SATCB01-MQUA230','SATCB01-MQUA430']
+tar =[MatchReference('#e',{'MUX':0.053,'MUY':0.053})]
+parameter['Athos Linac'] = MatchParameter(var,tar)
+
+var=['SATDI01-MQUA250','SATDI01-MQUA260','SATDI01-MQUA280','SATDI01-MQUA300']
+tar =[{'Location':'satcl01$start','SavedID':'Athos Linac'}]
+parameter['Athos Stopper'] = MatchParameter(var,tar)
+
+
+var=['SATMA01-MQUA050','SATMA01-MQUA120','SATMA01-MQUA140','SATMA01-MQUA160','SATMA01-MQUA180','SATMA01-MQUA230','SATMA01-MQUA250']
+tar = [reference['EEHG'],
+ MatchReference('satma01.mqua140$start', {'betax': 70, 'betay': 70}, 1),
+ MatchReference('satma01.mqua160$start', {'betax': 70, 'betay': 70}, 1),
+ MatchReference('satma01.mqua180$start', {'betax': 70, 'betay': 70}, 1)]
+parameter['Athos EEHG'] = MatchParameter(var,tar)
+
+var = ['SATUN06-MQUA080','SATUN07-MQUA080']
+tar =[MatchReference('#e',{'MUX':0.15,'MUY':0.15})]
+parameter['Athos Undulator'] = MatchParameter(var,tar)
+
+var=['SATMA01-MQUA610','SATMA01-MQUA630','SATMA01-MQUA640','SATUN04-MQUA060','SATUN05-MQUA420']
+tar =[{'Location':'satun06$start','SavedID':'Athos Undulator'},
+ MatchReference('satun07$end', {'x': 10, 'y': 10,'px':10}, 1)]
+parameter['Match to Athos Undulator'] = MatchParameter(var,tar)
+
+var = ['SATUN22-MQUA080','SATMA02-MQUA010','SATMA02-MQUA020','SATMA02-MQUA040','SATMA02-MQUA050','SATMA02-MQUA070']
+tar = [reference['Athos Deflector'],
+ MatchReference('satun22$end', {'x':0, 'px': 0})]
+parameter['Match to Athos Deflector'] = MatchParameter(var,tar)
+
dependence={}
dependence['SINSB04-MQUA230']=['SINSB03-MQUA230']
dependence['S10CB02-MQUA230']=['S10DI01-MQUA120'] + ['S10CB%2.2d-MQUA430' % i for i in range(3,9)]
dependence['S10CB02-MQUA430']=['S10CB%2.2d-MQUA230' % i for i in range(3,9)]
dependence['S20CB01-MQUA430']=['S20CB03-MQUA430']
+dependence['SATCB01-MQUA230']=['SATCL02-MQUA430']
+dependence['SATCB01-MQUA430']=['SATCL02-MQUA430']
+dependence['SATUN06-MQUA080']=['SATUN%2.2d-MQUA080' % (2*i+6) for i in range(1,4)] +['SATUN14-MQUA420']+['SATUN%d-MQUA080' % (2*i+16) for i in range(3)]
+dependence['SATUN07-MQUA080']=['SATUN%2.2d-MQUA080' % (2*i+7) for i in range(1,8)]
-reference={}
-reference['Start'] = MatchReference('start',{'betax':29.971,'alphax':0.003,'betay':26.00,'alphay':-0.288})
-reference['Laser Heater'] = MatchReference('sinlh02.mqua410$start',{'betax': 11.2, 'alphax': 3.2,'betay': 0.8, 'alphay': 0.75,})
-reference['Bunch Compressor 1'] = MatchReference('sindi02.mqua020$start',{'betax': 11.1557, 'alphax': -1.17,'betay': 50, 'alphay': 0.})
-reference['Bunch Compressor 2'] = MatchReference('s10ma01.mqua020$start',{'betax': 6.14, 'alphax': -0.83,'betay': 22.86, 'alphay': -1.18})
-reference['Switchyard'] = MatchReference('s20sy02$start',{'betax': 48.26, 'alphax': 7.322,'betay': 14.293, 'alphay': -3.513})
-reference['Linac3'] = MatchReference('s30cb10.mqua430$start',{'betax': 8.83,'alphax': 0.548,'betay': 30.44,'alphay': -1.866})
-reference['Aramis Stopper'] = MatchReference('sarma01.mqua010$start',{'betax': 2.304, 'alphax': -1.4045, 'betay': 25.929, 'alphay': -6.363})
-reference['Athos HERO'] = MatchReference('satdi01.mqua250$start',{'betax': 35.76, 'alphax': -1.166,'betay': 24.087, 'alphay': 0.648})
-reference['Athos Deflector'] = MatchReference('satbd01.mqua010$start',{'betax': 50, 'alphax': 0,'betay': 50, 'alphay': 0})
-
-
settings={'Label':label,'Order':order,'Dependence':dependence,'Reference':reference,'Parameter':parameter}
+print('Reference Locations:')
+for key in settings['Reference']:
+ print(key,settings['Reference'][key])
with open(path+label+'.json', 'w', encoding='utf-8') as f:
json.dump(settings, f, ensure_ascii=False, indent=4)
\ No newline at end of file
diff --git a/issues.txt b/issues.txt
index 33c71d9..f4bda8a 100644
--- a/issues.txt
+++ b/issues.txt
@@ -1,4 +1,4 @@
-
+1) Mark in matching list groups with reference points
3) export to machine for magnet settings
4) export elegant lattice
diff --git a/model.py b/model.py
index e85fdfa..7695a94 100644
--- a/model.py
+++ b/model.py
@@ -145,7 +145,7 @@ class Model:
elif 'RACC' in ele.Name:
rf[ele.Name]={'Gradient':ele.Gradient*ele.Length,'Phase':ele.Phase}
elif 'MKAC' in ele.Name or 'MKDC' in ele.Name:
- kicker[ele.Name] = {'cory': ele.cory}
+ kicker[ele.Name] = {'cory': ele.cory,'design_kick':ele.design_kick}
return {'Quadrupole':quadrupoles,'Sextupole':sextupoles,'Dipole':dipoles,'RF':rf,'Undulator':undulators,
'Kicker':kicker,'Energy':energy, 'InitialCondition':self.startTwiss}
@@ -164,7 +164,7 @@ class Model:
self.loadSettingsGroup(settings['RF'], ['Gradient'],normalized=True)
self.loadSettingsGroup(settings['RF'], ['Phase'])
self.loadSettingsGroup(settings['Undulator'], ['K','kx','ky'])
- self.loadSettingsGroup(settings['Kicker'], ['cory'])
+ self.loadSettingsGroup(settings['Kicker'], ['cory','design_kick'])
self.startEnergy = settings['Energy']['energy']
self.energyReference = settings['Energy']['location']
self.startTwiss = settings['InitialCondition']
@@ -245,6 +245,11 @@ class Model:
var[key0]=config['variable'][key]
target = config['target']
+ if 'Preset' in target:
+ self.updateModelFromMatching(target['Preset'])
+ self.parent.reference.updateMatchPoint(ID, 0)
+ return
+
if 'Script' in target.keys():
res,twiss,err = self.madx.callScript(script = target['Script'],sequence=sequence, start=start, end=end,init=itwiss,var=var)
diff --git a/reference.py b/reference.py
index c69d3c3..5268fe3 100644
--- a/reference.py
+++ b/reference.py
@@ -27,7 +27,7 @@ class ReferenceManager:
'px':self.parent.UIPX,'py':self.parent.UIPY}
- self.loadReference('Settings/Reference.json')
+ self.loadReference('MatchingConfig/Reference.json')
self.parent.UITrackReference.currentIndexChanged.connect(self.updateReferenceWidgets)
self.parent.UIMatchOrder.itemClicked.connect(self.displayMatchingPoint)
@@ -37,10 +37,24 @@ class ReferenceManager:
self.updateMatchOrder()
def updateMatchOrder(self):
+ secs={}
self.parent.UIMatchOrder.clear()
for i,ele in enumerate(self.settings['Order']):
- self.parent.UIMatchOrder.addItem(ele['MatchID'])
- self.parent.UIMatchOrder.item(i).setBackground(CBeige)
+ label = ele['MatchID']
+ ref = ele['Reference']
+ if ref is None:
+ color = CBeige
+ else:
+ if ref in secs.keys():
+ color = secs[ref]
+ else:
+ idx = len(secs)+2
+ color = QtGui.QColor(220, 240-idx*5, 200+idx*4)
+ secs[ref]=color
+ if not ref is None:
+ label += ' ('+ref+')'
+ self.parent.UIMatchOrder.addItem(label)
+ self.parent.UIMatchOrder.item(i).setBackground(color)
if self.parent.UIMatchOrder.count() > 0:
self.parent.UIMatchOrder.setCurrentRow(0)
self.displayMatchingPoint()
@@ -67,8 +81,8 @@ class ReferenceManager:
idx = self.parent.UIMatchOrder.currentRow()
if idx < 0:
return None
-
ID = str(self.parent.UIMatchOrder.item(idx).text())
+ ID = ID.split('(')[0].strip()
idx = self.order[ID] # get index in the list
order = copy.deepcopy(self.settings['Order'][idx])
destination = order['Destination']
@@ -122,6 +136,8 @@ class ReferenceManager:
cond[loc].append(target['SavedID'])
elif 'Script' in target.keys():
cond['Script']=target['Script']
+ elif 'Preset' in target.keys():
+ cond['Preset']=target['Preset']
config={'ID':ID,'start':twiss0,'end':end,
'destination':destination,'sequence':sequence,
@@ -183,6 +199,13 @@ class ReferenceManager:
self.parent.UIMatchTargets.insertRow(0)
self.parent.UIMatchTargets.setItem(0, 0, QtWidgets.QTableWidgetItem('Script'))
self.parent.UIMatchTargets.setItem(0, 1, QtWidgets.QTableWidgetItem(config['target']['Script']))
+ elif 'Preset' in config['target'].keys():
+ irow = 0
+ for key in config['target']['Preset'].keys():
+ self.parent.UIMatchTargets.insertRow(irow)
+ self.parent.UIMatchTargets.setItem(irow, 0, QtWidgets.QTableWidgetItem(key))
+ self.parent.UIMatchTargets.setItem(irow, 1, QtWidgets.QTableWidgetItem('%7.3f' % config['target']['Preset'][key]))
+ irow +=1
else:
irow = 0
for key in config['target'].keys():
diff --git a/ui/OpticsPlotGui.py b/ui/OpticsPlotGui.py
index 8ea4011..fca8863 100644
--- a/ui/OpticsPlotGui.py
+++ b/ui/OpticsPlotGui.py
@@ -2,12 +2,15 @@
# Form implementation generated from reading ui file 'ui/OpticsPlotGui.ui'
#
-# Created by: PyQt5 UI code generator 5.9.2
+# Created by: PyQt5 UI code generator 5.15.10
#
-# WARNING! All changes made in this file will be lost!
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
from PyQt5 import QtCore, QtGui, QtWidgets
+
class Ui_OpticsPlotGUI(object):
def setupUi(self, OpticsPlotGUI):
OpticsPlotGUI.setObjectName("OpticsPlotGUI")
@@ -311,7 +314,7 @@ class Ui_OpticsPlotGUI(object):
self.retranslateUi(OpticsPlotGUI)
self.TabMaster.setCurrentIndex(0)
- self.actionQuit.triggered.connect(OpticsPlotGUI.close)
+ self.actionQuit.triggered.connect(OpticsPlotGUI.close) # type: ignore
QtCore.QMetaObject.connectSlotsByName(OpticsPlotGUI)
def retranslateUi(self, OpticsPlotGUI):
@@ -401,4 +404,3 @@ class Ui_OpticsPlotGUI(object):
self.actionLoad_Reference.setText(_translate("OpticsPlotGUI", "Load Reference..."))
self.actionSave_Reference.setText(_translate("OpticsPlotGUI", "Save Reference"))
self.actionNew_Reference.setText(_translate("OpticsPlotGUI", "New Reference"))
-
diff --git a/ui/OpticsToolsGui.py b/ui/OpticsToolsGui.py
index f3ab30a..f863f70 100644
--- a/ui/OpticsToolsGui.py
+++ b/ui/OpticsToolsGui.py
@@ -2,12 +2,15 @@
# Form implementation generated from reading ui file 'ui/OpticsToolsGui.ui'
#
-# Created by: PyQt5 UI code generator 5.9.2
+# Created by: PyQt5 UI code generator 5.15.10
#
-# WARNING! All changes made in this file will be lost!
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
from PyQt5 import QtCore, QtGui, QtWidgets
+
class Ui_OpticsGUI(object):
def setupUi(self, OpticsGUI):
OpticsGUI.setObjectName("OpticsGUI")
@@ -390,6 +393,7 @@ class Ui_OpticsGUI(object):
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.UIMatchOrder.sizePolicy().hasHeightForWidth())
self.UIMatchOrder.setSizePolicy(sizePolicy)
+ self.UIMatchOrder.setMinimumSize(QtCore.QSize(350, 0))
self.UIMatchOrder.setObjectName("UIMatchOrder")
self.verticalLayout_6.addWidget(self.UIMatchOrder)
self.UIMatchRandom = QtWidgets.QCheckBox(self.tab_2)
@@ -471,7 +475,7 @@ class Ui_OpticsGUI(object):
self.verticalLayout_4.addWidget(self.TabMaster)
OpticsGUI.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(OpticsGUI)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 813, 20))
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 813, 22))
self.menubar.setObjectName("menubar")
self.menuFile = QtWidgets.QMenu(self.menubar)
self.menuFile.setObjectName("menuFile")
@@ -597,8 +601,8 @@ class Ui_OpticsGUI(object):
self.menubar.addAction(self.menuHelp.menuAction())
self.retranslateUi(OpticsGUI)
- self.TabMaster.setCurrentIndex(0)
- self.actionQuit.triggered.connect(OpticsGUI.close)
+ self.TabMaster.setCurrentIndex(2)
+ self.actionQuit.triggered.connect(OpticsGUI.close) # type: ignore
QtCore.QMetaObject.connectSlotsByName(OpticsGUI)
def retranslateUi(self, OpticsGUI):
@@ -647,7 +651,7 @@ class Ui_OpticsGUI(object):
self.TabMaster.setTabText(self.TabMaster.indexOf(self.tab_8), _translate("OpticsGUI", "Sandbox"))
self.UIMatchSelected.setText(_translate("OpticsGUI", "Match Selected"))
self.label_14.setText(_translate("OpticsGUI", "Label"))
- self.label_15.setText(_translate("OpticsGUI", "Matching Point Order"))
+ self.label_15.setText(_translate("OpticsGUI", "Matching Point Order (Closest Ref. Point)"))
self.UIMatchRandom.setText(_translate("OpticsGUI", "Random Initialization"))
self.label_21.setText(_translate("OpticsGUI", "Matching Point"))
self.label_17.setText(_translate("OpticsGUI", "Start"))
@@ -723,4 +727,3 @@ class Ui_OpticsGUI(object):
self.actionSave_Reference.setText(_translate("OpticsGUI", "Save Reference"))
self.actionNew_Reference.setText(_translate("OpticsGUI", "New Reference"))
self.actionSave.setText(_translate("OpticsGUI", "Save Settings..."))
-
diff --git a/ui/OpticsToolsGui.ui b/ui/OpticsToolsGui.ui
index 56dfe6e..e61a178 100644
--- a/ui/OpticsToolsGui.ui
+++ b/ui/OpticsToolsGui.ui
@@ -24,7 +24,7 @@
- 0
+ 2
@@ -636,7 +636,7 @@
-
- Matching Point Order
+ Matching Point Order (Closest Ref. Point)
@@ -648,6 +648,12 @@
0
+
+
+ 350
+ 0
+
+
-
@@ -799,7 +805,7 @@
0
0
813
- 20
+ 22