3

I am trying to draw this feynman diagram

enter image description here

The part that's a bit tricky is the parallel lines, in the laeft and right side of the diagram. How to do that?

I've tried searching in feynmf's manual. I saw a similar diagram, which was using

\fmffreeze
\fmfi{plain}{vpath (__i1,__b) shifted (thick*(0,2))}
\fmfi{plain}{vpath (__i1,__b) shifted (thick*(1,-2))}

but in my case it only produces 2 lines on the left side...

My code is

\documentclass{article}
\usepackage{feynmp-auto}
\unitlength=1mm
\begin{document}
\begin{fmffile}{ElasticScattering}
\fmfframe(1,7)(1,7){
  \begin{fmfgraph}(40,25)
            \fmfleft{i1,i2}
      \fmfright{o1,o2}
      \fmfbottom{b}
      \fmf{fermion}{i2,v1,o2}
      \fmf{photon}{v1,b}
      \fmfblob{.15w}{b}
      \fmf{phantom}{i1,b,o1}
      \fmffreeze
      \fmfi{plain}{vpath (__i1,__b) shifted (thick*(0,2))}
      \fmfi{plain}{vpath (__i1,__b) shifted (thick*(1,-2))}
  \end{fmfgraph}}
\end{fmffile}
\end{document}

My result is

enter image description here

1 Answer 1

4
\documentclass{article}
\usepackage{feynmp-auto}
\unitlength=1mm
\begin{document}
\begin{fmffile}{ElasticScattering}
  \begin{fmfgraph*}(40,25)
    % External vertices on the left
    \fmfleft{i1,i2}
    % External vertices on the right
    \fmfright{o1,o2}
    % Labels on external vertices
    \fmflabel{\(k\)}{i2}
    \fmflabel{\(p\)}{i1}
    \fmflabel{\(k'\)}{o2}
    \fmflabel{\(p'\)}{o1}
    % Add a fermion line between `i2', new internal vertex `v' and `o2'
    \fmf{fermion}{i2,v,o2}
    % Add a single plain line between `i1', new internal vertex `b' and `o1'
    \fmf{plain}{i1,b,o1}
    % Add photon line, with label, between `v' and `b'
    \fmf{photon,label=\(q\)}{v,b}
    % Insert a blob at `b'
    \fmfblob{.15w}{b}
    \fmffreeze
    % Add two plain lines between `i1' and `b', one shifted above and the
    % other below the already present plain line
    \fmfi{plain}{vpath (__i1,__b) shifted (thick*(-0.5,2))}
    \fmfi{plain}{vpath (__i1,__b) shifted (thick*(0.5,-2))}
    % Same as above, between `b' and `o1'
    \fmfi{plain}{vpath (__b,__o1) shifted (thick*(0.5,2))}
    \fmfi{plain}{vpath (__b,__o1) shifted (thick*(-0.5,-2))}
  \end{fmfgraph*}
\end{fmffile}
\end{document}

enter image description here

If you want an empty circle at b vertex (as in your original example) instead of a shaded one, replace \fmfblob{.15w}{b} with \fmfv{decor.shape=circle,decor.filled=empty,decor.size=.15w}{b}.

4
  • Thank you very much once again for your help! I understand that \fmfi{plain}{vpath (__i1,__b) shifted (thick*(-0.5,2))} adds a line above/bellow. How do you define the slope? I suspect it must be the thick argument...
    – Thanos
    Jul 4, 2013 at 14:32
  • @Thanos that's probably metafont/metapost code, but... I don't know neither :-( That's why I'd prefer a package based on TikZ but with a feynmp-like syntax. I supposed (-0.5,2) stands for the shift value, I adjusted it to get a visually acceptable result and it seems that worked :-)
    – giordano
    Jul 4, 2013 at 15:24
  • I couldn't agree more about the tikz-feynmp mixture! If only I could do such thing!!!
    – Thanos
    Jul 4, 2013 at 15:27
  • @Thanos in case you missed it, such package now exists: tikz-feynman (project page) ;-)
    – giordano
    Feb 25, 2016 at 11:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .