Below are some code examples of Feynman diagrams showing hard processes in proton-proton collisions.
Click on a diagram to jump to the code & download links below:Inelastic hard process:
\documentclass[11pt,border=4pt]{standalone} \usepackage{feynmp-auto} \begin{document} \begin{fmffile}{feyngraph} \fmfframe(-2,44)(0,44){ % padding (L,T)(R,B) \begin{fmfgraph*}(160,80) % dimensions (WH) % line style \fmfset{arrow_len}{10} % arrow length % external vertices \fmfleft{ip2,ip1} \fmfright{op2,o,op1} % skeleton \fmf{phantom}{ip1,vp1,op1} % predefine path for \fmfi \fmf{phantom}{ip2,vp2,op2} % predefine path for \fmfi \fmf{phantom,t=0.3}{vp1,ip1,ip2,vp2} % pull proton blobs to left \fmffreeze % incoming proton 1 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip1} \fmf{phantom}{ip1,vp1} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5,-6)} %incoming proton 2 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip2} \fmf{phantom}{ip2,vp2} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5,-6)} % fragmented proton X_1 \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),28) shifted (5, 4)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1), 4) shifted (5,-4)} % fragmented proton X_2 \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2), -4) shifted (5, 4)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-28) shifted (5,-4)} % proton blobs (draw after \fmfi!) \fmfblob{24}{vp1} \fmfblob{24}{vp2} \fmf{phantom,l.s=left,l.d=12,label=$p_1$}{ip1,vp1} \fmf{phantom,l.s=right,l.d=12,label=$p_2$}{ip2,vp2} % partons incoming from proton \fmf{fermion,l.d=3,l.s=right,label=$x_1p_1$}{vp1,v} \fmf{fermion,l.d=3,l.s=left,label=$x_2p_2$}{vp2,v} % hard interaction \fmf{phantom,t=1.4}{v,o} % predefine path path \fmfi \fmffreeze \fmfi{fermion}{vpath (__v,__o) rotatedaround(vloc(__v), 14) shifted (2, 2)} \fmfi{fermion}{vpath (__v,__o) rotatedaround(vloc(__v), 0) shifted (2, 0)} \fmfi{fermion}{vpath (__v,__o) rotatedaround(vloc(__v),-14) shifted (2,-2)} \fmfblob{18}{v} \end{fmfgraph*} } % close \fmfframe \end{fmffile} \end{document}
Drell–Yan production of two same-flavored fermions:
\documentclass[11pt,border=4pt]{standalone} \usepackage{feynmp-auto} \begin{document} \begin{fmffile}{feyngraph} \fmfframe(-2,44)(19,44){ % padding (L,T)(R,B) \begin{fmfgraph*}(160,80) % dimensions (WH) % line style \fmfset{arrow_len}{10} % arrow length \fmfset{wiggly_len}{12} % boson wavelength \fmfset{wiggly_slope}{65} % boson slope of waves % external vertices \fmfleft{ip2,ip1} \fmfright{op2,f1,f2,op1} % add dummies 'd' for spacing \fmfshift{8 right}{f1,f2} \fmfshift{8 down}{f1} \fmfshift{8 up}{f2} % skeleton \fmf{phantom}{ip1,vp1,op1} % predefine path for \fmfi \fmf{phantom}{ip2,vp2,op2} % predefine path for \fmfi \fmf{phantom,t=0.3}{vp1,ip1,ip2,vp2} % pull proton blobs to left \fmffreeze % incoming proton 1 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip1} \fmf{phantom}{ip1,vp1} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5,-6)} %incoming proton 2 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip2} \fmf{phantom}{ip2,vp2} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5,-6)} % fragmented proton X_1 \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),28) shifted (5, 4)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1), 4) shifted (5,-4)} % fragmented proton X_2 \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2), -4) shifted (5, 4)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-28) shifted (5,-4)} % proton blobs (draw after \fmfi!) \fmfblob{24}{vp1} \fmfblob{24}{vp2} % partons incoming from proton \fmf{fermion,t=1.6}{vp1,v} \fmf{fermion,t=1.6}{v,vp2} % hard process \fmf{boson,t=2,l.d=4,l.s=left,label=$\mathrm{Z}/\gamma^*$}{v,vf} \fmf{fermion,t=2}{f1,vf,f2} % labels \fmfv{l.a=-25,l.d=3,l=$\ell^+$}{f1} \fmfv{l.a=25,l.d=5,l=$\ell^-$}{f2} \end{fmfgraph*} } % close \fmfframe \end{fmffile} \end{document}
Higgs boson production via gluon-fusion:
\documentclass[11pt,border=4pt]{standalone} \usepackage{feynmp-auto} \usepackage{xcolor} \definecolor{colkappaf}{rgb}{1,0,0} % kappa_f (red) \begin{document} \begin{fmffile}{feyngraph} \fmfframe(-2,44)(22,44){ % padding (L,T)(R,B) \begin{fmfgraph*}(160,90) % dimensions (WH) % line style \fmfset{arrow_len}{10} % arrow length \fmfset{dash_len}{8} % dashes length \fmfset{curly_len}{7} % external vertices \fmfleft{ip2,ip1} \fmfright{op2,o,op1} \fmfshift{14 right}{o} % skeleton \fmf{phantom}{ip1,vp1,op1} % predefine path for \fmfi \fmf{phantom}{ip2,vp2,op2} % predefine path for \fmfi \fmf{phantom,t=0.3}{vp1,ip1,ip2,vp2} % pull proton blobs to left \fmffreeze % incoming proton 1 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip1} \fmf{phantom}{ip1,vp1} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5,-6)} %incoming proton 2 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip2} \fmf{phantom}{ip2,vp2} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5,-6)} % fragmented proton X_1 \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),28) shifted (5, 4)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1), 4) shifted (5,-4)} % fragmented proton X_2 \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2), -4) shifted (5, 4)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-28) shifted (5,-4)} % proton blobs (draw after \fmfi!) \fmfblob{24}{vp1} \fmfblob{24}{vp2} % partons incoming from proton \fmf{gluon,t=1.4}{v1,vp1} \fmf{gluon,t=1.4}{vp2,v2} % hard process \fmf{fermion,t=0.3}{v1,v2} \fmf{fermion,t=1.7}{v2,vh,v1} \fmf{dashes,t=2.8}{vh,o} % vertices \fmfv{decor.shape=circle,decor.filled=full,decor.size=4,f=(1,,0,,0), l.d=3,l.a=-65,l=\color{colkappaf}$\kappa_\mathrm{t}$}{vh} % labels \fmfv{l.a=0,l.d=3,l=H}{o} \end{fmfgraph*} } % close \fmfframe \end{fmffile} \end{document}
With Higgs boson decay:
\documentclass[11pt,border=4pt]{standalone} \usepackage{feynmp-auto} \usepackage{xcolor} \definecolor{colkappaf}{rgb}{1,0,0} % kappa_f (red) \begin{document} \begin{fmffile}{feyngraph} \fmfframe(-2,44)(36,44){ % padding (L,T)(R,B) \begin{fmfgraph*}(160,90) % dimensions (WH) % line style \fmfset{arrow_len}{10} % arrow length \fmfset{dash_len}{8} % dashes length \fmfset{curly_len}{7} % external vertices \fmfleft{ip2,ip1} \fmfright{op2,o2,o1,op1} \fmfshift{24 right}{o1,o2} \fmfshift{2 up}{o1} \fmfshift{2 down}{o2} % skeleton \fmf{phantom}{ip1,vp1,op1} % predefine path for \fmfi \fmf{phantom}{ip2,vp2,op2} % predefine path for \fmfi \fmf{phantom,t=0.3}{vp1,ip1,ip2,vp2} % pull proton blobs to left \fmffreeze % incoming proton 1 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip1} \fmf{phantom}{ip1,vp1} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5,-6)} %incoming proton 2 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip2} \fmf{phantom}{ip2,vp2} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5,-6)} % fragmented proton X_1 \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),28) shifted (5, 4)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1), 4) shifted (5,-4)} % fragmented proton X_2 \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2), -4) shifted (5, 4)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-28) shifted (5,-4)} % proton blobs (draw after \fmfi!) \fmfblob{24}{vp1} \fmfblob{24}{vp2} % incoming parton \fmf{gluon,t=1.3}{v1,vp1} \fmf{gluon,t=1.3}{vp2,v2} % hard process \fmf{fermion,t=0.2}{v1,v2} \fmf{fermion,t=1.7}{v2,vh1,v1} \fmf{dashes,t=2.5,l.s=left,label=H}{vh1,vh2} % decay \fmf{fermion,t=2.3}{o2,vh2,o1} % vertices \fmfv{decor.shape=circle,decor.filled=full,decor.size=4,f=(1,,0,,0), l.d=3,l.a=-65,l=\color{colkappaf}$\kappa_\mathrm{t}$}{vh1} \fmfv{decor.shape=circle,decor.filled=full,decor.size=4,f=(1,,0,,0), l.d=3,l.a=-115,l=\color{colkappaf}$\kappa_\tau$\hspace{-2pt}}{vh2} % labels \fmfv{l.a=25,l.d=4,l=$\tau^-$}{o1} \fmfv{l.a=-20,l.d=4,l=\vspace{-2mm}\strut$\tau^-$}{o2} \end{fmfgraph*} } % close \fmfframe \end{fmffile} \end{document}
Single LQ production, where one proton stays intact (for more LQ diagrams, see the LQ category):
\documentclass[11pt,border=4pt]{standalone} \usepackage{feynmp-auto} \usepackage{xcolor} \definecolor{colvtx}{rgb}{0,.1,1} % LQ vertex (blue) \begin{document} \begin{fmffile}{feyngraph} \fmfframe(-2,44)(25,44){ % padding (L,T)(R,B) \begin{fmfgraph*}(160,90) % dimensions (WH) % line style \fmfset{arrow_len}{10} % arrow length \fmfset{dash_len}{8} % dashes length \fmfset{curly_len}{7} % external vertices \fmfleft{ip2,ip1} \fmfright{op2,o3,o2,o1,op1} \fmfforce{(1.07w,.82h)}{o1} % exact placement \fmfforce{(1.07w,.52h)}{o2} % exact placement \fmfforce{(0.98w,.24h)}{o3} % exact placement % internal vertices (exact placement) \fmfforce{(.61w,.48h)}{v1} % exact placement \fmfforce{(.82w,.48h)}{v2} % exact placement \fmfforce{(.94w,.67h)}{lq} % exact placement % skeleton \fmf{phantom}{ip1,vp1,op1} % predefine path for \fmfi \fmf{phantom}{ip2,vp2,op2} % predefine path for \fmfi \fmf{phantom,t=0.3}{vp1,ip1,ip2,vp2} % pull proton blobs to left \fmffreeze % incoming proton 1 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip1} \fmf{phantom}{ip1,vp1} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5,-6)} %incoming proton 2 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip2} \fmf{phantom}{ip2,vp2} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5,-6)} % fragmented proton X_1 \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),28) shifted (5, 4)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1), 4) shifted (5,-4)} % fragmented proton X_2 \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2), -4) shifted (5, 4)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-28) shifted (5,-4)} % proton blobs (draw after \fmfi!) \fmfblob{24}{vp1} \fmfblob{24}{vp2} % parton & photon incoming from proton \fmf{fermion,l.d=3,l.s=right,label=b}{vp1,v1} \fmf{gluon,l.d=4,l.s=left,label=$g$}{vp2,v1} \fmf{fermion,l.d=5,l.s=right,label=b}{v1,v2} % s-channel % LQ -> btau \fmf{dashes,t=2.9,l.d=3,l.s=left,label=LQ}{v2,lq} \fmf{fermion,t=1.7}{o2,lq,o1} \fmf{fermion,t=0.3}{v2,o3} % vertex \fmfv{d.shape=circle,d.fill=full,d.si=3,f=(0,,.1,,1), l=\color{colvtx}$\lambda$,l.d=5,l.a=66}{v1} % labels \fmfv{l.a=25,l.d=4,l=b}{o1} \fmfv{l.a=20,l.d=4,l=\vspace{-2mm}$\tau^+$}{o2} \fmfv{l.a=-20,l.d=5,l=$\tau^-$}{o3} \end{fmfgraph*} } % close \fmfframe \end{fmffile} \end{document}
Photon-induced single LQ production, where one proton stays intact (for more LQ diagrams, see the LQ category):
\documentclass[11pt,border=4pt]{standalone} \usepackage{feynmp-auto} \usepackage{xcolor} \definecolor{colvtx}{rgb}{0,.1,1} % LQ vertex (blue) \begin{document} \begin{fmffile}{feyngraph} \fmfframe(-2,44)(16,28){ % padding (L,T)(R,B) \begin{fmfgraph*}(160,90) % dimensions (WH) % line style \fmfset{arrow_len}{10} % arrow length \fmfset{dash_len}{8} % dashes length % external vertices \fmfleft{ip2,ip1} \fmfright{op2,o3,o2,o1,op1} \fmfshift{6 down}{o3} \fmfforce{(1.02w,.81h)}{o1} % exact placement \fmfforce{(1.02w,.51h)}{o2} % exact placement % internal vertices (exact placement) \fmfforce{(.65w,.66h)}{v1} % exact placement \fmfforce{(.65w,.33h)}{v2} % exact placement \fmfforce{(.88w,.66h)}{lq} % exact placement % skeleton \fmf{phantom}{ip1,vp1,op1} % predefine path for \fmfi \fmf{phantom}{ip2,vp2,op2} % predefine path for \fmfi \fmf{phantom,t=0.3}{vp1,ip1,ip2,vp2} % pull proton blobs to left \fmffreeze % incoming proton 1 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip1} \fmf{phantom}{ip1,vp1} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5,-6)} %incoming proton 2 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip2} \fmf{phantom}{ip2,vp2} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5,-6)} % fragmented proton X \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),28) shifted (5, 4)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1), 4) shifted (5,-4)} % outgoing intact proton \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-12) shifted (9.3, 5)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-12) shifted (8.0,-1)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-12) shifted (6.7,-7)} % blobs (draw after \fmfi!) \fmfblob{24}{vp1} \fmfblob{24}{vp2} % parton & photon incoming from proton \fmf{fermion,l.d=3,l.s=right,label=b}{vp1,v1} \fmf{photon,l.d=3,l.s=left,label=$\gamma$}{vp2,v2} \fmf{fermion,l.d=4,l.s=right,label=$\tau$}{v1,v2} % t-channel % LQ -> btau \fmf{dashes,t=2.9,l.d=3,l.s=left,label=LQ}{v1,lq} \fmf{fermion,t=1.7}{o2,lq,o1} \fmf{fermion,t=0.3}{v2,o3} % vertex \fmfv{d.shape=circle,d.fill=full,d.si=3,f=(0,,.1,,1), l=\color{colvtx}$\lambda$,l.d=5,l.a=-45}{v1} % labels \fmfv{l=$\mathrm{p}^+$,l.a=-45,l.d=16}{op2} \fmfv{l.a=25,l.d=4,l=b}{o1} \fmfv{l.a=20,l.d=4,l=\vspace{-2mm}$\tau^+$}{o2} \fmfv{l.a=-20,l.d=5,l=$\tau^-$}{o3} \end{fmfgraph*} } % close \fmfframe \end{fmffile} \end{document}
Photon-induced (also see this post or this experimental paper by CMS):
\documentclass[11pt,border=4pt]{standalone} \usepackage{feynmp-auto} \usepackage{xcolor} \definecolor{colvtx}{rgb}{0,.1,1} % LQ vertex (blue) \begin{document} \begin{fmffile}{feyngraph} \fmfframe(-2,44)(16,28){ % padding (L,T)(R,B) \begin{fmfgraph*}(160,80) % dimensions (WH) % line style \fmfset{arrow_len}{10} % arrow length \fmfset{wiggly_len}{11} % boson wavelength \fmfset{wiggly_slope}{65} % boson slope of waves % external vertices \fmfleft{ip2,ip1} \fmfright{op2,o2,d,o1,op1} % skeleton \fmf{phantom}{ip1,vp1,op1} % predefine path for \fmfi \fmf{phantom}{ip2,vp2,op2} % predefine path for \fmfi \fmf{phantom,t=0.3}{vp1,ip1,ip2,vp2} % pull proton blobs to left \fmffreeze % incoming proton 1 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip1} \fmf{phantom}{ip1,vp1} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5,-6)} %incoming proton 2 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip2} \fmf{phantom}{ip2,vp2} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5,-6)} % outgoing intact proton 1 \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),12) shifted (6.7, 7)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),12) shifted (8.0, 1)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),12) shifted (9.3,-5)} % outgoing intact proton 2 \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-12) shifted (9.3, 5)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-12) shifted (8.0,-1)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-12) shifted (6.7,-7)} % blobs (draw after \fmfi!) \fmfblob{24}{vp1} \fmfblob{24}{vp2} % incoming photons from protons \fmfforce{0.06[vloc(__vp1),vloc(__vp2)]}{q1} % exact placement \fmfforce{0.06[vloc(__vp2),vloc(__vp1)]}{q2} % exact placement \fmf{photon,l.d=6,l.s=right,label=$\gamma$\hspace{-4pt}}{q1,v1} \fmf{photon,l.d=5,l.s=left,label=$\gamma$\hspace{-4pt}}{q2,v2} \fmf{fermion,l.d=4,l.s=left,label=$\tau$}{v2,v1} % t-channel % LQ -> btau \fmf{fermion,t=1.15}{v1,o1} \fmf{fermion,t=1.15}{o2,v2} % vertex \fmfv{d.shape=circle,d.fill=full,d.si=3,f=(0,,.1,,1), l=\color{colvtx}\hspace{6pt}$a_\tau$,l.d=4,l.a=75}{v1} \fmfv{d.shape=circle,d.fill=full,d.si=3,f=(0,,.1,,1), l=\color{colvtx}\hspace{6pt}$a_\tau$,l.d=5,l.a=-70}{v2} % labels \fmfv{l=$\mathrm{p}^+$,l.a=50,l.d=18}{op1} \fmfv{l=$\mathrm{p}^+$,l.a=-45,l.d=16}{op2} \fmfv{l.a=25,l.d=4,l=$\tau^-$}{o1} \fmfv{l.a=-20,l.d=5,l=$\tau^+$}{o2} \end{fmfgraph*} } % close \fmfframe \end{fmffile} \end{document}
Full code
The LaTeX code below collects all the diagrams above into one big file that produces a multipage PDF. Please find download links below, or edit and compile here if you like:
% !TEX program = pdflatexmk % !TEX parameter = -shell-escape % Author: Izaak Neutelings (September 2024) % Instructions: To compile via command line, run the following twice % pdflatex -shell-escape pp_hard.tex \documentclass[11pt,border=2pt,multi=page,crop]{standalone} \usepackage{graphicx} \usepackage{feynmp-auto} % DEFINE TEXT COLORS \usepackage{xcolor} \definecolor{colvtx}{rgb}{0,.1,1} % LQ vertex (blue) \definecolor{colkappaf}{rgb}{1,0,0} % kappa_f (red) % DEFINE COLOR MACROS % The following loops over the user color names and defines % a handy \<colname> command to set text color, as well as % defines colors in MetaPost of the same and value for lines \usepackage{pgffor} % for \foreach \def\MPcolors{} % MetaPost code importing xcolor names \foreach \colname in {colvtx,colkappaf}{ % create command & MetaPost code \expandafter\xdef\csname\colname\endcsname{\noexpand\color{\colname}} % \newcommand\<colname> \convertcolorspec{named}{\colname}{rgb}\tmprgb % get rgb code \xdef\MPcolors{\MPcolors color \colname; \colname := (\tmprgb); } % add color name } % DEFINE fmfpicture ENVIRONMENT \usepackage{environ} % for \NewEnviron \NewEnviron{fmfpicture}[3]{% \begin{page} % to create standalone page \fmfframe(#1)(#2){ % padding (LT)(RB) \begin{fmffile}{feynmp-#3} % auxiliary files (use unp2ue name!) \fmfset{arrow_len}{10} % arrow length \fmfset{dash_len}{8} % dashes length \fmfset{wiggly_len}{11} % boson wavelength \fmfset{wiggly_slope}{65} % boson slope of waves \fmfcmd\MPcolors % define custom line colors in MetaPost \BODY % main code \end{fmffile} } \end{page} } % CUSTOM DRAW MACROS \def\drawprotons{ % skeleton \fmf{phantom}{ip1,vp1,op1} % predefine path for \fmfi \fmf{phantom}{ip2,vp2,op2} % predefine path for \fmfi \fmf{phantom,t=0.3}{vp1,ip1,ip2,vp2} % pull proton blobs to left \fmffreeze % incoming proton 1 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip1} \fmf{phantom}{ip1,vp1} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip1,__vp1) shifted (-5,-6)} %incoming proton 2 \fmfv{l=$\mathrm{p}^+$,l.a=180,l.d=8}{ip2} \fmf{phantom}{ip2,vp2} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 6)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5, 0)} \fmfi{fermion}{vpath (__ip2,__vp2) shifted (-5,-6)} } \def\drawdebris{ % fragmented proton X_1 \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),28) shifted (5, 4)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1), 4) shifted (5,-4)} % fragmented proton X_2 \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2), -4) shifted (5, 4)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-28) shifted (5,-4)} % proton blobs (draw after \fmfi!) \fmfblob{24}{vp1} \fmfblob{24}{vp2} } \begin{document} % PP COLLISION - Generic hard process \begin{fmfpicture}{-2,44}{0,44}{pp_hard} % padding (LTRB) \begin{fmfgraph*}(160,80) % dimensions (WH) % external vertices \fmfleft{ip2,ip1} \fmfright{op2,o,op1} \drawprotons \drawdebris \fmf{phantom,l.s=left,l.d=12,label=$p_1$}{ip1,vp1} \fmf{phantom,l.s=right,l.d=12,label=$p_2$}{ip2,vp2} % partons incoming from proton \fmf{fermion,l.d=3,l.s=right,label=$x_1p_1$}{vp1,v} \fmf{fermion,l.d=3,l.s=left,label=$x_2p_2$}{vp2,v} % hard interaction \fmf{phantom,t=1.4}{v,o} % predefine path path \fmfi \fmffreeze \fmfi{fermion}{vpath (__v,__o) rotatedaround(vloc(__v), 14) shifted (2, 2)} \fmfi{fermion}{vpath (__v,__o) rotatedaround(vloc(__v), 0) shifted (2, 0)} \fmfi{fermion}{vpath (__v,__o) rotatedaround(vloc(__v),-14) shifted (2,-2)} \fmfblob{18}{v} \end{fmfgraph*} \end{fmfpicture} % PP COLLISION - Drell-Yan \begin{fmfpicture}{-2,44}{19,44}{pp_hard_DY} % padding (LTRB) \begin{fmfgraph*}(160,80) % dimensions (WH) \fmfset{arrow_len}{10} % arrow length % external vertices \fmfleft{ip2,ip1} \fmfright{op2,f1,f2,op1} % add dummies 'd' for spacing \fmfshift{8 right}{f1,f2} \fmfshift{8 down}{f1} \fmfshift{8 up}{f2} \drawprotons \drawdebris % partons incoming from proton \fmf{fermion,t=1.6}{vp1,v} \fmf{fermion,t=1.6}{v,vp2} % hard process \fmf{boson,t=2,l.d=4,l.s=left,label=$\mathrm{Z}/\gamma^*$}{v,vf} \fmf{fermion,t=2}{f1,vf,f2} % labels \fmfv{l.a=-25,l.d=3,l=$\ell^+$}{f1} \fmfv{l.a=25,l.d=5,l=$\ell^-$}{f2} \end{fmfgraph*} \end{fmfpicture} % PP COLLISION - Higgs production through gluon-fusion \begin{fmfpicture}{-2,44}{22,44}{pp_hard_ggH} % padding (LTRB) \begin{fmfgraph*}(160,90) % dimensions (WH) \fmfset{curly_len}{7} % external vertices \fmfleft{ip2,ip1} \fmfright{op2,o,op1} \fmfshift{14 right}{o} \drawprotons \drawdebris % partons incoming from proton \fmf{gluon,t=1.4}{v1,vp1} \fmf{gluon,t=1.4}{vp2,v2} % hard process \fmf{fermion,t=0.3}{v1,v2} \fmf{fermion,t=1.7}{v2,vh,v1} \fmf{dashes,t=2.8}{vh,o} % vertices \fmfv{decor.shape=circle,decor.filled=full,decor.size=4,f=colkappaf, l.d=3,l.a=-65,l=\color{colkappaf}$\kappa_\mathrm{t}$}{vh} % labels \fmfv{l.a=0,l.d=3,l=H}{o} \end{fmfgraph*} \end{fmfpicture} % PP COLLISION - Higgs production through gluon-fusion \begin{fmfpicture}{-2,44}{36,44}{pp_hard_ggH_tautau} % padding (LTRB) \begin{fmfgraph*}(160,90) % dimensions (WH) \fmfset{curly_len}{7} % external vertices \fmfleft{ip2,ip1} \fmfright{op2,o2,o1,op1} \fmfshift{24 right}{o1,o2} \fmfshift{2 up}{o1} \fmfshift{2 down}{o2} \drawprotons \drawdebris % incoming parton \fmf{gluon,t=1.3}{v1,vp1} \fmf{gluon,t=1.3}{vp2,v2} % hard process \fmf{fermion,t=0.2}{v1,v2} \fmf{fermion,t=1.7}{v2,vh1,v1} \fmf{dashes,t=2.5,l.s=left,label=H}{vh1,vh2} % decay \fmf{fermion,t=2.3}{o2,vh2,o1} % vertices \fmfv{decor.shape=circle,decor.filled=full,decor.size=4,f=colkappaf, l.d=3,l.a=-65,l=\color{colkappaf}$\kappa_\mathrm{t}$}{vh1} \fmfv{decor.shape=circle,decor.filled=full,decor.size=4,f=colkappaf, l.d=3,l.a=-115,l=\color{colkappaf}$\kappa_\tau$\hspace{-2pt}}{vh2} % labels \fmfv{l.a=25,l.d=4,l=$\tau^-$}{o1} \fmfv{l.a=-20,l.d=4,l=\vspace{-2mm}\strut$\tau^-$}{o2} \end{fmfgraph*} \end{fmfpicture} % PP COLLISION - Single leptoquark production with decay \begin{fmfpicture}{-2,44}{25,44}{pp_hard_LQ_single} % padding (LTRB) \begin{fmfgraph*}(160,90) % dimensions (WH) \fmfset{curly_len}{7} % external vertices \fmfleft{ip2,ip1} \fmfright{op2,o3,o2,o1,op1} \fmfforce{(1.07w,.82h)}{o1} % exact placement \fmfforce{(1.07w,.52h)}{o2} % exact placement \fmfforce{(0.98w,.24h)}{o3} % exact placement % internal vertices (exact placement) \fmfforce{(.61w,.48h)}{v1} % exact placement \fmfforce{(.82w,.48h)}{v2} % exact placement \fmfforce{(.94w,.67h)}{lq} % exact placement \drawprotons \drawdebris % parton & photon incoming from proton \fmf{fermion,l.d=3,l.s=right,label=b}{vp1,v1} \fmf{gluon,l.d=4,l.s=left,label=$g$}{vp2,v1} \fmf{fermion,l.d=5,l.s=right,label=b}{v1,v2} % s-channel % LQ -> btau \fmf{dashes,t=2.9,l.d=3,l.s=left,label=LQ}{v2,lq} \fmf{fermion,t=1.7}{o2,lq,o1} \fmf{fermion,t=0.3}{v2,o3} % vertex \fmfv{d.shape=circle,d.fill=full,d.si=3,f=colvtx, l=\colvtx$\lambda$,l.d=5,l.a=66}{v1} % labels \fmfv{l.a=25,l.d=4,l=b}{o1} \fmfv{l.a=20,l.d=4,l=\vspace{-2mm}$\tau^+$}{o2} \fmfv{l.a=-20,l.d=5,l=$\tau^-$}{o3} \end{fmfgraph*} \end{fmfpicture} % PP COLLISION - Single leptoquark production (photon-induced) with decay \begin{fmfpicture}{-2,44}{16,28}{pp_hard_LQ_single_photon} % padding (LTRB) \begin{fmfgraph*}(160,90) % dimensions (WH) % external vertices \fmfleft{ip2,ip1} \fmfright{op2,o3,o2,o1,op1} \fmfshift{6 down}{o3} \fmfforce{(1.02w,.81h)}{o1} % exact placement \fmfforce{(1.02w,.51h)}{o2} % exact placement % internal vertices (exact placement) \fmfforce{(.65w,.66h)}{v1} % exact placement \fmfforce{(.65w,.33h)}{v2} % exact placement \fmfforce{(.88w,.66h)}{lq} % exact placement \drawprotons % fragmented proton X \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),28) shifted (5, 4)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),16) shifted (5, 0)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1), 4) shifted (5,-4)} % outgoing intact proton \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-12) shifted (9.3, 5)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-12) shifted (8.0,-1)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-12) shifted (6.7,-7)} % blobs (draw after \fmfi!) \fmfblob{24}{vp1} \fmfblob{24}{vp2} % parton & photon incoming from proton \fmf{fermion,l.d=3,l.s=right,label=b}{vp1,v1} \fmf{photon,l.d=3,l.s=left,label=$\gamma$}{vp2,v2} \fmf{fermion,l.d=4,l.s=right,label=$\tau$}{v1,v2} % t-channel % LQ -> btau \fmf{dashes,t=2.9,l.d=3,l.s=left,label=LQ}{v1,lq} \fmf{fermion,t=1.7}{o2,lq,o1} \fmf{fermion,t=0.3}{v2,o3} % vertex \fmfv{d.shape=circle,d.fill=full,d.si=3,f=colvtx, l=\colvtx$\lambda$,l.d=5,l.a=-45}{v1} % labels \fmfv{l=$\mathrm{p}^+$,l.a=-45,l.d=16}{op2} \fmfv{l.a=25,l.d=4,l=b}{o1} \fmfv{l.a=20,l.d=4,l=\vspace{-2mm}$\tau^+$}{o2} \fmfv{l.a=-20,l.d=5,l=$\tau^-$}{o3} \end{fmfgraph*} \end{fmfpicture} % PP COLLISION - Photon-induced ditau productions \begin{fmfpicture}{-2,44}{16,28}{pp_hard_LQ_gg2tautau} % padding (LTRB) \begin{fmfgraph*}(160,80) % dimensions (WH) % external vertices \fmfleft{ip2,ip1} \fmfright{op2,o2,d,o1,op1} \drawprotons % outgoing intact proton 1 \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),12) shifted (6.7, 7)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),12) shifted (8.0, 1)} \fmfi{fermion}{vpath (__vp1,__op1) rotatedaround(vloc(__vp1),12) shifted (9.3,-5)} % outgoing intact proton 2 \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-12) shifted (9.3, 5)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-12) shifted (8.0,-1)} \fmfi{fermion}{vpath (__vp2,__op2) rotatedaround(vloc(__vp2),-12) shifted (6.7,-7)} % blobs (draw after \fmfi!) \fmfblob{24}{vp1} \fmfblob{24}{vp2} % incoming photons from protons \fmfforce{0.06[vloc(__vp1),vloc(__vp2)]}{q1} % exact placement \fmfforce{0.06[vloc(__vp2),vloc(__vp1)]}{q2} % exact placement \fmf{photon,l.d=6,l.s=right,label=$\gamma$\hspace{-4pt}}{q1,v1} \fmf{photon,l.d=5,l.s=left,label=$\gamma$\hspace{-4pt}}{q2,v2} \fmf{fermion,l.d=4,l.s=left,label=$\tau$}{v2,v1} % t-channel % LQ -> btau \fmf{fermion,t=1.15}{v1,o1} \fmf{fermion,t=1.15}{o2,v2} % vertex \fmfv{d.shape=circle,d.fill=full,d.si=3,f=colvtx, l=\colvtx\hspace{6pt}$a_\tau$,l.d=4,l.a=75}{v1} \fmfv{d.shape=circle,d.fill=full,d.si=3,f=colvtx, l=\colvtx\hspace{6pt}$a_\tau$,l.d=5,l.a=-70}{v2} % labels \fmfv{l=$\mathrm{p}^+$,l.a=50,l.d=18}{op1} \fmfv{l=$\mathrm{p}^+$,l.a=-45,l.d=16}{op2} \fmfv{l.a=25,l.d=4,l=$\tau^-$}{o1} \fmfv{l.a=-20,l.d=5,l=$\tau^+$}{o2} \end{fmfgraph*} \end{fmfpicture} \end{document}
Click to download: pp_hard.tex • pp_hard.pdf
Open in Overleaf: pp_hard.tex.