diff --git a/ess/TraceWin.py b/ess/TraceWin.py
index a84dae069aa2fe7f814b08a9b2705c0e248a6f1e..15d2ef697ce6bc92487b3bb43993ed3fa67081fd 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):
         """