From e84462b7f105bb181efd52dd311dd6d3fb43edf0 Mon Sep 17 00:00:00 2001
From: gubaidulinvadim <gubaidulinvadim@gmail.com>
Date: Tue, 18 Jun 2024 16:03:00 +0200
Subject: [PATCH] - corrected emittance calculation

---
 mbtrack2/tracking/particles.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/mbtrack2/tracking/particles.py b/mbtrack2/tracking/particles.py
index 87e3933..cc9e91e 100644
--- a/mbtrack2/tracking/particles.py
+++ b/mbtrack2/tracking/particles.py
@@ -288,7 +288,7 @@ class Bunch:
         cov_y = np.cov(self['y'], self['yp'])        
         cov_z = np.cov(self['tau'], self['delta'])
         
-        if (self.ring.optics.local_dispersion[0, 1] != 0).all():
+        if (self.ring.optics.local_dispersion[0:1] != 0):
             cov_xdelta = np.cov(self['x'], self['delta'])
             cov_xpdelta = np.cov(self['xp'], self['delta'])
             cov_ydelta = np.cov(self['y'], self['delta'])        
@@ -299,9 +299,9 @@ class Bunch:
             sig22 = cov_x[1, 1] - cov_xpdelta[0, 1] * cov_xpdelta[0, 1] / cov_z[1, 1]
             emitX = np.sqrt(sig11*sig22-sig12*sig12)
 
-            sig11 = cov_x[0, 0] - cov_xdelta[0, 1] * cov_xdelta[0, 1] / cov_z[1,1]
-            sig12 = cov_x[0, 1] - cov_xdelta[0, 1] * cov_xpdelta[0, 1] / cov_z[1, 1]
-            sig22 = cov_x[1, 1] - cov_xpdelta[0, 1] * cov_xpdelta[0, 1] / cov_z[1, 1]
+            sig11 = cov_y[0, 0] - cov_ydelta[0, 1] * cov_ydelta[0, 1] / cov_z[1,1]
+            sig12 = cov_y[0, 1] - cov_ydelta[0, 1] * cov_ypdelta[0, 1] / cov_z[1, 1]
+            sig22 = cov_y[1, 1] - cov_ypdelta[0, 1] * cov_ypdelta[0, 1] / cov_z[1, 1]
             emitY = np.sqrt(sig11*sig22-sig12*sig12)
         else:
             emitX = np.sqrt(np.linalg.det(cov_x))
-- 
GitLab