From fc0495e482efbb0f13ecdb72be06690834cca68a Mon Sep 17 00:00:00 2001
From: Yngve Levinsen <yngve.levinsen@ess.eu>
Date: Tue, 11 Feb 2020 08:25:34 +0100
Subject: [PATCH] plt twiss/sigma functions transposed, such that e.g.
 twiss_beta[0] is hor. beta

---
 ess/TraceWin.py | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/ess/TraceWin.py b/ess/TraceWin.py
index a84dae0..15d2ef6 100644
--- a/ess/TraceWin.py
+++ b/ess/TraceWin.py
@@ -477,7 +477,7 @@ class plt:
 
             self.sigma.append([[numpy.mean((data[n] - self.avg[n][j]) * (data[m] - self.avg[m][j])) for n in vals] for m in vals])
 
-        self.sigma = numpy.array(self.sigma)
+        self.sigma = numpy.array(self.sigma).transpose()
 
     def calc_std(self):
         """
@@ -496,7 +496,7 @@ class plt:
 
         for j in range(len(vals)):
             v = vals[j]
-            self.std[v] = numpy.sqrt(self.sigma[:, j, j])
+            self.std[v] = numpy.sqrt(self.sigma[j, j])
 
     def calc_twiss(self):
         """
@@ -513,23 +513,23 @@ class plt:
 
         self.twiss_eps = []
         for j in range(len(self.Nelp)):
-            self.twiss_eps.append([numpy.sqrt(numpy.linalg.det(self.sigma[j][i : i + 2][:, i : i + 2])) for i in (0, 2, 4)])
-        self.twiss_eps = numpy.array(self.twiss_eps)
+            self.twiss_eps.append([numpy.sqrt(numpy.linalg.det(self.sigma[i : i + 2, i : i + 2, j])) for i in (0, 2, 4)])
+        self.twiss_eps = numpy.array(self.twiss_eps).transpose()
 
         # Calculate normalized emittance:
         # TODO: this is NOT correct normalization for longitudinal
         self.twiss_eps_normed = self.twiss_eps.copy()
         for i in range(3):
-            self.twiss_eps_normed[:, i] *= self.gamma * self.beta
+            self.twiss_eps_normed[i] *= self.gamma * self.beta
 
         # Calculate beta:
         # This is a factor 10 different from what TraceWin plots
-        self.twiss_beta = [[self.sigma[j][i][i] / self.twiss_eps[j, i // 2] for i in (0, 2, 4)] for j in range(len(self.Nelp))]
-        self.twiss_beta = numpy.array(self.twiss_beta)
+        self.twiss_beta = [[self.sigma[i, i, j] / self.twiss_eps[i // 2, j] for i in (0, 2, 4)] for j in range(len(self.Nelp))]
+        self.twiss_beta = numpy.array(self.twiss_beta).transpose()
 
         # Calculate alpha:
-        self.twiss_alpha = [[-self.sigma[j][i][i + 1] / self.twiss_eps[j, i // 2] for i in (0, 2, 4)] for j in range(len(self.Nelp))]
-        self.twiss_alpha = numpy.array(self.twiss_alpha)
+        self.twiss_alpha = [[-self.sigma[i, i + 1, j] / self.twiss_eps[i // 2, j] for i in (0, 2, 4)] for j in range(len(self.Nelp))]
+        self.twiss_alpha = numpy.array(self.twiss_alpha).transpose()
 
     def get_dst(self, index):
         """
-- 
GitLab