ElSeparator

This module describes the PASS electrostatic separator element ElSeparator, used to simulate the deflection of charged particles in a uniform transverse electric field. Electrostatic separators are widely used in beam injection and extraction systems, using a septum (cutting plate/wire) to divide the aperture into a field-free region (circulating beam in the ring) and a field region (injected or extracted beam), applying electric field deflection only to particles that cross the septum.

The PASS electrostatic separator supports both thin lens (pure momentum kick) and thick lens (DKD exact parabolic trajectory) modes. The user can input deflection parameters via either field strength (ex / ey, V/m) or integrated field (exl / eyl, V), consistent with MAD-X definitions.

Code Location

  • Source file: PASS/commands/element/elseparator.py

  • Class name: ElSeparator (inherits from Command)

  • Registration name: elseparator

  • Key features:

    • Thin lens (length = 0): pure momentum translation, strictly symplectic

    • Thick lens (length > 0): DKD (Drift-Kick-Drift) 2nd-order symplectic integration, exact solution for uniform electric field

    • Two input methods: field strength (ex / ey) and integrated field (exl / eyl), with automatic mutual derivation

    • Septum position detection: automatically determines whether a particle is in the field-free region, field region, or striking the plate/wire

    • Supports tilt roll rotation about the \(s\) axis (clockwise, consistent with MAD-X)

    • Supports aperture check

Coordinate Convention

PASS uses the six-dimensional phase-space variables \((x, p_x, y, p_y, z, \delta)\):

Variable

Symbol

Definition

x

\(x\)

Horizontal offset (relative to the reference orbit)

px

\(p_x\)

Normalized horizontal momentum, \(p_x = P_x / P_0\)

y

\(y\)

Vertical offset

py

\(p_y\)

Normalized vertical momentum, \(p_y = P_y / P_0\)

z

\(\zeta\)

Longitudinal coordinate, \(\zeta = s - \beta_0 c t\)

dp

\(\delta\)

Relative momentum deviation, \(\delta = P / P_0 - 1\)

where \(P_0\) is the reference particle momentum, \(\beta_0 = v_0 / c\) is the reference particle normalized velocity.

Physical Derivation

Electric Field Force and Normalized Kick

The electrostatic separator produces a uniform transverse electric field \(E_x\) or \(E_y\) between the plates. A charged particle in the electric field experiences the force:

\[\vec{F} = q \vec{E}\]

The particle traverses the separator of length \(L\) with longitudinal velocity \(v = \beta_0 c\), with a residence time of \(t = L / (\beta_0 c)\). The transverse momentum change is:

\[\Delta P_x = q E_x \cdot t = \frac{q E_x L}{\beta_0 c}\]

Normalizing to PASS coordinates (\(p_x = P_x / P_0\), \(P_0 = q_0 B\rho\), same species \(q = q_0\)):

\[\Delta p_x = \frac{\Delta P_x}{P_0} = \frac{E_x L}{\beta_0 c \cdot B\rho} = \frac{\mathrm{exl}}{\beta_0 c \cdot B\rho}\]

where \(\mathrm{exl} = E_x \cdot L\) is the integrated electric field (unit: volts), and \(B\rho = P_0 / q_0\) is the magnetic rigidity. Similarly:

\[\Delta p_y = \frac{\mathrm{eyl}}{\beta_0 c \cdot B\rho}\]

Dimensional verification: \([\mathrm{V}] / ([\mathrm{m/s}] \cdot [\mathrm{T \cdot m}]) = [\mathrm{J/C}] / [\mathrm{kg \cdot m / (C \cdot s)}] = 1\) (dimensionless) ✓

Equivalence with Magnetic Dipole

The deflection produced by an electric field on a particle with velocity \(\beta_0 c\) is equivalent to a particle with magnetic rigidity \(B\rho\) passing through a magnetic field \(B\). From \(\Delta p_x = E_x L / (\beta_0 c \cdot B\rho)\) and the magnetic dipole kick \(\Delta p_x = B L / B\rho\) being equivalent:

\[E_x = \beta_0 c \cdot B\]

That is, an electric field of \(1\,\mathrm{MV/m}\) at \(\beta_0 \approx 1\) is equivalent to a magnetic field of \(B \approx 3.336\,\mathrm{mT}\).

Same Deflection Angle but Different Energy Change

