Skip to content
Snippets Groups Projects
Commit 00233cc9 authored by Watanyu Foosang's avatar Watanyu Foosang
Browse files

Fix cs_invariant method and sigma method

parent 5b0aa938
Branches
Tags
No related merge requests found
......@@ -233,13 +233,17 @@ class Bunch:
@property
def cs_invariant(self):
Jx = (self.ring.optics.local_gamma * np.mean(self['x']**2)) + \
(2*self.ring.optics.local_alpha * np.mean(self['x']*self['xp'])) + \
(self.ring.optics.local_beta * np.mean(self['xp']**2))
Jy = (self.ring.optics.local_gamma * np.mean(self['y']**2)) + \
(2*self.ring.optics.local_alpha * np.mean(self['y']*self['yp'])) + \
(self.ring.optics.local_beta * np.mean(self['yp']**2))
return np.array((Jx,Jy))
"""
Return the average Couran-Snyder invariant of each plane.
"""
Jx = (self.ring.optics.local_gamma[0] * self['x']**2) + \
(2*self.ring.optics.local_alpha[0] * self['x'])*self['xp'] + \
(self.ring.optics.local_beta[0] * self['xp']**2)
Jy = (self.ring.optics.local_gamma[1] * self['y']**2) + \
(2*self.ring.optics.local_alpha[1] * self['y']*self['yp']) + \
(self.ring.optics.local_beta[1] * self['yp']**2)
return np.array((np.mean(Jx),np.mean(Jy)))
@property
def energy_change(self):
......
......@@ -244,11 +244,11 @@ class Synchrotron:
sigma = np.zeros((4,))
sigma[0] = (self.emit[0]*self.optics.local_beta[0] +
self.optics.local_dispersion[0]**2*self.sigma_delta)**0.5
sigma[1] = (self.emit[0]*self.optics.local_alpha[0] +
sigma[1] = (self.emit[0]*self.optics.local_gamma[0] +
self.optics.local_dispersion[1]**2*self.sigma_delta)**0.5
sigma[2] = (self.emit[1]*self.optics.local_beta[1] +
self.optics.local_dispersion[2]**2*self.sigma_delta)**0.5
sigma[3] = (self.emit[1]*self.optics.local_alpha[1] +
sigma[3] = (self.emit[1]*self.optics.local_gamma[1] +
self.optics.local_dispersion[3]**2*self.sigma_delta)**0.5
else:
if isinstance(position, (float, int)):
......@@ -258,11 +258,11 @@ class Synchrotron:
sigma = np.zeros((4, n))
sigma[0,:] = (self.emit[0]*self.optics.beta(position)[0] +
self.optics.dispersion(position)[0]**2*self.sigma_delta)**0.5
sigma[1,:] = (self.emit[0]*self.optics.alpha(position)[0] +
sigma[1,:] = (self.emit[0]*self.optics.gamma(position)[0] +
self.optics.dispersion(position)[1]**2*self.sigma_delta)**0.5
sigma[2,:] = (self.emit[1]*self.optics.beta(position)[1] +
self.optics.dispersion(position)[2]**2*self.sigma_delta)**0.5
sigma[3,:] = (self.emit[1]*self.optics.alpha(position)[1] +
sigma[3,:] = (self.emit[1]*self.optics.gamma(position)[1] +
self.optics.dispersion(position)[3]**2*self.sigma_delta)**0.5
return sigma
#------------------------------------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment