% !TEX program = pdflatexmk
% !TEX parameter = -shell-escape
% Author: Izaak Neutelings (September 24)
% Instructions: To compile via command line, run the following twice
%   pdflatex -shell-escape extract/pp_hard$TAG.tex
\documentclass[11pt,border=4pt]{standalone}
\usepackage{feynmp-auto}
\usepackage{xcolor}
\definecolor{colkappaf}{rgb}{1,0,0} % kappa_f (red)
\begin{document}
\begin{fmffile}{feyngraph}
  \fmfframe(-2,44)(36,44){ % padding (L,T)(R,B)
  \begin{fmfgraph*}(160,90) % dimensions (WH)
    % line style
    \fmfset{arrow_len}{10} % arrow length
    \fmfset{dash_len}{8} % dashes length
    \fmfset{curly_len}{7}
    % external vertices
    \fmfleft{ip2,ip1}
    \fmfright{op2,o2,o1,op1}
    \fmfshift{24 right}{o1,o2}
    \fmfshift{2 up}{o1}
    \fmfshift{2 down}{o2}
    % skeleton
    \fmf{phantom}{ip1,vp1,op1} % predefine path for \fmfi
    \fmf{phantom}{ip2,vp2,op2} % predefine path for \fmfi
    \fmf{phantom,t=0.3}{vp1,ip1,ip2,vp2} % pull proton blobs to left
    \fmffreeze
    % incoming proton 1
    \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip1}
    \fmf{phantom}{ip1,vp1}
    \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 6)}
    \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 0)}
    \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5,-6)}
    %incoming proton 2
    \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip2}
    \fmf{phantom}{ip2,vp2}
    \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 6)}
    \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 0)}
    \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5,-6)}
    % fragmented proton X_1
    \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),28) shifted (5, 4)}
    \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),16) shifted (5, 0)}
    \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1), 4) shifted (5,-4)}
    % fragmented proton X_2
    \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2), -4) shifted (5, 4)}
    \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-16) shifted (5, 0)}
    \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-28) shifted (5,-4)}
    % proton blobs (draw after \fmfi!)
    \fmfblob{24}{vp1}
    \fmfblob{24}{vp2}
    % incoming parton
    \fmf{gluon,t=1.3}{v1,vp1}
    \fmf{gluon,t=1.3}{vp2,v2}
    % hard process
    \fmf{fermion,t=0.2}{v1,v2}
    \fmf{fermion,t=1.7}{v2,vh1,v1}
    \fmf{dashes,t=2.5,l.s=left,label=H}{vh1,vh2}
    % decay
    \fmf{fermion,t=2.3}{o2,vh2,o1}
    % vertices
    \fmfv{decor.shape=circle,decor.filled=full,decor.size=4,f=(1,,0,,0),
          l.d=3,l.a=-65,l=\color{colkappaf}$\kappa_\mathrm{t}$}{vh1}
    \fmfv{decor.shape=circle,decor.filled=full,decor.size=4,f=(1,,0,,0),
          l.d=3,l.a=-115,l=\color{colkappaf}$\kappa_\tau$\hspace{-2pt}}{vh2}
    % labels
    \fmfv{l.a=25,l.d=4,l=$\tau^-$}{o1}
    \fmfv{l.a=-20,l.d=4,l=\vspace{-2mm}\strut$\tau^-$}{o2}
  \end{fmfgraph*}
  } % close \fmfframe
\end{fmffile}
\end{document}