diff --git a/tracking/particles.py b/tracking/particles.py
index 87988e833ef880848155d12dd1764e40cb654939..c272e98a511c3b70ec4d5f69c79324cca88b0fe7 100644
--- a/tracking/particles.py
+++ b/tracking/particles.py
@@ -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):
diff --git a/tracking/synchrotron.py b/tracking/synchrotron.py
index 1c45d8c702263724a5298ba3fb8b999a2138957c..42e2d9fea271be03635073ed0b95415bb7087cc4 100644
--- a/tracking/synchrotron.py
+++ b/tracking/synchrotron.py
@@ -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
     #------------------------------------------