The above equivalence refers only to the same deflection angle. Electric and magnetic fields differ fundamentally in energy conservation:

  • Magnetic field does no work: \(\vec{F} = q\vec{v}\times\vec{B}\), \(\vec{F} \perp \vec{v}\), the total particle momentum \(P\) is unchanged; as \(p_x\) increases, \(p_z\) decreases (momentum redistribution), and \(\delta\) is exactly unchanged.

  • Electric field does work: \(\vec{F} = q\vec{E}\), the particle has a transverse displacement \(\Delta x\) within the plates, the electric field does work \(W = qE_x \cdot \Delta x \neq 0\), and the total particle energy increases, so \(\delta\) changes.

For a thick lens, the transverse displacement of the particle (DKD exact solution) is:

\[\Delta x = \frac{p_{x0} L}{p_z} + \frac{\Delta p_x \cdot L}{2 p_z}\]

The \(\delta\) change corresponding to the electric field work:

\[\Delta\delta = \frac{W}{P_0 c} = \frac{E_x \cdot \Delta x}{B\rho \cdot c}\]

For a particle with \(p_{x0} = 0\), substituting \(\Delta x = \Delta p_x \cdot L / (2 p_z)\) and \(\Delta p_x = E_x L / (\beta_0 c \cdot B\rho)\):

\[\Delta\delta = \frac{\Delta p_x^2}{2\beta_0}\]

For \(\Delta p_x = 30\,\mathrm{mrad}\), \(\beta_0 \approx 1\), \(\Delta\delta \approx 4.5 \times 10^{-4}\), which is one to two orders of magnitude smaller than typical beam momentum spread (\(10^{-3} \sim 10^{-2}\)).

Note

In the PASS DKD implementation, the kick only updates \(p_x\) / \(p_y\), not \(\delta\), i.e., the electric field work is ignored. This is a reasonable approximation:

  • Magnitude is negligible: \(\Delta\delta = O(\Delta p_x^2)\), on the order of \(10^{-4}\) for deflection angles of tens of mrad

  • Per-particle correct handling is costly: \(\Delta x\) depends on the initial \(p_{x0}\), which differs for each particle; correctly computing the work requires tracking displacement per particle within the DKD, turning a simple symplectic integrator into an iterative scheme

  • Thin lens self-consistency: When \(L = 0\), \(\Delta x = 0\), \(W = 0\), \(\Delta\delta = 0\); the thin lens ignoring energy change is naturally self-consistent

Thin Lens Mode

When length = 0, the electrostatic separator is modeled as a thin lens: the particle position is unchanged, and only the momentum undergoes an instantaneous jump:

\[x \leftarrow x\]
\[p_x \leftarrow p_x + \frac{\mathrm{exl}}{\beta_0 c \cdot B\rho}\]
\[y \leftarrow y\]
\[p_y \leftarrow p_y + \frac{\mathrm{eyl}}{\beta_0 c \cdot B\rho}\]

The Jacobian of this map is the identity matrix, which is strictly symplectic. The kick is computed directly from the integrated field \(\mathrm{exl}\) / \(\mathrm{eyl}\) without needing to know the plate length.

Thick Lens Mode (DKD)

When length > 0, Drift-Kick-Drift (DKD) 2nd-order symplectic integration is used:

\[\mathcal{M}_{\mathrm{DKD}}(L) = \mathrm{Drift}\!\left(\frac{L}{2}\right) \circ \mathrm{Kick}(L) \circ \mathrm{Drift}\!\left(\frac{L}{2}\right)\]

where Kick is the thin lens kick (\(\Delta p_x = \mathrm{exl} / (\beta_0 c \cdot B\rho)\)), and Drift is the exact drift map.

Each _drift_exact_cpu call performs \(x \mathrel{+}= L \cdot p_x / p_z\). The DKD has three steps: the first drift uses the initial \(p_{x0}\), after the kick the second drift uses \(p_{x0} + \Delta p_x\). Combining:

\[\Delta x = \frac{p_{x0} L}{2 p_z} + \frac{(p_{x0} + \Delta p_x) L}{2 p_z} = \frac{p_{x0} L}{p_z} + \frac{\Delta p_x \cdot L}{2 p_z}\]

DKD Is Exact for Uniform Electric Field

Under a uniform electric field, the particle equation of motion is constant-acceleration motion. Let \(k = E_x / (\beta_0 c \cdot B\rho)\) (constant), with \(p_z\) approximately unchanged:

