Ready for release

This commit is contained in:
2025-06-16 11:14:26 +02:00
parent 6ce679f424
commit e208227deb
7 changed files with 1304 additions and 228 deletions

View File

@@ -1,5 +1,5 @@
{
"Label": "Reference",
"Label": "Custom",
"Order": [
{
"Reference": null,
@@ -174,6 +174,68 @@
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": null,
"MatchID": "Linac 3",
"End": null,
"Destination": "SARBD01",
"Sequence": [
"S30CB01",
"S30CB02"
],
"Save": true
},
{
"Reference": "Switchyard",
"MatchID": "Match to Linac 3",
"End": "S30CB03",
"Destination": "SARBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Switchyard",
"MatchID": "End of Linac 3",
"End": "S30CB10",
"Destination": "SARBD01",
"Sequence": null,
"Save": null
},
{
"Reference": null,
"MatchID": "Aramis Undulator",
"End": null,
"Destination": "SARBD01",
"Sequence": [
"SARUN03",
"SARUN04"
],
"Save": true
},
{
"Reference": "Linac3",
"MatchID": "Aramis - ECOL",
"End": null,
"Destination": "SARBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Linac3",
"MatchID": "Match to Aramis Undulator",
"End": "SARUN20",
"Destination": "SARBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Linac3",
"MatchID": "Aramis Dump",
"End": "SARBD02",
"Destination": "SARBd02",
"Sequence": null,
"Save": null
}
],
"Dependence": {
@@ -223,6 +285,47 @@
"SATUN17-MQUA080",
"SATUN19-MQUA080",
"SATUN21-MQUA080"
],
"S30CB01-MQUA430": [
"S30CB03-MQUA430",
"S30CB05-MQUA430",
"S30CB07-MQUA430",
"S30CB09-MQUA430",
"S30CB11-MQUA430",
"S30CB13-MQUA430",
"S30CB15-MQUA430"
],
"S30CB02-MQUA430": [
"S30CB04-MQUA430",
"S30CB06-MQUA430",
"S30CB08-MQUA430",
"S30CB10-MQUA430",
"S30CB12-MQUA430",
"S30CB14-MQUA430"
],
"SARUN03-MQUA080": [
"SARMA02-MQUA050",
"SARUN01-MQUA080",
"SARUN05-MQUA080",
"SARUN07-MQUA080",
"SARUN09-MQUA080",
"SARUN11-MQUA080",
"SARUN13-MQUA080",
"SARUN15-MQUA080",
"SARUN17-MQUA080",
"SARUN19-MQUA080"
],
"SARUN04-MQUA080": [
"SARMA02-MQUA120",
"SARUN02-MQUA080",
"SARUN06-MQUA080",
"SARUN08-MQUA080",
"SARUN10-MQUA080",
"SARUN12-MQUA080",
"SARUN14-MQUA080",
"SARUN16-MQUA080",
"SARUN18-MQUA080",
"SARUN20-MQUA080"
]
},
"Reference": {
@@ -770,6 +873,133 @@
}
}
]
},
"Linac 3": {
"Variable": [
"S30CB01-MQUA430",
"S30CB02-MQUA430"
],
"Target": [
{
"Location": "#e",
"Twiss": {
"MUX": 0.1883,
"MUY": 0.1883
}
}
]
},
"Match to Linac 3": {
"Variable": [
"S20SY03-MQUA020",
"S20SY03-MQUA030",
"S20SY03-MQUA050",
"S20SY03-MQUA060",
"S20SY03-MQUA100"
],
"Target": [
{
"Location": "s30cb01$start",
"SavedID": "Linac 3"
}
]
},
"End of Linac 3": {
"Variable": [
"S30CB01-MQUA430",
"S30CB01-MQUA430",
"S30CB01-MQUA430",
"S30CB01-MQUA430"
],
"Target": [
{
"Location": "s30cb10.mqua430$start",
"Twiss": {
"betax": 8.83,
"alphax": 0.548,
"betay": 30.44,
"alphay": -1.866
}
}
]
},
"Aramis - ECOL": {
"Variable": [
"SARCL02-MQUA130",
"SARCL02-MQUA210",
"SARCL02-MQUA250",
"SARCL02-MQUA310",
"SARCL02-MQUA350",
"SARCL02-MQUA460",
"SARCL01-MQUA020",
"SARCL01-MQUA050",
"SARCL01-MQUA080",
"SARCL01-MQUA100",
"SARCL01-MQUA140",
"SARCL01-MQUA190"
],
"Target": [
{
"Script": "Scripts/ecol.madx"
}
]
},
"Aramis Undulator": {
"Variable": [
"SARUN03-MQUA080",
"SARUN04-MQUA080"
],
"Target": [
{
"Location": "#e",
"Twiss": {
"MUX": 0.15,
"MUY": 0.15
}
}
]
},
"Match to Aramis Undulator": {
"Variable": [
"SARMA01-MQUA010",
"SARMA01-MQUA060",
"SARMA01-MQUA080",
"SARMA01-MQUA120",
"SARMA01-MQUA140"
],
"Target": [
{
"Location": "sarun03$start",
"SavedID": "Aramis Undulator"
},
{
"Location": "sarma01.mqua060",
"Twiss": {
"betax": 40
},
"Limit": 1
}
]
},
"Aramis Dump": {
"Variable": [
"SARUN19-MQUA080",
"SARUN20-MQUA080",
"SARBD01-MQUA020",
"SARBD02-MQUA030"
],
"Target": [
{
"Location": "SARBD02$END",
"Twiss": {
"betax": 250,
"betay": 250,
"etax": 100,
"etay": 1.2
},
"Limit": 1
}
]
}
}
}

View File

@@ -0,0 +1,775 @@
{
"Label": "Reference",
"Order": [
{
"Reference": null,
"MatchID": "Preset",
"End": null,
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Start",
"MatchID": "Laser Heater",
"End": "SINLH02",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": null,
"MatchID": "SINSB04",
"End": null,
"Destination": "SATBD01",
"Sequence": "SINSB04",
"Save": true
},
{
"Reference": "Laser Heater",
"MatchID": "Match to SINSB04",
"End": "SINSB04",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Laser Heater",
"MatchID": "Bunch Compressor 1",
"End": "SINDI02",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": null,
"MatchID": "Linac 1",
"End": null,
"Destination": "SATBD01",
"Sequence": "S10CB02",
"Save": true
},
{
"Reference": "Bunch Compressor 1",
"MatchID": "Match to Linac 1",
"End": "S10CB02",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Bunch Compressor 1",
"MatchID": "End of Linac 1",
"End": "S10BC01",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Bunch Compressor 1",
"MatchID": "Bunch Compressor 2",
"End": "S10MA01",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": null,
"MatchID": "Linac 2",
"End": null,
"Destination": "SATBD01",
"Sequence": [
"S20CB01",
"S20CB02"
],
"Save": true
},
{
"Reference": "Bunch Compressor 2",
"MatchID": "Match to Linac 2",
"End": "S20CB04",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Bunch Compressor 2",
"MatchID": "Match to Switchyard",
"End": "S20SY02",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Switchyard",
"MatchID": "Resonant Kicker",
"End": "S20SY02",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Switchyard",
"MatchID": "Switchyard",
"End": "SATCL01",
"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": {
"SINSB04-MQUA230": [
"SINSB03-MQUA230"
],
"S10CB02-MQUA230": [
"S10DI01-MQUA120",
"S10CB03-MQUA430",
"S10CB04-MQUA430",
"S10CB05-MQUA430",
"S10CB06-MQUA430",
"S10CB07-MQUA430",
"S10CB08-MQUA430"
],
"S10CB02-MQUA430": [
"S10CB03-MQUA230",
"S10CB04-MQUA230",
"S10CB05-MQUA230",
"S10CB06-MQUA230",
"S10CB07-MQUA230",
"S10CB08-MQUA230"
],
"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": {
"Start": {
"Location": "start",
"Twiss": {
"betax": 29.971,
"alphax": 0.003,
"betay": 26.0,
"alphay": -0.288
}
},
"Laser Heater": {
"Location": "sinlh02.mqua410$start",
"Twiss": {
"betax": 11.2,
"alphax": 3.2,
"betay": 0.8,
"alphay": 0.75
}
},
"Bunch Compressor 1": {
"Location": "sindi02.mqua020$start",
"Twiss": {
"betax": 11.1557,
"alphax": -1.17,
"betay": 50,
"alphay": 0.0
}
},
"Bunch Compressor 2": {
"Location": "s10ma01.mqua020$start",
"Twiss": {
"betax": 6.14,
"alphax": -0.83,
"betay": 22.86,
"alphay": -1.18
}
},
"Switchyard": {
"Location": "s20sy02$start",
"Twiss": {
"betax": 48.26,
"alphax": 7.322,
"betay": 14.293,
"alphay": -3.513
}
},
"Linac3": {
"Location": "s30cb10.mqua430$start",
"Twiss": {
"betax": 8.83,
"alphax": 0.548,
"betay": 30.44,
"alphay": -1.866
}
},
"Aramis Stopper": {
"Location": "sarma01.mqua010$start",
"Twiss": {
"betax": 2.304,
"alphax": -1.4045,
"betay": 25.929,
"alphay": -6.363
}
},
"HERO": {
"Location": "satdi01.mqua250$start",
"Twiss": {
"betax": 35.76,
"alphax": -1.166,
"betay": 24.087,
"alphay": 0.648
}
},
"Athos Deflector": {
"Location": "satbd01.mqua010$start",
"Twiss": {
"betax": 50,
"alphax": 0,
"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",
"SINLH01-MQUA040",
"SINLH01-MQUA050",
"SINLH01-MQUA070",
"SINLH02-MQUA010"
],
"Target": [
{
"Location": "sinlh02.mqua410$start",
"Twiss": {
"betax": 11.2,
"alphax": 3.2,
"betay": 0.8,
"alphay": 0.75
}
}
]
},
"SINSB04": {
"Variable": [
"SINSB04-MQUA130",
"SINSB04-MQUA230"
],
"Target": [
{
"Location": "#e",
"Twiss": {
"MUX": 0.2,
"MUY": 0.2
}
}
]
},
"Match to SINSB04": {
"Variable": [
"SINLH02-MQUA410",
"SINLH03-MQUA030",
"SINLH03-MQUA040",
"SINLH03-MQUA060",
"SINLH03-MQUA080",
"SINSB03-MQUA130"
],
"Target": [
{
"Location": "sinsb04$start",
"SavedID": "SINSB04"
}
]
},
"Bunch Compressor 1": {
"Variable": [
"SINBC01-MQUA020",
"SINBC01-MQUA050",
"SINBC01-MQUA070",
"SINBC01-MQUA090",
"SINBC01-MQUA110",
"SINDI01-MQUA020",
"SINDI01-MQUA070"
],
"Target": [
{
"Location": "sindi02.mqua020$start",
"Twiss": {
"betax": 11.1557,
"alphax": -1.17,
"betay": 50,
"alphay": 0.0
}
},
{
"Location": "sinbc02.mbnd400",
"Twiss": {
"betax": 5.1,
"betay": 100
},
"Limit": 1
},
{
"Location": "sinbc01.mqua110$end",
"Twiss": {
"betax": 100
},
"Limit": 1
}
]
},
"Linac 1": {
"Variable": [
"S10CB02-MQUA230",
"S10CB02-MQUA430"
],
"Target": [
{
"Location": "#e",
"Twiss": {
"MUX": 0.1883,
"MUY": 0.1883
}
}
]
},
"Match to Linac 1": {
"Variable": [
"S10CB01-MQUA230",
"S10CB01-MQUA430",
"SINDI02-MQUA020",
"SINDI02-MQUA030",
"SINDI02-MQUA050",
"SINDI02-MQUA060",
"SINDI02-MQUA090"
],
"Target": [
{
"Location": "s10cb02$start",
"SavedID": "Linac 1"
}
]
},
"End of Linac 1": {
"Variable": [
"S10CB07-MQUA430",
"S10CB08-MQUA230",
"S10CB08-MQUA430",
"S10CB09-MQUA230"
],
"Target": [
{
"Location": "s10bc01.mqua020$start",
"Twiss": {
"betax": 4.88,
"betay": 16.11,
"alphax": 0.5546,
"alphay": -1.81
}
}
]
},
"Bunch Compressor 2": {
"Variable": [
"S10BC01-MQUA020",
"S10BC01-MQUA040",
"S10BC01-MQUA060",
"S10BC01-MQUA080",
"S10BC01-MQUA100"
],
"Target": [
{
"Location": "s10ma01.mqua020$start",
"Twiss": {
"betax": 6.14,
"alphax": -0.83,
"betay": 22.86,
"alphay": -1.18
}
}
]
},
"Linac 2": {
"Variable": [
"S20CB01-MQUA430",
"S20CB02-MQUA430"
],
"Target": [
{
"Location": "#e",
"Twiss": {
"MUX": 0.2,
"MUY": 0.2
}
}
]
},
"Match to Linac 2": {
"Variable": [
"S10MA01-MQUA020",
"S10MA01-MQUA050",
"S10MA01-MQUA070",
"S10MA01-MQUA110",
"S10MA01-MQUA130"
],
"Target": [
{
"Location": "s20cb01$start",
"SavedID": "Linac 2"
}
]
},
"Match to Switchyard": {
"Variable": [
"S20SY01-MQUA020",
"S20SY01-MQUA030",
"S20SY01-MQUA050",
"S20SY01-MQUA080"
],
"Target": [
{
"Location": "s20sy02$start",
"Twiss": {
"betax": 48.26,
"alphax": 7.322,
"betay": 14.293,
"alphay": -3.513
}
}
]
},
"Resonant Kicker": {
"Variable": [
"S20SY02-MQUA070",
"S20SY02-MQUA100",
"S20SY02-MQUA140",
"S20SY02-MQUA180",
"S20SY02-MKDC010",
"S20SY02-MKAC020",
"S20SY02-MKDC030",
"S20SY02-MKAC040",
"S20SY02-MKDC050"
],
"Target": [
{
"Script": "Scripts/switchyard_kicker.madx"
}
]
},
"Switchyard": {
"Variable": [
"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"
],
"Target": [
{
"Script": "Scripts/switchyard.madx"
}
],
"User": {
"LEAKDISP": 0.0
}
},
"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
}
}
]
}
}
}

