{ "cells": [ { "cell_type": "markdown", "id": "2f2a910b", "metadata": {}, "source": [ "# Interacties van elektronen en fotonen\n", "\n", "In het elektromagnetisch deel van de\n", "deeltjeslawine ontstaan deeltjes onder andere door Compton scattering. Compton\n", "scattering beschrijft de verstrooiing van elektronen aan fotonen. In het\n", "algemeen is deze verstrooiing te beschrijven met het onderstaande Feynman\n", "diagram. \n", "\n", " \n", "\n", "In het diagram zien we de\n", "interactie van een elektron met twee fotonen. Dit moet omdat iedere interactie\n", "tussen elektronen en fotonen relatief is ten opzichte van de waarnemer. Het is\n", "dus van belang dat we de scattering door verschillende waarnemers kunnen\n", "bekijken. Dit gaat met een relativistische transformatie. (Als een elektron in\n", "de buurt van een elektrisch geladen kern komt, is de elektrische kracht te\n", "beschouwen als een uitwisseling van fotonen.)\n", "\n", "Eerst halen we de volgende bibliotheken op:" ] }, { "cell_type": "code", "execution_count": null, "id": "d001099b", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "id": "c7698a95", "metadata": {}, "source": [ "## Relativiteit\n", "\n", "In het geval van deeltjeslawines moeten de interacties met\n", "behulp van de relativiteitsleer worden bekeken. In dit geval weten we dat\n", "$\\beta=v/c$ en de Lorentz variabele $\\gamma=1/\\sqrt{1-\\beta^2}$. De Lorentz\n", "variabele $\\gamma$ is dus te schrijven als een functie van $\\beta$.\n", "\n", "## Deeltje\n", "De toestand van een deeltje is vast te leggen met een 'viervector'.\n", "Achtereenvolgens worden hier de tijd en de snelheden in drie richtingen of de\n", "energie en de impuls (massa maal snelheid) opgeschreven. \n", "\n", "De energie van deeltjes is te schrijven als $E_e=\\gamma_e{m_ec}^2$, de impuls is\n", "$P_e=\\beta_e\\gamma_e{m_ec}=\\beta_e{E_e/c}$. Voor $c$ wordt vaak 1 lichtjaar/jaar\n", "gebruikt. Met wat wiskunde valt in dit geval ($c=1$) af te leidden dat:\n", "$m^2=E^2-p^2$. We maken een functie die de viervector voor een bewegend deeltje:" ] }, { "cell_type": "code", "execution_count": null, "id": "a3e326c5", "metadata": {}, "outputs": [], "source": [ "def maakDeeltje(m, p):\n", " \"\"\"\n", " param m: De rustmassa van het deeltje (in eV)\n", " param p: Een vector voor de impuls van het deeltje (in eV) bijvoorbeeld [1e3, 1e2, -1e1]\n", " returns: De viervector [E, p_x, p_y, p_z] van het deeltje.\n", " \"\"\"\n", " p = np.array(p)\n", " E = (m ** 2 + np.sum(p ** 2)) ** .5\n", " return np.array([E, *p])" ] }, { "cell_type": "markdown", "id": "624b835c", "metadata": {}, "source": [ "We kunnen nu ook $\\beta$ van dit deeltje bepalen, dit is te schrijven als een\n", "vector met een $x$, $y$ en $z$-component:" ] }, { "cell_type": "code", "execution_count": null, "id": "5b3977ee", "metadata": {}, "outputs": [], "source": [ "def getBeta(deeltje):\n", " \"\"\"\n", " param deeltje: de viervector waarmee het deeltje beschreven wordt.\n", " returns beta: een drie dimensionale vector voor beta van het deeltje.\n", " \"\"\"\n", " return deeltje[1:] / deeltje[0] " ] }, { "cell_type": "markdown", "id": "4c69d096", "metadata": {}, "source": [ "Als we $\\beta$ kennen, is $\\gamma$ te berekenen:" ] }, { "cell_type": "code", "execution_count": null, "id": "a703be25", "metadata": {}, "outputs": [], "source": [ "def getGamma(beta):\n", " \"\"\"\n", " param beta: a 3d vector defining beta\n", " returns: gamma\n", " \"\"\"\n", " beta = np.array(beta)\n", " gamma = 1 / (np.sqrt(1 - np.sum(beta ** 2)))\n", " return gamma" ] }, { "cell_type": "code", "execution_count": null, "id": "5845de9f", "metadata": {}, "outputs": [], "source": [ "elektron = maakDeeltje(.5e6, [1e6, 0, 0])\n", "print('elektron', elektron)" ] }, { "cell_type": "code", "execution_count": null, "id": "704ade12", "metadata": {}, "outputs": [], "source": [ "beta = getBeta(elektron)\n", "print(beta)" ] }, { "cell_type": "code", "execution_count": null, "id": "645d662d", "metadata": {}, "outputs": [], "source": [ "foton = maakDeeltje(0, [-.4e6, 0, 0])\n", "print('foton', foton)" ] }, { "cell_type": "code", "execution_count": null, "id": "32ed7338", "metadata": {}, "outputs": [], "source": [ "print(getBeta(foton))" ] }, { "cell_type": "markdown", "id": "8f893d99", "metadata": {}, "source": [ "## Waarnemers\n", "\n", "We kunnen van waarnemer wisselen met behulp van een matrix.\n", "Normaal worden er twee soorten waarnemers gedefinieerd:\n", "\n", "* De waarnemer die aan het coordinaten systeem van het laboratorium wordt gekoppeld.\n", "* De waarnemer die aan het zwaartepunt (center of mass) van de deeltjes wordt gekoppeld.\n", "\n", "In dit\n", "geval zijn er dus twee matrixes, van lab naar center en van center naar lab. We\n", "nemen de beta en gamma ($\\beta$ en $\\gamma$) van het zwaartepunt van de botsende\n", "deeltjes (met de bijbehorende waarnemer) volgens de waarnemer in het lab frame." ] }, { "cell_type": "code", "execution_count": null, "id": "fce88bea", "metadata": {}, "outputs": [], "source": [ "beta = getBeta(elektron)\n", "gamma = getGamma(beta)\n", "print(beta, gamma)" ] }, { "cell_type": "code", "execution_count": null, "id": "a11350ec", "metadata": {}, "outputs": [], "source": [ "def maak_transformatie_matrix(gamma, beta):\n", " \"\"\"\n", " Deeltjes hebben in dit geval alleen een beta (v/c) langs de x-as, \n", " dit is dus geen vector maar een getal: -1