2

I would like to create a Feynman diagram resembling the one depicted below:

enter image description here

However, I'm unsure of the process. I am specifically interested in capturing the diagram's structure, rather than the arrow style. Could you please provide guidance on how to achieve this?

I tried to transform this one, but I failed:

\begin{tikzpicture}
    \begin{feynman}
    \diagram [vertical'=a to b] {
         i1
              -- [scalar] a [small, dot]
              -- [draw=none] f1 ,
          a -- [scalar] b [small, dot,],
          i2
              -- [draw=none] b
              -- [scalar] f2,
          };
    \diagram* {
          (i2) -- [scalar] (a),
          (f1) -- [scalar] (b),
           };
    \end{feynman}
\end{tikzpicture}

which produces:

enter image description here

4

1 Answer 1

1

Here is a way to do it from scratch, without any feynman package.

Main steps:

  1. determine coordinates (with your screenshot saved as udiag.png)
  2. check and adjust the coordinates with a first simple drawing
  3. draw all connections, including the arc
  4. use decoration markings in postactions to put the arrows

You can write more dense code, if you like. However, I prefer to have it easy to follow ... which is already a little stretch here and there for beginners in tikz.

results

\documentclass[10pt,border=3mm,tikz]{standalone}% 1 page per tikzpicture
\usepackage{graphicx}%              to include the sketch
\usepackage{tikz}%                  Tikz
\usetikzlibrary{arrows.meta,%       for arrow shapes
                decorations.markings}% to position arrows on path

\begin{document}
 % ~~~ let's identify coordinates ~~~
 \tikz{
    \node {\includegraphics{udiag}};
    \draw (-5,-4) grid (5,5);
 }

 % ~~~ test the coordinates ~~~~~~~
 \tikz{
    \coordinate (A) at (0,0);
    \coordinate (B) at (3,4);
    \coordinate (C) at (10,8);
    \coordinate (D) at (10,0);
    \coordinate (E) at (7,4);
    \coordinate (F) at (0,8);
    
    \draw (A) node{A} -- (B)node{B} -- (C)node{C};
    \draw (D)node{D} -- (E)node{E} -- (F)node{F};
 }

 % ~~~ let's do some more ~~~~~~~
 \tikz[
        dash pattern=on 6mm off 4.1mm,% adjusted dash pattern
        line width=2pt,%                adjusted linewidth
    ]{
    \coordinate (A) at (0,0);
    \coordinate (B) at (3,4);
    \coordinate (C) at (10,8);
    \coordinate (D) at (10,0);
    \coordinate (E) at (7,4);
    \coordinate (F) at (0,8);
    
    % ~~~ lines, semi circle and dots ~~~~~~~~~~~~~~~~
    \draw (A) -- (B) -- (C);
    \draw (D) -- (E) -- (F);
    \draw (B) -- (E) arc[start angle=0, end angle=-180,radius=2];
    % ~~~ overwriting the dash pattern defined above for the circles ~~~
    \draw[fill=black,solid]  (B) circle[radius=2.5mm] 
                             (E) circle[radius=2.5mm];
 }

 % ~~~ finalizing with markings and postactions ~~~~~~~
 \tikz[
        dash pattern=on 6mm off 4.1mm,% adjusted dash pattern
        line width=2pt,%                adjusted linewidth
        decoration={
            markings,
            mark=at position .25 with {\arrow{Triangle[length=1cm]}} , 
            mark=at position .75 with {\arrow{Triangle[length=1cm]}} , 
        }
    ]{
    \coordinate (A) at (0,0);
    \coordinate (B) at (3,4);
    \coordinate (C) at (10,8);
    \coordinate (D) at (10,0);
    \coordinate (E) at (7,4);
    \coordinate (F) at (0,8);
    
    % ~~~ lines, semi circle and dots; arrows-decoration ~~~~~~~~~~~~~~~~
    \draw[postaction={decorate}] (A) --  (B) -- (C);
    \draw[postaction={decorate}] (D) -- (E) -- (F);
    \draw (B) -- (E) arc[start angle=0, end angle=-180,radius=2];
    % ~~~ overwriting the dash pattern defined above for the circles ~~~
    \draw[fill=black,solid]  (B) circle[radius=2.5mm] 
                             (E) circle[radius=2.5mm];
 }

\end{document}

You must log in to answer this question.

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