63
Scripts/ecol.madx Normal file
View File

@@ -0,0 +1,63 @@
!-----------------------------------
! collimator
R56 = -000e-6;
MATCH,RMATRIX,SEQUENCE=swissFEL,range=SARCL02$start/SARCL02$end,betx=10,alfx=0,bety=10,alfy=0;
VARY,NAME=sarcl02.mqua130.k1,STEP=0.0001;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.mqua210,re56=R56*0.5;
LMDIF,CALLS=100,TOLERANCE=1.e-21;
ENDMATCH;
sarcl02.mqua210.k1=-sarcl02.mqua130.k1*0.9;
MATCH,SEQUENCE=swissfel,range=sarcl02$start/sarma01.mqua010,betx=10,alfx=0,bety=10,alfy=0;
VARY,NAME=sarcl02.mqua250.k1,STEP=0.0001;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dbpm260$end,dpx=0;
LMDIF,CALLS=100,TOLERANCE=1.e-21;
ENDMATCH;
sarcl02.mqua310.k1=sarcl02.mqua250.k1;
sarcl02.mqua350.k1=sarcl02.mqua210.k1;
sarcl02.mqua460.k1=sarcl02.mqua130.k1;
dL=0.625+0.25;
bx0=25;
bx=bx0+dL*dL/bx0;
ax=-dL/bx0;
by0=0.8;
by=by0+dL*dL/by0;
ay=-dL/by0;
twiss,sequence=swissfel,range=sarcl02.mqsk300/sarma01.mqua010,betx=bx,alfx=ax,bety=by,alfy=ay;
nbetx= table(twiss,sarma01$start,betx);
nalfx=-table(twiss,sarma01$start,alfx);
nbety= table(twiss,sarma01$start,bety);
nalfy=-table(twiss,sarma01$start,alfy);
MATCH,SEQUENCE=swissfel,range=s30cb10.mqua430$start/sarma01.mqua010,beta0=initcon;
VARY,NAME=sarcl01.mqua020.k1,STEP=0.0001;
VARY,NAME=sarcl01.mqua050.k1,STEP=0.0001;
VARY,NAME=sarcl01.mqua080.k1,STEP=0.0001;
VARY,NAME=sarcl01.mqua100.k1,STEP=0.0001;
VARY,NAME=sarcl01.mqua140.k1,STEP=0.0001;
VARY,NAME=sarcl01.mqua190.k1,STEP=0.0001;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$start,betx=nbetx;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$start,alfx=nalfx;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$start,bety=nbety;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$start,alfy=nalfy;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua050,bety<30;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua190,betx<30;
LMDIF,CALLS=100,TOLERANCE=1.e-21;
ENDMATCH;
twiss,sequence=swissfel,range=s30cb10.mqua430$start/sarma01.mqua010,rmatrix,beta0=initcon;

