{ "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: \t00000 | 101111, photon: \t00001 | 010111, photon: \t00001 | 011011, photon: \t00001 | 100111, photon: \t00001 | 101011, photon: \t00010 | 010111, photon: \t00010 | 011011, photon: \t00010 | 100111, photon: \t00010 | 101011, photon: \t00011 | 010011, photon: \t00011 | 100011, photon: \t00100 | 011101, photon: \t00100 | 011110, photon: \t00100 | 101101, photon: \t00100 | 101110, photon: \t00101 | 010101, photon: \t00101 | 010110, photon: \t00101 | 011001, photon: \t00101 | 011010, photon: \t00101 | 100101, photon: \t00101 | 100110, photon: \t00101 | 101001, photon: \t00101 | 101010, photon: \t00110 | 010101, photon: \t00110 | 010110, photon: \t00110 | 011001, photon: \t00110 | 011010, photon: \t00110 | 100101, photon: \t00110 | 100110, photon: \t00110 | 101001, photon: \t00110 | 101010, photon: \t00111 | 010001, photon: \t00111 | 010010, photon: \t00111 | 100001, photon: \t00111 | 100010, photon: \t01000 | 011101, photon: \t01000 | 011110, photon: \t01000 | 101101, photon: \t01000 | 101110, photon: \t01001 | 010101, photon: \t01001 | 010110, photon: \t01001 | 011001, photon: \t01001 | 011010, photon: \t01001 | 100101, photon: \t01001 | 100110, photon: \t01001 | 101001, photon: \t01001 | 101010, photon: \t01010 | 010101, photon: \t01010 | 010110, photon: \t01010 | 011001, photon: \t01010 | 011010, photon: \t01010 | 100101, photon: \t01010 | 100110, photon: \t01010 | 101001, photon: \t01010 | 101010, photon: \t01011 | 010001, photon: \t01011 | 010010, photon: \t01011 | 100001, photon: \t01011 | 100010, photon: \t01100 | 011100, photon: \t01100 | 101100, photon: \t01101 | 010100, photon: \t01101 | 011000, photon: \t01101 | 100100, photon: \t01101 | 101000, photon: \t01110 | 010100, photon: \t01110 | 011000, photon: \t01110 | 100100, photon: \t01110 | 101000, photon: \t01111 | 010000, photon: \t01111 | 100000, photon: \t10000 | 001111, photon: \t10000 | 110101, photon: \t10000 | 110110, photon: \t10000 | 111001, photon: \t10000 | 111010, photon: \t10001 | 000111, photon: \t10001 | 001011, photon: \t10001 | 110001, photon: \t10001 | 110010, photon: \t10010 | 000111, photon: \t10010 | 001011, photon: \t10010 | 110001, photon: \t10010 | 110010, photon: \t10011 | 000011, photon: \t10100 | 001101, photon: \t10100 | 001110, photon: \t10100 | 110100, photon: \t10100 | 111000, photon: \t10101 | 000101, photon: \t10101 | 000110, photon: \t10101 | 001001, photon: \t10101 | 001010, photon: \t10101 | 110000, photon: \t10110 | 000101, photon: \t10110 | 000110, photon: \t10110 | 001001, photon: \t10110 | 001010, photon: \t10110 | 110000, photon: \t10111 | 000001, photon: \t10111 | 000010, photon: \t11000 | 001101, photon: \t11000 | 001110, photon: \t11000 | 110100, photon: \t11000 | 111000, photon: \t11001 | 000101, photon: \t11001 | 000110, photon: \t11001 | 001001, photon: \t11001 | 001010, photon: \t11001 | 110000, photon: \t11010 | 000101, photon: \t11010 | 000110, photon: \t11010 | 001001, photon: \t11010 | 001010, photon: \t11010 | 110000, photon: \t11011 | 000001, photon: \t11011 | 000010, photon: \t11100 | 001100, photon: \t11101 | 000100, photon: \t11101 | 001000, photon: \t11110 | 000100, photon: \t11110 | 001000, photon: \t11111 | 000000, photon: \t00000 | 010000, photon: \t00000 | 100000, photon: \t10000 | 000000]\n", "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 | 001011, electron: \t00110 | 110001, electron: \t00110 | 110010, electron: \t00111 | 000011, electron: \t01000 | 001111, electron: \t01000 | 110101, electron: \t01000 | 110110, electron: \t01000 | 111001, electron: \t01000 | 111010, electron: \t01001 | 000111, electron: \t01001 | 001011, electron: \t01001 | 110001, electron: \t01001 | 110010, electron: \t01010 | 000111, electron: \t01010 | 001011, electron: \t01010 | 110001, electron: \t01010 | 110010, electron: \t01011 | 000011, electron: \t01100 | 001101, electron: \t01100 | 001110, electron: \t01100 | 110100, electron: \t01100 | 111000, electron: \t01101 | 000101, electron: \t01101 | 000110, electron: \t01101 | 001001, electron: \t01101 | 001010, electron: \t01101 | 110000, electron: \t01110 | 000101, electron: \t01110 | 000110, electron: \t01110 | 001001, electron: \t01110 | 001010, electron: \t01110 | 110000, electron: \t01111 | 000001, electron: \t01111 | 000010, electron: \t10000 | 010111, electron: \t10000 | 011011, electron: \t10000 | 100111, electron: \t10000 | 101011, electron: \t10001 | 010011, electron: \t10001 | 100011, electron: \t10010 | 010011, electron: \t10010 | 100011, electron: \t10100 | 010101, electron: \t10100 | 010110, electron: \t10100 | 011001, electron: \t10100 | 011010, electron: \t10100 | 100101, electron: \t10100 | 100110, electron: \t10100 | 101001, electron: \t10100 | 101010, electron: \t10101 | 010001, electron: \t10101 | 010010, electron: \t10101 | 100001, electron: \t10101 | 100010, electron: \t10110 | 010001, electron: \t10110 | 010010, electron: \t10110 | 100001, electron: \t10110 | 100010, electron: \t11000 | 010101, electron: \t11000 | 010110, electron: \t11000 | 011001, electron: \t11000 | 011010, electron: \t11000 | 100101, electron: \t11000 | 100110, electron: \t11000 | 101001, electron: \t11000 | 101010, electron: \t11001 | 010001, electron: \t11001 | 010010, electron: \t11001 | 100001, electron: \t11001 | 100010, electron: \t11010 | 010001, electron: \t11010 | 010010, electron: \t11010 | 100001, electron: \t11010 | 100010, electron: \t11100 | 010100, electron: \t11100 | 011000, electron: \t11100 | 100100, electron: \t11100 | 101000, electron: \t11101 | 010000, electron: \t11101 | 100000, electron: \t11110 | 010000, electron: \t11110 | 100000, electron: \t00000 | 000001, electron: \t00000 | 000010, electron: \t00100 | 000000, electron: \t01000 | 000000]\n", "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 | 110001, positron: \t00011 | 110010, positron: \t00100 | 111100, positron: \t00101 | 001101, positron: \t00101 | 001110, positron: \t00101 | 110100, positron: \t00101 | 111000, positron: \t00110 | 001101, positron: \t00110 | 001110, positron: \t00110 | 110100, positron: \t00110 | 111000, positron: \t00111 | 000101, positron: \t00111 | 000110, positron: \t00111 | 001001, positron: \t00111 | 001010, positron: \t00111 | 110000, positron: \t01000 | 111100, positron: \t01001 | 001101, positron: \t01001 | 001110, positron: \t01001 | 110100, positron: \t01001 | 111000, positron: \t01010 | 001101, positron: \t01010 | 001110, positron: \t01010 | 110100, positron: \t01010 | 111000, positron: \t01011 | 000101, positron: \t01011 | 000110, positron: \t01011 | 001001, positron: \t01011 | 001010, positron: \t01011 | 110000, positron: \t01101 | 001100, positron: \t01110 | 001100, positron: \t01111 | 000100, positron: \t01111 | 001000, positron: \t10000 | 011101, positron: \t10000 | 011110, positron: \t10000 | 101101, positron: \t10000 | 101110, positron: \t10001 | 010101, positron: \t10001 | 010110, positron: \t10001 | 011001, positron: \t10001 | 011010, positron: \t10001 | 100101, positron: \t10001 | 100110, positron: \t10001 | 101001, positron: \t10001 | 101010, positron: \t10010 | 010101, positron: \t10010 | 010110, positron: \t10010 | 011001, positron: \t10010 | 011010, positron: \t10010 | 100101, positron: \t10010 | 100110, positron: \t10010 | 101001, positron: \t10010 | 101010, positron: \t10011 | 010001, positron: \t10011 | 010010, positron: \t10011 | 100001, positron: \t10011 | 100010, positron: \t10100 | 011100, positron: \t10100 | 101100, positron: \t10101 | 010100, positron: \t10101 | 011000, positron: \t10101 | 100100, positron: \t10101 | 101000, positron: \t10110 | 010100, positron: \t10110 | 011000, positron: \t10110 | 100100, positron: \t10110 | 101000, positron: \t10111 | 010000, positron: \t10111 | 100000, positron: \t11000 | 011100, positron: \t11000 | 101100, positron: \t11001 | 010100, positron: \t11001 | 011000, positron: \t11001 | 100100, positron: \t11001 | 101000, positron: \t11010 | 010100, positron: \t11010 | 011000, positron: \t11010 | 100100, positron: \t11010 | 101000, positron: \t11011 | 010000, positron: \t11011 | 100000, positron: \t00000 | 000100, positron: \t00000 | 001000, positron: \t00001 | 000000, positron: \t00010 | 000000]\n", "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: \t11110 | 101000, photon: \t11110 | 100100, photon: \t11110 | 011000, photon: \t11110 | 010100, photon: \t11101 | 101000, photon: \t11101 | 100100, photon: \t11101 | 011000, photon: \t11101 | 010100, photon: \t11100 | 101100, photon: \t11100 | 011100, photon: \t11011 | 100010, photon: \t11011 | 100001, photon: \t11011 | 010010, photon: \t11011 | 010001, photon: \t11010 | 101010, photon: \t11010 | 101001, photon: \t11010 | 100110, photon: \t11010 | 100101, photon: \t11010 | 011010, photon: \t11010 | 011001, photon: \t11010 | 010110, photon: \t11010 | 010101, photon: \t11001 | 101010, photon: \t11001 | 101001, photon: \t11001 | 100110, photon: \t11001 | 100101, photon: \t11001 | 011010, photon: \t11001 | 011001, photon: \t11001 | 010110, photon: \t11001 | 010101, photon: \t11000 | 101110, photon: \t11000 | 101101, photon: \t11000 | 011110, photon: \t11000 | 011101, photon: \t10111 | 100010, photon: \t10111 | 100001, photon: \t10111 | 010010, photon: \t10111 | 010001, photon: \t10110 | 101010, photon: \t10110 | 101001, photon: \t10110 | 100110, photon: \t10110 | 100101, photon: \t10110 | 011010, photon: \t10110 | 011001, photon: \t10110 | 010110, photon: \t10110 | 010101, photon: \t10101 | 101010, photon: \t10101 | 101001, photon: \t10101 | 100110, photon: \t10101 | 100101, photon: \t10101 | 011010, photon: \t10101 | 011001, photon: \t10101 | 010110, photon: \t10101 | 010101, photon: \t10100 | 101110, photon: \t10100 | 101101, photon: \t10100 | 011110, photon: \t10100 | 011101, photon: \t10011 | 100011, photon: \t10011 | 010011, photon: \t10010 | 101011, photon: \t10010 | 100111, photon: \t10010 | 011011, photon: \t10010 | 010111, photon: \t10001 | 101011, photon: \t10001 | 100111, photon: \t10001 | 011011, photon: \t10001 | 010111, photon: \t10000 | 101111, photon: \t10000 | 011111, photon: \t01111 | 110000, photon: \t01111 | 001010, photon: \t01111 | 001001, photon: \t01111 | 000110, photon: \t01111 | 000101, photon: \t01110 | 111000, photon: \t01110 | 110100, photon: \t01110 | 001110, photon: \t01110 | 001101, photon: \t01101 | 111000, photon: \t01101 | 110100, photon: \t01101 | 001110, photon: \t01101 | 001101, photon: \t01100 | 111100, photon: \t01011 | 110010, photon: \t01011 | 110001, photon: \t01011 | 001011, photon: \t01011 | 000111, photon: \t01010 | 111010, photon: \t01010 | 111001, photon: \t01010 | 110110, photon: \t01010 | 110101, photon: \t01010 | 001111, photon: \t01001 | 111010, photon: \t01001 | 111001, photon: \t01001 | 110110, photon: \t01001 | 110101, photon: \t01001 | 001111, photon: \t01000 | 111110, photon: \t01000 | 111101, photon: \t00111 | 110010, photon: \t00111 | 110001, photon: \t00111 | 001011, photon: \t00111 | 000111, photon: \t00110 | 111010, photon: \t00110 | 111001, photon: \t00110 | 110110, photon: \t00110 | 110101, photon: \t00110 | 001111, photon: \t00101 | 111010, photon: \t00101 | 111001, photon: \t00101 | 110110, photon: \t00101 | 110101, photon: \t00101 | 001111, photon: \t00100 | 111110, photon: \t00100 | 111101, photon: \t00011 | 110011, photon: \t00010 | 111011, photon: \t00010 | 110111, photon: \t00001 | 111011, photon: \t00001 | 110111, photon: \t00000 | 111111, photon: \t11111 | 101111, photon: \t11111 | 011111, photon: \t01111 | 111111]\n" ] }, { "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 }