Skip to content
Snippets Groups Projects
Commit fc0495e4 authored by Yngve Levinsen's avatar Yngve Levinsen
Browse files

plt twiss/sigma functions transposed, such that e.g. twiss_beta[0] is hor. beta

parent 6113391a
No related branches found
No related tags found
No related merge requests found
...@@ -477,7 +477,7 @@ class plt: ...@@ -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.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): def calc_std(self):
""" """
...@@ -496,7 +496,7 @@ class plt: ...@@ -496,7 +496,7 @@ class plt:
for j in range(len(vals)): for j in range(len(vals)):
v = vals[j] 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): def calc_twiss(self):
""" """
...@@ -513,23 +513,23 @@ class plt: ...@@ -513,23 +513,23 @@ class plt:
self.twiss_eps = [] self.twiss_eps = []
for j in range(len(self.Nelp)): 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.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) self.twiss_eps = numpy.array(self.twiss_eps).transpose()
# Calculate normalized emittance: # Calculate normalized emittance:
# TODO: this is NOT correct normalization for longitudinal # TODO: this is NOT correct normalization for longitudinal
self.twiss_eps_normed = self.twiss_eps.copy() self.twiss_eps_normed = self.twiss_eps.copy()
for i in range(3): 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: # Calculate beta:
# This is a factor 10 different from what TraceWin plots # 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 = [[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) self.twiss_beta = numpy.array(self.twiss_beta).transpose()
# Calculate alpha: # 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 = [[-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) self.twiss_alpha = numpy.array(self.twiss_alpha).transpose()
def get_dst(self, index): def get_dst(self, index):
""" """
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment