diff --git a/MatchingConfig/Reference.json b/MatchingConfig/Reference.json index c88f90d..00bb4b2 100644 --- a/MatchingConfig/Reference.json +++ b/MatchingConfig/Reference.json @@ -1,5 +1,5 @@ { - "Label": "Custom", + "Label": "Reference", "Order": [ { "Reference": null, diff --git a/Settings/ReferenceSetting.json b/Settings/ReferenceSetting.json index 7d16be5..2f50cf4 100644 --- a/Settings/ReferenceSetting.json +++ b/Settings/ReferenceSetting.json @@ -229,24 +229,24 @@ "k1L": 0.22457595 }, "S10BC01.MQUA020": { - "k1": 1.7433, - "k1L": 0.261495 + "k1": 1.7509920631209006, + "k1L": 0.26264880946813507 }, "S10BC01.MQUA040": { - "k1": -1.23226, - "k1L": -0.18483899999999998 + "k1": -1.2404153564733533, + "k1L": -0.186062303471003 }, "S10BC01.MQUA060": { - "k1": -0.756093, - "k1L": -0.11341395 + "k1": -0.7554981318790087, + "k1L": -0.1133247197818513 }, "S10BC01.MQUA080": { - "k1": -0.925953, - "k1L": -0.13889295 + "k1": -0.9235765786782661, + "k1L": -0.1385364868017399 }, "S10BC01.MQUA100": { - "k1": 1.843773, - "k1L": 0.27656595 + "k1": 1.8427068967306495, + "k1L": 0.2764060345095974 }, "S10BC02.MQSK110": { "k1": 0, @@ -329,112 +329,112 @@ "k1L": -0.22368776678950217 }, "S20SY03.MQUA020": { - "k1": 1.4737353405518387, - "k1L": 0.2210603010827758 + "k1": 1.473735, + "k1L": 0.22106024999999999 }, "S20SY03.MQUA030": { - "k1": -0.6632951030340403, - "k1L": -0.09949426545510603 + "k1": -0.663295, + "k1L": -0.09949424999999999 }, "S20SY03.MQUA050": { - "k1": 1.2632419080846755, - "k1L": 0.18948628621270133 + "k1": 1.263242, + "k1L": 0.1894863 }, "S20SY03.MQUA060": { - "k1": -1.8570678537797862, - "k1L": -0.2785601780669679 + "k1": -1.857068, + "k1L": -0.2785602 }, "S20SY03.MQUA100": { - "k1": 1.5444420703125, - "k1L": 0.23166631054687498 + "k1": 1.544442, + "k1L": 0.2316663 }, "S30CB01.MQUA430": { - "k1": 0.820153, - "k1L": 0.12302294999999999 + "k1": 0.8212229144957932, + "k1L": 0.12318343717436897 }, "S30CB02.MQUA430": { "k1": -0.820147, "k1L": -0.12302205 }, "S30CB03.MQUA430": { - "k1": 0.820153, - "k1L": 0.12302294999999999 + "k1": 0.8212229144957932, + "k1L": 0.12318343717436897 }, "S30CB04.MQUA430": { "k1": -0.820147, "k1L": -0.12302205 }, "S30CB05.MQUA430": { - "k1": 0.820153, - "k1L": 0.12302294999999999 + "k1": 0.8212229144957932, + "k1L": 0.12318343717436897 }, "S30CB06.MQUA430": { "k1": -0.820147, "k1L": -0.12302205 }, "S30CB07.MQUA430": { - "k1": 0.820153, - "k1L": 0.12302294999999999 + "k1": 0.8212229144957932, + "k1L": 0.12318343717436897 }, "S30CB08.MQUA430": { "k1": -0.820147, "k1L": -0.12302205 }, "S30CB09.MQUA430": { - "k1": 0.820153, - "k1L": 0.12302294999999999 + "k1": 0.8212229144957932, + "k1L": 0.12318343717436897 }, "S30CB10.MQUA430": { "k1": -0.820147, "k1L": -0.12302205 }, "S30CB11.MQUA430": { - "k1": 0.820153, - "k1L": 0.12302294999999999 + "k1": 0.8212229144957932, + "k1L": 0.12318343717436897 }, "S30CB12.MQUA430": { "k1": -0.820147, "k1L": -0.12302205 }, "S30CB13.MQUA430": { - "k1": 0.820153, - "k1L": 0.12302294999999999 + "k1": 0.8212229144957932, + "k1L": 0.12318343717436897 }, "S30CB14.MQUA430": { "k1": -0.820147, "k1L": -0.12302205 }, "S30CB15.MQUA430": { - "k1": 0.820153, - "k1L": 0.12302294999999999 + "k1": 0.8212229144957932, + "k1L": 0.12318343717436897 }, "SARCL01.MQUA020": { - "k1": -0.5767143646339605, - "k1L": -0.08650715469509408 + "k1": -0.576714, + "k1L": -0.08650709999999999 }, "SARCL01.MQUA050": { - "k1": 0.848093958983549, - "k1L": 0.2544281876950647 + "k1": 0.8480939373513464, + "k1L": 0.2544281812054039 }, "SARCL01.MQUA080": { - "k1": -0.7346225594041853, - "k1L": -0.22038676782125557 + "k1": -0.7346228977112695, + "k1L": -0.22038686931338086 }, "SARCL01.MQUA100": { - "k1": -0.20022533835551523, - "k1L": -0.060067601506654564 + "k1": -0.20022480217977656, + "k1L": -0.06006744065393296 }, "SARCL01.MQUA140": { - "k1": 1.7781967084123833, - "k1L": 0.533459012523715 + "k1": 1.7781965839840568, + "k1L": 0.533458975195217 }, "SARCL01.MQUA190": { - "k1": -1.374162967881632, - "k1L": -0.4122488903644896 + "k1": -1.37416301794214, + "k1L": -0.412248905382642 }, "SARCL02.MQUA130": { - "k1": 2.470468387341445, - "k1L": 0.7411405162024335 + "k1": 2.4704683873487707, + "k1L": 0.7411405162046312 }, "SARCL02.MQUA150": { "k1": 0, @@ -445,24 +445,24 @@ "k1L": 0.0 }, "SARCL02.MQUA210": { - "k1": -2.2234215486073006, - "k1L": -0.6670264645821902 + "k1": -2.2234215486138935, + "k1L": -0.667026464584168 }, "SARCL02.MQUA250": { - "k1": 1.4772503831488089, - "k1L": 0.4431751149446426 + "k1": 1.477250383147381, + "k1L": 0.4431751149442143 }, "SARCL02.MQSK300": { "k1": 0, "k1L": 0.0 }, "SARCL02.MQUA310": { - "k1": 1.4772503831488089, - "k1L": 0.4431751149446426 + "k1": 1.477250383147381, + "k1L": 0.4431751149442143 }, "SARCL02.MQUA350": { - "k1": -2.2234215486073006, - "k1L": -0.6670264645821902 + "k1": -2.2234215486138935, + "k1L": -0.667026464584168 }, "SARCL02.MQSK420": { "k1": 0, @@ -473,28 +473,28 @@ "k1L": 0.0 }, "SARCL02.MQUA460": { - "k1": 2.470468387341445, - "k1L": 0.7411405162024335 + "k1": 2.4704683873487707, + "k1L": 0.7411405162046312 }, "SARMA01.MQUA010": { - "k1": -1.6574408552140827, - "k1L": -0.49723225656422476 + "k1": -1.6446759674440306, + "k1L": -0.49340279023320915 }, "SARMA01.MQUA060": { - "k1": 1.2689209363062206, - "k1L": 0.38067628089186617 + "k1": 1.267424452836345, + "k1L": 0.38022733585090346 }, "SARMA01.MQUA080": { - "k1": 0.12679201398667186, - "k1L": 0.03803760419600156 + "k1": 0.11258063665701519, + "k1L": 0.033774190997104554 }, "SARMA01.MQUA120": { - "k1": -0.9814021639002052, - "k1L": -0.29442064917006155 + "k1": -0.8871549810184883, + "k1L": -0.2661464943055465 }, "SARMA01.MQUA140": { - "k1": 0.7263225152054471, - "k1L": 0.21789675456163413 + "k1": 0.6931139484990629, + "k1L": 0.20793418454971888 }, "SARMA02.MQUA050": { "k1": -2.716737, @@ -577,96 +577,96 @@ "k1L": 0.22450704000000002 }, "SARUN19.MQUA080": { - "k1": -3.192157429148314, - "k1L": -0.25537259433186515 + "k1": -3.192157, + "k1L": -0.25537255999999997 }, "SARUN20.MQUA080": { - "k1": 2.885174510422123, - "k1L": 0.23081396083376984 + "k1": 2.885175, + "k1L": 0.230814 }, "SARBD01.MQUA020": { - "k1": 0.0833618175771457, - "k1L": 0.006668945406171656 + "k1": 0.083362, + "k1L": 0.006668960000000001 }, "SATSY01.MQUA020": { - "k1": 0.48660586059056876, - "k1L": 0.14598175817717063 + "k1": 0.3440667119021981, + "k1L": 0.10322001357065944 }, "SATSY01.MQSK030": { "k1": 0, "k1L": 0.0 }, "SATSY01.MQUA040": { - "k1": 1.0087581140227897, - "k1L": 0.15131371710341845 + "k1": 1.5356338017985782, + "k1L": 0.23034507026978673 }, "SATSY01.MQUA070": { - "k1": -0.05069776110738714, - "k1L": -0.007604664166108071 + "k1": -1.0352780197445182, + "k1L": -0.1552917029616777 }, "SATSY01.MQUA090": { - "k1": -0.8280230382090663, - "k1L": -0.12420345573135994 + "k1": -0.34581315599708934, + "k1L": -0.0518719733995634 }, "SATSY01.MQUA210": { - "k1": -1.0429250612742882, - "k1L": -0.15643875919114322 + "k1": -0.4278259402930389, + "k1L": -0.06417389104395584 }, "SATSY01.MQUA230": { - "k1": 0.14447962370530146, - "k1L": 0.021671943555795218 + "k1": -1.0352780197445182, + "k1L": -0.1552917029616777 }, "SATSY01.MQUA260": { - "k1": 1.0087581140227897, - "k1L": 0.15131371710341845 + "k1": 1.5356338017985782, + "k1L": 0.23034507026978673 }, "SATSY01.MQSK270": { "k1": 0, "k1L": 0.0 }, "SATSY01.MQUA280": { - "k1": 0.4154173003863646, - "k1L": 0.12462519011590938 + "k1": 0.33271858589438225, + "k1L": 0.09981557576831467 }, "SATSY01.MQUA300": { - "k1": 0.5274, - "k1L": 0.07911 + "k1": 0.3037703404982664, + "k1L": 0.04556555107473996 }, "SATSY02.MQUA010": { - "k1": -1.7080620959571267, - "k1L": -0.256209314393569 + "k1": -1.0866051739709974, + "k1L": -0.1629907760956496 }, "SATSY02.MQUA110": { - "k1": 1.959261104743878, - "k1L": 0.2938891657115817 + "k1": -0.5365921755530061, + "k1L": -0.08048882633295092 }, "SATSY02.MQUA120": { - "k1": -1.4090698555806758, - "k1L": -0.21136047833710137 + "k1": 1.4244326447862972, + "k1L": 0.21366489671794456 }, "SATSY02.MQUA230": { - "k1": -0.13140025286907797, - "k1L": -0.019710037930361694 + "k1": -1.1149417204728553, + "k1L": -0.1672412580709283 }, "SATSY03.MQUA010": { - "k1": 0.5686392250973631, - "k1L": 0.08529588376460447 + "k1": 1.2550710068351227, + "k1L": 0.1882606510252684 }, "SATSY03.MQUA040": { - "k1": 0.7394030481479725, - "k1L": 0.11091045722219588 + "k1": -0.3692659680970286, + "k1L": -0.05538989521455429 }, "SATSY03.MQUA070": { - "k1": 0.3959121491873279, - "k1L": 0.05938682237809918 + "k1": 1.2192943281016324, + "k1L": 0.18289414921524486 }, "SATSY03.MQUA100": { - "k1": -0.05183539567068032, - "k1L": -0.0077753093506020485 + "k1": -1.8125244015335604, + "k1L": -0.27187866023003404 }, "SATSY03.MQUA130": { - "k1": -0.6742001919717852, - "k1L": -0.10113002879576777 + "k1": 1.1785454555122787, + "k1L": 0.1767818183268418 }, "SATCL01.MQUA120": { "k1": -1.1820586458351845, @@ -677,28 +677,28 @@ "k1L": 0.26590232609063225 }, "SATCL01.MQUA180": { - "k1": 1.7075900466920062, - "k1L": 0.2561385070038009 + "k1": 1.707590237646083, + "k1L": 0.2561385356469124 }, "SATCL01.MQUA190": { - "k1": -1.070413017977504, - "k1L": -0.1605619526966256 + "k1": -1.0704136224569918, + "k1L": -0.16056204336854876 }, "SATDI01.MQUA025": { - "k1": -1.073219, - "k1L": -0.16098284999999998 + "k1": -1.0983553906315382, + "k1L": -0.16475330859473072 }, "SATDI01.MQUA080": { - "k1": 0.892345, - "k1L": 0.13385175 + "k1": 0.9285218397639249, + "k1L": 0.13927827596458872 }, "SATDI01.MQUA220": { - "k1": 0.736613, - "k1L": 0.11049194999999999 + "k1": 0.6806403246032996, + "k1L": 0.10209604869049493 }, "SATDI01.MQUA230": { - "k1": -0.854391, - "k1L": -0.12815864999999999 + "k1": -0.8069619959120209, + "k1L": -0.12104429938680313 }, "SATDI01.MQUA250": { "k1": 0.513373, @@ -893,8 +893,8 @@ "k1L": 0.0 }, "SARBD02.MQUA030": { - "k1": -1.1319081349666364, - "k1L": -0.3395724404899909 + "k1": -1.131908, + "k1L": -0.33957239999999994 }, "SATBD02.MQUA030": { "k1": -1.05081, diff --git a/model.py b/model.py index 941a2ff..6f8a52e 100644 --- a/model.py +++ b/model.py @@ -26,6 +26,8 @@ class Model: self.startEnergy = None self.energyReference ='SINLH02.MBND100' + # flag to enfore new lattice + self.forceLat=True # hook up events self.matchplot=True self.eventHandling() @@ -34,6 +36,8 @@ class Model: self.parent.UITrack.clicked.connect(self.track) self.parent.UIMatchSelected.clicked.connect(self.match) + def forceLatticeUpdate(self): + self.forceLat=True def getLatticeVersion(self): return self.om.Version @@ -85,6 +89,7 @@ class Model: energy = machine['Energy'] for key in energy: self.updateEnergy(energy[key]) + self.forceLatticeUpdate() def updateEnergy(self,E0): if isinstance(E0,list): @@ -179,6 +184,7 @@ class Model: self.updateEnergy(self.startEnergy) print(settings['Energy']['energy']) print('Energy in system',self.om.EnergyAt(self.energyReference)[0]) + self.forceLat=True ##############################33 @@ -386,7 +392,8 @@ class Model: destination = 'INJECTOR' self.om.setBranch(destination,'SINLH01') self.order=self.om.getBranchElements() - self.madx.updateLattice(self.om,destination) + self.madx.updateLattice(self.om,destination,self.forceLat) + self.forceLat=False def checkRange(self,start,end,ref): if self.om.getSection(start) is None: diff --git a/plot.py b/plot.py index 21a4e46..04363c4 100644 --- a/plot.py +++ b/plot.py @@ -217,40 +217,40 @@ class OpticsPlot(QtWidgets.QMainWindow, Ui_OpticsPlotGUI): if not self.twissref is None: if filt['BETX']: - self.plotSingle(s[i1:i2], self.twissref.betx[i1:i2], (0, 0, 1, 1), r'$\beta_{x}$',dashed=True) + self.plotSingle(s[i1:i2], self.twissref.betx[i1:i2], (0, 0, 1, 1), r'$\beta_{x}$ (ref)',dashed=True) ylabel = ylabel + r'$\beta_x$ (m), ' if filt['BETY']: - self.plotSingle(s[i1:i2], self.twissref.bety[i1:i2], (1, 0, 0, 1), r'$\beta_{y}$',dashed=True) + self.plotSingle(s[i1:i2], self.twissref.bety[i1:i2], (1, 0, 0, 1), r'$\beta_{y}$ (ref)',dashed=True) ylabel = ylabel + r'$\beta_y$ (m), ' if filt['ALFX']: - self.plotSingle(s[i1:i2], self.twissref.alfx[i1:i2], (0, 0, 1, 1), r'$\alpha_{x}$',dashed=True) + self.plotSingle(s[i1:i2], self.twissref.alfx[i1:i2], (0, 0, 1, 1), r'$\alpha_{x}$ (ref)',dashed=True) ylabel = ylabel + r'$\alpha_x$ (rad), ' if filt['ALFY']: - self.plotSingle(s[i1:i2], self.twissref.alfy[i1:i2], (1, 0, 0, 1), r'$\alpha_{y}$',dashed=True) + self.plotSingle(s[i1:i2], self.twissref.alfy[i1:i2], (1, 0, 0, 1), r'$\alpha_{y}$ (ref)',dashed=True) ylabel = ylabel + r'$\alpha_y$ (rad), ' if filt['DX']: - self.plotSingle(s[i1:i2], self.twissref.dx[i1:i2], (0, 0, 1, 1), r'$\eta_{x}$',dashed=True) + self.plotSingle(s[i1:i2], self.twissref.dx[i1:i2], (0, 0, 1, 1), r'$\eta_{x}$ (ref)',dashed=True) ylabel = ylabel + r'$\eta_x$ (m), ' if filt['DY']: - self.plotSingle(s[i1:i2], self.twissref.dy[i1:i2], (1, 0, 0, 1), r'$\eta_{y}$',dashed=True) + self.plotSingle(s[i1:i2], self.twissref.dy[i1:i2], (1, 0, 0, 1), r'$\eta_{y}$ (ref)',dashed=True) ylabel = ylabel + r'$\eta_y$ (m), ' if filt['MUX']: - self.plotSingle(s[i1:i2], self.twiss.mux[i1:i2], (0, 0.5, 1, 1), r'$\mu_{x}$',dashed=True) + self.plotSingle(s[i1:i2], self.twiss.mux[i1:i2], (0, 0.5, 1, 1), r'$\mu_{x}$ (ref)',dashed=True) ylabel = ylabel + r'$\mu_x$, ' if filt['MUY']: - self.plotSingle(s[i1:i2], self.twiss.muy[i1:i2], (1, 0.5, 0, 1), r'$\mu_{y}$',dashed=True) + self.plotSingle(s[i1:i2], self.twiss.muy[i1:i2], (1, 0.5, 0, 1), r'$\mu_{y}$ (ref)',dashed=True) ylabel = ylabel + r'$\mu_y$, ' if filt['X']: - self.plotSingle(s[i1:i2], self.twiss.x[i1:i2], (0, 0.5, 1, 1), r'$x$',dashed=True) + self.plotSingle(s[i1:i2], self.twiss.x[i1:i2], (0, 0.5, 1, 1), r'$x$ (ref)',dashed=True) ylabel = ylabel + r'$x$ (m), ' if filt['Y']: - self.plotSingle(s[i1:i2], self.twiss.y[i1:i2], (1, 0.5, 0, 1), r'$y$',dashed=True) + self.plotSingle(s[i1:i2], self.twiss.y[i1:i2], (1, 0.5, 0, 1), r'$y$ (ref)',dashed=True) ylabel = ylabel + r'$y$ (m), ' if filt['RE56']: - self.plotSingle(s[i1:i2], self.twissref.re56[i1:i2], (0, 0, 0, 1), r'$R_{56}$',dashed=True) + self.plotSingle(s[i1:i2], self.twissref.re56[i1:i2], (0, 0, 0, 1), r'$R_{56}$ (ref)',dashed=True) ylabel = ylabel + r'$R_{56}$ (m), ' if filt['Energy']: - self.plotSingle(s[i1:i2], self.energyref[i1:i2], (0, 1, 0, 1), r'$E$',dashed=True) + self.plotSingle(s[i1:i2], self.energyref[i1:i2], (0, 1, 0, 1), r'$E$ (ref)',dashed=True) ylabel = ylabel + r'$E$ (MeV), ' self.axes.legend(bbox_to_anchor=(0.15, 0.85)) diff --git a/sandbox.py b/sandbox.py index b8cd7ce..411ead2 100644 --- a/sandbox.py +++ b/sandbox.py @@ -38,8 +38,10 @@ class Sandbox: def updateModelEvent(self): if self.parent.sender() is self.parent.Mach2ModMag: + print('Update Magnets from Machine') self.updateModel(self.parent.MagSB,2,True) elif self.parent.sender() is self.parent.SB2ModMag: + print('Update Magnets from Sandbox') self.updateModel(self.parent.MagSB, 1, True) elif self.parent.sender() is self.parent.Mach2ModUnd: self.updateModel(self.parent.UndSB, 3, False) @@ -54,6 +56,7 @@ class Sandbox: print('Updating from Model:',energy) self.parent.model.updateEnergy(energy) self.updateSandbox() + self.parent.model.forceLatticeUpdate() self.parent.status('Sandbox mode') def updateModel(self,sb,col,single):