[Tex/LaTex] Feynman diagram using feynmf – keeping lines straight after vertex, keeping line flat

diagramsfeynmf

\documentclass[a4paper,11pt]{report}
\usepackage{feynmp}
\usepackage[pdftex]{graphicx}
\DeclareGraphicsRule{*}{mps}{*}{}
\begin{document}
\begin{figure}
\label{fig:ele_int_conv}
\centering
\parbox{0.5\textwidth}{
\begin{fmffile}{nonres}
\begin{fmfgraph*}(250,125)
\fmfleft{i1,i2}
\fmfright{o1,o2,o3,o4}
\fmf{fermion,lab=$q$}{i1,v1}
\fmf{fermion,lab=$\bar{q}$}{i2,v1}
\fmf{boson,lab=$Z$}{v1,v2}
\fmf{fermion,lab=$\mu^+$}{v2,v3,o1}
\fmf{boson,lab=$\gamma^*$}{v3,v4}
\fmf{fermion,lab=$e^+$ (missed)}{v4,o2}
\fmf{fermion,lab=$e^-$}{v4,o3}
\fmf{fermion,lab=$\mu^-$}{v2,o4}

\end{fmfgraph*}
\end{fmffile}

Minimal working example produces this which is generally fine, but I would like to make the central "Z" line exactly horizontal, and I would like the \mu^+ line to be straight, and only have one label.

Best Answer

Basically what you need here are:

  • phantom particles (to define the skeleton you want)
  • \fmffreeze (to freeze the current shape before drawing further)

In the solution below, I've also used tension to make some of the lines shorter and label.side to stop the labels overlapping. These are slightly hack-y so you might want to play around with them. In particular, I moved the Z->mu mu vertex a bit to the left to leave space for everything that is happening on the right hand side. You may prefer another solution.

NB. I tested this with feynmf rather than feynmp.

\documentclass[a4paper,11pt]{report}
\usepackage{feynmf}
\usepackage[pdftex]{graphicx}
\DeclareGraphicsRule{*}{mf}{*}{}

\begin{document}
\begin{figure}
\label{fig:ele_int_conv}
\centering
\parbox{0.5\textwidth}{
  \begin{fmffile}{nonres}
  \begin{fmfgraph*}(250,125)
    \fmfleft{i1,i2}
    \fmfright{o1,o2,o3,o4}
    \fmf{fermion,label=$q$,tension=2}{i1,v1}
    \fmf{fermion,label=$\bar{q}$,tension=2}{i2,v1}
    \fmf{boson,label=$Z$,tension=2}{v1,v2}
    \fmf{fermion,label=$\mu^-$}{v2,o4}
    \fmf{phantom}{v2,o1}
    \fmffreeze
    \fmf{phantom}{v2,v3}
    \fmf{phantom}{v2,v3,o1}
    \fmffreeze
    \fmf{fermion,label=$\mu^+$,label.side=right}{v2,o1}
    \fmf{boson,label=$\gamma^*$,label.side=left}{v3,v4}
    \fmf{fermion,label=$e^+$ (missed),label.side=left,label.dist=1}{v4,o2}
    \fmf{fermion,label=$e^-$,label.side=left}{v4,o3}
  \end{fmfgraph*}
  \end{fmffile}
}
\end{figure}
\end{document}
Related Question