JP-Ellis / tikz-feynman

Feynman Diagrams with TikZ
http://www.jpellis.me/projects/tikz-feynman
Other
148 stars 20 forks source link

Creating penguin diagrams #7

Closed apuignav closed 8 years ago

apuignav commented 8 years ago

I am trying to create a penguin diagram similar to

screen shot 2016-01-15 at 9 39 42

but i find myself unable to place a vertex in the middle of the curve. So far, considering only the b quark part, I have

\begin{tikzpicture}
\begin{feynman}
    \vertex (a) {$b$};
    \vertex [right=of a] (b);
    \vertex [right=of b] (c);
    \vertex [right=of c] (d) {$d$};
    \diagram* {
    (a) -- [fermion] (b) -- [fermion, edge label={$u,c,t$}] (c) -- [fermion] (d),
    (b) -- [boson, half right] (c)
    };
\end{feynman}
\end{tikzpicture}

but all attempts at adding the extra vertex have failed. Am I misunderstanding the manual or is this case not foreseen?

PS: Using arc hasn't helped either...

JP-Ellis commented 8 years ago

Hi, and thanks for the question! You haven't missed anything in the manual, this particular scenario is in fact missing and I shall add it. Thanks for bringing it up :)

Here is how you can draw it:

\begin{tikzpicture}
  \begin{feynman}
    \vertex (b1) {$b$};
    \vertex [right=of b1] (b2);
    \vertex [right=of b2] (b3);
    \vertex [right=of b3] (b4) {$d$};

    \vertex [above=2em of b1] (d1) {$\overline u$};
    \vertex [above=2em of b4] (d2) {$\overline u$};

    \vertex at ($(b2)!0.5!(b3)!0.5cm!-90:(b3)$) (g1);
    \vertex [below=5em of b3] (g2);
    \vertex [below=4em of b4] (l1) {\(\ell^{+}\)};
    \vertex [below=2em of l1] (l2) {\(\ell^{-}\)};

    \diagram* {
      (d2) -- [fermion] (d1),
      (b1) -- [fermion] (b2) -- [fermion, edge label={$u,c,t$}] (b3) -- [fermion] (b4),
      (b2) -- [boson, quarter right] (g1) -- [boson, quarter right] (b3),
      (g1) -- [photon, bend right] (g2),
      (l1) -- [fermion, bend right] (g2) -- [fermion, bend right] (l2),
    };

  \end{feynman}
\end{tikzpicture}

which produces apuignav

Basically, the idea is to create another vertex where the W boson and photon lines all meet. which is achieved with

\vertex at ($(b2)!0.5!(b3)!0.5cm!-90:(b3)$) (g1);

This little piece of magic comes from Ti_k_Z and you can read more about it in section 13.5 of the Ti_k_Z manual. There are two things happening there: first, (b2)!0.5!(b3) finds the coordinate that is half-way between (b2) and (b3); the second step is (x)!0.5cm!-90:(b3) which finds the coordinate that is 0.5cm down the line from (x) to (b3), after this line has been rotated by -90 degrees about (x). These two operations are then chained together so that (x) is actually (b2)!0.5!(b3). The net effect is that it places a node 0.5cm above the midpoint between (b2) and (b3). (I hope that makes sense).

An alternative way to achieve the same thing would be

\vertex at ($(b2)!0.5!(b3) + (0, -0.5cm)$) (g1);

which is perhaps easier to understand, but it won't work if the graph is rotated.

As a last comment, I have to admit that I'm not completely happy with the way bosonic lines meet up. I'll see if I can fix that at some point.