\[\frac{dp_x}{ds} = k\]
\[\frac{dx}{ds} = \frac{p_x}{p_z}\]

Integrating gives a parabolic trajectory:

\[p_x(s) = p_{x0} + k \cdot s\]
\[x(s) = x_0 + \frac{p_{x0}}{p_z} s + \frac{k}{2 p_z} s^2\]

At \(s = L\), substituting \(\Delta p_x = k L\):

\[x(L) = x_0 + \frac{p_{x0} L}{p_z} + \frac{\Delta p_x \cdot L}{2 p_z}\]

This is exactly consistent with the DKD result. This is not a coincidence—leapfrog (DKD) is exact for constant-acceleration motion, because the first half drift uses the initial \(p_x\) and the second half uses the kicked \(p_{x0} + \Delta p_x\); the average exactly gives the parabola.

Note

The above exactness assumes \(p_z \approx \mathrm{const}\). For typical deflection angles (tens of mrad), the \(p_z\) change \(\Delta p_z \approx -\Delta p_x^2 / (2 p_z) \sim 10^{-4}\) is negligible. Therefore, DKD does not need an additional model="exact" mode.

Kick Consistency Between Thin Lens and Thick Lens

The kick \(\Delta p_x\) is exactly the same for both thin lens and thick lens, both computed from the integrated field \(\mathrm{exl}\). The difference is only in the position change:

Thin lens (\(L = 0\))

Thick lens DKD (\(L > 0\))

kick \(\Delta p_x\)

\(\mathrm{exl} / (\beta_0 c \cdot B\rho)\)

Same

Position change \(\Delta x\)

0

\(p_x L / p_z + \Delta p_x \cdot L / (2 p_z)\)

Septum detection

Single point (entrance position)

Entrance position classification

For \(\Delta p_x = 30\,\mathrm{mrad}\), \(L = 0.5\,\mathrm{m}\), \(p_z \approx 1\) (typical parameters), the position difference:

\[\frac{\Delta p_x \cdot L}{2 p_z} \approx \frac{0.03 \times 0.5}{2} = 7.5\,\mathrm{mm}\]

This magnitude is not negligible in injection/extraction scenarios (septum gaps are typically on the order of mm), so the thick lens mode is recommended.

Septum Logic

The core physical characteristic of the electrostatic separator is that not all particles experience the electric field. The septum (cutting plate/wire) divides the aperture into:

  • Field-free region: the region where the circulating beam resides; particles are unaffected by the electric field and undergo pure drift

  • Field region: the region where the injected/extracted beam resides; particles are deflected by the electric field

  • Plate/wire region (within septum thickness): particles strike the cutting plate/wire and are marked as lost

Determination Rules

The septum direction is directly determined by which field component is nonzero:

  • \(E_x \neq 0\) (exl nonzero): plates are vertical, the septum is a vertical line, and the \(x\) coordinate is checked

  • \(E_y \neq 0\) (eyl nonzero): plates are horizontal, the septum is a horizontal line, and the \(y\) coordinate is checked

The sign of septum_x_position determines which side has the field—the field is always on the side away from the beam center:

septum_x_position

Field-free region (circulating beam)

Plate/wire region

Field region (deflected beam)

\(> 0\)

\(x \le s_x\)

\(s_x < x \le s_x + t\)

\(x > s_x + t\)

\(< 0\)

\(x \ge s_x\)

\(s_x - t \le x < s_x\)

\(x < s_x - t\)

where \(s_x\) is septum x position and \(t\) is septum thickness. The rules for septum y position are analogous, replacing \(x\) with \(y\).

x y Field-free Circulating beam Plate/Wire Field region Deflected beam s x t E x

Note

  • If septum x position is not provided (None) but exl is nonzero, all particles experience the electric field (no septum detection). This corresponds to the use case of a uniform-field correction element

  • septum thickness defaults to 0, in which case the plate/wire region width is zero, and particles are either in the field-free region or the field region

Tilt Rotation

The tilt parameter implements a roll rotation of the element about the \(s\) axis. It follows the MAD-X convention: positive angle represents clockwise rotation (looking along the \(+s\) direction).

s x y x' y' tilt

Tilt does not affect the choice of integration method—it only performs an instantaneous coordinate transformation at the entrance and exit:

