2

I am trying to generate a 2-loop diagram using Feyn-TikZ. Concretely, I am writing the following commands:

\begin{tikzpicture}
\begin{feynman}
\vertex (i1) {\(s\)};
\vertex [above right=of i1] (a);
\vertex [      right=of a ] (b);
\vertex [      above=of b ] (c);
\vertex [      left =of c ] (d);
\vertex [      below=of d ] (a);
\vertex [below right=of b ] (i2) {\(b\)};
\vertex [above right=of c ] (f2) {\(s\)};
\vertex [above  left=of d ] (f1) {\(b\)};
\vertex [below left=of d] (l1);
\vertex [above left=of a] (l2);
\diagram* {
    (i1) -- [anti fermion] (a) -- [anti fermion, edge label'=\(\ell'\)] (b) -- [scalar, edge label'=\(\Phi_j\)] (c) -- [anti fermion, edge label'=\(\ell\)] (d) -- [scalar] (l1) -- [boson,half left] (l2) -- [scalar, edge label'=\(\Phi_i\)] (a),
    (b) -- [anti fermion] (i2),
    (c) -- [fermion] (f2),
    (d) -- [anti fermion] (f1),
};
\vertex [below=0.4em of a] {\(\Gamma_{s\ell'}^{i}\)};
\vertex [below=0.4em of b] {\(\Gamma_{b\ell'}^{j}\)};
\vertex [above=0.4em of c] {\(\Gamma_{s\ell}^{j}\)};
\vertex [above=0.4em of d] {\(\Gamma_{b\ell}^{i}\)};
\end{feynman}
\end{tikzpicture}

Which generates the following diagram

2loop diagram

I have two issues with this diagram. First of all, I want for the external legs to be all the same length. Clearly, the bottom left leg (s) is shorter than the rest. How does one solve this?

The second issue is with the boson correction on the left scalar field. What I want to draw there is the self-energy of the scalar field, and instead I am getting that weird corssed leg sub-diagram. Any ideas?

3
  • Welcome to TSE. Please post a Minimal Working Example, instead of a code snippet. Aug 3, 2021 at 12:23
  • To fix the length of the legs you need to swap a and i1, i.e. \vertex (a); \vertex [below left=of a] (i1) {\(s\)}; Aug 3, 2021 at 12:53
  • HenriMenke thanks that worked!
    – Jordi
    Aug 3, 2021 at 13:18

1 Answer 1

3

I think I solved it. As one of the answers says, to have equal length external legs one must exchange a and i1. About the self-energy, one needs to properly work out the vertices/points connections. The code reads

\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex [below left=of a] (i1) {\(s\)};
\vertex [      right=of a ] (b);
\vertex [      above=of b ] (c);
\vertex [      left =of c ] (d);
\vertex [      below=of d ] (a);
\vertex [below right=of b ] (i2) {\(b\)};
\vertex [above right=of c ] (f2) {\(s\)};
\vertex [above  left=of d ] (f1) {\(b\)};
\vertex [below=0.3cm of d] (l1);
\vertex [above=0.3 cm of a] (l2);
\diagram* {
    (i1) -- [anti fermion] (a) -- [anti fermion, edge label'=\(\ell'\)] (b) -- [scalar, edge label'=\(\Phi_j\)] (c) -- [anti fermion, edge label'=\(\ell\)] (d) -- [scalar, edge label=\(\Phi_i\)] (a),
    (d) -- [scalar] (l1) -- [gluon, edge label'=\(A_{\mu}\), half right] (l2) -- [scalar] (a),
    (b) -- [anti fermion] (i2),
    (c) -- [fermion] (f2),
    (d) -- [anti fermion] (f1),
};
\vertex [below=0.4em of a] {\(\Gamma_{s\ell'}^{i}\)};
\vertex [below=0.4em of b] {\(\Gamma_{b\ell'}^{j}\)};
\vertex [above=0.4em of c] {\(\Gamma_{s\ell}^{j}\)};
\vertex [above=0.4em of d] {\(\Gamma_{b\ell}^{i}\)};
\end{feynman}
\end{tikzpicture}

which generates the following diagram

enter image description here

Maybe there is a better way to do it, feel free to let me know!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.