# Cut diagrams/sum over final states with feynmp

I am trying add a cut to the following handbag diagram

\begin{fmffile}{test}
\begin{fmfgraph*}(200,90)
\fmfleft{i2,i1}
\fmfright{o2,o1}
\fmf{dbl_plain_arrow,label=$P$}{i2,v4}
\fmf{plain}{v4,v5}
\fmf{plain}{v5,v6}
\fmf{dbl_plain_arrow}{v6,o2}
\fmffreeze
\fmf{fermion,label=$k$}{v4,v1}
\fmf{fermion,label=$k'$}{v1,v2}
\fmf{fermion}{v2,v3}
\fmf{fermion}{v3,v6}
\fmf{phantom}{v1,i1}
\fmf{phantom}{v3,o1}
\fmffreeze
\fmf{photon,label=$q$,tension=2}{i1,v1}
\fmf{photon}{v3,o1}
\fmfforce{xpart(vloc __v1)+7.5,ypart(vloc __v1)}{v1} % quark top left
\fmfforce{xpart(vloc __v2),ypart(vloc __v2)}{v2} %  quark top middle
\fmfforce{xpart(vloc __v3)-7.5,ypart(vloc __v3)}{v3} % quark top right

\fmfforce{xpart(vloc __i2)-10,ypart(vloc __i2)}{i2} % proton left
\fmfforce{xpart(vloc __o2)+10,ypart(vloc __o2)}{o2} % proton right

\fmfforce{xpart(vloc __i1)+10,ypart(vloc __i1)-10}{i1} % photon left
\fmfforce{xpart(vloc __o1)-10,ypart(vloc __o1)-10}{o1} % photon right

\fmf{dashes,width=thin}{v5,v2}

\fmfovalblob{.10w}{.6}{v2} % upper blob
\fmfovalblob{.4w}{.3}{v5} % lower blob
\end{fmfgraph*}
\end{fmffile}


This generates the following figure:

However, I cannot figure out how to get the dashed lines in front of the blobs. Ideally, I would like to create diagrams like this:

Which were found in "Initial State Parton Showers Beyond Leading Order" by J. Collins. That is, I would like to be able to make generic diagrams with either a cut line through the center of the diagram as one usually sees in the Cutkosky rules, or with a cut/integral sign over the whole diagram.

I know there is a thread about how to do this with Tikz, but I would really prefer to use feynmp since I've had a hard time using these both together. I know this is possible with other programs, e.g. Jaxodraw, but I want to get it all with feynmp if possible.

• Welcome to TeX.SE! Could you please tell us where  \fmfovalblob is defined, it seems not to be part of the feynmp package.
– user121799
Oct 20, 2018 at 19:33

I made an experiment just to try out whether one can annotate feynmp diagrams with TikZ. Amazingly, this works. And it also reveals that these blobs are not at all harmless, they do not even change the bounding box, which is different from the rest of the diagram, and which is why I had to extend the bounding box using \path (diagram.south) -- ++ (0,-1) coordinate (bottom);. And I could find a definition of \fmfovalblob here, but this does not quite reproduce your blobs. Given the violent behavior of these blobs, I am not sure if one can easily draw something on top of these with feynmp tools. However, the contour you are after is anyway not something that is absolutely straightforward to achieve with this package. Hence I propose to draw it with TikZ.

\documentclass[tikz, border=3.14mm]{standalone}
\usepackage{feynmp}
% from https://wiki.physik.uzh.ch/cms/latex:feynman
\begin{filecontents*}{vovalblob.mp}
vardef vovalblob (expr bd, a) (text vl)=
forsuffixes $=vl: if not vexists$: venter $; fi vlist[vlookup$]decor.shape := fullcircle xscaled a;
vlist[vlookup $]decor.size := bd; vlist[vlookup$]decor.sty := "shaded";
endfor
enddef;
\end{filecontents*}
\def\fmfovalblob#1#2#3{\fmfcmd{input vovalblob; vovalblob ((#1), (#2), \fmfpfx{#3});}}
\begin{document}
\begin{tikzpicture}
\node (diagram) {\begin{fmffile}{test}
\begin{fmfgraph*}(200,90)
\fmfleft{i2,i1}
\fmfright{o2,o1}
\fmftop{t1}
\fmftop{b1}
\fmf{dbl_plain_arrow,label=$P$}{i2,v4}
\fmf{plain}{v4,v5}
\fmf{plain}{v5,v6}
\fmf{dbl_plain_arrow}{v6,o2}
\fmffreeze
\fmf{fermion,label=$k$}{v4,v1}
\fmf{fermion,label=$k'$}{v1,v2}
\fmf{fermion}{v2,v3}
\fmf{fermion}{v3,v6}
\fmf{phantom}{v1,i1}
\fmf{phantom}{v3,o1}
\fmffreeze
\fmf{photon,label=$q$,tension=2}{i1,v1}
\fmf{photon}{v3,o1}
\fmfforce{xpart(vloc __v1)+7.5,ypart(vloc __v1)}{v1} % quark top left
\fmfforce{xpart(vloc __v2),ypart(vloc __v2)}{v2} %  quark top middle
\fmfforce{xpart(vloc __v3)-7.5,ypart(vloc __v3)}{v3} % quark top right
\fmfforce{xpart(vloc __i2)-10,ypart(vloc __i2)}{i2} % proton left
\fmfforce{xpart(vloc __o2)+10,ypart(vloc __o2)}{o2} % proton right
\fmfforce{xpart(vloc __i1)+10,ypart(vloc __i1)-10}{i1} % photon left
\fmfforce{xpart(vloc __o1)-10,ypart(vloc __o1)-10}{o1} % photon right
\fmfovalblob{.10w}{1.6}{v2} % upper blob
\fmfovalblob{.15w}{2.3}{v5} % lower blob
\end{fmfgraph*}
\end{fmffile}};
\path (diagram.south) -- ++ (0,-1) coordinate (bottom);
\draw[white,ultra thick] ([xshift=-3mm,yshift=-3mm]bottom) arc(-90:0:0.3)
-- (diagram.north) arc(-90:0:0.3);
\draw[thick,dashed] ([xshift=-3mm,yshift=-3mm]bottom) arc(-90:0:0.3)
-- (diagram.north) arc(180:90:0.3);
\end{tikzpicture}
\end{document}


I produced this by compiling with latex, running mpost over Test.mp and then converting the dvi file to pdf.

• I tried this and it worked! Thank you, this is great. Would you happen to know how to color the blobs? I can color the usual blobs, but I can't figure out how to color the oval blobs as defined in the preamble. Oct 21, 2018 at 20:04
• @nsbd88 I don't. (I guess that you would have to incorporate the color in the definition of these blobs, but I have no idea how to do that.) However, if you follow the route above, i.e. add stuff on top using TikZ, you may just add these blobs with TikZ as well. Adjusting the colors and so on will be more straightforward, the downside is that you need to tune the position. Of course, you may also completely switch gears and draw the full thing with tikz-feynman. (I wish tikz-feynman had by default the same line widths and bent arrows, yet one can tweak it to make that happen.)
– user121799
Oct 21, 2018 at 20:38