Skip to content

Commit dd08501

Browse files
committed
Merge pull request #12 from PyCOMPLETE/hotfix_dispersion_RFSystems
Hotfix: RFSystems & Dispersion - Add dispersion parameters to the RFSystems class
2 parents 5a463fa + 3f1c779 commit dd08501

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

trackers/simple_long_tracking.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ def __init__(self, circumference, harmonic_list, voltage_list,
281281
phi_offset_list, alpha_array, gamma_reference,
282282
p_increment=0, phase_lock=True,
283283
shrink_transverse=True, shrink_longitudinal=False,
284+
D_x=0, D_y=0,
284285
*args, **kwargs):
285286
"""
286287
The first entry in harmonic_list, voltage_list and
@@ -326,6 +327,13 @@ def __init__(self, circumference, harmonic_list, voltage_list,
326327
In this case take care about all Kick.p_increment attributes --
327328
highly non-trivial, as all other p_increment functionality
328329
in RFSystems is broken. So take care, you're on your own! :-)
330+
- D_x, D_y: horizontal and vertical dispersion. These arguments
331+
are passed to the Kicks class. Because both kicks are applied
332+
consecutively, the dispersion will be the same for both kicks and
333+
it is therefore sufficient to specify only one dispersion.
334+
The dispersion must match the dispersion of the following transverse
335+
map. See the docstring of the Kick class for a more detailed
336+
description.
329337
"""
330338

331339
super(RFSystems, self).__init__(
@@ -339,7 +347,8 @@ def __init__(self, circumference, harmonic_list, voltage_list,
339347
if not shrink_transverse:
340348
self.track = self.track_no_transverse_shrinking
341349

342-
self._kicks = [Kick(alpha_array, self.circumference, h, V, dphi)
350+
self._kicks = [Kick(alpha_array, self.circumference, h, V, dphi,
351+
D_x=D_x, D_y=D_y)
343352
for h, V, dphi in
344353
zip(harmonic_list, voltage_list, phi_offset_list)]
345354
self._elements = ( [Drift(alpha_array, 0.5 * self.circumference)]

0 commit comments

Comments
 (0)