Initial Round of Sandbox implementation

This commit is contained in:
2025-05-06 16:52:59 +02:00
committed by Sven
parent b90935d1a5
commit a241e2889f
6 changed files with 337 additions and 152 deletions

View File

@@ -16,17 +16,19 @@ class Model:
# hook up events
self.eventHandling()
def getElements(self):
return self.om.listElement('*', 1)
def getSettings(self):
elements = self.om.listElement('*',1)
elements = self.getElements()
quadrupoles={}
sextupoles={}
dipoles={}
rf={}
undulators={}
kicker={}
loc = 'SINLH01.DBAM010'
energy={'location': loc, 'energy':self.om.EnergyAt(loc)}
loc = 'SINLH02.MBND100'
energy={'location': loc, 'energy':self.om.EnergyAt(loc)[0]}
for ele in elements:
if 'MQUA' in ele.Name:
quadrupoles[ele.Name]={'k1':ele.k1,'k1L':ele.k1*ele.Length}
@@ -35,10 +37,10 @@ class Model:
elif 'MBND' in ele.Name:
if 'SINLH' in ele.Name or 'SINBC' in ele.Name or 'S10BC' in ele.Name or 'SATMA' in ele.Name or 'SATUN' in ele.Name:
dipoles[ele.Name]={'angle':ele.angle}
elif 'UIND' in ele.Name:
elif 'UIND' in ele.Name or 'UMOD' in ele.Name:
undulators[ele.Name]={'K':ele.K,'kx':ele.kx,'ky':ele.ky}
elif 'RACC' in ele.Name:
rf[ele.Name]={'Gradient':ele.Gradient,'Phase':ele.Phase}
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}
return {'Quadrupole':quadrupoles,'Sextupole':sextupoles,'Dipole':dipoles,'RF':rf,'Undulator':undulators,'Kicker':kicker,'Energy':energy}