« home

Branch Cuts 1

physicsquantum field theorycetztikz

Propagator branch cuts, i.e. a continuum of singularities, along the real frequency axis extending from ±p\pm |\vec p| out to ±\pm \infty. Pulled from arxiv:1712.09863.


Branch Cuts 1

  Download

PNGPDFSVG

  Code

  LaTeX

branch-cuts-1.tex (28 lines)

\documentclass[tikz]{standalone}

\usepackage{mathtools}

\let\Im\relax
\DeclareMathOperator{\Im}{Im}
\let\Re\relax
\DeclareMathOperator{\Re}{Re}

\usetikzlibrary{decorations.pathmorphing}

\def\xr{5}
\def\yr{1}

\begin{document}
\begin{tikzpicture}[thick]

  % Labels
  \fill(-\xr/2, 0) circle (2pt) node[above] (l_branch) {$-\sqrt{\vec{p}^2}$} (\xr/2, 0) circle (2pt) node[above] (r_branch) {$\sqrt{\vec{p}^2}$};

  % Axes
  \draw[->, decorate, decoration={zigzag, segment length=6, amplitude=2}, blue!60!black] (-\xr-0.4, 0) -- (l_branch.south) (r_branch.south) -- (\xr, 0) node [above left, black] {$\Re(p_0)$};
  \draw(l_branch.south) -- (r_branch.south);
  \draw[->] (0, -\yr) -- (0, \yr) node[below left=0.1] {$\Im(p_0)$};

\end{tikzpicture}
\end{document}

  Typst

branch-cuts-1.typ (85 lines)

#import "@preview/cetz:0.3.2": canvas, draw, decorations


#set page(width: auto, height: auto, margin: 5pt)

#canvas({
  import draw: line, content, circle

  let xr = 5
  let yr = 1
  let arrow-style = (mark: (end: "stealth", fill: black, scale: 0.5))

  // Draw axes
  line(
    (0, -yr),
    (0, yr),
    ..arrow-style,
    name: "y-axis",
  )
  content(
    (rel: (-0.7, -0.2), to: "y-axis.end"),
    $"Im"(p_0)$,
    name: "y-label",
  )

  // Draw branch points
  let left-point = (-xr / 2, 0)
  let right-point = (xr / 2, 0)

  // Draw branch cut line
  line(
    left-point,
    right-point,
    name: "x-axis",
    mark: (start: "circle", end: "circle", fill: blue, scale: 0.5),
  )
  // Add branch point labels
  content(
    (rel: (0, 0.2), to: "x-axis.start"),
    $-sqrt(arrow(p)^2)$,
    name: "left-label",
  )
  content(
    (rel: (0, 0.2), to: "x-axis.end"),
    $sqrt(arrow(p)^2)$,
    name: "right-label",
  )

  // Draw zigzag lines with decorations
  let zigzag-style = (
    stroke: blue.darken(20%),
    amplitude: 0.2,
    segment-length: 0.3,
  )

  // Left zigzag
  decorations.zigzag(
    line(
      (-xr - 0.5, 0),
      "x-axis.3%",
      ..arrow-style,
    ),
    ..zigzag-style,
    name: "left-zigzag",
  )

  // Right zigzag
  decorations.zigzag(
    line(
      "x-axis.end",
      (xr, 0),
      ..arrow-style,
    ),
    ..zigzag-style,
    name: "right-zigzag",
  )

  // Add Re axis label
  content(
    (rel: (-0.2, 0.3), to: "right-zigzag.end"),
    $"Re"(p_0)$,
    name: "x-label",
  )
})