@@ -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