Initial test of matching
This commit is contained in:
64
reference.py
64
reference.py
@@ -16,6 +16,7 @@ class ReferenceManager:
|
||||
self.parent = parent
|
||||
self.settings={}
|
||||
self.reference={}
|
||||
self.save={}
|
||||
self.label=None
|
||||
|
||||
self.twisswidget={'betax':self.parent.UIBetax,'betay':self.parent.UIBetay,
|
||||
@@ -28,9 +29,17 @@ class ReferenceManager:
|
||||
|
||||
self.loadReference('Settings/Reference.json')
|
||||
self.parent.UITrackReference.currentIndexChanged.connect(self.updateReferenceWidgets)
|
||||
#self.parent.UIMatchOrder.itemClicked.connect(self.updateMatchingPoint)
|
||||
self.parent.UIMatchOrder.itemClicked.connect(self.displayMatchingPoint)
|
||||
|
||||
|
||||
def clearMatching(self):
|
||||
self.save.clear()
|
||||
|
||||
def updateMatchOrder(self):
|
||||
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)
|
||||
|
||||
def loadReference(self, filename):
|
||||
with open(filename) as f:
|
||||
@@ -39,18 +48,22 @@ class ReferenceManager:
|
||||
self.reference=self.settings['Reference']
|
||||
self.label=self.settings['Label']
|
||||
self.parameter=self.settings['Parameter']
|
||||
self.dependence=self.settings['Dependence']
|
||||
self.save.clear()
|
||||
self.parent.UIMatchSequenceLabel.setText(self.label)
|
||||
self.updateReferenceComboBox()
|
||||
self.updateReferenceWidgets()
|
||||
self.updateMatchOrder()
|
||||
|
||||
|
||||
|
||||
def saveTwiss(self, ID, twiss):
|
||||
self.save[ID]={'betax':twiss.betx[0],'betay':twiss.bety[0],'alphax':twiss.alfx[0],'alphay':twiss.alfy[0]}
|
||||
print('saving twissvalue for',ID,':',self.save[ID])
|
||||
|
||||
def getMatchingPoint(self):
|
||||
idx = self.parent.UIMatchOrder.currentRow()
|
||||
if idx < 0:
|
||||
return None
|
||||
return None,None
|
||||
|
||||
ID = str(self.parent.UIMatchOrder.item(idx).text())
|
||||
print('Matching Step Label:', ID)
|
||||
@@ -76,6 +89,16 @@ class ReferenceManager:
|
||||
con = {key: {'Val': tar['Fixed']['Twiss'][key], 'Condition': 0} for key in tar['Fixed']['Twiss'].keys()}
|
||||
target[loc]=con
|
||||
ncon += len(con.keys())
|
||||
elif 'Save' in tar.keys():
|
||||
loc=tar['Save']['Location']
|
||||
IDsave = tar['Save']['SaveID']
|
||||
if not IDsave in self.save.keys():
|
||||
print('Needs first the matching point of',IDsave)
|
||||
return
|
||||
con = {key:{'Val': self.save[IDsave][key],'Condition':0} for key in self.save[IDsave].keys()}
|
||||
target[loc]=con
|
||||
ncon += len(con.keys())
|
||||
print('Saved Target',loc,target[loc])
|
||||
if nvar>ncon:
|
||||
dummycon={}
|
||||
for key in order['Reference']['Twiss'].keys():
|
||||
@@ -84,19 +107,35 @@ class ReferenceManager:
|
||||
ncon+=1
|
||||
target['#s']=dummycon
|
||||
order['Target'] = target
|
||||
return order
|
||||
|
||||
return order, ID
|
||||
|
||||
def updateMatchPoint(self,ID,val):
|
||||
idx = self.order[ID]
|
||||
if val < 1e-6:
|
||||
color = CGreen
|
||||
elif val < 1:
|
||||
color = CYellow
|
||||
else:
|
||||
color = CRed
|
||||
self.parent.UIMatchOrder.item(idx).setBackground(color)
|
||||
|
||||
|
||||
def getDependence(self,ele):
|
||||
eletag=ele.upper().replace('.','-')
|
||||
if eletag in self.dependence.keys():
|
||||
return [mag.lower().replace('-','.') for mag in self.dependence[eletag]]
|
||||
else:
|
||||
return None
|
||||
#--------------------------------
|
||||
# match info
|
||||
def updateMatchOrder(self):
|
||||
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)
|
||||
|
||||
def updateMatchingPoint(self):
|
||||
|
||||
def displayMatchingPoint(self):
|
||||
order,ID = self.getMatchingPoint()
|
||||
self.parent.UIMatchLabel.setText(ID)
|
||||
return
|
||||
|
||||
def getoldMatchingPoint(self):
|
||||
idx = self.parent.UIMatchOrder.currentRow()
|
||||
if idx < 0:
|
||||
return
|
||||
@@ -181,7 +220,8 @@ class ReferenceManager:
|
||||
def getReferenceLocation(self):
|
||||
return str(self.parent.UITrackLocation.text())
|
||||
|
||||
|
||||
####################################################
|
||||
###### only relevant for tracking
|
||||
##### interaction of the tracking reference point
|
||||
|
||||
def swithToUserDefinedLocation(self):
|
||||
|
||||
Reference in New Issue
Block a user