diff --git a/xconverters/cpymad_utils/convert_cpymad_elements.py b/xconverters/cpymad_utils/convert_cpymad_elements.py index 8fc2372..efd3c92 100644 --- a/xconverters/cpymad_utils/convert_cpymad_elements.py +++ b/xconverters/cpymad_utils/convert_cpymad_elements.py @@ -191,6 +191,14 @@ def convert_vkicker_from_cpymad(cpymad_element, kw): return xe.VKicker(cpymad_element.name, **kw) +def convert_kicker_from_cpymad(cpymad_element, kw): + kw.update({ + 'hkick': cpymad_element.hkick, + 'vkick': cpymad_element.vkick, + }) + return xe.TKicker(cpymad_element.name, **kw) + + def convert_tkicker_from_cpymad(cpymad_element, kw): kw.update({ 'hkick': cpymad_element.hkick, @@ -233,6 +241,7 @@ def convert_thinrfmultipole_from_cpymad(cpymad_element, kw): 'sextupole': convert_sextupole_from_cpymad , 'octupole': convert_octupole_from_cpymad , 'collimator': convert_collimator_from_cpymad , + 'kicker': convert_kicker_from_cpymad , 'hkicker': convert_hkicker_from_cpymad , 'vkicker': convert_vkicker_from_cpymad , 'tkicker': convert_tkicker_from_cpymad , diff --git a/xconverters/pyat_utils/convert_pyat_elements.py b/xconverters/pyat_utils/convert_pyat_elements.py index 62f84a1..a9f5225 100644 --- a/xconverters/pyat_utils/convert_pyat_elements.py +++ b/xconverters/pyat_utils/convert_pyat_elements.py @@ -349,6 +349,16 @@ def convert_vkicker_to_pyat(xel: xe.VKicker): **kw) +def convert_kicker_to_pyat(xel: xe.TKicker): + kick_angle = (np.arcsin(xel.hkick), np.arcsin(xel.vkick)) + kw = get_aperture_kwargs_to_pyat(xel) + kw.update(get_pass_method_to_pyat(xel)) + return at.Corrector(family_name=xel.name, + length=xel.length, + kick_angle=kick_angle, + **kw) + + def convert_tkicker_to_pyat(xel: xe.TKicker): kick_angle = (np.arcsin(xel.hkick), np.arcsin(xel.vkick)) kw = get_aperture_kwargs_to_pyat(xel) @@ -389,6 +399,7 @@ def convert_thinrfmultipole_to_pyat(xel: xe.ThinRFMultipole): 'Octupole': convert_octupole_to_pyat , 'ThinMultipole': convert_thinmultipole_to_pyat , 'Collimator': convert_collimator_to_pyat , + 'Kicker': convert_kicker_to_pyat , 'HKicker': convert_hkicker_to_pyat , 'VKicker': convert_vkicker_to_pyat , 'TKicker': convert_tkicker_to_pyat ,