Skip to content

Commit

Permalink
Add normalised emittance
Browse files Browse the repository at this point in the history
  • Loading branch information
jank324 committed Sep 3, 2023
1 parent cab991f commit 1d709e6
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 0 deletions.
8 changes: 8 additions & 0 deletions cheetah/particles.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,10 @@ def emittance_x(self) -> torch.Tensor:
self.sigma_x**2 * self.sigma_xp**2 - (self.sigma_x * self.sigma_xp) ** 2
)

@property
def normalized_emittance_x(self) -> torch.Tensor:
return self.emittance_x / self.energy # TODO: Is this correct?

@property
def beta_x(self) -> torch.Tensor:
return self.sigma_x**2 / self.emittance_x
Expand All @@ -195,6 +199,10 @@ def emittance_y(self) -> torch.Tensor:
self.sigma_y**2 * self.sigma_yp**2 - (self.sigma_y * self.sigma_yp) ** 2
)

@property
def normalized_emittance_y(self) -> torch.Tensor:
return self.emittance_y / self.energy # TODO: Is this correct?

@property
def beta_y(self) -> torch.Tensor:
return self.sigma_y**2 / self.emittance_y
Expand Down
2 changes: 2 additions & 0 deletions test/test_compare_ocelot.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,10 @@ def test_twiss():

# Compare
assert np.isclose(particle_beam.emittance_x, ocelot_twiss.emit_x)
assert np.isclose(particle_beam.normalized_emittance_x, ocelot_twiss.emit_xn)
assert np.isclose(particle_beam.beta_x, ocelot_twiss.beta_x)
assert np.isclose(particle_beam.alpha_x, ocelot_twiss.alpha_x)
assert np.isclose(particle_beam.emittance_y, ocelot_twiss.emit_y)
assert np.isclose(particle_beam.normalized_emittance_y, ocelot_twiss.emit_yn)
assert np.isclose(particle_beam.beta_y, ocelot_twiss.beta_y)
assert np.isclose(particle_beam.alpha_y, ocelot_twiss.alpha_y)

0 comments on commit 1d709e6

Please sign in to comment.