使用 feynmf 创建费曼循环图

使用 feynmf 创建费曼循环图

我尝试用以下方式绘制费曼feynmfLaTeX

想要绘制费曼图

这是我的代码:

\begin{fmffile}{edm_neutrino}    
\begin{fmfchar*}(50,40)
\fmfkeep{vlm1}
\fmfleft{o}\fmflabel{$\nu_\tau$}{o}
\fmfright{i}\fmflabel{$\nu_\tau$}{i}
\fmftop{g}\fmflabel{$\gamma_\mu$}{g}
\fmf{plain, tension=1.5}{i,v1} \fmflabel{$Y_{ib}$}{v1}
\fmf{phantom, label=$\tau_j$, tension=0.8, left=1.0,tag=1}{v2,v1}
\fmf{dashes_arrow, label=$W^+$, left=-1.0, tension=0.4}{v2,v1}
\fmf{plain, tension=2.5}{v2,o}
\fmfposition
\fmfipath{p[]}
\fmfiset{p1}{vpath1(__v2,__v1)}
\fmfi{fermion}{subpath (0,2length(p1)/3) of p1}
\fmfi{fermion}{subpath (2length(p1)/3,length(p1)) of p1}
\fmfi{photon}{point length(p1)/3 of p1 -- point 2length(p1)/3 of p1}
%should go to g
\end{fmfchar*}

\end{fmffile}

但我不知道如何将线上的点连接W^-到外部点g。 是否有可能写类似的东西?

 \fmfi{photon}{point 2length(p1)/3 of p1 -- point g}

我知道这行代码不正确。但该如何修复呢?

非常感谢你的阅读!matthias

答案1

您超出了自动布局程序的权限feynmf,因此您需要使用“立即”模式来放置节点。

然而,此时,通常更容易直接在元帖子,使用feynmp宏。像这样:

在此处输入图片描述

prologues := 3;
outputtemplate := "%j%c.eps";
input feynmp;
beginfig(1);

path ring; ring = fullcircle scaled 78;
z1 = -z2 = 78 left; z3 = z2 rotated -24;

label.top(btex $\tau_j$ etex, point 2 of ring);
label.bot(btex $W^+$    etex, point 6 of ring);
label.top(btex $\nu_\tau$ etex, z1);
label.top(btex $\nu_\tau$ etex, z2);
label.rt(btex $\gamma_\mu$ etex, z3);

draw fermion z1 -- point 4 of ring;
draw fermion subpath(4,0) of ring;
draw fermion point 0 of ring -- z2;
draw_dashes_arrow subpath(4,8) of ring;
draw photon origin -- z3 cutbefore ring;

endfig;
end.

(请注意,fullcircle路径上有 8 个点,从 3 点位置逆时针延伸。)

界面非常简洁:feynmp定义多个宏作为路径装饰器,将路径作为正确参数并返回装饰路径。例如fermion上文。不幸的是,装饰器集并不完整,因此对于虚线箭头,我们必须draw_dashes_arrow直接调用宏。我找到的唯一文档是 Metapost 源文件,但fmfman.pdf仍然有用。

相关内容