Initial test of matching
This commit is contained in:
37
model.py
37
model.py
@@ -169,7 +169,10 @@ class Model:
|
||||
|
||||
|
||||
def match(self):
|
||||
config = self.parent.reference.getMatchingPoint()
|
||||
config,ID = self.parent.reference.getMatchingPoint()
|
||||
if config is None:
|
||||
return
|
||||
|
||||
self.setBranch(config['Destination'])
|
||||
if config['Reference'] is None:
|
||||
start='#s'
|
||||
@@ -198,13 +201,31 @@ class Model:
|
||||
res,twiss,err=self.madx.match(sequence=config['Sequence'], start=start, end=end,
|
||||
init=itwiss, var=var, const=conf0,
|
||||
preset=False,random=False)
|
||||
print(res)
|
||||
print(err)
|
||||
plot = True
|
||||
if plot:
|
||||
energy = self.calcEnergyProfile(twiss)
|
||||
print('Plotting')
|
||||
self.parent.plot.newData(twiss,energy)
|
||||
if not config['Save'] == False:
|
||||
self.parent.reference.saveTwiss(ID,twiss)
|
||||
self.parent.reference.updateMatchPoint(ID,err)
|
||||
self.updateModelFromMatching(res)
|
||||
|
||||
energy = self.calcEnergyProfile(twiss)
|
||||
self.parent.plot.newData(twiss,energy)
|
||||
|
||||
def updateModelFromMatching(self,var):
|
||||
for magm in var.keys():
|
||||
if 'mqua' in magm or 'mqsk' in magm:
|
||||
mag0 = magm[0:15]
|
||||
val = var[magm]
|
||||
ele=self.om.getElement(mag0)
|
||||
if not ele is None:
|
||||
ele.k1 = val
|
||||
print('Updating %s to k1: %8.4f' % (mag0, val))
|
||||
magnets=self.parent.reference.getDependence(mag0)
|
||||
if not magnets is None:
|
||||
for magd in magnets:
|
||||
ele = self.om.getElement(magd)
|
||||
if not ele is None:
|
||||
ele.k1 = val
|
||||
print('Updating %s to k1: %8.4f' % (magd, val))
|
||||
|
||||
|
||||
##################
|
||||
# tracking
|
||||
|
||||
Reference in New Issue
Block a user