View File

@@ -21,7 +21,7 @@
"k1L": -0.035579549999999995
},
"SINLH01.MQSK030": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"SINLH01.MQUA040": {
@@ -41,28 +41,28 @@
"k1L": 1.85566035
},
"SINLH02.MQUA410": {
"k1": -3.4378111034518337,
"k1L": -0.515671665517775
"k1": -3.437811,
"k1L": -0.5156716499999999
},
"SINLH03.MQUA030": {
"k1": 3.4573372527232578,
"k1L": 0.5186005879084886
"k1": 3.457337,
"k1L": 0.5186005499999999
},
"SINLH03.MQUA040": {
"k1": 0.3833558487534322,
"k1L": 0.05750337731301483
"k1": 0.383356,
"k1L": 0.057503399999999996
},
"SINLH03.MQUA060": {
"k1": -1.4514973347363687,
"k1L": -0.21772460021045528
"k1": -1.451497,
"k1L": -0.21772455
},
"SINLH03.MQUA080": {
"k1": -3.1543289097164067,
"k1L": -0.473149336457461
"k1": -3.154329,
"k1L": -0.47314935
},
"SINSB03.MQUA130": {
"k1": 1.4059041536107317,
"k1L": 0.21088562304160977
"k1": 1.405904,
"k1L": 0.2108856
},
"SINSB03.MQUA230": {
"k1": -1.42634,
@@ -105,19 +105,19 @@
"k1L": 0.27249015
},
"SINBC02.MQSK110": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"SINBC02.MQUA120": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"SINBC02.MQUA340": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"SINBC02.MQSK350": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"SINDI01.MQUA020": {
@@ -125,7 +125,7 @@
"k1L": -0.0344289
},
"SINDI01.MQSK030": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"SINDI01.MQUA070": {
@@ -249,19 +249,19 @@
"k1L": 0.27656595
},
"S10BC02.MQSK110": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"S10BC02.MQUA120": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"S10BC02.MQUA340": {
"k1": 0.0125,
"k1L": 0.001
"k1": 0,
"k1L": 0.0
},
"S10BC02.MQSK350": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"S10MA01.MQUA020": {
@@ -329,272 +329,272 @@
"k1L": -0.22368776678950217
},
"S20SY03.MQUA020": {
"k1": 1.47384,
"k1L": 0.221076
"k1": 1.4737353405518387,
"k1L": 0.2210603010827758
},
"S20SY03.MQUA030": {
"k1": -0.6635266666666667,
"k1L": -0.099529
"k1": -0.6632951030340403,
"k1L": -0.09949426545510603
},
"S20SY03.MQUA050": {
"k1": 1.2635,
"k1L": 0.189525
"k1": 1.2632419080846755,
"k1L": 0.18948628621270133
},
"S20SY03.MQUA060": {
"k1": -1.8570733333333334,
"k1L": -0.278561
"k1": -1.8570678537797862,
"k1L": -0.2785601780669679
},
"S20SY03.MQUA100": {
"k1": 1.54432,
"k1L": 0.23164799999999997
"k1": 1.5444420703125,
"k1L": 0.23166631054687498
},
"S30CB01.MQUA430": {
"k1": 0.8201533333333333,
"k1L": 0.123023
"k1": 0.820153,
"k1L": 0.12302294999999999
},
"S30CB02.MQUA430": {
"k1": -0.8201466666666667,
"k1L": -0.12302199999999999
"k1": -0.820147,
"k1L": -0.12302205
},
"S30CB03.MQUA430": {
"k1": 0.8201533333333333,
"k1L": 0.123023
"k1": 0.820153,
"k1L": 0.12302294999999999
},
"S30CB04.MQUA430": {
"k1": -0.8201466666666667,
"k1L": -0.12302199999999999
"k1": -0.820147,
"k1L": -0.12302205
},
"S30CB05.MQUA430": {
"k1": 0.8201533333333333,
"k1L": 0.123023
"k1": 0.820153,
"k1L": 0.12302294999999999
},
"S30CB06.MQUA430": {
"k1": -0.8191066666666668,
"k1L": -0.122866
"k1": -0.820147,
"k1L": -0.12302205
},
"S30CB07.MQUA430": {
"k1": 0.8194866666666667,
"k1L": 0.122923
"k1": 0.820153,
"k1L": 0.12302294999999999
},
"S30CB08.MQUA430": {
"k1": -0.8180200000000001,
"k1L": -0.122703
"k1": -0.820147,
"k1L": -0.12302205
},
"S30CB09.MQUA430": {
"k1": 0.81822,
"k1L": 0.12273299999999998
"k1": 0.820153,
"k1L": 0.12302294999999999
},
"S30CB10.MQUA430": {
"k1": -0.8201466666666667,
"k1L": -0.12302199999999999
"k1": -0.820147,
"k1L": -0.12302205
},
"S30CB11.MQUA430": {
"k1": 0.8201533333333333,
"k1L": 0.123023
"k1": 0.820153,
"k1L": 0.12302294999999999
},
"S30CB12.MQUA430": {
"k1": -0.8201466666666667,
"k1L": -0.12302199999999999
"k1": -0.820147,
"k1L": -0.12302205
},
"S30CB13.MQUA430": {
"k1": 0.8201533333333333,
"k1L": 0.123023
"k1": 0.820153,
"k1L": 0.12302294999999999
},
"S30CB14.MQUA430": {
"k1": -0.8201466666666667,
"k1L": -0.12302199999999999
"k1": -0.820147,
"k1L": -0.12302205
},
"S30CB15.MQUA430": {
"k1": 0.8201533333333333,
"k1L": 0.123023
"k1": 0.820153,
"k1L": 0.12302294999999999
},
"SARCL01.MQUA020": {
"k1": -0.5674133333333333,
"k1L": -0.085112
"k1": -0.5767143646339605,
"k1L": -0.08650715469509408
},
"SARCL01.MQUA050": {
"k1": 0.7934866666666667,
"k1L": 0.23804599999999998
"k1": 0.848093958983549,
"k1L": 0.2544281876950647
},
"SARCL01.MQUA080": {
"k1": -0.72643,
"k1L": -0.217929
"k1": -0.7346225594041853,
"k1L": -0.22038676782125557
},
"SARCL01.MQUA100": {
"k1": -0.14591,
"k1L": -0.043773
"k1": -0.20022533835551523,
"k1L": -0.060067601506654564
},
"SARCL01.MQUA140": {
"k1": 1.7667433333333336,
"k1L": 0.530023
"k1": 1.7781967084123833,
"k1L": 0.533459012523715
},
"SARCL01.MQUA190": {
"k1": -1.4180733333333335,
"k1L": -0.425422
"k1": -1.374162967881632,
"k1L": -0.4122488903644896
},
"SARCL02.MQUA130": {
"k1": 2.47047,
"k1L": 0.741141
"k1": 2.470468387341445,
"k1L": 0.7411405162024335
},
"SARCL02.MQUA150": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"SARCL02.MQSK160": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"SARCL02.MQUA210": {
"k1": -2.22342,
"k1L": -0.667026
"k1": -2.2234215486073006,
"k1L": -0.6670264645821902
},
"SARCL02.MQUA250": {
"k1": 1.47725,
"k1L": 0.443175
"k1": 1.4772503831488089,
"k1L": 0.4431751149446426
},
"SARCL02.MQSK300": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"SARCL02.MQUA310": {
"k1": 1.47725,
"k1L": 0.443175
"k1": 1.4772503831488089,
"k1L": 0.4431751149446426
},
"SARCL02.MQUA350": {
"k1": -2.22342,
"k1L": -0.667026
"k1": -2.2234215486073006,
"k1L": -0.6670264645821902
},
"SARCL02.MQSK420": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"SARCL02.MQUA430": {
"k1": 0.0,
"k1": 0,
"k1L": 0.0
},
"SARCL02.MQUA460": {
"k1": 2.47047,
"k1L": 0.741141
"k1": 2.470468387341445,
"k1L": 0.7411405162024335
},
"SARMA01.MQUA010": {
"k1": -1.6247900000000002,
"k1L": -0.487437
"k1": -1.6574408552140827,
"k1L": -0.49723225656422476
},
"SARMA01.MQUA060": {
"k1": 1.2823166666666668,
"k1L": 0.384695
"k1": 1.2689209363062206,
"k1L": 0.38067628089186617
},
"SARMA01.MQUA080": {
"k1": 0.12394000000000001,
"k1L": 0.037182
"k1": 0.12679201398667186,
"k1L": 0.03803760419600156
},
"SARMA01.MQUA120": {
"k1": -0.9487700000000001,
"k1L": -0.284631
"k1": -0.9814021639002052,
"k1L": -0.29442064917006155
},
"SARMA01.MQUA140": {
"k1": 0.7188366666666667,
"k1L": 0.215651
"k1": 0.7263225152054471,
"k1L": 0.21789675456163413
},
"SARMA02.MQUA050": {
"k1": -2.8361125,
"k1L": -0.226889
"k1": -2.716737,
"k1L": -0.21733896000000003
},
"SARMA02.MQUA120": {
"k1": 2.8361125,
"k1L": 0.226889
"k1": 2.806338,
"k1L": 0.22450704000000002
},
"SARUN01.MQUA080": {
"k1": -2.8361125,
"k1L": -0.226889
"k1": -2.716737,
"k1L": -0.21733896000000003
},
"SARUN02.MQUA080": {
"k1": 2.8361125,
"k1L": 0.226889
"k1": 2.806338,
"k1L": 0.22450704000000002
},
"SARUN03.MQUA080": {
"k1": -2.7167375,
"k1L": -0.21733899999999998
"k1": -2.716737,
"k1L": -0.21733896000000003
},
"SARUN04.MQUA080": {
"k1": 2.8063375,
"k1L": 0.224507
"k1": 2.806338,
"k1L": 0.22450704000000002
},
"SARUN05.MQUA080": {
"k1": -2.719025,
"k1L": -0.217522
"k1": -2.716737,
"k1L": -0.21733896000000003
},
"SARUN06.MQUA080": {
"k1": 2.8369625,
"k1L": 0.226957
"k1": 2.806338,
"k1L": 0.22450704000000002
},
"SARUN07.MQUA080": {
"k1": -2.718575,
"k1L": -0.217486
"k1": -2.716737,
"k1L": -0.21733896000000003
},
"SARUN08.MQUA080": {
"k1": 2.8063000000000002,
"k1L": 0.22450400000000004
"k1": 2.806338,
"k1L": 0.22450704000000002
},
"SARUN09.MQUA080": {
"k1": -2.719525,
"k1L": -0.217562
"k1": -2.716737,
"k1L": -0.21733896000000003
},
"SARUN10.MQUA080": {
"k1": 2.8364625,
"k1L": 0.226917
"k1": 2.806338,
"k1L": 0.22450704000000002
},
"SARUN11.MQUA080": {
"k1": -2.7189875,
"k1L": -0.217519
"k1": -2.716737,
"k1L": -0.21733896000000003
},
"SARUN12.MQUA080": {
"k1": 2.8064625,
"k1L": 0.224517
"k1": 2.806338,
"k1L": 0.22450704000000002
},
"SARUN13.MQUA080": {
"k1": -2.7200875,
"k1L": -0.217607
"k1": -2.716737,
"k1L": -0.21733896000000003
},
"SARUN14.MQUA080": {
"k1": 2.836525,
"k1L": 0.226922
"k1": 2.806338,
"k1L": 0.22450704000000002
},
"SARUN15.MQUA080": {
"k1": -2.7991625,
"k1L": -0.223933
"k1": -2.716737,
"k1L": -0.21733896000000003
},
"SARUN16.MQUA080": {
"k1": 2.8508999999999998,
"k1L": 0.228072
"k1": 2.806338,
"k1L": 0.22450704000000002
},
"SARUN17.MQUA080": {
"k1": -2.8655875,
"k1L": -0.229247
"k1": -2.716737,
"k1L": -0.21733896000000003
},
"SARUN18.MQUA080": {
"k1": 2.860225,
"k1L": 0.228818
"k1": 2.806338,
"k1L": 0.22450704000000002
},
"SARUN19.MQUA080": {
"k1": -3.0,
"k1L": -0.24
"k1": -3.192157429148314,
"k1L": -0.25537259433186515
},
"SARUN20.MQUA080": {
"k1": 2.8022125,
"k1L": 0.22417700000000002
"k1": 2.885174510422123,
"k1L": 0.23081396083376984
},
"SARBD01.MQUA020": {
"k1": 0.0,
"k1L": 0.0
"k1": 0.0833618175771457,
"k1L": 0.006668945406171656
},
"SATSY01.MQUA020": {
"k1": 0.48660586059056876,
"k1L": 0.14598175817717063
},
"SATSY01.MQSK030": {
"k1": 0.05,
"k1L": 0.004
"k1": 0,
"k1L": 0.0
},
"SATSY01.MQUA040": {
"k1": 1.0087581140227897,
@@ -621,8 +621,8 @@
"k1L": 0.15131371710341845
},
"SATSY01.MQSK270": {
"k1": -0.02,
"k1L": -0.003
"k1": 0,
"k1L": 0.0
},
"SATSY01.MQUA280": {
"k1": 0.4154173003863646,
@@ -685,20 +685,20 @@
"k1L": -0.1605619526966256
},
"SATDI01.MQUA025": {
"k1": -1.0732185274832882,
"k1L": -0.16098277912249323
"k1": -1.073219,
"k1L": -0.16098284999999998
},
"SATDI01.MQUA080": {
"k1": 0.8923449729204195,
"k1L": 0.13385174593806293
"k1": 0.892345,
"k1L": 0.13385175
},
"SATDI01.MQUA220": {
"k1": 0.7366134361225838,
"k1L": 0.11049201541838756
"k1": 0.736613,
"k1L": 0.11049194999999999
},
"SATDI01.MQUA230": {
"k1": -0.8543910736856596,
"k1L": -0.12815866105284893
"k1": -0.854391,
"k1L": -0.12815864999999999
},
"SATDI01.MQUA250": {
"k1": 0.513373,
@@ -845,60 +845,60 @@
"k1L": 0.32505296
},
"SATUN22.MQUA080": {
"k1": 0.4964329309887641,
"k1L": 0.03971463447910113
"k1": 0.496433,
"k1L": 0.03971464
},
"SATMA02.MQUA010": {
"k1": -0.42315336842105267,
"k1L": -0.033852269473684214
"k1": -0.423153,
"k1L": -0.03385224
},
"SATMA02.MQUA020": {
"k1": 1.4838107636716382,
"k1L": 0.11870486109373106
"k1": 1.483811,
"k1L": 0.11870488
},
"SATMA02.MQUA040": {
"k1": -0.3968258867467391,
"k1L": -0.03174607093973913
"k1": -0.396826,
"k1L": -0.03174608
},
"SATMA02.MQUA050": {
"k1": -2.912309351003254,
"k1L": -0.23298474808026032
"k1": -2.912309,
"k1L": -0.23298472
},
"SATMA02.MQUA070": {
"k1": 2.546737474871309,
"k1L": 0.20373899798970474
"k1": 2.546737,
"k1L": 0.20373896
},
"SATBD01.MQUA010": {
"k1": 0.5069800000000001,
"k1L": 0.15209400000000003
"k1": 0.50697,
"k1L": 0.152091
},
"SATBD01.MQUA030": {
"k1": -0.6184666666666667,
"k1L": -0.18554
"k1": -0.618466,
"k1L": -0.18553979999999998
},
"SATBD01.MQUA050": {
"k1": 0.13248666666666667,
"k1L": 0.039746
"k1": 0.13249,
"k1L": 0.039747
},
"SATBD01.MQUA070": {
"k1": 0.4740266666666667,
"k1L": 0.142208
"k1": 0.47403,
"k1L": 0.142209
},
"SATBD01.MQUA090": {
"k1": -0.7442633333333334,
"k1L": -0.223279
"k1": -0.74426,
"k1L": -0.223278
},
"S10BD01.MQUA010": {
"k1": 0.0,
"k1L": 0.0
},
"SARBD02.MQUA030": {
"k1": -0.86254,
"k1L": -0.258762
"k1": -1.1319081349666364,
"k1L": -0.3395724404899909
},
"SATBD02.MQUA030": {
"k1": -1.0508066666666669,
"k1L": -0.3152420000000001
"k1": -1.05081,
"k1L": -0.315243
}
},
"Sextupole": {
@@ -1735,23 +1735,23 @@
},
"Kicker": {
"S20SY02.MKDC010": {
"cory": 0.0002079977059769098,
"cory": 0,
"design_kick": 0.0002079977059769098
},
"S20SY02.MKAC020": {
"cory": 0.0003119965589653647,
"cory": 0,
"design_kick": 0.0003119965589653647
},
"S20SY02.MKDC030": {
"cory": 0.0002079977059769098,
"cory": 0,
"design_kick": 0.0002079977059769098
},
"S20SY02.MKAC040": {
"cory": 0.0003119965589653647,
"cory": 0,
"design_kick": 0.0003119965589653647
},
"S20SY02.MKDC050": {
"cory": 0.0002079977059769098,
"cory": 0,
"design_kick": 0.0002079977059769098
}
},

