# How can we cut a loop with Tikz-Feynman?

If we want to apply Cutkosky rule, how can we draw a cutting line like the dashed line in the figure (quickly made with paint)?

\documentclass[12pt]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper,left=2.5cm,right=2.5cm,top=2.8cm,bottom=2.8cm]{geometry}
\usepackage[frenchb]{babel}
\usepackage{libertine}
\usepackage{luatex85}
\def\pgfsysdriver{pgfsys-pdftex.def}
\usepackage{lmodern}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{pgfkeys}
\usepackage[compat=1.1.0]{tikz-feynman}
\usepackage{tikz-feynman, contour}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[absolute,overlay]{textpos}
\newcommand{\autofontsize}[1]{\fontsize{#1}{\dimexpr #1*12/10}}
\usepackage{setspace}
\usepackage{pgfplots}
\usepackage{xparse}

\usetikzlibrary{positioning,arrows,patterns}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{calc}

\tikzset{
photon/.style={decorate, decoration={snake}, draw=black},
fermion/.style={draw=black, postaction={decorate},decoration={markings,mark=at position .55 with {\arrow{>}}}},
vertex/.style={draw,shape=circle,fill=black,minimum size=3pt,inner sep=0pt},
}

\NewDocumentCommand\semiloop{O{black}mmmO{}O{above}}
{%
\draw[#1] let \p1 = ($(#3)-(#2)$) in (#3) arc (#4:({#4+180}):({0.5*veclen(\x1,\y1)})node[midway, #6] {#5};)
}
%% Syntax
%\semiloop[fermion][<draw options>]{<first node>}{<second node>}{<angle>}[<label>][<below, default: above>];

\begin{document}

\begin{center}
\scalebox{2}{
\fontsize{0.35714em}{0.35714em}
\feynmandiagram [horizontal=a to b] {
i1 -- [fermion, arrow size=0.8pt] a  [label=${\mu}$]-- [fermion, arrow size=0.8pt] i2 ,
a -- [photon] b
-- [fermion, half left, looseness=1.6, arrow size=0.8pt] c
-- [fermion, half left, looseness=1.6, arrow size=0.8pt] b,
c -- [photon] d,
f1  -- [fermion, arrow size=0.8pt] d -- [fermion, arrow size=0.8pt] f2,
};
}
\end{center}
\end{document}


TikZ-Feynman (CTAN) provides \feynmandiagram command to draw single diagrams only without having to create a full {tikzpicture} environment; however, it is possible to use the {feynman} environment within a {tikzpicture} which allows you to access all the commands from TikZ.

By putting everything inside a {tikzpicture} and {feynman} environment, I can first draw the diagram and then, in later commands, access the location of vertices in order to place new vertices. In this instance, I calculate the mipoint to be halfway between (b) and (c), and then draw a line going from 2 units above (midpoint) to 2 units below (midpoint).

\RequirePackage{luatex85}
\documentclass{standalone}
\usepackage[compat=1.1.0]{tikz-feynman}

\begin{document}
\begin{tikzpicture}
\begin{feynman}
\diagram [horizontal=a to b] {
i1
-- [fermion] a
-- [fermion] i2 ,
a -- [photon] b
-- [fermion, half left] c
-- [fermion, half left] b,
c -- [photon] d,
f1
-- [fermion] d
-- [fermion] f2,
};

%% Find the midpoint, which is halfway between b and c.
\coordinate (midpoint) at ($(b)!0.5!(c)$);
%% Draw a line starting 2 units above the midpoint, and ending 2 units below
%% the midpoint.
\draw [dashed] ($(midpoint) + (0, 2)$) -- ($(midpoint) + (0, -2)$);
\end{feynman}
\end{tikzpicture}
\end{document}


Note that I had to greatly simplified you minimal example. None of the packages included are relevant other than TikZ-Feynman (which you also happen to import twice...). The use luatex85 is due to a bug with the standalone class, but shouldn't be needed with most other classes.

• Thanks but I would like to conserve the command \fontsize{0.35714em}{0.35714em} so that the vertex label have a normal size. However if I put this line in my code, it does not compile anymore (I added the vertex label in my code). – ketherok May 23 '17 at 6:53
• It should still work, just make sure that \fontsize is inserted outside the {tikzpicture} environment. – JP-Ellis May 23 '17 at 8:31
• If this solves your issue, don't forget to use the tick (✔) to accept the answer (and maybe give it an upvote as a thank you). Same goes for all the previous questions you asked :) – JP-Ellis May 23 '17 at 11:07