From 0f17dd3f3e6a9cb85d9f9031e3e5bedbed2a3be7 Mon Sep 17 00:00:00 2001 From: mulingLHY <1243592635@qq.com> Date: Sun, 12 May 2024 16:40:38 +0800 Subject: [PATCH] fix GenesisElectronDist.twiss() miscalculation --- ocelot/adaptors/genesis.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/ocelot/adaptors/genesis.py b/ocelot/adaptors/genesis.py index 9ef455fd..1f909974 100644 --- a/ocelot/adaptors/genesis.py +++ b/ocelot/adaptors/genesis.py @@ -868,20 +868,20 @@ def twiss(self): xp = self.xp yp = self.yp - mean_x2 = mean(x**2) - mean_y2 = mean(y**2) - mean_px2 = mean(xp**2) - mean_py2 = mean(yp**2) - mean_xpx = mean(x * xp) - mean_ypy = mean(y * yp) - mean_g = mean(self.g) - - tws.emit_x = mean_g * (mean_x2 * mean_px2 - mean_xpx**2)**0.5 / mean_g - tws.emit_y = mean_g * (mean_y2 * mean_py2 - mean_ypy**2)**0.5 / mean_g - tws.beta_x = mean_g * mean_x2 / tws.emit_x - tws.beta_y = mean_g * mean_y2 / tws.emit_y - tws.alpha_x = -mean_g * mean_xpx / tws.emit_x - tws.alpha_y = -mean_g * mean_ypy / tws.emit_y + mean_x2 = np.mean(x**2) + mean_y2 = np.mean(y**2) + mean_px2 = np.mean(xp**2) + mean_py2 = np.mean(yp**2) + mean_xpx = np.mean(x * xp) + mean_ypy = np.mean(y * yp) + mean_g = np.mean(self.g) + + tws.emit_x = (mean_x2 * mean_px2 - mean_xpx**2)**0.5 + tws.emit_y = (mean_y2 * mean_py2 - mean_ypy**2)**0.5 + tws.beta_x = mean_x2 / tws.emit_x + tws.beta_y = mean_y2 / tws.emit_y + tws.alpha_x = - mean_xpx / tws.emit_x + tws.alpha_y = - mean_ypy / tws.emit_y tws.E = mean_g * m_e_GeV return tws