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): """