mbtrack2.tracking.excite module

Module to deal with different kinds of beam excitation.

class Sweep(ring: Synchrotron, f0: float, f1: float, t1: float, level: float, plane: str, bunch_to_sweep: int | None = None)[source]

Bases: Element

Element which excite the beam in between two frequencies, i.e. apply frequency sweep (chirp) on all or a given bunch in the chosen plane.

If applied to a full beam, the excitation is the same (and at the same time) for all bunches, so it drives a growth of coupled bunch mode 0.

Parameters

ringSynchrotron

Synchrotron object.

f0float

Initial frequency of the sweep in [Hz].

f1float

Final frequency of the sweep in [Hz].

t1float

Time duration of the sweep in [s].

levelfloat

Kick level to apply in [V].

plane“x”, “y” or “tau”

Plane on which to apply the kick.

bunch_to_sweepint, optional

Bunch number to which the sweeping is applied. If None, the sweeping is applied for all bunches. Default is None.

Methods

track(bunch_or_beam)

Tracking method for the element.

plot()

Plot the sweep voltage applied.

__init__(ring: Synchrotron, f0: float, f1: float, t1: float, level: float, plane: str, bunch_to_sweep: int | None = None)[source]
track(bunch_or_beam: Bunch | Beam)[source]

Tracking method for this element.

Parameters

bunch_or_beam : Bunch or Beam

_abc_impl = <_abc._abc_data object>
_track_bunch(bunch: Bunch, count_step: bool = True)[source]

Tracking method for a bunch for this element.

Parameters

bunch : Bunch

plot(ax: Axes | None = None) Axes[source]

Plot the sweep voltage applied.