How can one make the Feynman diagram more symmetric? I want the 'photon/Z propagator' to be much shorter, and if possible, some more space in the right most part of my diagram, where the 'charginos' and 'Ws' decay.

I have tried to search for how phantom and fmffreez works, but I can't find out how it can help me.

  \fmfleft{d1,d2,e1,d3,d4,e2,d5,d6} % incoming particles, from below
  \fmfright{l1,n,X01,X02,q,qbar} % outgoing particles, from below
  \fmf{plain}{e1,v0} % incoming electron
  \fmf{plain}{e2,v0} % incoming positron

  \fmf{photon,label=\textcolor{red} {$\tilde{\chi}_1^{\pm}$},label.side=right,foreground=red}{v1,v2} % chargino, lower
  \fmf{photon,label=\textcolor{red}{$\tilde{\chi}_1^{\pm}$},label.side=left,foreground=red}{v1,v3}  % chargino, upper
  \fmf{photon,label=$W^{\pm}$,label.side=right,label.dist=0.3}{v2,v4} % lower W
  \fmf{photon,label=$W^{\pm}$,label.side=left,label.dist=0.2}{v3,v5} % upper W
  % decay of upper W
  % decay of lower W
  % neutralinos in final state
  \fmf{photon,foreground=red}{v2,X01} % upper
  \fmf{photon,foreground=red}{v3,X02} % lower
  % additional lines for SUSY particles

 \fmflabel{$e^+$}{e2} % incoming proton (first, from top)
 \fmflabel{$e^-$}{e1} % incoming proton (second)
 \fmflabel{$\bar{q}$}{qbar} % lepton in final state (first) in Z decay
 \fmflabel{$q$}{q} %  lepton in final state (second) in Z decay
 \fmflabel{$\nu$}{n} % neutralino in final state from W decay
 \fmflabel{$\ell^{\pm}$}{l1} % lepton in final state from W decay
 \fmflabel{\textcolor{red}{$\tilde{\chi}_1^0$}}{X01} % final state neutralino
 \fmflabel{\textcolor{red}{$\tilde{\chi}_1^0$}}{X02} % final state neutralino

enter image description here


2 Answers 2


Add some tension to the long photon.


looks about right on my system.

enter image description here

Each line you draw has a default tension of 1 and a unit weight. Because you have so many extra lines on the right, they stretch the photon in the middle. Adding tension to the photon balances the pull from the right.

  • Thank you so much! This was exactly what I needed. I have never quite understood what the tension command does, but things got clearer now.
    – meghaaan
    Commented Sep 19, 2016 at 8:05

Although you mention using feynmf/feynmp, I'll provide an answer that uses another package: TikZ-Feynman (CTAN). Don't feel obliged to accept this answer if you need to use feynmf/feynmp.

Using the default underlying algorithm to place all the vertices, this can be done with:

\feynmandiagram [horizontal=z1 to z2] {
  %% Incoming electrons
  e1 [particle=\(e^{-}\)]
    -- [fermion] z1
    -- [fermion] e2 [particle=\(e^{+}\)],

  %% gamma/Z propagator
  z1 -- [boson, edge label=\(\gamma / Z\)] z2,

  %% Supersymmetric particles
  {[edges={plain, boson}]
    z2 -- [edge label'=\(\tilde \chi_{1}^{\pm}\)] x1
       -- x3 [particle=\(\tilde \chi_{1}^{0}\)],
    z2 -- [edge label=\(\tilde \chi_{1}^{\pm}\)] x2
       -- x4 [particle=\(\tilde \chi_{1}^{0}\)],
  %% We don't want the \chi to be too far apart
  x1 -- [draw=none] x2,

  %% W decaying hadronically
  x1 -- [boson, edge label'=\(W^{\pm}\)] w1,
  q11 [particle=\(\overline q\)] -- [fermion] w1 -- [fermion] q12 [particle=\(q\)],
  x2 -- [boson, edge label=\(W^{\pm}\)] w2,
  q21 [particle=\(\overline q\)] -- [fermion] w2 -- [fermion] q22 [particle=\(q\)],

  %% Finally, the algorithms wants to fan out the particles as much as possible,
  %% so to counter that we tie them together
    q11 -- q12 -- x3 -- x4 -- q21 -- q22,

output 1

which may suit you, but if you want finer control, then you'll have to use manual or relative placement of vertices. The code gets a little more complicated, but nothing unmanageable:

    %% e e -> Z
    \vertex (z1);
    \vertex [above left=1.5cm and 1cm of z1] (e1) {\(e^{-}\)};
    \vertex [below left=1.5cm and 1cm of z1] (e2) {\(e^{+}\)};
    \vertex [right=2cm of z1] (z2);

    %% Z -> X X
    \vertex [above right=1cm of z2] (x1);
    \vertex [below right=1cm of z2] (x2);

    %% We now add the decays of the supersymmetric particles
    \vertex [right=2cm of x1] (x3) {\(\tilde \chi_{1}^{0}\)};
    \vertex [above right=1cm of x1] (w1);
    \vertex [right=1cm of w1] (q11) {\(\overline q\)};
    \vertex [above right=0.5cm and 1cm of w1] (q12) {\(q\)};
    %% Repeat with the second particle
    \vertex [right=2cm of x2] (x4) {\(\tilde \chi_{1}^{0}\)};
    \vertex [below right=1cm of x2] (w2);
    \vertex [right=1cm of w2] (q21) {\(\overline q\)};
    \vertex [below right=0.5cm and 1cm of w2] (q22) {\(q\)};

    %% Now connect the dots (literally)
    \diagram* {
      (e1) -- [fermion] (z1) -- [fermion] (e2),
      (z1) -- [boson, edge label=\(\gamma / Z\)] (z2),

      {[edges={plain, boson}]
        (z2) -- [edge label=\(\tilde \chi_{1}^{\pm}\)] (x1) -- (x3),
        (z2) -- [edge label'=\(\tilde \chi_{1}^{\pm}\)] (x2) -- (x4),

      (x1) -- [boson, edge label=\(W^{\pm}\)] (w1),
      (x2) -- [boson, edge label'=\(W^{\pm}\)] (w2),

      (q11) -- [fermion] (w1) -- [fermion] (q12),
      (q21) -- [fermion] (w2) -- [fermion] (q22),

output 2

For each of them, the code was enclosed in:



%% <code above>
  • Thank you so much for fixing the problem, but I think I want to hold on to the feynmp package for now. I'll remember the tikz option for later:)
    – meghaaan
    Commented Sep 19, 2016 at 8:06

You must log in to answer this question.

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