% !TEX program = pdflatexmk
% !TEX parameter = -shell-escape
% Author: Izaak Neutelings (March 2025)
% Instructions: To compile via command line, run the following twice
%   pdflatex -shell-escape tension.tex
\documentclass[11pt,border=-2pt,multi=page,crop]{standalone}
\usepackage{feynmp-auto}
\usepackage{pgffor} % for \foreach
\usepackage{xcolor} % for \color

% DEFINE fmfpicture ENVIRONMENT
\usepackage{environ} % for \NewEnviron
\NewEnviron{fmfpicture}[3]{%
  \begin{page}% to create standalone page
    \fmfframe(#1)(#2){% padding (L,T)(R,B)
    \begin{fmffile}{feynmp-#3}% auxiliary files (use unique name!)
      \BODY % main code
    \end{fmffile}%
    }% close \fmfframe
  \end{page}%
}

% INDICATE VERTICES
\newcommand{\showvertices}[1]{%
  \foreach \v/\a in {#1}{%
    \begingroup\edef\tmpcmd{\endgroup\noexpand\fmfv{%
      d.sh=circle,d.f=full,d.si=2,f=(.9,,.2,,.2),l.d=4,%
      label=\noexpand\color{red}\noexpand\tiny\v,l.a=\a}{\v}}%
    \tmpcmd% excute
  }% close \foreach
}

\begin{document}

% TENSION: Simple
\begin{fmfpicture}{4,5}{4,5}{tension-HWW0} % padding (LTRB)
  \begin{fmfgraph*}(120,120) % dimensions (WH)
    % external vertices
    \fmfleft{i1}
    \fmfright{o4,o3,o2,o1}
    % main
    \fmf{fermion}{o1,v1,o2}
    \fmf{fermion}{o3,v2,o4}
    \fmf{dashes,tension=1.5}{i1,v}
    % decay
    \fmf{boson}{v,v1}
    \fmf{boson}{v,v2}
  \end{fmfgraph*}
\end{fmfpicture}

% TENSION: With vertices
\begin{fmfpicture}{4,5}{4,5}{tension-HWW1} % padding (LTRB)
  \begin{fmfgraph*}(120,120) % dimensions (WH)
    % external vertices
    \fmfleft{i1}
    \fmfright{o4,o3,o2,o1}
    % main
    \fmf{fermion}{o1,v1,o2}
    \fmf{fermion}{o3,v2,o4}
    \fmf{dashes,tension=1.5}{i1,v}
    % decay
    \fmf{boson}{v,v1}
    \fmf{boson}{v,v2}
    % indicate vertices
    \showvertices{i1/-90,v/-110,v1/120,v2/-120,o1/-60,o2/-110,o3/110,o4/60}
  \end{fmfgraph*}
\end{fmfpicture}

% TENSION: Adding dashed lines
\begin{fmfpicture}{4,5}{6,5}{tension-HWW2} % padding (LTRB)
  \begin{fmfgraph*}(120,120) % dimensions (WH)
    % external vertices
    \fmfleft{i2,i1,i0}
    \fmfright{o4,o3,o2,o1}
    % skeleton
    \fmf{dashes,foreground=(1,,.6,,.6)}{i0,v1}
    \fmf{dashes,foreground=(1,,.6,,.6),tension=0.4}{v1,v2}
    \fmf{dashes,foreground=(1,,.6,,.6)}{i2,v2}
    % main
    \fmf{fermion}{o1,v1,o2}
    \fmf{fermion}{o3,v2,o4}
    % indicate vertices
    \showvertices{i0/-90,i1/-90,i2/90,v1/105,v2/-105,
                  o1/-100,o2/-100,o3/100,o4/100}
  \end{fmfgraph*}
\end{fmfpicture}

% TENSION: Adding \fmfstraight
\begin{fmfpicture}{4,5}{6,5}{tension-HWW3} % padding (LTRB)
  \begin{fmfgraph*}(120,120) % dimensions (WH)
    % external vertices
    \fmfstraight
    \fmfleft{i2,i1,i0}
    \fmfright{o4,o3,o2,o1}
    % skeleton
    \fmf{dashes,foreground=(1,,.6,,.6)}{i0,v1}
    \fmf{dashes,foreground=(1,,.6,,.6),tension=0.4}{v1,v2}
    \fmf{dashes,foreground=(1,,.6,,.6)}{i2,v2}
    % main
    \fmf{fermion}{o1,v1,o2}
    \fmf{fermion}{o3,v2,o4}
    % indicate vertices
    \showvertices{i0/-90,i1/-90,i2/90,v1/105,v2/-105,
                  o1/-100,o2/-100,o3/100,o4/100}
  \end{fmfgraph*}
\end{fmfpicture}

% TENSION: Adding back boson and fermion lines
\begin{fmfpicture}{4,5}{6,5}{tension-HWW4} % padding (LTRB)
  \begin{fmfgraph*}(120,120) % dimensions (WH)
    % external vertices
    \fmfstraight
    \fmfleft{i2,i1,i0}
    \fmfright{o4,o3,o2,o1}
    % skeleton
    \fmf{dashes,foreground=(1,,.7,,.7)}{i0,v1}
    \fmf{dashes,foreground=(1,,.7,,.7),tension=0.4}{v1,v2}
    \fmf{dashes,foreground=(1,,.7,,.7)}{i2,v2}
    % main
    \fmf{fermion}{o1,v1,o2}
    \fmf{fermion}{o3,v2,o4}
    \fmffreeze
    \fmf{dashes,tension=1.5}{i1,v}
    % decay
    \fmf{boson}{v,v1}
    \fmf{boson}{v,v2}
    % indicate vertices
    \showvertices{i0/-90,i1/-90,i2/90,v/-100,v1/105,v2/-105,
                  o1/-100,o2/-100,o3/100,o4/100}
  \end{fmfgraph*}
\end{fmfpicture}

% TENSION: Final diagram with invisible phantom lines
\begin{fmfpicture}{4,5}{6,5}{tension-HWW-final} % padding (LTRB)
  \begin{fmfgraph*}(120,120) % dimensions (WH)
    % external vertices
    \fmfstraight
    \fmfleft{i2,i1,i0}
    \fmfright{o4,o3,o2,o1}
    % skeleton
    \fmf{phantom}{i0,v1}
    \fmf{phantom,tension=0.4}{v1,v2}
    \fmf{phantom}{i2,v2}
    % main
    \fmf{fermion}{o1,v1,o2}
    \fmf{fermion}{o3,v2,o4}
    \fmffreeze
    \fmf{dashes,tension=1.5}{i1,v}
    % decay
    \fmf{boson}{v,v1}
    \fmf{boson}{v,v2}
  \end{fmfgraph*}
\end{fmfpicture}

\end{document}