Entrance:  Clockwise rotation of :math:`(x, y, p_x, p_y)` by :math:`+\varphi`  → Enter element natural coordinate system
Interior:  DKD or thin lens, tracked in the natural coordinate system (field along :math:`x'`, septum along :math:`x'`)
Exit:      Counterclockwise rotation of :math:`(x, y, p_x, p_y)` by :math:`-\varphi`  → Return to laboratory coordinate system

Clockwise rotation matrix:

\[x' = x \cos\varphi - y \sin\varphi\]
\[y' = x \sin\varphi + y \cos\varphi\]
\[p_x' = p_x \cos\varphi - p_y \sin\varphi\]
\[p_y' = p_x \sin\varphi + p_y \cos\varphi\]

Drift itself is coordinate-independent (free-space propagation does not depend on the transverse coordinate direction), the kick is along \(x'\) in the natural coordinate system, and the septum is a straight line at \(x' = \mathrm{const}\) in the natural coordinate system. All physics is completed in the natural coordinate system.

Overall Tracking Flow

====== Thin lens (length = 0) ======

  1. Tilt rotation (if any)
  2. Classify particles: field-free / field region / striking plate
  3. Field-free region: no operation (position and momentum unchanged)
  4. Field region: pure kick (Δpx = exl / (β₀c·Bρ), Δpy = eyl / (β₀c·Bρ))
  5. Striking plate: tag set negative, record lost_position/lost_turn
  6. Tilt rotation back (if any)

====== Thick lens (length > 0) ======

  1. Tilt rotation (if any)
  2. Classify particles: field-free / field region / striking plate
  3. Field-free region: pure Drift(L)
  4. Field region: DKD
     Drift(L/2) → Kick → Drift(L/2)
  5. Striking plate: tag set negative, record lost_position/lost_turn
  6. Tilt rotation back (if any)

The drift steps update the continuous bunch-relative longitudinal coordinate without ring folding.

Interface Parameters

Property

JSON key

Type

Unit

Description

s

s (m)

float

m

Longitudinal position of the element in the beamline

name

name

str

Element name

length

length (m)

float

m

Plate length (\(\ge 0\); \(= 0\) for thin lens)

ex

ex (v/m)

float

V/m

Horizontal electric field strength, default 0

ey

ey (v/m)

float

V/m

Vertical electric field strength, default 0

exl

exl (v)

float

V

Horizontal integrated field \(E_x L\), default derived from \(E_x \cdot L\)

eyl

eyl (v)

float

V

Vertical integrated field \(E_y L\), default derived from \(E_y \cdot L\)

tilt

tilt (rad)

float

rad

Roll angle about the \(s\) axis, positive is clockwise, default 0

septum_x_position

septum x position (m)

float

m

Septum position in \(x\) direction (effective when exl is nonzero), default None

septum_y_position

septum y position (m)

float

m

Septum position in \(y\) direction (effective when eyl is nonzero), default None

septum_thickness

septum thickness (m)

float

m

Septum plate/wire thickness, default 0

aperture_type

aperture type

str

Aperture type, default off

aperture_value

aperture value

list

Aperture parameter values, default []

Note

  • Two input methods for field strength (ex / ey) and integrated field (exl / eyl):

    • Thick lens: when ex / ey are provided, \(\mathrm{exl} = E_x \cdot L\) is automatically computed; when exl / eyl are provided, \(E_x = \mathrm{exl} / L\) is automatically derived

    • Thin lens: exl / eyl are used directly (ex / ey are meaningless when \(L = 0\))

  • ex and ey typically have only one nonzero (horizontal or vertical deflection plate). If both are nonzero simultaneously, a warning is issued

  • septum x position / septum y position take effect only when the corresponding field component is nonzero

  • The Command field should be set to elseparator

Usage Examples

Thin Lens Horizontal Deflection

The following example places a thin lens electrostatic separator at \(s = 10.0\) m with integrated field \(\mathrm{exl} = 1 \times 10^5\) V:

{
    "ES1": {
        "S (m)": 10.0,
        "Command": "elseparator",
        "ExL (V)": 1e5
    }
}

The particle receives a horizontal kick \(\Delta p_x = \mathrm{exl} / (\beta_0 c \cdot B\rho)\). Position is unchanged.

Thick Lens Horizontal Deflection

The following example places a thick lens electrostatic separator at \(s = 15.0\) m, length 0.5 m, field strength \(E_x = 2 \times 10^5\) V/m:

{
    "ES2": {
        "S (m)": 15.0,
        "Command": "elseparator",
        "Length (m)": 0.5,
        "Ex (V/m)": 2e5
    }
}

The integrated field \(\mathrm{exl} = 2 \times 10^5 \times 0.5 = 1 \times 10^5\) V. DKD tracking is used; the particle follows a parabolic trajectory.

Injection Separator with Septum

The following example simulates an injection electrostatic separator with the septum at \(x = 5\) mm and septum thickness 2 mm:

{
    "ES3": {
        "S (m)": 20.0,
        "Command": "elseparator",
        "Length (m)": 0.3,
        "Ex (V/m)": 3e5,
        "Septum X Position (m)": 0.005,
        "Septum Thickness (m)": 0.002
    }
}

Particle classification:

  • \(x \le 5\) mm: field-free region, pure drift (circulating beam)

  • \(5\,\mathrm{mm} < x \le 7\) mm: striking plate/wire, marked as lost

  • \(x > 7\) mm: field region, DKD deflection (injection beam)

Negative-Side Septum (Extraction Scenario)

The following example simulates an extraction scenario with the septum at \(x = -5\) mm and the field on the left side:

{
    "ES4": {
        "S (m)": 25.0,
        "Command": "elseparator",
        "Length (m)": 0.3,
        "Ex (V/m)": -3e5,
        "Septum X Position (m)": -0.005
    }
}

Particle classification:

  • \(x \ge -5\) mm: field-free region, pure drift (circulating beam)

  • \(x < -5\) mm: field region, DKD deflection (extraction beam)

Vertical Deflection Plate

The following example places a vertical deflection plate with only \(E_y\) nonzero:

{
    "ES5": {
        "S (m)": 30.0,
        "Command": "elseparator",
        "Length (m)": 0.4,
        "Ey (V/m)": 2.5e5,
        "Septum Y Position (m)": 0.005
    }
}

Particles are deflected in the \(y\) direction. Septum detection is along the \(y\) direction.

Deflection Plate with Tilt

The following example places a deflection plate rotated 30 degrees clockwise about the \(s\) axis:

{
    "ES6": {
        "S (m)": 35.0,
        "Command": "elseparator",
        "Length (m)": 0.5,
        "Ex (V/m)": 2e5,
        "Tilt (rad)": 0.5236,
        "Septum X Position (m)": 0.005
    }
}

The element’s natural coordinate system is rotated 30 degrees clockwise, and both the field and septum are defined in the rotated coordinate system. Entrance rotation → tracking → exit rotation back.

Zero-Field Degeneration

The following example has zero field strength, degenerating to a pure drift (thick lens) or marker (thin lens):

{
    "ES7": {
        "S (m)": 40.0,
        "Command": "elseparator",
        "Length (m)": 0.5
    }
}

When \(\mathrm{exl} = \mathrm{eyl} = 0\), all particles undergo pure drift with no deflection.

Application Scenarios

  • Beam injection: Place electrostatic separators in the injection section to deflect the injected beam to match the main ring closed orbit. The septum separates the circulating beam from the injected beam, deflecting only the injected particles

  • Beam extraction: Place electrostatic separators at the extraction point to deflect the extracted beam into the extraction channel. The septum ensures the circulating beam is unaffected

  • Orbit correction: Without a septum (septum x position = None), the electrostatic separator can serve as a uniform-field correction element, applying the same kick to all particles

  • Low-energy beam deflection: In low-energy sections where \(\beta\gamma\) is small, electrostatic deflection is more efficient than magnetic deflection (electric force is independent of velocity, magnetic force is proportional to velocity), commonly used in low-energy injection lines

  • Fast extraction systems: Electrostatic separators have fast response times (nanosecond-level pulses), suitable for fast extraction and bunch-by-bunch extraction

References

  • MAD-X User’s Guide, “ELSEPARATOR” section (ex / ey / ex_l / ey_l / tilt definitions)

  • Xsuite source code: xtrack/mad_loader.py (convert_elseparator = convert_drift_like, xsuite does not yet implement an independent elseparator)

  • Wiedemann, H., “Particle Accelerator Physics”, Ch. 4 (equivalence between electric and magnetic deflection)

  • Conte, M. & MacKay, W.W., “An Introduction to the Physics of Particle Accelerators”, Ch. 7 (electrostatic separators in injection and extraction)