FeynmanDiagrams.jl/notebooks/diagram_generation.ipynb

216 lines
35 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: Method definition number_particles(QEDbase.AbstractProcessDefinition, DIR, PT) where {DIR<:QEDbase.ParticleDirection, PT<:QEDbase.AbstractParticleType} in module QEDbase at /home/antonr/.julia/packages/QEDbase/gWHxL/src/interfaces/process.jl:208 overwritten in module FeynmanDiagramGenerator at /home/antonr/repos/FeynmanDiagramGenerator/src/QEDprocesses_patch.jl:23.\n",
"ERROR: Method overwriting is not permitted during Module precompilation. Use `__precompile__(false)` to opt-out of precompilation.\n"
]
}
],
"source": [
"using FeynmanDiagramGenerator"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"712-element Vector{VirtualParticle{GenericQEDProcess{Tuple{Photon, Electron, Electron, Positron, Positron}, Tuple{Photon, Photon, Electron, Electron, Positron, Positron}}, PT, 5, 6} where PT<:AbstractParticleType}:\n",
" photon: \t00000 | 000101\n",
" photon: \t00000 | 000110\n",
" photon: \t00000 | 001001\n",
" photon: \t00000 | 001010\n",
" electron: \t00000 | 010001\n",
" electron: \t00000 | 010010\n",
" positron: \t00000 | 010100\n",
" positron: \t00000 | 011000\n",
" electron: \t00000 | 100001\n",
" electron: \t00000 | 100010\n",
" ⋮\n",
" photon: \t11101 | 000100\n",
" photon: \t11101 | 001000\n",
" electron: \t11101 | 010000\n",
" electron: \t11101 | 100000\n",
" photon: \t11110 | 000100\n",
" photon: \t11110 | 001000\n",
" electron: \t11110 | 010000\n",
" electron: \t11110 | 100000\n",
" photon: \t11111 | 000000"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"proc = GenericQEDProcess(1, 2, 2, 2, 2, 2)\n",
"all_particles = Set()\n",
"for fd in feynman_diagrams(proc) \n",
" push!(all_particles, virtual_particles(proc, fd)...)\n",
"end\n",
"all_particles = sort([all_particles...])\n",
"display(all_particles)\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"pseudo_particles = FeynmanDiagramGenerator._pseudo_virtual_particles(proc, first(feynman_diagrams(proc)))\n",
"\n",
"pairs = Dict{VirtualParticle, Vector{Tuple{VirtualParticle, VirtualParticle}}}()\n",
"for p in all_particles\n",
" pairs[p] = particle_pairs(p, [all_particles..., pseudo_particles...])\n",
" #println(\"$p has $(length(pairs[p])) children: $(pairs[p])\")\n",
"end\n",
"\n",
"#pairs"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"photons: VirtualParticle{GenericQEDProcess{Tuple{Photon, Electron, Electron, Positron, Positron}, Tuple{Photon, Photon, Electron, Electron, Positron, Positron}}, PT, 5, 6} where PT<:AbstractParticleType[photon: \t00000 | 000101, photon: \t00000 | 000110, photon: \t00000 | 001001, photon: \t00000 | 001010, photon: \t00001 | 000001, photon: \t00001 | 000010, photon: \t00010 | 000001, photon: \t00010 | 000010, photon: \t00100 | 000100, photon: \t00100 | 001000, photon: \t00101 | 000000, photon: \t00110 | 000000, photon: \t01000 | 000100, photon: \t01000 | 001000, photon: \t01001 | 000000, photon: \t01010 | 000000, photon: \t00000 | 010101, photon: \t00000 | 010110, photon: \t00000 | 011001, photon: \t00000 | 011010, photon: \t00000 | 100101, photon: \t00000 | 100110, photon: \t00000 | 101001, photon: \t00000 | 101010, photon: \t00001 | 010001, photon: \t00001 | 010010, photon: \t00001 | 100001, photon: \t00001 | 100010, photon: \t00010 | 010001, photon: \t00010 | 010010, photon: \t00010 | 100001, photon: \t00010 | 100010, photon: \t00100 | 010100, photon: \t00100 | 011000, photon: \t00100 | 100100, photon: \t00100 | 101000, photon: \t00101 | 010000, photon: \t00101 | 100000, photon: \t00110 | 010000, photon: \t00110 | 100000, photon: \t01000 | 010100, photon: \t01000 | 011000, photon: \t01000 | 100100, photon: \t01000 | 101000, photon: \t01001 | 010000, photon: \t01001 | 100000, photon: \t01010 | 010000, photon: \t01010 | 100000, photon: \t10000 | 000101, photon: \t10000 | 000110, photon: \t10000 | 001001, photon: \t10000 | 001010, photon: \t10001 | 000001, photon: \t10001 | 000010, photon: \t10010 | 000001, photon: \t10010 | 000010, photon: \t10100 | 000100, photon: \t10100 | 001000, photon: \t10101 | 000000, photon: \t10110 | 000000, photon: \t11000 | 000100, photon: \t11000 | 001000, photon: \t11001 | 000000, photon: \t11010 | 000000, photon: \t00000 | 001111, photon: \t00000 | 110101, photon: \t00000 | 110110, photon: \t00000 | 111001, photon: \t00000 | 111010, photon: \t00001 | 000111, photon: \t00001 | 001011, photon: \t00001 | 110001, photon: \t00001 | 110010, photon: \t00010 | 000111, photon: \t00010 | 001011, photon: \t00010 | 110001, photon: \t00010 | 110010, photon: \t00011 | 000011, photon: \t00100 | 001101, photon: \t00100 | 001110, photon: \t00100 | 110100, photon: \t00100 | 111000, photon: \t00101 | 000101, photon: \t00101 | 000110, photon: \t00101 | 001001, photon: \t00101 | 001010, photon: \t00101 | 110000, photon: \t00110 | 000101, photon: \t00110 | 000110, photon: \t00110 | 001001, photon: \t00110 | 001010, photon: \t00110 | 110000, photon: \t00111 | 000001, photon: \t00111 | 000010, photon: \t01000 | 001101, photon: \t01000 | 001110, photon: \t01000 | 110100, photon: \t01000 | 111000, photon: \t01001 | 000101, photon: \t01001 | 000110, photon: \t01001 | 001001, photon: \t01001 | 001010, photon: \t01001 | 110000, photon: \t01010 | 000101, photon: \t01010 | 000110, photon: \t01010 | 001001, photon: \t01010 | 001010, photon: \t01010 | 110000, photon: \t01011 | 000001, photon: \t01011 | 000010, photon: \t01100 | 001100, photon: \t01101 | 000100, photon: \t01101 | 001000, photon: \t01110 | 000100, photon: \t01110 | 001000, photon: \t01111 | 000000, photon: \t10000 | 010101, photon: \t10000 | 010110, photon: \t10000 | 011001, photon: \t10000 | 011010, photon: \t10000 | 100101, photon: \t10000 | 100110, photon: \t10000 | 101001, photon: \t10000 | 101010, photon: \t10001 | 010001, photon: \t10001 | 010010, photon: \t10001 | 100001, photon: \t10001 | 100010, photon: \t10010 | 010001, photon: \t10010 | 010010, photon: \t10010 | 100001, photon: \t10010 | 100010, photon: \t10100 | 010100, photon: \t10100 | 011000, photon: \t10100 | 100100, photon: \t10100 | 101000, photon: \t10101 | 010000, photon: \t10101 | 100000, photon: \t10110 | 010000, photon: \t10110 | 100000, photon: \t11000 | 010100, photon: \t11000 | 011000, photon: \t11000 | 100100, photon: \t11000 | 101000, photon: \t11001 | 010000, photon: \t11001 | 100000, photon: \t11010 | 010000, photon: \t11010 | 100000, photon: \t00000 | 011111, photon: \
"electrons: VirtualParticle{GenericQEDProcess{Tuple{Photon, Electron, Electron, Positron, Positron}, Tuple{Photon, Photon, Electron, Electron, Positron, Positron}}, PT, 5, 6} where PT<:AbstractParticleType[electron: \t00000 | 010001, electron: \t00000 | 010010, electron: \t00000 | 100001, electron: \t00000 | 100010, electron: \t00100 | 010000, electron: \t00100 | 100000, electron: \t01000 | 010000, electron: \t01000 | 100000, electron: \t10000 | 000001, electron: \t10000 | 000010, electron: \t10100 | 000000, electron: \t11000 | 000000, electron: \t00000 | 000111, electron: \t00000 | 001011, electron: \t00000 | 110001, electron: \t00000 | 110010, electron: \t00001 | 000011, electron: \t00010 | 000011, electron: \t00100 | 000101, electron: \t00100 | 000110, electron: \t00100 | 001001, electron: \t00100 | 001010, electron: \t00100 | 110000, electron: \t00101 | 000001, electron: \t00101 | 000010, electron: \t00110 | 000001, electron: \t00110 | 000010, electron: \t01000 | 000101, electron: \t01000 | 000110, electron: \t01000 | 001001, electron: \t01000 | 001010, electron: \t01000 | 110000, electron: \t01001 | 000001, electron: \t01001 | 000010, electron: \t01010 | 000001, electron: \t01010 | 000010, electron: \t01100 | 000100, electron: \t01100 | 001000, electron: \t01101 | 000000, electron: \t01110 | 000000, electron: \t10000 | 010001, electron: \t10000 | 010010, electron: \t10000 | 100001, electron: \t10000 | 100010, electron: \t10100 | 010000, electron: \t10100 | 100000, electron: \t11000 | 010000, electron: \t11000 | 100000, electron: \t00000 | 010111, electron: \t00000 | 011011, electron: \t00000 | 100111, electron: \t00000 | 101011, electron: \t00001 | 010011, electron: \t00001 | 100011, electron: \t00010 | 010011, electron: \t00010 | 100011, electron: \t00100 | 010101, electron: \t00100 | 010110, electron: \t00100 | 011001, electron: \t00100 | 011010, electron: \t00100 | 100101, electron: \t00100 | 100110, electron: \t00100 | 101001, electron: \t00100 | 101010, electron: \t00101 | 010001, electron: \t00101 | 010010, electron: \t00101 | 100001, electron: \t00101 | 100010, electron: \t00110 | 010001, electron: \t00110 | 010010, electron: \t00110 | 100001, electron: \t00110 | 100010, electron: \t01000 | 010101, electron: \t01000 | 010110, electron: \t01000 | 011001, electron: \t01000 | 011010, electron: \t01000 | 100101, electron: \t01000 | 100110, electron: \t01000 | 101001, electron: \t01000 | 101010, electron: \t01001 | 010001, electron: \t01001 | 010010, electron: \t01001 | 100001, electron: \t01001 | 100010, electron: \t01010 | 010001, electron: \t01010 | 010010, electron: \t01010 | 100001, electron: \t01010 | 100010, electron: \t01100 | 010100, electron: \t01100 | 011000, electron: \t01100 | 100100, electron: \t01100 | 101000, electron: \t01101 | 010000, electron: \t01101 | 100000, electron: \t01110 | 010000, electron: \t01110 | 100000, electron: \t10000 | 000111, electron: \t10000 | 001011, electron: \t10000 | 110001, electron: \t10000 | 110010, electron: \t10001 | 000011, electron: \t10010 | 000011, electron: \t10100 | 000101, electron: \t10100 | 000110, electron: \t10100 | 001001, electron: \t10100 | 001010, electron: \t10100 | 110000, electron: \t10101 | 000001, electron: \t10101 | 000010, electron: \t10110 | 000001, electron: \t10110 | 000010, electron: \t11000 | 000101, electron: \t11000 | 000110, electron: \t11000 | 001001, electron: \t11000 | 001010, electron: \t11000 | 110000, electron: \t11001 | 000001, electron: \t11001 | 000010, electron: \t11010 | 000001, electron: \t11010 | 000010, electron: \t11100 | 000100, electron: \t11100 | 001000, electron: \t11101 | 000000, electron: \t11110 | 000000, electron: \t00000 | 110111, electron: \t00000 | 111011, electron: \t00001 | 110011, electron: \t00010 | 110011, electron: \t00100 | 001111, electron: \t00100 | 110101, electron: \t00100 | 110110, electron: \t00100 | 111001, electron: \t00100 | 111010, electron: \t00101 | 000111, electron: \t00101 | 001011, electron: \t00101 | 110001, electron: \t00101 | 110010, electron: \t00110 | 000111, electron: \t00110 |
"positron: VirtualParticle{GenericQEDProcess{Tuple{Photon, Electron, Electron, Positron, Positron}, Tuple{Photon, Photon, Electron, Electron, Positron, Positron}}, PT, 5, 6} where PT<:AbstractParticleType[positron: \t00000 | 010100, positron: \t00000 | 011000, positron: \t00000 | 100100, positron: \t00000 | 101000, positron: \t00001 | 010000, positron: \t00001 | 100000, positron: \t00010 | 010000, positron: \t00010 | 100000, positron: \t10000 | 000100, positron: \t10000 | 001000, positron: \t10001 | 000000, positron: \t10010 | 000000, positron: \t00000 | 001101, positron: \t00000 | 001110, positron: \t00000 | 110100, positron: \t00000 | 111000, positron: \t00001 | 000101, positron: \t00001 | 000110, positron: \t00001 | 001001, positron: \t00001 | 001010, positron: \t00001 | 110000, positron: \t00010 | 000101, positron: \t00010 | 000110, positron: \t00010 | 001001, positron: \t00010 | 001010, positron: \t00010 | 110000, positron: \t00011 | 000001, positron: \t00011 | 000010, positron: \t00100 | 001100, positron: \t00101 | 000100, positron: \t00101 | 001000, positron: \t00110 | 000100, positron: \t00110 | 001000, positron: \t00111 | 000000, positron: \t01000 | 001100, positron: \t01001 | 000100, positron: \t01001 | 001000, positron: \t01010 | 000100, positron: \t01010 | 001000, positron: \t01011 | 000000, positron: \t10000 | 010100, positron: \t10000 | 011000, positron: \t10000 | 100100, positron: \t10000 | 101000, positron: \t10001 | 010000, positron: \t10001 | 100000, positron: \t10010 | 010000, positron: \t10010 | 100000, positron: \t00000 | 011101, positron: \t00000 | 011110, positron: \t00000 | 101101, positron: \t00000 | 101110, positron: \t00001 | 010101, positron: \t00001 | 010110, positron: \t00001 | 011001, positron: \t00001 | 011010, positron: \t00001 | 100101, positron: \t00001 | 100110, positron: \t00001 | 101001, positron: \t00001 | 101010, positron: \t00010 | 010101, positron: \t00010 | 010110, positron: \t00010 | 011001, positron: \t00010 | 011010, positron: \t00010 | 100101, positron: \t00010 | 100110, positron: \t00010 | 101001, positron: \t00010 | 101010, positron: \t00011 | 010001, positron: \t00011 | 010010, positron: \t00011 | 100001, positron: \t00011 | 100010, positron: \t00100 | 011100, positron: \t00100 | 101100, positron: \t00101 | 010100, positron: \t00101 | 011000, positron: \t00101 | 100100, positron: \t00101 | 101000, positron: \t00110 | 010100, positron: \t00110 | 011000, positron: \t00110 | 100100, positron: \t00110 | 101000, positron: \t00111 | 010000, positron: \t00111 | 100000, positron: \t01000 | 011100, positron: \t01000 | 101100, positron: \t01001 | 010100, positron: \t01001 | 011000, positron: \t01001 | 100100, positron: \t01001 | 101000, positron: \t01010 | 010100, positron: \t01010 | 011000, positron: \t01010 | 100100, positron: \t01010 | 101000, positron: \t01011 | 010000, positron: \t01011 | 100000, positron: \t10000 | 001101, positron: \t10000 | 001110, positron: \t10000 | 110100, positron: \t10000 | 111000, positron: \t10001 | 000101, positron: \t10001 | 000110, positron: \t10001 | 001001, positron: \t10001 | 001010, positron: \t10001 | 110000, positron: \t10010 | 000101, positron: \t10010 | 000110, positron: \t10010 | 001001, positron: \t10010 | 001010, positron: \t10010 | 110000, positron: \t10011 | 000001, positron: \t10011 | 000010, positron: \t10100 | 001100, positron: \t10101 | 000100, positron: \t10101 | 001000, positron: \t10110 | 000100, positron: \t10110 | 001000, positron: \t10111 | 000000, positron: \t11000 | 001100, positron: \t11001 | 000100, positron: \t11001 | 001000, positron: \t11010 | 000100, positron: \t11010 | 001000, positron: \t11011 | 000000, positron: \t00000 | 111101, positron: \t00000 | 111110, positron: \t00001 | 001111, positron: \t00001 | 110101, positron: \t00001 | 110110, positron: \t00001 | 111001, positron: \t00001 | 111010, positron: \t00010 | 001111, positron: \t00010 | 110101, positron: \t00010 | 110110, positron: \t00010 | 111001, positron: \t00010 | 111010, positron: \t00011 | 000111, positron: \t00011 | 001011, positron: \t00011 |
"i photons: VirtualParticle{GenericQEDProcess{Tuple{Photon, Electron, Electron, Positron, Positron}, Tuple{Photon, Photon, Electron, Electron, Positron, Positron}}, Photon, 5, 6}[photon: \t11111 | 111010, photon: \t11111 | 111001, photon: \t11111 | 110110, photon: \t11111 | 110101, photon: \t11110 | 111110, photon: \t11110 | 111101, photon: \t11101 | 111110, photon: \t11101 | 111101, photon: \t11011 | 111011, photon: \t11011 | 110111, photon: \t11010 | 111111, photon: \t11001 | 111111, photon: \t10111 | 111011, photon: \t10111 | 110111, photon: \t10110 | 111111, photon: \t10101 | 111111, photon: \t11111 | 101010, photon: \t11111 | 101001, photon: \t11111 | 100110, photon: \t11111 | 100101, photon: \t11111 | 011010, photon: \t11111 | 011001, photon: \t11111 | 010110, photon: \t11111 | 010101, photon: \t11110 | 101110, photon: \t11110 | 101101, photon: \t11110 | 011110, photon: \t11110 | 011101, photon: \t11101 | 101110, photon: \t11101 | 101101, photon: \t11101 | 011110, photon: \t11101 | 011101, photon: \t11011 | 101011, photon: \t11011 | 100111, photon: \t11011 | 011011, photon: \t11011 | 010111, photon: \t11010 | 101111, photon: \t11010 | 011111, photon: \t11001 | 101111, photon: \t11001 | 011111, photon: \t10111 | 101011, photon: \t10111 | 100111, photon: \t10111 | 011011, photon: \t10111 | 010111, photon: \t10110 | 101111, photon: \t10110 | 011111, photon: \t10101 | 101111, photon: \t10101 | 011111, photon: \t01111 | 111010, photon: \t01111 | 111001, photon: \t01111 | 110110, photon: \t01111 | 110101, photon: \t01110 | 111110, photon: \t01110 | 111101, photon: \t01101 | 111110, photon: \t01101 | 111101, photon: \t01011 | 111011, photon: \t01011 | 110111, photon: \t01010 | 111111, photon: \t01001 | 111111, photon: \t00111 | 111011, photon: \t00111 | 110111, photon: \t00110 | 111111, photon: \t00101 | 111111, photon: \t11111 | 110000, photon: \t11111 | 001010, photon: \t11111 | 001001, photon: \t11111 | 000110, photon: \t11111 | 000101, photon: \t11110 | 111000, photon: \t11110 | 110100, photon: \t11110 | 001110, photon: \t11110 | 001101, photon: \t11101 | 111000, photon: \t11101 | 110100, photon: \t11101 | 001110, photon: \t11101 | 001101, photon: \t11100 | 111100, photon: \t11011 | 110010, photon: \t11011 | 110001, photon: \t11011 | 001011, photon: \t11011 | 000111, photon: \t11010 | 111010, photon: \t11010 | 111001, photon: \t11010 | 110110, photon: \t11010 | 110101, photon: \t11010 | 001111, photon: \t11001 | 111010, photon: \t11001 | 111001, photon: \t11001 | 110110, photon: \t11001 | 110101, photon: \t11001 | 001111, photon: \t11000 | 111110, photon: \t11000 | 111101, photon: \t10111 | 110010, photon: \t10111 | 110001, photon: \t10111 | 001011, photon: \t10111 | 000111, photon: \t10110 | 111010, photon: \t10110 | 111001, photon: \t10110 | 110110, photon: \t10110 | 110101, photon: \t10110 | 001111, photon: \t10101 | 111010, photon: \t10101 | 111001, photon: \t10101 | 110110, photon: \t10101 | 110101, photon: \t10101 | 001111, photon: \t10100 | 111110, photon: \t10100 | 111101, photon: \t10011 | 110011, photon: \t10010 | 111011, photon: \t10010 | 110111, photon: \t10001 | 111011, photon: \t10001 | 110111, photon: \t10000 | 111111, photon: \t01111 | 101010, photon: \t01111 | 101001, photon: \t01111 | 100110, photon: \t01111 | 100101, photon: \t01111 | 011010, photon: \t01111 | 011001, photon: \t01111 | 010110, photon: \t01111 | 010101, photon: \t01110 | 101110, photon: \t01110 | 101101, photon: \t01110 | 011110, photon: \t01110 | 011101, photon: \t01101 | 101110, photon: \t01101 | 101101, photon: \t01101 | 011110, photon: \t01101 | 011101, photon: \t01011 | 101011, photon: \t01011 | 100111, photon: \t01011 | 011011, photon: \t01011 | 010111, photon: \t01010 | 101111, photon: \t01010 | 011111, photon: \t01001 | 101111, photon: \t01001 | 011111, photon: \t00111 | 101011, photon: \t00111 | 100111, photon: \t00111 | 011011, photon: \t00111 | 010111, photon: \t00110 | 101111, photon: \t00110 | 011111, photon: \t00101 | 101111, photon: \t00101 | 011111, photon: \t11111 | 100000, photon: \t11111 | 010000, photon: \t
]
},
{
"data": {
"text/plain": [
"7248-element Vector{Tuple{VirtualParticle, VirtualParticle, VirtualParticle}}:\n",
" (photon: \t11111 | 000000, electron: \t00000 | 101011, positron: \t00000 | 010100)\n",
" (photon: \t11110 | 001000, electron: \t00001 | 100011, positron: \t00000 | 010100)\n",
" (photon: \t11101 | 001000, electron: \t00010 | 100011, positron: \t00000 | 010100)\n",
" (photon: \t11011 | 000010, electron: \t00100 | 101001, positron: \t00000 | 010100)\n",
" (photon: \t11011 | 000001, electron: \t00100 | 101010, positron: \t00000 | 010100)\n",
" (photon: \t11010 | 001010, electron: \t00101 | 100001, positron: \t00000 | 010100)\n",
" (photon: \t11010 | 001001, electron: \t00101 | 100010, positron: \t00000 | 010100)\n",
" (photon: \t11001 | 001010, electron: \t00110 | 100001, positron: \t00000 | 010100)\n",
" (photon: \t11001 | 001001, electron: \t00110 | 100010, positron: \t00000 | 010100)\n",
" (photon: \t10111 | 000010, electron: \t01000 | 101001, positron: \t00000 | 010100)\n",
" ⋮\n",
" (photon: \t00100 | 101101, electron: \t11001 | 010010, positron: \t00010 | 000000)\n",
" (photon: \t00100 | 011110, electron: \t11001 | 100001, positron: \t00010 | 000000)\n",
" (photon: \t00100 | 011101, electron: \t11001 | 100010, positron: \t00010 | 000000)\n",
" (photon: \t00001 | 101011, electron: \t11100 | 010100, positron: \t00010 | 000000)\n",
" (photon: \t00001 | 100111, electron: \t11100 | 011000, positron: \t00010 | 000000)\n",
" (photon: \t00001 | 011011, electron: \t11100 | 100100, positron: \t00010 | 000000)\n",
" (photon: \t00001 | 010111, electron: \t11100 | 101000, positron: \t00010 | 000000)\n",
" (photon: \t00000 | 101111, electron: \t11101 | 010000, positron: \t00010 | 000000)\n",
" (photon: \t00000 | 011111, electron: \t11101 | 100000, positron: \t00010 | 000000)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"triples = FeynmanDiagramGenerator.total_particle_triples(all_particles)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"s: 2280960, should be: 2280960\n",
"number of triples: 7248\n"
]
},
{
"data": {
"text/plain": [
"7248-element Vector{Tuple{VirtualParticle, VirtualParticle, VirtualParticle}}:\n",
" (photon: \t00000 | 010000, electron: \t00100 | 001111, positron: \t11011 | 100000)\n",
" (photon: \t00000 | 010000, electron: \t00101 | 000111, positron: \t11010 | 101000)\n",
" (photon: \t00000 | 010000, electron: \t00101 | 001011, positron: \t11010 | 100100)\n",
" (photon: \t00000 | 010000, electron: \t00110 | 000111, positron: \t11001 | 101000)\n",
" (photon: \t00000 | 010000, electron: \t00110 | 001011, positron: \t11001 | 100100)\n",
" (photon: \t00000 | 010000, electron: \t00111 | 000011, positron: \t11000 | 101100)\n",
" (photon: \t00000 | 010000, electron: \t01000 | 001111, positron: \t10111 | 100000)\n",
" (photon: \t00000 | 010000, electron: \t01001 | 000111, positron: \t10110 | 101000)\n",
" (photon: \t00000 | 010000, electron: \t01001 | 001011, positron: \t10110 | 100100)\n",
" (photon: \t00000 | 010000, electron: \t01010 | 000111, positron: \t10101 | 101000)\n",
" ⋮\n",
" (photon: \t11111 | 000000, electron: \t00000 | 001011, positron: \t00000 | 110100)\n",
" (photon: \t11111 | 000000, electron: \t00000 | 110001, positron: \t00000 | 001110)\n",
" (photon: \t11111 | 000000, electron: \t00000 | 110010, positron: \t00000 | 001101)\n",
" (photon: \t11111 | 000000, electron: \t00000 | 010111, positron: \t00000 | 101000)\n",
" (photon: \t11111 | 000000, electron: \t00000 | 011011, positron: \t00000 | 100100)\n",
" (photon: \t11111 | 000000, electron: \t00000 | 100111, positron: \t00000 | 011000)\n",
" (photon: \t11111 | 000000, electron: \t00000 | 101011, positron: \t00000 | 010100)\n",
" (photon: \t11111 | 000000, electron: \t00000 | 110111, positron: \t00000 | 001000)\n",
" (photon: \t11111 | 000000, electron: \t00000 | 111011, positron: \t00000 | 000100)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"function n(vp::VirtualParticle)\n",
" if !haskey(pairs, vp)\n",
" return 1\n",
" end\n",
" s = 0\n",
" for (l, r) in pairs[vp]\n",
" s += n(l) * n(r)\n",
" end\n",
" return s\n",
"end\n",
"\n",
"n(last(all_particles))\n",
"s = 0\n",
"for (ph, e, p) in triples\n",
" s += n(ph) * n(e) * n(p)\n",
"end\n",
"\n",
"println(\"s: $s, should be: $(length(feynman_diagrams(proc)))\")\n",
"println(\"number of triples: $(length(triples))\")\n",
"\n",
"sort(triples)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.10.4",
"language": "julia",
"name": "julia-1.10"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.10.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}