View File

@@ -70,6 +70,10 @@ def generateDependences():
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)]
dependence['S30CB01-MQUA430'] = ['S30CB%2.2d-MQUA430' % (i*2 + 3) for i in range(7)]
dependence['S30CB02-MQUA430'] = ['S30CB%2.2d-MQUA430' % (i*2 + 4) for i in range(6)]
dependence['SARUN03-MQUA080'] = ['SARMA02-MQUA050','SARUN01-MQUA080'] + ['SARUN%2.2d-MQUA080' % (2*i + 5) for i in range(8)]
dependence['SARUN04-MQUA080'] = ['SARMA02-MQUA120','SARUN02-MQUA080'] + ['SARUN%2.2d-MQUA080' % (2*i + 6) for i in range(8)]
return dependence
def generateOrder():
@@ -102,6 +106,13 @@ def generateOrder():
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'))
order.append(MatchStep(None, 'Linac 3', None, 'SARBD01',['S30CB01','S30CB02'], True))
order.append(MatchStep('Switchyard', 'Match to Linac 3', 'S30CB03', 'SARBD01'))
order.append(MatchStep('Switchyard', 'End of Linac 3', 'S30CB10', 'SARBD01'))
order.append(MatchStep(None, 'Aramis Undulator', None, 'SARBD01', ['SARUN03', 'SARUN04'], True))
order.append(MatchStep('Linac3', 'Aramis - ECOL', None, 'SARBD01'))
order.append(MatchStep('Linac3', 'Match to Aramis Undulator', 'SARUN20', 'SARBD01'))
order.append(MatchStep('Linac3', 'Aramis Dump', 'SARBD02', 'SARBd02'))
return order
@@ -223,6 +234,38 @@ def generateMatchingSteps(reference,var_ext):
MatchReference('satun22$end', {'x':0, 'px': 0})]
parameter['Match to Athos Deflector'] = MatchParameter(var,tar)
var = ['S30CB01-MQUA430', 'S30CB02-MQUA430']
tar = [MatchReference('#e', {'MUX': 0.1883, 'MUY': 0.1883})]
parameter['Linac 3'] = MatchParameter(var, tar)
var = ['S20SY03-MQUA020', 'S20SY03-MQUA030', 'S20SY03-MQUA050', 'S20SY03-MQUA060', 'S20SY03-MQUA100']
tar = [{'Location': 's30cb01$start', 'SavedID': 'Linac 3'}]
parameter['Match to Linac 3'] = MatchParameter(var, tar)
var = ['S30CB01-MQUA430', 'S30CB01-MQUA430', 'S30CB01-MQUA430', 'S30CB01-MQUA430']
tar = [reference['Linac3']]
parameter['End of Linac 3'] = MatchParameter(var, tar)
var = ['SARCL02-MQUA130','SARCL02-MQUA210','SARCL02-MQUA250',
'SARCL02-MQUA310','SARCL02-MQUA350','SARCL02-MQUA460',
'SARCL01-MQUA020', 'SARCL01-MQUA050', 'SARCL01-MQUA080',
'SARCL01-MQUA100', 'SARCL01-MQUA140', 'SARCL01-MQUA190'
]
tar = [{'Script': 'Scripts/ecol.madx'}]
parameter['Aramis - ECOL'] = MatchParameter(var, tar)
var = ['SARUN03-MQUA080', 'SARUN04-MQUA080']
tar = [MatchReference('#e', {'MUX': 0.15, 'MUY': 0.15})]
parameter['Aramis Undulator'] = MatchParameter(var, tar)
var = ['SARMA01-MQUA010', 'SARMA01-MQUA060', 'SARMA01-MQUA080', 'SARMA01-MQUA120', 'SARMA01-MQUA140']
tar = [{'Location': 'sarun03$start', 'SavedID': 'Aramis Undulator'},
MatchReference('sarma01.mqua060', {'betax': 40}, 1)]
parameter['Match to Aramis Undulator'] = MatchParameter(var, tar)
var = ['SARUN19-MQUA080', 'SARUN20-MQUA080', 'SARBD01-MQUA020', 'SARBD02-MQUA030']
tar = [MatchReference('SARBD02$END', {'betax': 250, 'betay': 250,'etax':100,'etay':1.2}, 1)]
parameter['Aramis Dump'] = MatchParameter(var, tar)
return parameter

