{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "mbtrack2_demo.ipynb", "provenance": [], "collapsed_sections": [], "toc_visible": true, "authorship_tag": "ABX9TyPRY/XNUoMZ31SXvmqumDMP", "include_colab_link": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "<a href=\"https://colab.research.google.com/github/GamelinAl/mbtrack2_examples/blob/main/mbtrack2_demo.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" ] }, { "cell_type": "markdown", "source": [ "# Wellcome to the mbtrack2 demo !\n", "\n", "The idea behind **mbtrack2** is to build a **coherent object-oriented framework** to work on **collective effects** in synchrotrons. mbtrack2 is composed of different modules allowing to easily write scripts for **single bunch** or **multi-bunch** tracking using MPI parallelization\n", "in a transparent way. \n", "\n", "The base of the tracking model of mbtrack2 is inspired by **mbtrack**, a C multi-bunch tracking code initially developed at SOLEIL. In addition, many tools to prepare or analyse tracking simulations are included.\n", "\n", "The aim of this notebook is to demonstrate the main features of **mbtrack2** related to **tracking**." ], "metadata": { "id": "IKih_9pcq9Ui" } }, { "cell_type": "markdown", "source": [ "## Conventions\n", "\n", "### Tracking\n", "In **mbtrack2**, a particle is described as a point $(x,x',y,y',\\tau,\\delta)$ in the 6-dimensional phase-space: \n", "+ $x$ and $y$ are the horizontal and vertical position.\n", "+ $x'=\\frac{dx}{ds}$ and $y'=\\frac{dy}{ds}$ are the horizontal and vertical transverse momenta. \n", "+ $\\tau$ is the time difference with respect to the reference particle.\n", "+ $\\delta = \\frac{E - E_0}{E_0}$ is the relative energy deviation from the reference energy $E_0$. \n", "\n", "A particle is late compared to the reference particle if $\\tau > 0$.\n", "\n", "### Units\n", "mbtrack2 uses SI units.\n", "\n", "### RF\n", "mbtrack2 uses the cosine convention for RF voltage.\n", "\n", "### Array structure\n", "The arrays are strcutured as [horizontal_value, vertical_value, longitudinal_value]." ], "metadata": { "id": "zutgeXaaBjWg" } }, { "cell_type": "markdown", "source": [ "# Installation" ], "metadata": { "id": "O5fColz-q2EI" } }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "BKGTZA_EvtF6", "outputId": "abf35331-2e3d-44ab-9b43-d025f8881fc2" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Cloning into 'mbtrack2'...\n", "remote: Enumerating objects: 1139, done.\u001b[K\n", "remote: Counting objects: 100% (231/231), done.\u001b[K\n", "remote: Compressing objects: 100% (82/82), done.\u001b[K\n", "remote: Total 1139 (delta 159), reused 213 (delta 148), pack-reused 908\u001b[K\n", "Receiving objects: 100% (1139/1139), 353.44 KiB | 452.00 KiB/s, done.\n", "Resolving deltas: 100% (756/756), done.\n" ] } ], "source": [ "! git clone https://gitlab.synchrotron-soleil.fr/PA/collective-effects/mbtrack2.git" ] }, { "cell_type": "code", "source": [ "%cd mbtrack2" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "aIwNdoXlVDus", "outputId": "2caa1b61-8552-4b50-fef0-73d89b1d6f65" }, "execution_count": 2, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/content/mbtrack2\n" ] } ] }, { "cell_type": "code", "source": [ "pip install -r requirements.txt" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "hEbdSRmKRkFS", "outputId": "8ceed3cb-c5c2-4955-93f1-a6324a29f18e" }, "execution_count": 3, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from -r requirements.txt (line 1)) (1.21.5)\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from -r requirements.txt (line 2)) (1.3.5)\n", "Requirement already satisfied: scipy in /usr/local/lib/python3.7/dist-packages (from -r requirements.txt (line 3)) (1.4.1)\n", "Requirement already satisfied: h5py in /usr/local/lib/python3.7/dist-packages (from -r requirements.txt (line 4)) (3.1.0)\n", "Collecting mpi4py\n", " Downloading mpi4py-3.1.3.tar.gz (2.5 MB)\n", "\u001b[K |████████████████████████████████| 2.5 MB 4.5 MB/s \n", "\u001b[?25h Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", " Preparing wheel metadata ... \u001b[?25l\u001b[?25hdone\n", "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from -r requirements.txt (line 6)) (3.2.2)\n", "Requirement already satisfied: seaborn in /usr/local/lib/python3.7/dist-packages (from -r requirements.txt (line 7)) (0.11.2)\n", "Requirement already satisfied: mpmath in /usr/local/lib/python3.7/dist-packages (from -r requirements.txt (line 8)) (1.2.1)\n", "Requirement already satisfied: ipykernel in /usr/local/lib/python3.7/dist-packages (from -r requirements.txt (line 9)) (4.10.1)\n", "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas->-r requirements.txt (line 2)) (2.8.2)\n", "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas->-r requirements.txt (line 2)) (2018.9)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas->-r requirements.txt (line 2)) (1.15.0)\n", "Requirement already satisfied: cached-property in /usr/local/lib/python3.7/dist-packages (from h5py->-r requirements.txt (line 4)) (1.5.2)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->-r requirements.txt (line 6)) (0.11.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->-r requirements.txt (line 6)) (1.4.0)\n", "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->-r requirements.txt (line 6)) (3.0.7)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from kiwisolver>=1.0.1->matplotlib->-r requirements.txt (line 6)) (3.10.0.2)\n", "Requirement already satisfied: traitlets>=4.1.0 in /usr/local/lib/python3.7/dist-packages (from ipykernel->-r requirements.txt (line 9)) (5.1.1)\n", "Requirement already satisfied: jupyter-client in /usr/local/lib/python3.7/dist-packages (from ipykernel->-r requirements.txt (line 9)) (5.3.5)\n", "Requirement already satisfied: ipython>=4.0.0 in /usr/local/lib/python3.7/dist-packages (from ipykernel->-r requirements.txt (line 9)) (5.5.0)\n", "Requirement already satisfied: tornado>=4.0 in /usr/local/lib/python3.7/dist-packages (from ipykernel->-r requirements.txt (line 9)) (5.1.1)\n", "Requirement already satisfied: simplegeneric>0.8 in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipykernel->-r requirements.txt (line 9)) (0.8.1)\n", "Requirement already satisfied: pygments in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipykernel->-r requirements.txt (line 9)) (2.6.1)\n", "Requirement already satisfied: pexpect in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipykernel->-r requirements.txt (line 9)) (4.8.0)\n", "Requirement already satisfied: prompt-toolkit<2.0.0,>=1.0.4 in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipykernel->-r requirements.txt (line 9)) (1.0.18)\n", "Requirement already satisfied: pickleshare in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipykernel->-r requirements.txt (line 9)) (0.7.5)\n", "Requirement already satisfied: decorator in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipykernel->-r requirements.txt (line 9)) (4.4.2)\n", "Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.7/dist-packages (from ipython>=4.0.0->ipykernel->-r requirements.txt (line 9)) (57.4.0)\n", "Requirement already satisfied: wcwidth in /usr/local/lib/python3.7/dist-packages (from prompt-toolkit<2.0.0,>=1.0.4->ipython>=4.0.0->ipykernel->-r requirements.txt (line 9)) (0.2.5)\n", "Requirement already satisfied: jupyter-core>=4.6.0 in /usr/local/lib/python3.7/dist-packages (from jupyter-client->ipykernel->-r requirements.txt (line 9)) (4.9.2)\n", "Requirement already satisfied: pyzmq>=13 in /usr/local/lib/python3.7/dist-packages (from jupyter-client->ipykernel->-r requirements.txt (line 9)) (22.3.0)\n", "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.7/dist-packages (from pexpect->ipython>=4.0.0->ipykernel->-r requirements.txt (line 9)) (0.7.0)\n", "Building wheels for collected packages: mpi4py\n", " Building wheel for mpi4py (PEP 517) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for mpi4py: filename=mpi4py-3.1.3-cp37-cp37m-linux_x86_64.whl size=2185312 sha256=19b71d4d34ae88e97f5afa2fc279ff8bd8fdf2aee10ee2038273290049d33896\n", " Stored in directory: /root/.cache/pip/wheels/7a/07/14/6a0c63fa2c6e473c6edc40985b7d89f05c61ff25ee7f0ad9ac\n", "Successfully built mpi4py\n", "Installing collected packages: mpi4py\n", "Successfully installed mpi4py-3.1.3\n" ] } ] }, { "cell_type": "markdown", "source": [ "# Synchrotron object" ], "metadata": { "id": "-CHO7pYlsa76" } }, { "cell_type": "code", "source": [ "import numpy as np\n", "from mbtrack2.tracking import Synchrotron, Electron\n", "from mbtrack2.utilities import Optics" ], "metadata": { "id": "ewMLyHDOslSD" }, "execution_count": 4, "outputs": [] }, { "cell_type": "markdown", "source": [ "To known how to use and define mbtrack2 classes, use the help:\n", "\n", "\n", "```\n", "help(Synchrotron)\n", "```\n", "\n" ], "metadata": { "id": "WsbeELvuyder" } }, { "cell_type": "markdown", "source": [ "Let us define some paramter for our synchrotron:" ], "metadata": { "id": "07gwix3w1Fat" } }, { "cell_type": "code", "source": [ "h = 20 # Harmonic number of the accelerator.\n", "L = 100 # Ring circumference in [m].\n", "E0 = 1.5e9 # Nominal (total) energy of the ring in [eV].\n", "particle = Electron() # Particle considered.\n", "ac = 1e-3 # Momentum compaction factor.\n", "U0 = 200e3 # Energy loss per turn in [eV].\n", "tau = np.array([1e-3, 1e-3, 2e-3]) # Horizontal, vertical and longitudinal damping times in [s].\n", "tune = np.array([12.2, 15.3]) # Horizontal and vertical tunes.\n", "emit = np.array([10e-9, 10e-12]) # Horizontal and vertical equilibrium emittance in [m.rad].\n", "sigma_0 = 15e-12 # Natural bunch length in [s].\n", "sigma_delta = 1e-3 # Equilibrium energy spread.\n", "chro = [2.0, 3.0] # Horizontal and vertical (non-normalized) chromaticities." ], "metadata": { "id": "GH7V8wmmxH4i" }, "execution_count": 5, "outputs": [] }, { "cell_type": "markdown", "source": [ "The `Optics` class stores optic functions related values.\n", "\n", "Here we define the values of the optic functions at the tracking location:" ], "metadata": { "id": "edkvIwjs1vdK" } }, { "cell_type": "code", "source": [ "local_beta = np.array([3, 2]) # Beta function at the tracking location.\n", "local_alpha = np.array([0, 0]) # Alpha function at the tracking location.\n", "local_dispersion = np.array([0, 0, 0, 0]) # Dispersion function and its derivative at the tracking location.\n", "optics = Optics(local_beta=local_beta, local_alpha=local_alpha, \n", " local_dispersion=local_dispersion)" ], "metadata": { "id": "yY9Fh3JR1rQy" }, "execution_count": 6, "outputs": [] }, { "cell_type": "markdown", "source": [ "The `Synchrotron` class stores most global lattice parameters:" ], "metadata": { "id": "D41nqm3b2aqH" } }, { "cell_type": "code", "source": [ "ring = Synchrotron(h=h, optics=optics, particle=particle, L=L, E0=E0, ac=ac, \n", " U0=U0, tau=tau, emit=emit, tune=tune, \n", " sigma_delta=sigma_delta, sigma_0=sigma_0, chro=chro)" ], "metadata": { "id": "WiPq6SDLvbjC" }, "execution_count": 7, "outputs": [] }, { "cell_type": "markdown", "source": [ "Now the `Synchrotron` object can be used:" ], "metadata": { "id": "sP2NaRwt3yRM" } }, { "cell_type": "code", "source": [ "ring.T0 # Revolution time in [s]." ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "fr96wM893xLc", "outputId": "f02765fe-dba9-4065-a4f9-b0ffdd1ec727" }, "execution_count": 8, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "3.3356409519815204e-07" ] }, "metadata": {}, "execution_count": 8 } ] }, { "cell_type": "code", "source": [ "ring.f1 # Fundamental RF frequency in [Hz]." ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "EDTia9Ol5IGk", "outputId": "8172e2d6-39c0-4517-9b43-f6c7b0ba2888" }, "execution_count": 9, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "59958491.6" ] }, "metadata": {}, "execution_count": 9 } ] }, { "cell_type": "code", "source": [ "ring.gamma # Relativistic Lorentz gamma." ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "EBsio2fw5PCU", "outputId": "c37eab63-70cb-4806-b03d-ee4306bdaf0d" }, "execution_count": 10, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "2935.42677536081" ] }, "metadata": {}, "execution_count": 10 } ] }, { "cell_type": "markdown", "source": [ "Most class attributes in mbtrack are dynamically linked when possible:" ], "metadata": { "id": "Jemrr4Ey5nZu" } }, { "cell_type": "code", "source": [ "ring.T0 = 1e-6 # Revolution time in [s].\n", "ring.L # Ring circumference in [m]." ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "lf5h3gTj5xGk", "outputId": "dc0ed219-b635-4a13-a99b-10c04136cdcc" }, "execution_count": 11, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "299.792458" ] }, "metadata": {}, "execution_count": 11 } ] }, { "cell_type": "markdown", "source": [ "An Accelerator Toolbox (AT) format lattice can also be loaded using:\n", "\n", "\n", "```\n", "optics = Optics(lattice_file=lattice_file)\n", "ring = Synchrotron(h, optics, particle)\n", "```\n", "In that case, the AT lattice paramters are used to fill the `Synchrotron` object.\n" ], "metadata": { "id": "_-sj3Jlu37Rc" } }, { "cell_type": "markdown", "source": [ "Main conventions used:\n", "+ mbtrack2 uses SI units.\n", "+ the arrays are strcutured as `[horizontal_value, vertical_value, longitudinal_value]`." ], "metadata": { "id": "ZriCgRYIzkvr" } }, { "cell_type": "markdown", "source": [ "# Bunch and Beam objects" ], "metadata": { "id": "OW9YgunevfKb" } }, { "cell_type": "code", "source": [ "from mbtrack2.tracking import Bunch, Beam" ], "metadata": { "id": "ne2yGLJ06s6O" }, "execution_count": 12, "outputs": [] }, { "cell_type": "markdown", "source": [ "## Bunch" ], "metadata": { "id": "TCu24f639KrW" } }, { "cell_type": "markdown", "source": [ "Defines a `Bunch` object with 5 macro-particles and a current of 1 mA:" ], "metadata": { "id": "k9_SrmgK-gSN" } }, { "cell_type": "code", "source": [ "mybunch = Bunch(ring, mp_number=5, current=1e-3)\n", "mybunch" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "FSu6AiVB62bd", "outputId": "42a9f761-a130-4e2a-89aa-33e9b089a8c5" }, "execution_count": 13, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " x xp y yp tau delta\n", "0 0.0 0.0 0.0 0.0 0.0 0.0\n", "1 0.0 0.0 0.0 0.0 0.0 0.0\n", "2 0.0 0.0 0.0 0.0 0.0 0.0\n", "3 0.0 0.0 0.0 0.0 0.0 0.0\n", "4 0.0 0.0 0.0 0.0 0.0 0.0" ] }, "metadata": {}, "execution_count": 13 } ] }, { "cell_type": "markdown", "source": [ "The coordinates for a single dimension can be accessed by brackets:" ], "metadata": { "id": "-ZLDs32W-rxN" } }, { "cell_type": "code", "source": [ "mybunch[\"x\"]" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "fYYWiGaH8PGt", "outputId": "ad49234e-b9d9-4df7-bcb9-8c7cc6bbed30" }, "execution_count": 14, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([0., 0., 0., 0., 0.])" ] }, "metadata": {}, "execution_count": 14 } ] }, { "cell_type": "code", "source": [ "mybunch[\"x\"] += 1e-3 # add 1 mm offset in horizontal dimension\n", "mybunch" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "qHfFJlD38SVE", "outputId": "270b7372-3b78-40a8-a903-27a2565bc7bf" }, "execution_count": 15, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " x xp y yp tau delta\n", "0 0.001 0.0 0.0 0.0 0.0 0.0\n", "1 0.001 0.0 0.0 0.0 0.0 0.0\n", "2 0.001 0.0 0.0 0.0 0.0 0.0\n", "3 0.001 0.0 0.0 0.0 0.0 0.0\n", "4 0.001 0.0 0.0 0.0 0.0 0.0" ] }, "metadata": {}, "execution_count": 15 } ] }, { "cell_type": "markdown", "source": [ "Initialize the bunch macro-particles to have gaussian distribution corresponding to the `Synchrotron` object equilibrium parameters:" ], "metadata": { "id": "vtAPNcAX_CX9" } }, { "cell_type": "code", "source": [ "mybunch.init_gaussian()\n", "mybunch" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "bfquwwF28GZN", "outputId": "8722011d-f53b-41bc-f62b-82dde543ca30" }, "execution_count": 16, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " x xp y yp tau delta\n", "0 0.000167 0.000046 -0.000002 4.894223e-09 1.457217e-11 0.001107\n", "1 0.000038 0.000056 -0.000002 4.666150e-08 1.420120e-11 0.000039\n", "2 -0.000207 0.000101 -0.000004 3.270033e-07 -6.484481e-13 -0.000225\n", "3 0.000021 -0.000059 0.000006 1.318513e-06 5.321753e-12 0.000392\n", "4 -0.000121 -0.000001 -0.000003 9.332312e-07 8.391381e-12 -0.001752" ] }, "metadata": {}, "execution_count": 16 } ] }, { "cell_type": "markdown", "source": [ "Compute statistical quantities for each dimensions:" ], "metadata": { "id": "rQg66J_a-Kmf" } }, { "cell_type": "code", "source": [ "mybunch.mean # Mean position of alive particles for each coordinates." ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "goQf8y_Z9msV", "outputId": "bb1545f5-aa67-48bb-9e6b-13ec4be6405a" }, "execution_count": 17, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([-2.04253187e-05, 2.84766408e-05, -1.02548257e-06, 5.26060679e-07,\n", " 8.36761243e-12, -8.74502667e-05])" ] }, "metadata": {}, "execution_count": 17 } ] }, { "cell_type": "code", "source": [ "mybunch.std # Standard deviation of the position of alive particles for each coordinates." ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "b700219a-88ac-44e5-9cd2-43f472af7868", "id": "WGSbxuqz9yd-" }, "execution_count": 18, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([1.30383610e-04, 5.45947452e-05, 3.61563036e-06, 5.16687649e-07,\n", " 5.71129630e-12, 9.44617132e-04])" ] }, "metadata": {}, "execution_count": 18 } ] }, { "cell_type": "code", "source": [ "mybunch.emit # Bunch emittance for each plane." ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "c2350594-0511-410f-8f8e-c7aa0da49dfe", "id": "wVxnRwNa92dP" }, "execution_count": 19, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([7.75559963e-09, 2.67753601e-12, 9.57351816e-15])" ] }, "metadata": {}, "execution_count": 19 } ] }, { "cell_type": "markdown", "source": [ "Change the bunch current:" ], "metadata": { "id": "wxGJdCug_toP" } }, { "cell_type": "code", "source": [ "mybunch.current # bunch current in [A]" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "zvogt_6F8qf9", "outputId": "f54017d3-675b-48a7-c772-bce93d698ef7" }, "execution_count": 20, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0.001" ] }, "metadata": {}, "execution_count": 20 } ] }, { "cell_type": "code", "source": [ "mybunch.charge = 5e-9 # charge in [C]\n", "mybunch.current" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "YjJnW_bS83M-", "outputId": "ab03a128-d114-4778-a636-2b930e3433a5" }, "execution_count": 21, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0.005" ] }, "metadata": {}, "execution_count": 21 } ] }, { "cell_type": "markdown", "source": [ "This boolean array shows which macro-particles are still \"alive\" and thoses which are lost:" ], "metadata": { "id": "iwvnYOC3Goiz" } }, { "cell_type": "code", "source": [ "mybunch.alive" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ecLdAvVGGowh", "outputId": "6ced438c-f9b7-45bf-b8e7-ea6d15fdabf5" }, "execution_count": 22, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([ True, True, True, True, True])" ] }, "metadata": {}, "execution_count": 22 } ] }, { "cell_type": "code", "source": [ "mybunch.alive[2] = False\n", "mybunch.alive" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "5LD2UhGzGwXh", "outputId": "9716ec4d-34b6-4171-fc91-b2379a7348f4" }, "execution_count": 23, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([ True, True, False, True, True])" ] }, "metadata": {}, "execution_count": 23 } ] }, { "cell_type": "markdown", "source": [ "Lost marco-particles are no longer taken in account for the tracking or to compute bunch parameters:" ], "metadata": { "id": "9rHqIEbiH0W6" } }, { "cell_type": "code", "source": [ "mybunch.current" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ZM0TIBMQHCIh", "outputId": "65c6f44d-e2bf-494e-b35f-14685f7d79f1" }, "execution_count": 24, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0.004" ] }, "metadata": {}, "execution_count": 24 } ] }, { "cell_type": "code", "source": [ "mybunch" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "VvJr03_fG2-R", "outputId": "36099b32-542c-4d96-db6a-e8f4ae7740dd" }, "execution_count": 25, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " x xp y yp tau delta\n", "0 0.000167 0.000046 -0.000002 4.894223e-09 1.457217e-11 0.001107\n", "1 0.000038 0.000056 -0.000002 4.666150e-08 1.420120e-11 0.000039\n", "2 0.000021 -0.000059 0.000006 1.318513e-06 5.321753e-12 0.000392\n", "3 -0.000121 -0.000001 -0.000003 9.332312e-07 8.391381e-12 -0.001752" ] }, "metadata": {}, "execution_count": 25 } ] }, { "cell_type": "markdown", "source": [ "## Beam" ], "metadata": { "id": "P63zTaJy9ODW" } }, { "cell_type": "markdown", "source": [ "The `Beam` class is defined like an array container for `Bunch` objects:" ], "metadata": { "id": "uhXjn-9OFprq" } }, { "cell_type": "code", "source": [ "mybeam = Beam(ring) # define an empty beam\n", "mybeam[0] # no bunch in the 1st RF bucket as the beam is empty" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "-BvT1LHlLG0x", "outputId": "2187874a-ef74-4525-eeac-2aa8d7ba70c8" }, "execution_count": 26, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Empty DataFrame\n", "Columns: [x, xp, y, yp, tau, delta]\n", "Index: []" ] }, "metadata": {}, "execution_count": 26 } ] }, { "cell_type": "markdown", "source": [ "Define a filling pattern for our beam:" ], "metadata": { "id": "ksWbaINQMW_B" } }, { "cell_type": "code", "source": [ "filling_pattern = np.zeros(ring.h) # empty array of size ring.h\n", "filling_pattern[0:10] = 10e-3 # the first 10 bunches will be filled with 10 mA\n", "filling_pattern[10:15] = 5e-3\n", "filling_pattern[15:20] = 20e-3" ], "metadata": { "id": "Gu6w6ARULRGw" }, "execution_count": 27, "outputs": [] }, { "cell_type": "markdown", "source": [ "Initialize our `Beam` object with a given filling pattern and 1000 macro-particles per bunch:" ], "metadata": { "id": "Q00sKqy0LYLC" } }, { "cell_type": "code", "source": [ "mybeam.init_beam(filling_pattern, mp_per_bunch=1e3)" ], "metadata": { "id": "4y4gLQpPxKdi" }, "execution_count": 28, "outputs": [] }, { "cell_type": "markdown", "source": [ "It is possible to access the bunch located in the $n^{th}$ RF bucket using brackets: " ], "metadata": { "id": "QfGks1tzNAYK" } }, { "cell_type": "code", "source": [ "mybeam[5]" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "OrlG-LEJM5ci", "outputId": "da5b387e-47cc-4265-e9e1-f178fe687384" }, "execution_count": 29, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " x xp y yp tau delta\n", "0 0.000037 0.000013 -2.543095e-06 -3.101018e-06 -5.087891e-12 -0.000737\n", "1 0.000151 -0.000016 1.353694e-06 -1.118413e-06 2.142205e-11 -0.002040\n", "2 0.000243 0.000058 -9.433485e-06 2.594158e-06 -1.413505e-11 -0.001256\n", "3 0.000073 0.000027 -5.027011e-06 -1.140515e-06 9.855368e-12 0.000943\n", "4 0.000313 -0.000049 -3.378621e-06 5.712363e-07 6.575415e-12 0.000779\n", ".. ... ... ... ... ... ...\n", "995 0.000141 0.000114 -7.730607e-07 -2.298574e-06 -2.496193e-11 -0.001145\n", "996 -0.000186 0.000093 -1.313724e-06 1.201262e-07 -7.894270e-12 0.000171\n", "997 0.000118 0.000121 -2.254755e-06 -2.044996e-06 2.706899e-11 0.001132\n", "998 0.000321 -0.000103 3.128740e-06 -1.435538e-06 -2.266196e-11 -0.000669\n", "999 0.000009 -0.000026 1.678159e-06 -9.540326e-08 -1.267561e-11 -0.001505\n", "\n", "[1000 rows x 6 columns]" ] }, "metadata": {}, "execution_count": 29 } ] }, { "cell_type": "markdown", "source": [ "Beam and bunch parameters can be accessed:" ], "metadata": { "id": "20bTKa2cNqAy" } }, { "cell_type": "code", "source": [ "mybeam.current # Total beam current in [A]" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "J8FQ-O9UN5KB", "outputId": "848f997c-fcb8-4348-a2cd-fc6acc0ca03c" }, "execution_count": 30, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0.22499999999999998" ] }, "metadata": {}, "execution_count": 30 } ] }, { "cell_type": "code", "source": [ "mybeam.bunch_current # Current in each bunch in [A]" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "rHVy7Yc4N5OR", "outputId": "96296c9f-9f90-444f-d6d2-8406f08e39bb" }, "execution_count": 31, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([0.01 , 0.01 , 0.01 , 0.01 , 0.01 , 0.01 , 0.01 , 0.01 , 0.01 ,\n", " 0.01 , 0.005, 0.005, 0.005, 0.005, 0.005, 0.02 , 0.02 , 0.02 ,\n", " 0.02 , 0.02 ])" ] }, "metadata": {}, "execution_count": 31 } ] }, { "cell_type": "code", "source": [ "fig = mybeam.plot(\"bunch_current\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 279 }, "id": "ojlDHKd0L3QB", "outputId": "21f488db-edf2-49eb-d5de-f3124f9edac5" }, "execution_count": 32, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "<Figure size 432x288 with 1 Axes>" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "code", "source": [ "fig = mybeam.plot(\"bunch_emit\",\"x\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 282 }, "id": "giCTESPhZHLg", "outputId": "56b2c620-b4f0-4028-9aaf-7eb73e5540fc" }, "execution_count": 33, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "<Figure size 432x288 with 1 Axes>" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "markdown", "source": [ "# Tracking" ], "metadata": { "id": "bT_CpT4F_0tv" } }, { "cell_type": "markdown", "source": [ "In mbtrack2, tracking is done by calling the `track` method from different objects. This `track` method applies a transformation to the macro-particles coordinates." ], "metadata": { "id": "N09YgveY55Qc" } }, { "cell_type": "code", "source": [ "from time import time\n", "from mbtrack2.tracking import LongitudinalMap, RFCavity, SynchrotronRadiation, TransverseMap" ], "metadata": { "id": "1B4FWH3oKA3m" }, "execution_count": 34, "outputs": [] }, { "cell_type": "markdown", "source": [ "For example, the `LongitudinalMap` element applies the following transform:\n", "+ $\\tau = \\tau + \\eta T_0 \\delta $ \n", "+ $\\delta = \\delta - \\frac{U_0}{E_0}$\n", "\n", "Which corresponds to the transformation of the longitudinal coordinates ($\\tau$, $\\delta$) undergoes during a full turn in the synchrotron." ], "metadata": { "id": "voyxGQfF61pb" } }, { "cell_type": "code", "source": [ "LongMap = LongitudinalMap(ring) # define the LongitudinalMap element with the ring parameters\n", "mybunch = Bunch(ring, mp_number=1e3, current=1e-3)\n", "mybunch.init_gaussian()\n", "print(mybunch[\"tau\"][:4])\n", "print(mybunch[\"delta\"][:4])" ], "metadata": { "id": "hZJ-vdJmKWK6", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "39d58c3a-0e88-4993-cc8b-28d67842ee6e" }, "execution_count": 35, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[-7.27549489e-12 8.78655955e-12 2.55199689e-13 -4.54617690e-12]\n", "[ 9.21247316e-04 -2.40770241e-05 -7.01691843e-04 -1.33450086e-03]\n" ] } ] }, { "cell_type": "markdown", "source": [ "Tracking the `Bunch` object through the `LongitudinalMap` is done by calling its `track` method with the `Bunch` object as argument." ], "metadata": { "id": "usQ3ju5copUP" } }, { "cell_type": "code", "source": [ "LongMap.track(mybunch)\n", "print(mybunch[\"tau\"][:4])\n", "print(mybunch[\"delta\"][:4])" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "RjbOCdSnoIzn", "outputId": "27ff1d06-2a13-430c-b0e7-6c4b74e2731b" }, "execution_count": 36, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[-6.48758091e-12 8.62914919e-12 -5.79825488e-13 -6.01401109e-12]\n", "[ 0.00078791 -0.00015741 -0.00083503 -0.00146783]\n" ] } ] }, { "cell_type": "markdown", "source": [ "In a similar way, the `RFCavity` element applies:\n", "\n", "$\\delta = \\delta + \\frac{V_c}{E_0} \\cos(m \\omega_1 \\tau + \\theta)$" ], "metadata": { "id": "xIN0ZXla6PsU" } }, { "cell_type": "code", "source": [ "RF = RFCavity(ring, m=1, Vc=1e6, theta=np.arccos(ring.U0/1e6))" ], "metadata": { "id": "-R_INXI-KaJW" }, "execution_count": 37, "outputs": [] }, { "cell_type": "markdown", "source": [ "The `SynchrotronRadiation` element applies:\n", "\n", "$z = \\delta, x', y'$\n", "\n", "\\begin{equation}\n", " z = \\left (1 - \\frac{2 T_0}{\\tau_z} \\right) z + 2 \\sigma_{z} \\sqrt{\\frac{T_0}{\\tau_z}} \\times \\epsilon\n", "\\end{equation}\n", "\n", "Where $z$ is a generic coordinate which can be $\\delta$, $x'$ or $y'$." ], "metadata": { "id": "5_BDWbbiD4fI" } }, { "cell_type": "code", "source": [ "SR = SynchrotronRadiation(ring)" ], "metadata": { "id": "_IE_nYL8KrB3" }, "execution_count": 38, "outputs": [] }, { "cell_type": "markdown", "source": [ "The `TransverseMap` element applies:\n", "\n", "\\begin{equation}\n", "\\Delta \\mu = 2 \\pi (Q + \\xi \\delta)\n", "\\end{equation}\n", "\n", "\\begin{equation}\n", " M = M_{s_0 \\rightarrow s_0} =\n", " \\begin{bmatrix}\n", " \\cos(\\Delta \\mu) + \\alpha_0 \\sin(\\Delta \\mu) & \\beta_0 \\sin(\\Delta \\mu) & D_0 \\\\\n", " - \\gamma_0 \\sin(\\Delta \\mu) & \\cos(\\Delta \\mu) - \\alpha_0 \\sin(\\Delta \\mu) & D_0'\n", " \\end{bmatrix}\n", "\\end{equation}\n", "\n", "\\begin{equation}\n", " \\begin{bmatrix}\n", " z\\\\\n", " z'\n", " \\end{bmatrix}\n", " =\n", " M\n", " \\begin{bmatrix}\n", " z\\\\\n", " z'\n", " \\end{bmatrix}\n", "\\end{equation}\n", "\n", "Where $z$ is a generic coordinate which can be $x$ or $y$." ], "metadata": { "id": "YYQ3QBMR_HUQ" } }, { "cell_type": "code", "source": [ "TransMap = TransverseMap(ring)" ], "metadata": { "id": "SZGpmbe2q4yf" }, "execution_count": 39, "outputs": [] }, { "cell_type": "markdown", "source": [ "Tracking for many turns in then done by writing a python script using a for loop" ], "metadata": { "id": "SlDlcXVHkzW4" } }, { "cell_type": "code", "source": [ "turns = 100\n", "t1 = time()\n", "for i in range(turns):\n", " LongMap.track(mybunch)\n", " SR.track(mybunch)\n", " TransMap.track(mybunch)\n", " RF.track(mybunch)\n", "t2 = time()\n", "print(t2-t1)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "1zJFHqgwkZKY", "outputId": "48870601-c1d9-416f-c974-ad8bc4c5c4d3" }, "execution_count": 40, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "0.12813210487365723\n" ] } ] }, { "cell_type": "markdown", "source": [ "Tracking methods can be used indiscriminately on `Bunch` or `Beam` objects " ], "metadata": { "id": "ICxTFwCJjmqp" } }, { "cell_type": "code", "source": [ "filling_pattern = np.ones(ring.h)*1e-3 # uniform beam with 1 mA per bunch\n", "mybeam = Beam(ring)\n", "mybeam.init_beam(filling_pattern, mp_per_bunch=1e3)" ], "metadata": { "id": "ZpkQ7e-2xT7y" }, "execution_count": 41, "outputs": [] }, { "cell_type": "markdown", "source": [ "Tracking with `Beam` object can be quite long as the code does an internal loop over all the `Bunch` objects:" ], "metadata": { "id": "AjdjBpk1iu3j" } }, { "cell_type": "code", "source": [ "turns = 100\n", "t1 = time()\n", "for i in range(turns):\n", " LongMap.track(mybeam)\n", " SR.track(mybeam)\n", " TransMap.track(mybeam)\n", " RF.track(mybeam)\n", "t2 = time()\n", "print(t2-t1)" ], "metadata": { "id": "OaJIa4oaIugh", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "4458f48e-19e4-4ff2-f049-3a2167358fc1" }, "execution_count": 42, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "2.297656536102295\n" ] } ] }, { "cell_type": "markdown", "source": [ "## Using MPI" ], "metadata": { "id": "YqJtFL_OIvSq" } }, { "cell_type": "markdown", "source": [ "MPI can be used to speed up the tracking when using a `Beam` object by distributing the different `Bunch` objects in different cores.\n", "\n", "To be able to use this feature, **the python code must be run with as many core as there is of `Bunch` objects in the `Beam`.**" ], "metadata": { "id": "KmnutEIbrZgf" } }, { "cell_type": "markdown", "source": [ "MPI parallelisation can be enabled during ``Beam`` initialization by setting the ``mpi`` option to ``True``:" ], "metadata": { "id": "dQLd4_Rym5oz" } }, { "cell_type": "markdown", "source": [ "\n", "\n", "```\n", "mybeam = Beam(ring)\n", "mybeam.init_beam(filling_pattern, mp_per_bunch=1e3, mpi=True)\n", "```\n", "\n" ], "metadata": { "id": "Le0RaqmJIeaO" } }, { "cell_type": "markdown", "source": [ "# Monitors" ], "metadata": { "id": "a_B5YgHFHaIA" } }, { "cell_type": "markdown", "source": [ "The ``Monitor`` class and subclasses are used to save tracking data into HDF5 files." ], "metadata": { "id": "O0D4eU01Jrs2" } }, { "cell_type": "code", "source": [ "from mbtrack2.tracking.monitors import BunchMonitor, BeamMonitor" ], "metadata": { "id": "IXvFc9gZL5Vc" }, "execution_count": 43, "outputs": [] }, { "cell_type": "markdown", "source": [ "All classes which inherit from the ``Monitor`` class are linked together and write data to the same HDF5 file which is specify by the ``file_name`` keyword in the first declaration of a ``Monitor``." ], "metadata": { "id": "kU1-MsaaEejd" } }, { "cell_type": "code", "source": [ "bunchmonitor = BunchMonitor(bunch_number=0, total_size=100, save_every=1, buffer_size=10, mpi_mode=False, file_name=\"tracking\")\n", "beammonitor = BeamMonitor(h=ring.h, total_size=100, save_every=1, buffer_size=10, mpi_mode=False)" ], "metadata": { "id": "5fEfD7M0Hb_A" }, "execution_count": 44, "outputs": [] }, { "cell_type": "markdown", "source": [ "The different types of ``Monitor`` can then be added in the tracking loop and save data when the ``track`` method is called.\n", "\n", "At the end of the tracking, the file where the data is written must be closed by calling the ``close`` method on any of the ``Monitor``." ], "metadata": { "id": "a_5S7vnMFoC8" } }, { "cell_type": "code", "source": [ "turns = 100\n", "for i in range(turns):\n", " LongMap.track(mybeam)\n", " SR.track(mybeam)\n", " TransMap.track(mybeam)\n", " RF.track(mybeam)\n", " bunchmonitor.track(mybeam)\n", " beammonitor.track(mybeam)\n", "bunchmonitor.close()" ], "metadata": { "id": "Nx0jrcSxL2MN" }, "execution_count": 45, "outputs": [] }, { "cell_type": "markdown", "source": [ "The tracking data can then be read from the file after the tracking.\n", "\n", "A possible solution to do that is to use the ``h5py`` package:" ], "metadata": { "id": "KjIYMfH4Ti1Z" } }, { "cell_type": "code", "source": [ "import h5py as hp" ], "metadata": { "id": "XlN6ZOVYUehV" }, "execution_count": 46, "outputs": [] }, { "cell_type": "code", "source": [ "file = hp.File(\"tracking.hdf5\",\"r\")" ], "metadata": { "id": "G7GxJNryUx8u" }, "execution_count": 47, "outputs": [] }, { "cell_type": "markdown", "source": [ "Each ``Monitor`` create a different folder at root of the file, so this file has a structure:" ], "metadata": { "id": "wkTdsKeMAF3k" } }, { "cell_type": "code", "source": [ "list(file)" ], "metadata": { "id": "dBx5xVOGU4x-", "outputId": "a2720b5f-d88c-4cc5-8d0a-b1877686c1cd", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": 48, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['Beam', 'BunchData_0']" ] }, "metadata": {}, "execution_count": 48 } ] }, { "cell_type": "markdown", "source": [ "Each folder (called group in ``h5py`` jargon) contains datasets:" ], "metadata": { "id": "b5LmJiirAiL8" } }, { "cell_type": "code", "source": [ "list(file[\"Beam\"])" ], "metadata": { "id": "innjiKx7XfEf", "outputId": "eb999b39-23a2-46a3-99dc-0eee14a10417", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": 49, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "['current', 'emit', 'mean', 'std', 'time']" ] }, "metadata": {}, "execution_count": 49 } ] }, { "cell_type": "markdown", "source": [ "These datasets contain the tracking data and can be converted to numpy arrays:" ], "metadata": { "id": "-eV9WuZwBXoy" } }, { "cell_type": "code", "source": [ "print(np.array(file[\"Beam\"][\"emit\"]).shape)\n", "print(np.array(file[\"Beam\"][\"emit\"][0,0,:20])) # print the horizontal emittance of the 1st bunch for the first 20 turns\n" ], "metadata": { "id": "Z1W-9Fg8WAUe", "outputId": "458e54d5-5577-4ab0-bcdb-61085f3cd906", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": 50, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(3, 20, 100)\n", "[1.00065073e-08 1.00033602e-08 9.99988343e-09 1.00126008e-08\n", " 1.00171315e-08 1.00317361e-08 1.00081876e-08 1.00074092e-08\n", " 1.00343598e-08 1.00578816e-08 1.00465732e-08 1.00209856e-08\n", " 1.00495332e-08 1.00746582e-08 1.00552942e-08 1.00460745e-08\n", " 1.00673851e-08 1.00748342e-08 1.00763956e-08 1.00445749e-08]\n" ] } ] }, { "cell_type": "markdown", "source": [ "The tracking data can also directly be plotted using the functions provided in ``mbtrack2``:" ], "metadata": { "id": "8IBPZOBlVAXO" } }, { "cell_type": "code", "source": [ "from mbtrack2.tracking.monitors import plot_beamdata, streak_beamdata" ], "metadata": { "id": "FllM1qNtTiXu" }, "execution_count": 51, "outputs": [] }, { "cell_type": "markdown", "source": [ "Plot the mean longitudinal position (center of mass) of all bunches:" ], "metadata": { "id": "GE7Zc-aaU9CK" } }, { "cell_type": "code", "source": [ "fig = plot_beamdata(filenames=\"tracking.hdf5\", dataset=\"mean\", dimension=\"tau\", stat_var=\"mean\") " ], "metadata": { "id": "pAmIY3JwTaMe", "outputId": "84d960ec-1d15-4f5a-e6bb-1a822afd5158", "colab": { "base_uri": "https://localhost:8080/", "height": 279 } }, "execution_count": 52, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "<Figure size 432x288 with 1 Axes>" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "markdown", "source": [ "Plot the mean bunch length of all bunches:" ], "metadata": { "id": "ksdPThgeDBP9" } }, { "cell_type": "code", "source": [ "fig = plot_beamdata(filenames=\"tracking.hdf5\", dataset=\"std\", dimension=\"tau\", stat_var=\"mean\") " ], "metadata": { "id": "7y6rQp6CTe8-", "outputId": "c2fd3722-37f4-4640-ca41-e79cfd821327", "colab": { "base_uri": "https://localhost:8080/", "height": 279 } }, "execution_count": 53, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "<Figure size 432x288 with 1 Axes>" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "markdown", "source": [ "Plot the bunch length versus bunch index:" ], "metadata": { "id": "mzruWT76EQRI" } }, { "cell_type": "code", "source": [ "fig = plot_beamdata(filenames=\"tracking.hdf5\", dataset=\"std\", dimension=\"tau\", x_var=\"index\", turn=50) " ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 279 }, "id": "Da1NcdPIECNn", "outputId": "db3ac329-1930-4963-99fd-7dfe20b41a87" }, "execution_count": 54, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "<Figure size 432x288 with 1 Axes>" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] }, { "cell_type": "markdown", "source": [ "Plot the evolution of the longitudinal center of mass versus bunch index:" ], "metadata": { "id": "cOwdsEtpDa7u" } }, { "cell_type": "code", "source": [ "fig = streak_beamdata(\"tracking.hdf5\", dataset=\"mean\", dimension=\"tau\")" ], "metadata": { "id": "n5c8Jn5jXPpu", "colab": { "base_uri": "https://localhost:8080/", "height": 297 }, "outputId": "3e49514a-caf4-499e-fbb2-cdb08c29157b" }, "execution_count": 55, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "<Figure size 432x288 with 2 Axes>" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ] } ] }