View File

@@ -1,4 +1,4 @@
1) Finish reference lattice for SwissFEL
Currently none

View File

@@ -180,41 +180,6 @@ class Model:
print(settings['Energy']['energy'])
print('Energy in system',self.om.EnergyAt(self.energyReference)[0])
##### very old code should be become obsolete after some nice matching files
def updateModel(self):
file ='SwissFELRef.json'
with open(file) as f:
data = json.load(f)
for key in data['settings'].keys():
tags=key.split(':')
elename = tags[0].replace('-','.')
fld = tags[1]
ele = self.om.getElement(elename)
if 'K1L' == fld:
ele.k1 = data['settings'][key]/ele.Length
elif 'K2L' == fld:
ele.k2 = data['settings'][key]/ele.Length
elif 'Grad' == fld:
# ele.Gradient = data['settings'][key]/ele.Length
ele.Gradient = data['settings'][key]
elif 'Phase' == fld:
ele.Phase = data['settings'][key]
elif 'kx' == fld:
ele.kx = data['settings'][key]
elif 'ky' == fld:
ele.ky = data['settings'][key]
elif 'K' == fld:
ele.K = data['settings'][key]
elif 'Gap' == fld:
ele.Gap = data['settings'][key]
elif 'Offset' == fld:
ele.Offset = data['settings'][key]
elif 'K0L' == fld:
ele.angle = data['settings'][key]
elif 'KICK' == fld:
ele.cory=data['settings'][key]
else:
print('Unknown tag:', key, data['settings'][key])
##############################33
# tracking