diff --git a/.gitignore b/.gitignore index cd97f41..5b359d7 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /Manifest*.toml /docs/Manifest*.toml /docs/build/ +/examples/.ipynb_checkpoints* diff --git a/Project.toml b/Project.toml index e6d967e..9aab6d2 100644 --- a/Project.toml +++ b/Project.toml @@ -1,10 +1,39 @@ name = "SciBmad" uuid = "7bf6e793-a2ec-421f-8700-d1465381ee80" authors = ["mattsignorelli and contributors"] -version = "1.0.0-DEV" +version = "0.1.0" + +[deps] +AtomicAndPhysicalConstants = "5c0d271c-5419-4163-b387-496237733d8b" +BeamTracking = "8ef5c10a-4ca3-437f-8af5-b84d8af36df0" +Beamlines = "5bb90b03-0719-46b8-8ce4-1ef3afd3cd4b" +DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" +ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" +GTPSA = "b27dd330-f138-47c5-815b-40db9dd9b6e8" +LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +NonlinearNormalForm = "05e19671-dec8-4f15-984f-54eaa6ca64be" +NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" +PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" +Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" +TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" [compat] -julia = "1.9" +AtomicAndPhysicalConstants = "0.7.1" +BeamTracking = "0.3.0" +Beamlines = "0.6.1" +DifferentiationInterface = "0.7.4" +ForwardDiff = "0.10,1" +GTPSA = "1.4.7" +NonlinearNormalForm = "0.3.2" +NonlinearSolve = "4.10.0" +PrecompileTools = "1.2.1" +RecursiveArrayTools = "3.36.0" +Reexport = "1.2.2" +StaticArrays = "1.9.14" +TypedTables = "1.4.6" +julia = "1.10" [extras] Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" diff --git a/README.md b/README.md index 653735f..a2d0317 100644 --- a/README.md +++ b/README.md @@ -1,183 +1,55 @@ # SciBmad +[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://bmad-sim.github.io/SciBmad.jl/stable/) +[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://bmad-sim.github.io/SciBmad.jl/dev/) +[![Build Status](https://github.com/bmad-sim/SciBmad.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/bmad-sim/SciBmad.jl/actions/workflows/CI.yml?query=branch%3Amain) +[![Coverage](https://codecov.io/gh/bmad-sim/SciBmad.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/bmad-sim/SciBmad.jl) -## Overview +```julia +using SciBmad -`SciBmad` is a new, open-source project to develop, in -the Julia language, a set of modular packages providing the -fundamental tools and methods commonly needed for accelerator simulations. By avoiding the necessity of ”reinventing -the wheel”, simulation programs can be developed in less -time and with fewer bugs than developing from scratch. +qf = Quadrupole(Kn1=0.36, L=0.5) +sf = Sextupole(Kn2=0.1, L=0.2) +d = Drift(L=0.6) +b = SBend(L=6.0, angle=pi/132) +qd = Quadrupole(Kn1=-0.36, L=0.5) +sd = Sextupole(Kn2=-0.1, L=0.2) -A modern simulation framework such as SciBmad is greatly -needed since the ever increasing demands placed upon machine performance require ever more comprehensive accelerator modeling. -In addition to the toolkit packages, the SciBmad project -will develop accelerator simulation programs for various -simulation tasks. Initial program development will focus on -Machine Learning / Artificial Intelligence (ML/AI) applications. However, SciBmad will be applicable to accelerator -simulations in general. +fodo = [qf, sf, d, b, d, qd, sd, d, b, d] +# e.g. could say `repeat(fodo, 132)` to make a ring +ring = Beamline(fodo; E_ref=18e9, species_ref=Species("electron")) -## SciBmad.jl Repo +# Compute periodic Twiss parameters +t = twiss(ring) # Default is Teng-Edwards type coupling formalism +t2 = twiss(ring; de_moivre=true) # de Moivre of Ripken-Wolski-Forest -This `SciBmad.jl` repository is just meant as a landing page for the SciBmad project. -Code development is done in other repositories in the GitHub [Bmad Consortium](https://github.com/bmad-sim) area. +# Lazily-evaluated deferred expressions via closures +# Make both quad strengths a deferred expression +Kn1 = 0.36 +qf.Kn1 = DefExpr(()->+Kn1) # "Captures" the variable Kn1 +qd.Kn1 = DefExpr(()->-Kn1) -## Motivation +Kn1 = 0.34 # "Updates" all quadrupoles -The disorganized state of accelerator physics simulation development has been -recognized by the latest High-Energy Physics community Snowmass white paper~\SciBmade{biedron2022}: -(DOE-sponsored Snowmass reports outline the major funding priorities for the HEP community) -> The development of beam and accelerator physics codes has often been largely uncoordinated. This comes at a great cost, is not desirable and may not be tenable. -> -> Due to developers retiring or moving on to other projects, numerous simulation programs have been completely abandoned or are seldom used. -> This has resulted in a collection of codes that are not interoperable, use different I/O formats and quite often duplicate some physics functionalities using the exact same underlying algorithms. -> Frequently there is a huge impediment to maintaining these programs due to poorly-written code and lack of documentation. Additionally, many of the programs that are available tend to be ``rigid''. That is, it is generally difficult to modify a program to simulate something it is not designed to simulate *a priori*. Adding a new type of lattice element that a particle can be tracked through is one such example. -As a consequence, the Snowmass white paper makes a recommendation on how to ameliorate the situation: -> **Recommendation on community ecosystems \& data repositories** -> Organize the beam and accelerator modeling tools and community through the development of (a) ecosystems of codes, libraries and frameworks that are interoperable via open community data standards, (b) open access data repositories for reuse and community surrogate model training, (c) dedicated Centers and distributed consortia with open community governance models and dedicated personnel to engage in cross-organization and -industry development, standardization, application and evaluation of accelerator and beam modeling software and data. +# Track a particle (coordinates as Nx6 array) +b0 = Bunch([1e-3 0 0 0 0 0]) +track!(b0, ring) +# b0.v contains coordinates after 1-turn -The Bmad-Julia project is structured to be part of this ecosystem. -The Bmad-Julia project was started last year (2023) and -aims to develop a set -of open source packages (code modules), written in the Julia programming language, that can -serve as the basis for future accelerator simulation programs. -This will enable simulation programs to be developed -in less time and with fewer bugs (due to code reuse) than can be done for a program developed from scratch. -Along with the packages, programs will be developed for various simulation -tasks. The first applications will involve Machine Learning / Artificial -Intelligence (ML/AI) but Bmad-Julia will not be limited to ML/AI applications. +# Forward and backward differentiable +using DifferentiationInterface: DifferentiationInterface as DI +using ForwardDiff, ReverseDiff -## SciBmad Project Goals -The general goals of the SciBmad project are (a) to develop an ecosystem of modular and extensible packages that -allows for the easy construction -of accelerator simulation programs, and (b) to use these packages to develop simulation programs. Initially, there will be a strong ML/AI orientation. -The success and sustainability of SciBmad will depend heavily on the involvement of the entire -accelerator physics community. To this end, the SciBmad project seeks community engagement with weekly planning meetings, open to all, -and with a SLACK workspace where development can be discussed. Additionally, regular workshops and other informational meetings -will be scheduled as the project advances. +``` -In the short-term, needed are packages for defining and manipulating lattices, -tracking of particles, Truncated Power Series Algebra (TPSA), differential algebra maps, -and normal form decomposition and analysis of differential algebra maps to extract such things as emittances, Twiss parameters, -resonance strengths, etc. -In cases where packages external to SciBmad have the needed functionality, rather than reinvent the wheel, -appropriate interfaces will be developed. +SciBmad is a new open source, high-performance, polymorphic, and differentiable accelerator physics simulation ecosystem, consisting of a set of modular packages: -Experience with Bmad has shown that there is no ideal way to track through a lattice with -different tracking methods, all having their own strengths and weaknesses. SciBmad -will thus include multiple tracking packages. Considerations in developing -these packages include speed, accuracy, and the ability to simulate various models of machine components. Needed is -software that has the ability (not necessarily at the same time) to track TPSA maps, track using GPUs, -track with backwards differentiation, etc. +- **[`BeamTracking.jl`](https://github.com/bmad-sim/BeamTracking.jl):** Universally polymorphic, differentiable, portable, and parallelized integrators for simulating charged particle beams on the CPU and various GPUs including NVIDIA CUDA, Apple Metal, Intel oneAPI, and AMD ROCm +- **[`GTPSA.jl`](https://github.com/bmad-sim/GTPSA.jl):** Fast high-order (Taylor mode) automatic differentiation using the Generalised Truncated Power Series Algebra (GTPSA) library +- **[`Beamlines.jl`](https://github.com/bmad-sim/Beamlines.jl):** Defines advanced accelerator lattices in a fast, flexible, fully-polymorphic, and differentiable way, providing both eagerly- and lazily-evaluated deferred expressions for interdependent parameters +- **[`NonlinearNormalForm.jl`](https://github.com/bmad-sim/NonlinearNormalForm.jl):** Map-based perturbation theory of differential-algebraic maps, which may include spin and large damping, using Lie algebraic methods +- **[`AtomicAndPhysicalConstants.jl`](https://github.com/bmad-sim/AtomicAndPhysicalConstants.jl):** Library providing physical constants and properties for any atomic or subatomic particle, in units chosen by the user, for use in simulations -## Packages +Users are pointed to example Jupyter notebooks in both Julia and Python in the [examples directory](https://github.com/bmad-sim/SciBmad.jl/tree/main/examples). -- **AcceleratorLattice.jl:** Package for accelerator lattice -construction and manipulation. Lattice elements are Julia -structs which have a Dict component that can store arbitrary -information which is important for flexibility. - -- **AtomicAndPhysicalConstants.jl:** Library of atomic -and subatomic particle properties and other physical constants (speed of light, etc.). -The package has Particle structs -for defining particles such as Helium-3+ and positrons. The -units used are flexible and can be set differently in different -packages that use this package. EG: Units of mass may be -set to MeV/c2, AMU, or something else as desired. - -- **GTPSA.jl:** Full-featured Julia interface to the Generalized Truncated Power Series Algebra (GTPSA) -library developed by Laurent Deniau. GTPSA performs automatic -differentiation (AD) of real and complex multi-variable functions to arbitrary orders. -GTPSA.jl is significantly faster than -other Julia AD packages for calculating derivatives above -first-order. - -- **SimUtils.jl:** Simulation utility routines for needed -functionality that does not exist in any external packages. -Except for the AcceleratorLattice package, all the packages currently being developed are useful in fields outside -of accelerator physics from cosmology to chemistry. - -- **NonlinearNormalForm.jl:** Nonlinear normal form -analysis using differential algebra maps including spin. Included are methods for calculating parameter-dependent nor- -mal forms using vector fields (Lie operators), operations including vector fields and maps (e.g. logarithms of maps, Lie -brackets, etc.), map inversion/partial inversion, and more. - -- **BeamTracking:** This package provides universally polymorphic and fully portable, parallelizable routines for simulating charged particle beams both on the CPU and, using KernelAbstractions.jl, various GPU backends including NVIDIA CUDA, Apple Metal, Intel oneAPI, and AMD ROCm. - -## Machine Learning - -Machine Learning (ML) and Artificial Intelligence (AI) are having a large impact on accelerator operations and optimizations. -ML/AI can provide advanced optimization tools that are uniquely suited -for many accelerator tasks, e.g., physics-informed Bayesian Optimization -addresses tasks where measurement uncertainties are relevant -or where obtaining measurements is time-consuming or expensive. -Additionally, the construction of ML-based surrogate models -has shown powerful speedups when describing hard-to-model sections -of accelerators, e.g., for space charge-dominated beams. - -Despite this, no comprehensive accelerator simulation toolkit has been designed with ML/AI in focus. The development of SciBmad will address this. -SciBmad will provide a maximally-differentiable simulation and lattice design environment, with the full-features of present Bmad and more. This enables machine learning techniques (e.g. backwards differentiation to train ML models) to be employed naturally, as well as any optimization techniques utilizing automatic differentiation for lattice design purposes; Julia's entire ecosystem of optimizers and machine learning packages are at one's fingertips in SciBmad. Alternatively, Julia provides bindings to existing Python ML/AI packages such as OpenAI Gym and PyTorch allowing for their -utilization as well. - -Computation speed is critical for ML/AI applications as well as for -other accelerator-based simulations. -Hence, there will be a heavy focus on developing GPU compatible code along with multi-threading and multi-processing capabilities. - -## Interoperability - -Bmad-Julia is being developed with consideration for compatibility with the wider accelerator modeling community. This includes data standards and lattice description. -This will facilitate cross-checking and benchmarking results, and enable integration between toolkits. This is important for start-to-end simulations, integration with external optimization tools, and seamless training of machine learning models. -For example, routines for reading and writing particle distributions using the openPMD standard will be developed and -Bmad-Julia will leverage prior investment in a scalable data stack that was developed for the US Exascale Computing Project (ECP). - -Translation software will be developed to translate between the Bmad-Julia lattice format and the existing -Bmad format, as well as other commonly used formats (MAD, etc.). Since Bmad-Julia will encompass the major features found in Bmad, translation from Bmad to Bmad-Julia should be close -to 100%. Back translation to Bmad will be fairly good except in a few areas such as control element descriptions since Bmad-Julia has a more expressive syntax in this area. - -For translation to non-Bmad lattice formats, -translation will never be perfect (far from it) since -different programs have different element types and differing constructs. Yet -experience has shown that just being able to translate basic information, -like type of element lengths and strengths, is very helpful. - -For portability for programs that do not use Julia, -or do not use the Bmad-Julia lattice parsing package, -a standard lattice syntax will be developed using a standard data format (EG: YAML, TOML, JSON). Along -with this, standardized parameter names and meanings will be established. -The lattice syntax will be extensible -in the sense that the syntax will allow custom information to be stored along side the information -defined by the standard. It is envisaged that this portable lattice standard could serve as -a lingua franca for lattice communication among non Bmad-Julia programs. - -## Based on Bmad - -SciBmad is inspired by the current Bmad ecosystem of toolkits and programs -for the simulation of relativistic charged particles and X-rays in accelerators and storage rings. Bmad has a wide range of capabilities including tracking of polarized beams and X-rays, while simulating coherent synchrotron radiation (CSR), wakefields, Touschek scattering, -higher order mode (HOM) resonances, space-charge dominated -beams, weak-strong beam-beam interactions, and much more. - -Although the SciBmad code will be completely separate from the existing -Bmad code, the development of SciBmad will -rely heavily on the many years of experience the developers have developing Bmad. -Concepts developed in Bmad will serve as a paradigm for the present effort. - -It should be noted that, due to Bmad's wide adoption and breadth of capabilities, -for the foreseeable future, SciBmad will not be a replacement for Bmad, -and both will co-exist side by side. - -## Why Julia? - -In modern AI/ML and modeling frameworks (e.g., PyTorch, BLAST, WarpX, ImpactX), the trend to combine a precompiled, high-performance language such as C++ with a scriptable interface language such as Python has been highly successful in ensuring performance, modularity, and productivity. -Revisiting the language choice, a new alternative emerged with the Julia programming language, which adopts just-in-time (JIT) compilation and multiple dispatch as central paradigms of the language. Such features significantly simplify the development process, enable the entire ecosystem to be fully differentiable, and provides performance on-par with that of C. At the same time, Julia can be rapidly scripted (dynamic dispatch) in simple syntax, effectively removing the ``two-language'' challenge for developers. -Although still relatively young, Julia provides capabilities that simplifies important aspects of this project. - -Julia comes with a full-featured interactive command-line REPL (Read-Evaluate-Print-Loop) built into the Julia executable similar to the REPL in Python. This means that the lattice description format, and the interaction between a user and simulation software in general, can be through the Julia language itself. Consequently, simulations will not be constrained by some program-defined language (like with MAD, Elegant, Bmad, etc.), and the user will automatically have access to such features as plotting, optimization packages, linear algebra packages, etc. This is a massive boost to the versatility and usability of any simulation program. Additionally, code -maintainability is greatly improved since the quantity of code that needs to be developed -is reduced. - -That Julia is an excellent choice for the SciBmad project is exemplified by the conclusions -of the paper ``Potential of the Julia programming language for high-energy physics computing'' (Jonas Eschle et. al, Comput Softw Big Sci 7, 10 (2023)) -written by a team of researchers from various laboratories around the world: -> Julia and its ecosystem are impressively fulfilling all these requirements [for use in HEP applications]... -> The capaSciBmady to provide, at the same time, ease of programming and performance makes Julia the ideal programming language for HEP ... the HEP community will definitively benefit from a large scale adoption of the Julia programming language for its software development." diff --git a/examples/.ipynb_checkpoints/julia-checkpoint.ipynb b/examples/.ipynb_checkpoints/julia-checkpoint.ipynb new file mode 100644 index 0000000..71bd561 --- /dev/null +++ b/examples/.ipynb_checkpoints/julia-checkpoint.ipynb @@ -0,0 +1,798 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8fec6c66", + "metadata": {}, + "source": [ + "## Introduction to SciBmad \n", + "\n", + "Differentiable simulation codes are necessary tools in accelerator physics to properly compute (via integration) Taylor maps representing the particle transport, and subsequently extract the lattice functions from. Early examples of differentiable accelerator physics codes are the Polymorphic Tracking Code (PTC) and COSY-INFINITY, both developed in the early 1990s. Modern examples of differentiable codes are CERN's `MAD-NG`, and Cornell's `SciBmad`:\n", + "\n", + "`SciBmad` is a new, modular, polymorphic, differentiable, and portable (CPU/GPU compatible) accelerator physics code being developed at Cornell. This Jupyter notebook will show some its basic features, including lazily evaluated deferred expressions, polymorphism, and differentiability." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a82bd33d-26f9-4eb5-9fa5-c74384b1b2a4", + "metadata": {}, + "outputs": [], + "source": [ + "# This only needs to be done once\n", + "import Pkg; \n", + "Pkg.add(\"https://github.com/bmad-sim/SciBmad.jl\")\n", + "Pkg.add(\"Plots\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "dc2130c5", + "metadata": {}, + "outputs": [], + "source": [ + "using SciBmad, Plots" + ] + }, + { + "cell_type": "markdown", + "id": "96cb92ae", + "metadata": {}, + "source": [ + "Let's first make a FODO cell consisting of a quadrupole, sextupole, bend, and drift. This uses the [`Beamlines.jl`](https://github.com/bmad-sim/Beamlines.jl) package within the SciBmad family, which is automatically included when `using SciBmad`. We require by design that the focusing quadrupole strength is negative that of the defocusing quadrupole strength, and likewise for the sextupole. To achieve this, we will use `SciBmad`'s deferred expressions" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a4b9d39d", + "metadata": {}, + "outputs": [], + "source": [ + "# Make a FODO cell requiring that\n", + "# qf.Kn1 = -qd.Kn1 \n", + "# and\n", + "# sf.Kn2 = -sd.Kn2\n", + "# This is done using a \"deferred expression\"\n", + "# to form a \"closure\" of the variables we define:\n", + "\n", + "K1 = 0.36;\n", + "K2 = 0.1;\n", + "\n", + "qf = Quadrupole(Kn1=DefExpr(() -> +K1), L=0.5);\n", + "sf = Sextupole(Kn2=DefExpr(() -> +K2), L=0.2);\n", + "d = Drift(L=0.6);\n", + "b = SBend(L=6.0, angle=pi/132);\n", + "qd = Quadrupole(Kn1=DefExpr(() -> -K1), L=0.5);\n", + "sd = Sextupole(Kn2=DefExpr(() -> -K2), L=0.2);\n", + "\n", + "\n", + "fodo_line = [qf, sf, d, b, d, qd, sd, d, b, d];\n", + "fodo = Beamline(fodo_line, species_ref=Species(\"electron\"), E_ref=18e9);" + ] + }, + { + "cell_type": "markdown", + "id": "fb4cc815", + "metadata": {}, + "source": [ + "Now if we update `K1`, both `qf` and `qd` will be (lazily) updated." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4c9dc7e6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.3\n", + "-0.3\n" + ] + } + ], + "source": [ + "K1 = 0.3\n", + "println(qf.Kn1)\n", + "println(qd.Kn1)" + ] + }, + { + "cell_type": "markdown", + "id": "c451c9a6", + "metadata": {}, + "source": [ + "We can get the Twiss parameters using `twiss` " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "b88402ce", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "Table with 23 columns and 11 rows:\n", + " s phi_1 beta_1 alpha_1 phi_2 beta_2 alpha_2 ⋯\n", + " ┌───────────────────────────────────────────────────────────────────────\n", + " 1 │ 0.0 0.0 25.7461 -1.9335 0.0 7.21098 0.572616 ⋯\n", + " 2 │ 0.5 0.00305255 25.7461 1.93356 0.0111833 7.21098 -0.572616 ⋯\n", + " 3 │ 0.7 0.00430772 24.98 1.89675 0.0155274 7.44739 -0.609446 ⋯\n", + " 4 │ 1.3 0.00831212 22.7702 1.78632 0.0277257 8.24502 -0.719935 ⋯\n", + " 5 │ 7.3 0.0818501 7.95426 0.68254 0.0986311 23.5136 -1.82482 ⋯\n", + " 6 │ 7.9 0.0944804 7.20156 0.571968 0.102511 25.7697 -1.93531 ⋯\n", + " 7 │ 8.4 0.105678 7.20155 -0.571951 0.105561 25.7697 1.93531 ⋯\n", + " 8 │ 8.6 0.110028 7.4377 -0.608808 0.106815 25.0029 1.89848 ⋯\n", + " 9 │ 9.2 0.122242 8.23461 -0.719378 0.110815 22.791 1.78799 ⋯\n", + " 10 │ 15.2 0.193223 23.4922 -1.82307 0.184274 7.96441 0.683105 ⋯\n", + " 11 │ 15.8 0.197106 25.7461 -1.9335 0.196888 7.21098 0.572616 ⋯" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t = twiss(fodo)\n", + "\n", + "plt = plot()\n", + "plot!(plt, t.s, t.beta_1, label=\"beta_1\")\n", + "plot!(plt, t.s, t.beta_2, label=\"beta_2\")\n", + "xlabel!(plt, \"s [m]\")\n", + "ylabel!(plt, \"Beta Function [m]\")\n", + "display(plt)\n", + "t" + ] + }, + { + "cell_type": "markdown", + "id": "a8aed78e", + "metadata": {}, + "source": [ + "Let's compute the transport matrix for this FODO cell using automatic differentiation (AD). Because it is a periodic (closed) geometry, we first need to find the closed orbit. We then will expand for small deviations around this orbit." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "7d07240c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4-element StaticArraysCore.MVector{4, Float64} with indices SOneTo(4):\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "co = find_closed_orbit(fodo)\n", + "v0 = co.u" + ] + }, + { + "cell_type": "markdown", + "id": "c494612f", + "metadata": {}, + "source": [ + "We see that in this case the closed orbit is the \"zero orbit\", which makes sense because all the magnets are perfectly aligned and there are no RF cavities. Note that in general the \"zero orbit\" is not always the closed orbit (in the case of a periodic accelerator) or the reference orbit (in the case of a linac). We must always expand around some real trajectory.\n", + "\n", + "Now we will use [`GTPSA.jl`](https://github.com/bmad-sim/GTPSA.jl) to compute the Taylor map, to 2nd order. `GTPSA.jl` is a full-featured interface to the Generalised Truncated Power Series Algebra library, written by Laurent Deniau for CERN's `MAD-NG` code, and is another package in the `SciBmad` family. Because `SciBmad` is polymorphic, all we need to do is track a single particle on the closed orbit where the numbers are Truncated Power Series (`TPS`) types instead of the regular 64-bit floats `Float64`s.\n", + "\n", + "First, we define a `Descriptor` to define the number of variables (6) and the truncation order of our Taylor series (2)." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "158da855", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Descriptor(NV=6, MO=2)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "D2 = Descriptor(6, 2) # 6 variables, 2nd order" + ] + }, + { + "cell_type": "markdown", + "id": "0efc6faa", + "metadata": {}, + "source": [ + "We will then get our special `TPS` number types. Specifically, we will start with the \"identity map\", or a vector of unit \"wiggles\". E.g., wiggle the input a bit, see how the output wiggles" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "b8035fae", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6-element Vector{TPS64{Descriptor(NV=6, MO=2)}}:\n", + " Index Coefficient Order Exponent\n", + "--------------------------------------------------------------------\n", + " 1: 1.0000000000000000e+00 1 1 0 0 0 0 0\n", + "--------------------------------------------------------------------\n", + " 2: 1.0000000000000000e+00 1 0 1 0 0 0 0\n", + "--------------------------------------------------------------------\n", + " 3: 1.0000000000000000e+00 1 0 0 1 0 0 0\n", + "--------------------------------------------------------------------\n", + " 4: 1.0000000000000000e+00 1 0 0 0 1 0 0\n", + "--------------------------------------------------------------------\n", + " 5: 1.0000000000000000e+00 1 0 0 0 0 1 0\n", + "--------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 1 0 0 0 0 0 1\n" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Then get a vector of `TPS`s representing an identity of the variables:\n", + "dv = @vars(D2) # Think of these as unit \"wiggles\"\n", + "\n", + " # Finally initialize our particle coordinates\n", + "v0 = zeros(6) # Closed orbit\n", + "v = v0 + dv # Particle as a TPSA (wiggle around the closed orbit)" + ] + }, + { + "cell_type": "markdown", + "id": "a0c8b97c", + "metadata": {}, + "source": [ + "Now we track!" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "1d9f7c33", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mSetting bunch.species = Species(\"electron\", -1 e, 0.51099895069 MeV c^-2, 0.5 h_bar, -9.2847646917e-24 J T^-1, 0.0, AtomicAndPhysicalConstants.Kind.LEPTON) (reference species from the Beamline)\n", + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mSetting bunch.R_ref = -60.04153711147289 (reference R_ref from the Beamline)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6-element Matrix{TPS64{Descriptor(NV=6, MO=2)}}:\n", + " Index Coefficient Order Exponent\n", + "--------------------------------------------------------------------\n", + " 1: 2.5673907444456746e-17 0 0 0 0 0 0 0\n", + " 1: -1.5014406748569284e+00 1 1 0 0 0 0 0\n", + " 1: 2.4337323961276095e+01 1 0 1 0 0 0 0\n", + " 1: 3.0902218513873479e-16 1 0 0 1 0 0 0\n", + " 1: 1.1862399218856096e-15 1 0 0 0 1 0 0\n", + " 1: 4.6559967240029487e-01 1 0 0 0 0 0 1\n", + " 1: -2.1624629039941584e-01 2 2 0 0 0 0 0\n", + " 1: -5.9739097567507493e-01 2 1 1 0 0 0 0\n", + " 1: 6.0045879718470401e+00 2 0 2 0 0 0 0\n", + " 1: 2.0259254391159418e-17 2 1 0 1 0 0 0\n", + " 1: 3.6346854686241299e-17 2 0 1 1 0 0 0\n", + " 1: -7.3954551315820696e-02 2 0 0 2 0 0 0\n", + " 1: 9.5315805435515612e-18 2 1 0 0 1 0 0\n", + " 1: 9.5877497795269650e-17 2 0 1 0 1 0 0\n", + " 1: -2.3689760676231550e+00 2 0 0 1 1 0 0\n", + " 1: -5.2327062138421629e+00 2 0 0 0 2 0 0\n", + " 1: 3.8112249845238524e+00 2 1 0 0 0 0 1\n", + " 1: -3.2492213276665638e+01 2 0 1 0 0 0 1\n", + " 1: -4.7920330968023451e-16 2 0 0 1 0 0 1\n", + " 1: -2.4127154389007992e-15 2 0 0 0 1 0 1\n", + " 1: -5.7202779308232898e-01 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 2: -3.4694469519536142e-18 0 0 0 0 0 0 0\n", + " 2: -1.7397295890500816e-01 1 1 0 0 0 0 0\n", + " 2: 2.1539554079824854e+00 1 0 1 0 0 0 0\n", + " 2: 4.0393024003251738e-17 1 0 0 1 0 0 0\n", + " 2: 1.5507898776475879e-16 1 0 0 0 1 0 0\n", + " 2: 6.1482849956368352e-02 1 0 0 0 0 0 1\n", + " 2: -1.9722870913301199e-02 2 2 0 0 0 0 0\n", + " 2: -5.0282247259354089e-02 2 1 1 0 0 0 0\n", + " 2: 6.7476981448001927e-01 2 0 2 0 0 0 0\n", + " 2: 2.9279449552972185e-18 2 1 0 1 0 0 0\n", + " 2: 8.0243070091775161e-19 2 0 1 1 0 0 0\n", + " 2: -2.2745161470257270e-02 2 0 0 2 0 0 0\n", + " 2: 2.3366295028067268e-18 2 1 0 0 1 0 0\n", + " 2: -3.4623545717189121e-18 2 0 1 0 1 0 0\n", + " 2: -3.3723372881227109e-01 2 0 0 1 1 0 0\n", + " 2: -7.1343301607080045e-01 2 0 0 0 2 0 0\n", + " 2: 1.7345231288692578e-01 2 1 0 0 0 0 1\n", + " 2: -1.1088836056618629e+00 2 0 1 0 0 0 1\n", + " 2: -2.2321958047504711e-17 2 0 0 1 0 0 1\n", + " 2: -1.6063174858953920e-16 2 0 0 0 1 0 1\n", + " 2: -1.3965963035470819e-02 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 3: 1.9503102460948876e-33 0 0 0 0 0 0 0\n", + " 3: -2.3927261957155002e-17 1 1 0 0 0 0 0\n", + " 3: 1.1038748331200114e-15 1 0 1 0 0 0 0\n", + " 3: 8.6857893743585524e-01 1 0 0 1 0 0 0\n", + " 3: 6.8131679885373284e+00 1 0 0 0 1 0 0\n", + " 3: 1.2867286114383261e-17 1 0 0 0 0 0 1\n", + " 3: -9.8382803980890678e-18 2 2 0 0 0 0 0\n", + " 3: -1.2042156058859378e-17 2 1 1 0 0 0 0\n", + " 3: -2.3470654542006775e-18 2 0 2 0 0 0 0\n", + " 3: 2.0820966400777624e-01 2 1 0 1 0 0 0\n", + " 3: -2.6756654190446780e+00 2 0 1 1 0 0 0\n", + " 3: 6.5335351414440528e-18 2 0 0 2 0 0 0\n", + " 3: 3.6240773616285304e-01 2 1 0 0 1 0 0\n", + " 3: -1.0570001099680727e+01 2 0 1 0 1 0 0\n", + " 3: -2.5880277039527031e-17 2 0 0 1 1 0 0\n", + " 3: -7.2050602930178200e-17 2 0 0 0 2 0 0\n", + " 3: 1.8632928742761530e-16 2 1 0 0 0 0 1\n", + " 3: -2.1667494559807967e-15 2 0 1 0 0 0 1\n", + " 3: 1.4140740187800873e+00 2 0 0 1 0 0 1\n", + " 3: 2.2604678416660864e+00 2 0 0 0 1 0 1\n", + " 3: -2.5732412126539622e-17 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 4: 2.5494277617600177e-34 0 0 0 0 0 0 0\n", + " 4: -3.1351618188348685e-18 1 1 0 0 0 0 0\n", + " 4: 1.4434565082821014e-16 1 0 1 0 0 0 0\n", + " 4: -1.7398939290416998e-01 1 0 0 1 0 0 0\n", + " 4: -2.1347393321223374e-01 1 0 0 0 1 0 0\n", + " 4: 1.6831903456569136e-18 1 0 0 0 0 0 1\n", + " 4: -1.2952683507913980e-18 2 2 0 0 0 0 0\n", + " 4: -1.0010453721889786e-18 2 1 1 0 0 0 0\n", + " 4: -8.1487087223193381e-18 2 0 2 0 0 0 0\n", + " 4: 7.3022308400481958e-03 2 1 0 1 0 0 0\n", + " 4: -3.7185533658269149e-01 2 0 1 1 0 0 0\n", + " 4: 9.1558495150012200e-19 2 0 0 2 0 0 0\n", + " 4: 3.5855761603031715e-02 2 1 0 0 1 0 0\n", + " 4: -1.4571267707018307e+00 2 0 1 0 1 0 0\n", + " 4: -3.1474466339308438e-18 2 0 0 1 1 0 0\n", + " 4: -9.4147249692288701e-18 2 0 0 0 2 0 0\n", + " 4: 2.1243787128435713e-17 2 1 0 0 0 0 1\n", + " 4: -1.3920113956595321e-16 2 0 1 0 0 0 1\n", + " 4: 1.6947583964386848e-01 2 0 0 1 0 0 1\n", + " 4: 1.2241119774585181e+00 2 0 0 0 1 0 1\n", + " 4: -1.6843704085384344e-18 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 5: 3.5527136788005009e-15 0 0 0 0 0 0 0\n", + " 5: 1.1311099057935241e-02 1 1 0 0 0 0 0\n", + " 5: -4.9344710512917722e-01 1 0 1 0 0 0 0\n", + " 5: -3.8933408802014251e-18 1 0 0 1 0 0 0\n", + " 5: -1.4943373988355360e-17 1 0 0 0 1 0 0\n", + " 5: 1.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -6.9454818941118261e-03 1 0 0 0 0 0 1\n", + " 5: -1.9719838895671135e-01 2 2 0 0 0 0 0\n", + " 5: 4.0011614377625913e+00 2 1 1 0 0 0 0\n", + " 5: -2.1554766055882183e+01 2 0 2 0 0 0 0\n", + " 5: 4.9336220796246548e-17 2 1 0 1 0 0 0\n", + " 5: -4.7403272715040173e-16 2 0 1 1 0 0 0\n", + " 5: -2.0266171553111639e-01 2 0 0 2 0 0 0\n", + " 5: 2.0112418871060279e-16 2 1 0 0 1 0 0\n", + " 5: -2.3209771029334907e-15 2 0 1 0 1 0 0\n", + " 5: -1.4678998216757262e+00 2 0 0 1 1 0 0\n", + " 5: -4.4217682376835699e+00 2 0 0 0 2 0 0\n", + " 5: 3.5309717306444563e-03 2 1 0 0 0 0 1\n", + " 5: -3.0303835308768656e-01 2 0 1 0 0 0 1\n", + " 5: -6.8297018611890651e-18 2 0 0 1 0 0 1\n", + " 5: -2.4850087697338867e-17 2 0 0 0 1 0 1\n", + " 5: -1.9110915509567084e-03 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 1 0 0 0 0 0 1\n", + "\n" + ] + } + ], + "source": [ + "b0 = Bunch(v)\n", + "track!(b0, fodo) # b0 is mutated in-place with the result\n", + "println(b0.coords.v)" + ] + }, + { + "cell_type": "markdown", + "id": "1d406465", + "metadata": {}, + "source": [ + "This is the real nonlinear Taylor map, computed from the integrator itself - no matrix or map is stored internally.\n", + "\n", + "The exponent specifies the power of each variable, e.g. the last row in `1: ...` corresponds to $\\delta^2$ - it defines how $x$ depends on $\\delta^2$.\n", + "\n", + "We can also get the linear part (as a matrix):" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "bde7fdc3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6×6 Matrix{Float64}:\n", + " -1.50144 24.3373 3.09022e-16 1.18624e-15 0.0 0.4656\n", + " -0.173973 2.15396 4.0393e-17 1.55079e-16 0.0 0.0614828\n", + " -2.39273e-17 1.10387e-15 0.868579 6.81317 0.0 1.28673e-17\n", + " -3.13516e-18 1.44346e-16 -0.173989 -0.213474 0.0 1.68319e-18\n", + " 0.0113111 -0.493447 -3.89334e-18 -1.49434e-17 1.0 -0.00694548\n", + " 0.0 0.0 0.0 0.0 0.0 1.0" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We can clean up the output with\n", + "GTPSA.show_eps = 1e-10\n", + "\n", + "# Also print the matrix (linear part)\n", + "GTPSA.jacobian(b0.coords.v)" + ] + }, + { + "cell_type": "markdown", + "id": "b0edbb7e", + "metadata": {}, + "source": [ + "To get the tunes, we need to go to the normal form, where the motion lies on circles in phase space with tunes as functions of solely the radius of the circle (amplitude-dependent rotations). E.g. we seek a nonlinear map $\\vec{a}$ such that $\\vec{r} = \\vec{a}^{-1}\\circ\\vec{m}\\circ\\vec{a}$ where $\\vec{m}$ is the one-turn map. $\\vec{r}$ will then, being in circle world, have the form\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\begin{pmatrix}\n", + " \\bar{q}_1 \\\\ \\bar{p}_1 \\\\ \\vdots \\\\ \\bar{q}_n \\\\ \\bar{p}_n\n", + " \\end{pmatrix}_{t_0+T} = \n", + " \\underbrace{\\begin{pmatrix}\n", + " \\mathsf{R}(\\mu_i(\\vec{J})) & \\mathsf{0} & \\mathsf{0} \\\\\n", + " \\mathsf{0} & \\ddots & \\mathsf{0}\\\\\n", + " \\mathsf{0} & \\mathsf{0} & \\mathsf{R}(\\mu_n(\\vec{J}))\n", + " \\end{pmatrix}}_{\\let\\scriptstyle\\textstyle\\substack{\\vec{r}}}\n", + "\\begin{pmatrix}\n", + " \\bar{q}_1 \\\\ \\bar{p}_1 \\\\ \\vdots \\\\ \\bar{q}_n \\\\ \\bar{p}_n\n", + " \\end{pmatrix}_{t_0},\\ \\ \\mathsf{R}(\\alpha)= \\begin{pmatrix}\n", + " \\cos{\\alpha} && \\sin{\\alpha} \\\\\n", + " -\\sin{\\alpha} && \\cos{\\alpha}\n", + " \\end{pmatrix} \\ .\n", + "\\end{equation}\n", + "$$\n", + "\n", + "where $(\\bar{q}_1,\\bar{p}_1) = (\\sqrt{2J_1}\\cos{\\phi_1},\\sqrt{2J_1}\\sin{\\phi_1})$.\n", + "\n", + "`SciBmad`'s `NonlinearNormalForm.jl` package makes it very easy to compute `a`, with a single function `normal`. We will elevate the tracking map result to a bona-fide `DAMap` (differential algebraic map) type, and then compute `a`:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "07d6365a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DAMap{StaticArraysCore.MVector{5, Float64}, StaticArraysCore.MVector{6, TPS64{Descriptor(NV=6, MO=2)}}, Nothing, Nothing}([0.0, 0.0, 0.0, 0.0, 0.0], 6-element StaticArraysCore.MVector{6, TPS64{Descriptor(NV=6, MO=2)}}:\n", + " Index Coefficient Order Exponent\n", + "--------------------------------------------------------------------\n", + " 1: -5.0740641298145208e+00 1 0 1 0 0 0 0\n", + " 1: 7.1173080782844123e-01 1 0 0 0 0 0 1\n", + " 1: -3.2440195507262537e+00 2 2 0 0 0 0 0\n", + " 1: -1.0588609141558833e-01 2 1 1 0 0 0 0\n", + " 1: -6.2957227019419260e-01 2 0 2 0 0 0 0\n", + " 1: -7.7843206796179210e-01 2 0 0 2 0 0 0\n", + " 1: 2.0172973343682132e-01 2 0 0 1 1 0 0\n", + " 1: -9.4879578008434196e-01 2 0 0 0 2 0 0\n", + " 1: 4.0762360205410986e-01 2 1 0 0 0 0 1\n", + " 1: 2.2525273815312095e+00 2 0 1 0 0 0 1\n", + " 1: 4.8426245951542735e-01 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 2: 1.9708067821297998e-01 1 1 0 0 0 0 0\n", + " 2: -3.8105492152119613e-01 1 0 1 0 0 0 0\n", + " 2: 5.4022074158296678e-02 1 0 0 0 0 0 1\n", + " 2: -2.4567755447654155e-01 2 2 0 0 0 0 0\n", + " 2: -5.6858066603311094e-02 2 1 1 0 0 0 0\n", + " 2: 7.8358079323231578e-02 2 0 2 0 0 0 0\n", + " 2: -5.9006495658259682e-02 2 0 0 2 0 0 0\n", + " 2: -5.2924336286638424e-02 2 0 0 1 1 0 0\n", + " 2: -1.1275408902141754e-01 2 0 0 0 2 0 0\n", + " ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮\n", + "\u001b[36m 33 rows omitted\u001b[0m\n", + ", nothing, nothing)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m = DAMap(v=b0.coords.v)\n", + "a = normal(m)" + ] + }, + { + "cell_type": "markdown", + "id": "d2387e9a", + "metadata": {}, + "source": [ + "We now can compute the nonlinear rotation $\\vec{r}$:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "c062c4d2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6×6 Matrix{Float64}:\n", + " 0.326257 0.945281 -2.38455e-16 7.58989e-17 0.0 1.38778e-16\n", + " -0.945281 0.326257 -1.2326e-32 -1.84889e-32 0.0 4.16334e-17\n", + " -3.78653e-29 -6.31089e-30 0.327553 0.944833 0.0 -1.26218e-29\n", + " 0.0 0.0 -0.944833 0.327553 0.0 1.57772e-30\n", + " -4.71845e-16 -3.33501e-16 0.0 2.46519e-32 1.0 -0.0255521\n", + " 0.0 0.0 0.0 0.0 0.0 1.0" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ai = inv(a)\n", + "r = ai * m * a\n", + "GTPSA.jacobian(r.v)" + ] + }, + { + "cell_type": "markdown", + "id": "06c464f6", + "metadata": {}, + "source": [ + "It is easiest to view this in the complex phasors basis where the coordinates are $(\\tilde{q}_i,\\tilde{p}_i)=(\\sqrt{J_i}e^{+\\textrm{i}\\phi_i},\\sqrt{J_i}e^{-\\textrm{i}\\phi_i})$. That way, we see explicitly that the monomials $(\\tilde{q}_i\\tilde{p}_i)^n = J_i^n$." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "eb00add2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DAMap{StaticArraysCore.MVector{5, ComplexF64}, StaticArraysCore.MVector{6, ComplexTPS64{Descriptor(NV=6, MO=2)}}, Nothing, Nothing}(ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im], 6-element StaticArraysCore.MVector{6, ComplexTPS64{Descriptor(NV=6, MO=2)}}:\n", + " Index Real Imag Order Exponent\n", + "---------------------------------------------------------------------------------------------\n", + " 1: 3.2625736656277848e-01 -9.4528097979570247e-01 1 1 0 0 0 0 0\n", + " 1: 1.1996841454073626e+00 4.1406290653633482e-01 2 1 0 0 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 2: 3.2625736656277848e-01 9.4528097979570247e-01 1 0 1 0 0 0 0\n", + " 2: 1.1996841454073626e+00 -4.1406290653633482e-01 2 0 1 0 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 3: 3.2755250211181086e-01 -9.4483297908164277e-01 1 0 0 1 0 0 0\n", + " 3: 1.2943164363081314e+00 4.4871061512823929e-01 2 0 0 1 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 4: 3.2755250211181086e-01 9.4483297908164277e-01 1 0 0 0 1 0 0\n", + " 4: 1.2943164363081314e+00 -4.4871061512823929e-01 2 0 0 0 1 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 5: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -2.5552060330665306e-02 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + " 5: -1.2691296778939141e+00 0.0000000000000000e+00 2 1 1 0 0 0 0\n", + " 5: -1.3698891391007313e+00 0.0000000000000000e+00 2 0 0 1 1 0 0\n", + " 5: -3.8329009509992636e-02 0.0000000000000000e+00 2 0 0 0 0 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + ", nothing, nothing)" + ] + } + ], + "source": [ + "c = c_map(m)\n", + "ci = inv(c)\n", + "r_phasor = ci * r * c\n", + "print(r_phasor)" + ] + }, + { + "cell_type": "markdown", + "id": "1f0c06e6", + "metadata": {}, + "source": [ + "Note that this map, which is a rotation, is in the phasors basis. So, $\\tilde{q}_1 = \\sqrt{J}e^{\\textrm{i}\\phi_1}$. In the linear case we have\n", + "\n", + "$$\n", + "\\tilde{q}_1 ∘ \\vec{r}_{phasor,linear} = \\underbrace{\\sqrt{J}e^{\\textrm{i}\\phi_1}}_{\\tilde{q}_1}e^{-\\textrm{i}2\\pi\\nu_{1}} = \\sqrt{J}e^{\\textrm{i}(\\phi_1 - 2\\pi\\nu_{1})} \\ .\n", + "$$\n", + "This makes sense - it rotators phase. In the nonlinear case we see that we have\n", + "\n", + "$$\n", + "\\tilde{q}_1 ∘ \\vec{r}_{phasor} = \\sqrt{J}e^{\\textrm{i}\\phi_1}e^{-\\textrm{i}2\\pi\\left(\\nu_{1}+\\xi_x\\delta\\right)}\n", + "$$\n", + "\n", + "We can remove the $\\sqrt{J}e^{\\textrm{i}\\phi_1}$ using `par` in `GTPSA`, specifying to remove the first variable. Then we can naturally compute the amplitude-dependent tune" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "d0cb4300", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "TPS64{Descriptor(NV=6, MO=2)}:\n", + " Coefficient Order Exponent\n", + " 1.9710619563624454e-01 0 0 0 0 0 0 0\n", + " -2.0198826166144121e-01 1 0 0 0 0 0 1\n" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ADT = real(-log(par(r_phasor.v[1], 1))/(2*pi*im))\n", + "ADT" + ] + }, + { + "cell_type": "markdown", + "id": "3b6b0502", + "metadata": {}, + "source": [ + "With a differentiable code, we can trivially extract things like the chromaticity, and get exact solutions given the physics of the tracking code - no nasty equations or integrals.\n", + "\n", + "Not only is differentiability necessary to compute and analyze high order Taylor maps, it also allows us to compute exact derivatives of anything we want. This includes the parameters, e.g. the quadrupole strengths. Using `SciBmad`, we can compute the tune $\\nu_x$ as a function of variations in the quadrupole strength, e.g. $\\nu=\\nu(\\Delta K_{n1})$" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.11.6", + "language": "julia", + "name": "julia-1.11" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.11.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/.ipynb_checkpoints/python-checkpoint.ipynb b/examples/.ipynb_checkpoints/python-checkpoint.ipynb new file mode 100644 index 0000000..b9dab2e --- /dev/null +++ b/examples/.ipynb_checkpoints/python-checkpoint.ipynb @@ -0,0 +1,661 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8fec6c66", + "metadata": {}, + "source": [ + "## Introduction to SciBmad \n", + "\n", + "Differentiable simulation codes are necessary tools in accelerator physics to properly compute (via integration) Taylor maps representing the particle transport, and subsequently extract the lattice functions from. Early examples of differentiable accelerator physics codes are the Polymorphic Tracking Code (PTC) and COSY-INFINITY, both developed in the early 1990s. Modern examples of differentiable codes are CERN's `MAD-NG`, and Cornell's `SciBmad`:\n", + "\n", + "`SciBmad` is a new, modular, polymorphic, differentiable, and portable (CPU/GPU compatible) accelerator physics code being developed at Cornell. This Jupyter notebook will show some its basic features, including lazily evaluated deferred expressions, polymorphism, and differentiability." + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "dc2130c5", + "metadata": {}, + "outputs": [], + "source": [ + "import math\n", + "from juliacall import Main as jl\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b08a6b76-274a-4a8c-aae2-0def79116315", + "metadata": {}, + "outputs": [], + "source": [ + "# This only needs to be done once\n", + "jl.seval('import Pkg; Pkg.add(\"https://github.com/bmad-sim/SciBmad.jl\")')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "122aae65-2770-4ed8-8e42-b8d0dc9e778d", + "metadata": {}, + "outputs": [], + "source": [ + "jl.seval('using SciBmad')" + ] + }, + { + "cell_type": "markdown", + "id": "96cb92ae", + "metadata": {}, + "source": [ + "Let's first make a FODO cell consisting of a quadrupole, sextupole, bend, and drift. This uses the [`Beamlines.jl`](https://github.com/bmad-sim/Beamlines.jl) package within the SciBmad family, which is automatically included when `using SciBmad`. We require by design that the focusing quadrupole strength is negative that of the defocusing quadrupole strength, and likewise for the sextupole. To achieve this, we will use `SciBmad`'s deferred expressions" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "id": "a4b9d39d", + "metadata": {}, + "outputs": [], + "source": [ + "# Make a FODO cell requiring that\n", + "# qf.Kn1 = -qd.Kn1 \n", + "# and\n", + "# sf.Kn2 = -sd.Kn2\n", + "# This is done using a \"deferred expression\"\n", + "# to form a \"closure\" of the variables we define:\n", + "\n", + "K1 = 0.36\n", + "K2 = 0.1\n", + "\n", + "qf = jl.Quadrupole(Kn1=jl.DefExpr(lambda : +K1), L=0.5)\n", + "sf = jl.Sextupole(Kn2=jl.DefExpr(lambda : +K2), L=0.2)\n", + "d = jl.Drift(L=0.6)\n", + "b = jl.SBend(L=6.0, angle=math.pi/132)\n", + "qd = jl.Quadrupole(Kn1=jl.DefExpr(lambda : -K1), L=0.5)\n", + "sd = jl.Sextupole(Kn2=jl.DefExpr(lambda : -K2), L=0.2)\n", + "\n", + "\n", + "fodo_line = [qf, sf, d, b, d, qd, sd, d, b, d]\n", + "fodo = jl.Beamline(fodo_line, species_ref=jl.Species(\"electron\"), E_ref=18e9)" + ] + }, + { + "cell_type": "markdown", + "id": "fb4cc815", + "metadata": {}, + "source": [ + "Now if we update `K1`, both `qf` and `qd` will be (lazily) updated." + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "id": "4c9dc7e6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.3\n", + "-0.3\n" + ] + } + ], + "source": [ + "K1 = 0.3\n", + "print(qf.Kn1)\n", + "print(qd.Kn1)" + ] + }, + { + "cell_type": "markdown", + "id": "c451c9a6", + "metadata": {}, + "source": [ + "We can get the Twiss parameters using `twiss` " + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "id": "b88402ce", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/csv": [ + "0.0,0.0,25.7461267934704,-1.9334971087799893,0.0,7.210976055428953,0.5726159514985499,0.0,0.7117308078284412,8.677692406696553e-17,0.05402207415829668,-6.467888247580537e-18,1.0,4.037520933160633e-31,-2.2224004801661462e-30,1.5498785351652845e-30,-8.531103263046536e-30,2.5673907444456746e-17,-3.469446951953614e-18,1.9503102460948876e-33,2.5494277617600177e-34,3.552713678800501e-15,0.0\n", + "0.5,0.0030525501501389267,25.746095250772324,1.933558609098818,0.011183267028670124,7.210976055428948,-0.57261595149855,-4.0296285122857947e-10,0.7118819609706533,8.67769276876137e-17,-0.05342124514999037,6.467902820576544e-18,1.0,-3.210935834153522e-31,-1.0207901500631485e-30,-2.455489231844709e-30,-7.80625758631512e-30,2.3004017611536737e-17,-7.143281550576877e-18,2.15297589492062e-33,5.607801383343478e-34,3.552713678800501e-15,0.0\n", + "0.7,0.00430771980582032,24.980033931522797,1.8967479871488506,0.015527419176759177,7.447388368283326,-0.6094456127733466,-5.641479916499631e-10,0.7011977119406552,8.807050825172901e-17,-0.05342124514999037,6.467902820576544e-18,1.0,-5.252516134279817e-31,-1.0207901500631483e-30,-3.9116904264221374e-30,-7.602099556302493e-30,2.1575361301421363e-17,-7.143281550576877e-18,2.2651319225874895e-33,5.607801383343478e-34,3.552713678800501e-15,0.0\n", + "1.2999999999999998,0.008312118517134186,22.77019546645412,1.7863161212989485,0.02772570758331353,8.245016493905975,-0.7199345965977366,-1.047703412914114e-9,0.669144964850661,9.195124994407494e-17,-0.05342124514999037,6.467902820576544e-18,1.0,-1.1377257034658708e-30,-1.0207901500631483e-30,-7.79031473812411e-30,-6.989625466264605e-30,1.7289392371075237e-17,-7.143281550576877e-18,2.601600005588098e-33,5.607801383343478e-34,3.552713678800501e-15,0.0\n", + "7.3,0.08185009571856819,7.954261319966783,0.6825399800367532,0.0986310715066912,23.513570682542227,-1.824824434841638,0.012676436970884117,0.41985471028259647,1.307586668675342e-16,-0.02967158391035084,6.467902820576544e-18,1.0,-7.262466603844761e-30,-1.0207901500631483e-30,-6.153267912643168e-30,-8.648845658857141e-31,-2.7755575615628914e-17,-1.0408340855860843e-17,5.966280835594184e-33,5.607801383343478e-34,5.329070518200751e-15,0.0\n", + "7.8999999999999995,0.09448041173443075,7.2015563864175025,0.5719682425453809,0.1025107953557441,25.769653394646824,-1.9353134186660281,0.012676436487328696,0.402051759936386,1.3463940855988012e-16,-0.02967158391035084,6.467902820576544e-18,1.0,-7.874940693882651e-30,-1.0207901500631482e-30,-1.9472342358450065e-30,-2.524104758478254e-31,-3.400058012914542e-17,-1.0408340855860843e-17,6.302748918594793e-33,5.607801383343478e-34,5.329070518200751e-15,0.0\n", + "8.399999999999999,0.1056783372230678,7.201548006839477,-0.5719510664904711,0.10556055644725755,25.769653394646816,1.935313418666028,0.012676436084365845,0.4022012316827141,1.3463929709906148e-16,0.030273203026655097,-6.4678882475805374e-18,1.0,-7.87048444773898e-30,1.038093247468592e-30,1.9474797137037346e-30,-2.568667219663663e-31,-4.055305765871423e-17,-1.596517680069816e-17,6.180653453461315e-33,-1.0661670112927294e-33,5.329070518200751e-15,0.0\n", + "8.599999999999998,0.11002816381533444,7.437699782046824,-0.608807809546247,0.10681457855481097,25.002893959435355,1.8984837573912308,0.012676435923180705,0.4082558722880451,1.3334571944954535e-16,0.030273203026655097,-6.4678882475805374e-18,1.0,-7.66286579824526e-30,1.0380932474685919e-30,3.428679528959513e-30,-4.6448537146008455e-31,-4.374609301885386e-17,-1.596517680069816e-17,5.9674200512027694e-33,-1.0661670112927294e-33,5.329070518200751e-15,0.0\n", + "9.199999999999998,0.12224213477993526,8.23461129100272,-0.719378038713575,0.11081531760565881,22.791006840860515,1.7879947735668407,0.012676435439625284,0.4264197941040382,1.2946498650099703e-16,0.030273203026655097,-6.4678882475805374e-18,1.0,-7.040009849764104e-30,1.0380932474685917e-30,7.373994215941925e-30,-1.0873413199412397e-30,-5.332519909927276e-17,-1.596517680069816e-17,5.3277198444271315e-33,-1.0661670112927294e-33,5.329070518200751e-15,0.0\n", + "15.199999999999998,0.19322293261782714,23.49218597583307,-1.8230709206157505,0.1842740984496693,7.964408587521835,0.6831049353229397,0.025552060814220248,0.6793175633334632,9.065765701551381e-17,0.05402207415829678,-6.4678882475805374e-18,1.0,-8.114503649525547e-31,1.0380932474685913e-30,5.718648486009816e-30,-7.315900804752788e-30,-1.5265566588595902e-16,-2.0816681711721685e-17,-1.0692822233292452e-33,-1.0661670112927294e-33,7.105427357601002e-15,0.0\n", + "15.799999999999997,0.19710619563624432,25.746126793470516,-1.9334971087799986,0.19688808477433156,7.210976055428943,0.5726159514985495,0.025552060330664827,0.7117308078284412,8.677692406696548e-17,0.05402207415829678,-6.4678882475805374e-18,1.0,-1.8859441647139994e-31,1.0380932474685913e-30,1.4422646530409833e-30,-7.938756753233941e-30,-1.6514567491299204e-16,-2.0816681711721685e-17,-1.7089824301048828e-33,-1.0661670112927294e-33,7.105427357601002e-15,0.0\n" + ], + "text/plain": [ + "Table with 23 columns and 11 rows:\n", + " s phi_1 beta_1 alpha_1 phi_2 beta_2 alpha_2 phi_3 eta_1 ⋯\n", + " ┌───────────────────────────────────────────────────────────────────────────────────────────────\n", + " 1 │ 0.0 0.0 25.7461 -1.9335 0.0 7.21098 0.572616 0.0 0.711731 ⋯\n", + " 2 │ 0.5 0.00305255 25.7461 1.93356 0.0111833 7.21098 -0.572616 -4.02963e-10 0.711882 ⋯\n", + " 3 │ 0.7 0.00430772 24.98 1.89675 0.0155274 7.44739 -0.609446 -5.64148e-10 0.701198 ⋯\n", + " 4 │ 1.3 0.00831212 22.7702 1.78632 0.0277257 8.24502 -0.719935 -1.0477e-9 0.669145 ⋯\n", + " 5 │ 7.3 0.0818501 7.95426 0.68254 0.0986311 23.5136 -1.82482 0.0126764 0.419855 ⋯\n", + " 6 │ 7.9 0.0944804 7.20156 0.571968 0.102511 25.7697 -1.93531 0.0126764 0.402052 ⋯\n", + " 7 │ 8.4 0.105678 7.20155 -0.571951 0.105561 25.7697 1.93531 0.0126764 0.402201 ⋯\n", + " 8 │ 8.6 0.110028 7.4377 -0.608808 0.106815 25.0029 1.89848 0.0126764 0.408256 ⋯\n", + " 9 │ 9.2 0.122242 8.23461 -0.719378 0.110815 22.791 1.78799 0.0126764 0.42642 ⋯\n", + " 10 │ 15.2 0.193223 23.4922 -1.82307 0.184274 7.96441 0.683105 0.0255521 0.679318 ⋯\n", + " 11 │ 15.8 0.197106 25.7461 -1.9335 0.196888 7.21098 0.572616 0.0255521 0.711731 ⋯" + ], + "text/tab-separated-values": [ + "0.0\t0.0\t25.7461267934704\t-1.9334971087799893\t0.0\t7.210976055428953\t0.5726159514985499\t0.0\t0.7117308078284412\t8.677692406696553e-17\t0.05402207415829668\t-6.467888247580537e-18\t1.0\t4.037520933160633e-31\t-2.2224004801661462e-30\t1.5498785351652845e-30\t-8.531103263046536e-30\t2.5673907444456746e-17\t-3.469446951953614e-18\t1.9503102460948876e-33\t2.5494277617600177e-34\t3.552713678800501e-15\t0.0\n", + "0.5\t0.0030525501501389267\t25.746095250772324\t1.933558609098818\t0.011183267028670124\t7.210976055428948\t-0.57261595149855\t-4.0296285122857947e-10\t0.7118819609706533\t8.67769276876137e-17\t-0.05342124514999037\t6.467902820576544e-18\t1.0\t-3.210935834153522e-31\t-1.0207901500631485e-30\t-2.455489231844709e-30\t-7.80625758631512e-30\t2.3004017611536737e-17\t-7.143281550576877e-18\t2.15297589492062e-33\t5.607801383343478e-34\t3.552713678800501e-15\t0.0\n", + "0.7\t0.00430771980582032\t24.980033931522797\t1.8967479871488506\t0.015527419176759177\t7.447388368283326\t-0.6094456127733466\t-5.641479916499631e-10\t0.7011977119406552\t8.807050825172901e-17\t-0.05342124514999037\t6.467902820576544e-18\t1.0\t-5.252516134279817e-31\t-1.0207901500631483e-30\t-3.9116904264221374e-30\t-7.602099556302493e-30\t2.1575361301421363e-17\t-7.143281550576877e-18\t2.2651319225874895e-33\t5.607801383343478e-34\t3.552713678800501e-15\t0.0\n", + "1.2999999999999998\t0.008312118517134186\t22.77019546645412\t1.7863161212989485\t0.02772570758331353\t8.245016493905975\t-0.7199345965977366\t-1.047703412914114e-9\t0.669144964850661\t9.195124994407494e-17\t-0.05342124514999037\t6.467902820576544e-18\t1.0\t-1.1377257034658708e-30\t-1.0207901500631483e-30\t-7.79031473812411e-30\t-6.989625466264605e-30\t1.7289392371075237e-17\t-7.143281550576877e-18\t2.601600005588098e-33\t5.607801383343478e-34\t3.552713678800501e-15\t0.0\n", + "7.3\t0.08185009571856819\t7.954261319966783\t0.6825399800367532\t0.0986310715066912\t23.513570682542227\t-1.824824434841638\t0.012676436970884117\t0.41985471028259647\t1.307586668675342e-16\t-0.02967158391035084\t6.467902820576544e-18\t1.0\t-7.262466603844761e-30\t-1.0207901500631483e-30\t-6.153267912643168e-30\t-8.648845658857141e-31\t-2.7755575615628914e-17\t-1.0408340855860843e-17\t5.966280835594184e-33\t5.607801383343478e-34\t5.329070518200751e-15\t0.0\n", + "7.8999999999999995\t0.09448041173443075\t7.2015563864175025\t0.5719682425453809\t0.1025107953557441\t25.769653394646824\t-1.9353134186660281\t0.012676436487328696\t0.402051759936386\t1.3463940855988012e-16\t-0.02967158391035084\t6.467902820576544e-18\t1.0\t-7.874940693882651e-30\t-1.0207901500631482e-30\t-1.9472342358450065e-30\t-2.524104758478254e-31\t-3.400058012914542e-17\t-1.0408340855860843e-17\t6.302748918594793e-33\t5.607801383343478e-34\t5.329070518200751e-15\t0.0\n", + "8.399999999999999\t0.1056783372230678\t7.201548006839477\t-0.5719510664904711\t0.10556055644725755\t25.769653394646816\t1.935313418666028\t0.012676436084365845\t0.4022012316827141\t1.3463929709906148e-16\t0.030273203026655097\t-6.4678882475805374e-18\t1.0\t-7.87048444773898e-30\t1.038093247468592e-30\t1.9474797137037346e-30\t-2.568667219663663e-31\t-4.055305765871423e-17\t-1.596517680069816e-17\t6.180653453461315e-33\t-1.0661670112927294e-33\t5.329070518200751e-15\t0.0\n", + "8.599999999999998\t0.11002816381533444\t7.437699782046824\t-0.608807809546247\t0.10681457855481097\t25.002893959435355\t1.8984837573912308\t0.012676435923180705\t0.4082558722880451\t1.3334571944954535e-16\t0.030273203026655097\t-6.4678882475805374e-18\t1.0\t-7.66286579824526e-30\t1.0380932474685919e-30\t3.428679528959513e-30\t-4.6448537146008455e-31\t-4.374609301885386e-17\t-1.596517680069816e-17\t5.9674200512027694e-33\t-1.0661670112927294e-33\t5.329070518200751e-15\t0.0\n", + "9.199999999999998\t0.12224213477993526\t8.23461129100272\t-0.719378038713575\t0.11081531760565881\t22.791006840860515\t1.7879947735668407\t0.012676435439625284\t0.4264197941040382\t1.2946498650099703e-16\t0.030273203026655097\t-6.4678882475805374e-18\t1.0\t-7.040009849764104e-30\t1.0380932474685917e-30\t7.373994215941925e-30\t-1.0873413199412397e-30\t-5.332519909927276e-17\t-1.596517680069816e-17\t5.3277198444271315e-33\t-1.0661670112927294e-33\t5.329070518200751e-15\t0.0\n", + "15.199999999999998\t0.19322293261782714\t23.49218597583307\t-1.8230709206157505\t0.1842740984496693\t7.964408587521835\t0.6831049353229397\t0.025552060814220248\t0.6793175633334632\t9.065765701551381e-17\t0.05402207415829678\t-6.4678882475805374e-18\t1.0\t-8.114503649525547e-31\t1.0380932474685913e-30\t5.718648486009816e-30\t-7.315900804752788e-30\t-1.5265566588595902e-16\t-2.0816681711721685e-17\t-1.0692822233292452e-33\t-1.0661670112927294e-33\t7.105427357601002e-15\t0.0\n", + "15.799999999999997\t0.19710619563624432\t25.746126793470516\t-1.9334971087799986\t0.19688808477433156\t7.210976055428943\t0.5726159514985495\t0.025552060330664827\t0.7117308078284412\t8.677692406696548e-17\t0.05402207415829678\t-6.4678882475805374e-18\t1.0\t-1.8859441647139994e-31\t1.0380932474685913e-30\t1.4422646530409833e-30\t-7.938756753233941e-30\t-1.6514567491299204e-16\t-2.0816681711721685e-17\t-1.7089824301048828e-33\t-1.0661670112927294e-33\t7.105427357601002e-15\t0.0\n" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t = jl.twiss(fodo)\n", + "plt.plot(t.s, t.beta_1, label='beta_1')\n", + "plt.plot(t.s, t.beta_2, label='beta_2')\n", + "plt.xlabel('s [m]')\n", + "plt.ylabel('Beta Function [m]')\n", + "plt.legend()\n", + "plt.show(t)\n", + "t" + ] + }, + { + "cell_type": "markdown", + "id": "a8aed78e", + "metadata": {}, + "source": [ + "Let's compute the transport matrix for this FODO cell using automatic differentiation (AD). Because it is a periodic (closed) geometry, we first need to find the closed orbit. We then will expand for small deviations around this orbit." + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "id": "7d07240c", + "metadata": {}, + "outputs": [], + "source": [ + "co = jl.find_closed_orbit(fodo)\n", + "v0 = co.u" + ] + }, + { + "cell_type": "markdown", + "id": "c494612f", + "metadata": {}, + "source": [ + "We see that in this case the closed orbit is the \"zero orbit\", which makes sense because all the magnets are perfectly aligned and there are no RF cavities. Note that in general the \"zero orbit\" is not always the closed orbit (in the case of a periodic accelerator) or the reference orbit (in the case of a linac). We must always expand around some real trajectory.\n", + "\n", + "Now we will use [`GTPSA.jl`](https://github.com/bmad-sim/GTPSA.jl) to compute the Taylor map, to 2nd order. `GTPSA.jl` is a full-featured interface to the Generalised Truncated Power Series Algebra library, written by Laurent Deniau for CERN's `MAD-NG` code, and is another package in the `SciBmad` family. Because `SciBmad` is polymorphic, all we need to do is track a single particle on the closed orbit where the numbers are Truncated Power Series (`TPS`) types instead of the regular 64-bit floats `Float64`s.\n", + "\n", + "First, we define a `Descriptor` to define the number of variables (6) and the truncation order of our Taylor series (2)." + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "id": "158da855", + "metadata": {}, + "outputs": [], + "source": [ + "D2 = jl.Descriptor(6, 2) # 6 variables, 2nd order" + ] + }, + { + "cell_type": "markdown", + "id": "0efc6faa", + "metadata": {}, + "source": [ + "We will then get our special `TPS` number types. Specifically, we will start with the \"identity map\", or a vector of unit \"wiggles\". E.g., wiggle the input a bit, see how the output wiggles" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "id": "b8035fae", + "metadata": {}, + "outputs": [], + "source": [ + "# Then get a vector of `TPS`s representing an identity of the variables:\n", + "dv = jl.vars(D2) # Think of these as unit \"wiggles\"\n", + "\n", + " # Finally initialize our particle coordinates\n", + "v0 = jl.zeros(6) # Closed orbit\n", + "v = v0 + dv # Particle as a TPSA (wiggle around the closed orbit)" + ] + }, + { + "cell_type": "markdown", + "id": "a0c8b97c", + "metadata": {}, + "source": [ + "Now we track!" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "1d9f7c33", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[ Info: Setting bunch.species = Species(\"electron\", -1 e, 0.51099895069 MeV c^-2, 0.5 h_bar, -9.2847646917e-24 J T^-1, 0.0, AtomicAndPhysicalConstants.Kind.LEPTON) (reference species from the Beamline)\n", + "[ Info: Setting bunch.R_ref = -60.04153711147289 (reference R_ref from the Beamline)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6-element Matrix{TPS64{GTPSA.Dynamic}}:\n", + "Descriptor(NV=6, MO=2)\n", + " Index Coefficient Order Exponent\n", + "--------------------------------------------------------------------\n", + " 1: -1.5014406748569284e+00 1 1 0 0 0 0 0\n", + " 1: 2.4337323961276095e+01 1 0 1 0 0 0 0\n", + " 1: 4.6559967240029487e-01 1 0 0 0 0 0 1\n", + " 1: -2.1624629039941584e-01 2 2 0 0 0 0 0\n", + " 1: -5.9739097567507493e-01 2 1 1 0 0 0 0\n", + " 1: 6.0045879718470401e+00 2 0 2 0 0 0 0\n", + " 1: -7.3954551315820696e-02 2 0 0 2 0 0 0\n", + " 1: -2.3689760676231550e+00 2 0 0 1 1 0 0\n", + " 1: -5.2327062138421629e+00 2 0 0 0 2 0 0\n", + " 1: 3.8112249845238524e+00 2 1 0 0 0 0 1\n", + " 1: -3.2492213276665638e+01 2 0 1 0 0 0 1\n", + " 1: -5.7202779308232898e-01 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 2: -1.7397295890500816e-01 1 1 0 0 0 0 0\n", + " 2: 2.1539554079824854e+00 1 0 1 0 0 0 0\n", + " 2: 6.1482849956368352e-02 1 0 0 0 0 0 1\n", + " 2: -1.9722870913301199e-02 2 2 0 0 0 0 0\n", + " 2: -5.0282247259354089e-02 2 1 1 0 0 0 0\n", + " 2: 6.7476981448001927e-01 2 0 2 0 0 0 0\n", + " 2: -2.2745161470257270e-02 2 0 0 2 0 0 0\n", + " 2: -3.3723372881227109e-01 2 0 0 1 1 0 0\n", + " 2: -7.1343301607080045e-01 2 0 0 0 2 0 0\n", + " 2: 1.7345231288692578e-01 2 1 0 0 0 0 1\n", + " 2: -1.1088836056618629e+00 2 0 1 0 0 0 1\n", + " 2: -1.3965963035470819e-02 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 3: 8.6857893743585524e-01 1 0 0 1 0 0 0\n", + " 3: 6.8131679885373284e+00 1 0 0 0 1 0 0\n", + " 3: 2.0820966400777624e-01 2 1 0 1 0 0 0\n", + " 3: -2.6756654190446780e+00 2 0 1 1 0 0 0\n", + " 3: 3.6240773616285304e-01 2 1 0 0 1 0 0\n", + " 3: -1.0570001099680727e+01 2 0 1 0 1 0 0\n", + " 3: 1.4140740187800873e+00 2 0 0 1 0 0 1\n", + " 3: 2.2604678416660864e+00 2 0 0 0 1 0 1\n", + "--------------------------------------------------------------------\n", + " 4: -1.7398939290416998e-01 1 0 0 1 0 0 0\n", + " 4: -2.1347393321223374e-01 1 0 0 0 1 0 0\n", + " 4: 7.3022308400481958e-03 2 1 0 1 0 0 0\n", + " 4: -3.7185533658269149e-01 2 0 1 1 0 0 0\n", + " 4: 3.5855761603031715e-02 2 1 0 0 1 0 0\n", + " 4: -1.4571267707018307e+00 2 0 1 0 1 0 0\n", + " 4: 1.6947583964386848e-01 2 0 0 1 0 0 1\n", + " 4: 1.2241119774585181e+00 2 0 0 0 1 0 1\n", + "--------------------------------------------------------------------\n", + " 5: 1.1311099057935241e-02 1 1 0 0 0 0 0\n", + " 5: -4.9344710512917722e-01 1 0 1 0 0 0 0\n", + " 5: 1.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -6.9454818941118261e-03 1 0 0 0 0 0 1\n", + " 5: -1.9719838895671135e-01 2 2 0 0 0 0 0\n", + " 5: 4.0011614377625913e+00 2 1 1 0 0 0 0\n", + " 5: -2.1554766055882183e+01 2 0 2 0 0 0 0\n", + " 5: -2.0266171553111639e-01 2 0 0 2 0 0 0\n", + " 5: -1.4678998216757262e+00 2 0 0 1 1 0 0\n", + " 5: -4.4217682376835699e+00 2 0 0 0 2 0 0\n", + " 5: 3.5309717306444563e-03 2 1 0 0 0 0 1\n", + " 5: -3.0303835308768656e-01 2 0 1 0 0 0 1\n", + " 5: -1.9110915509567084e-03 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 1 0 0 0 0 0 1\n", + "\n" + ] + } + ], + "source": [ + "b0 = jl.Bunch(v)\n", + "jl.track_b(b0, fodo) # b0 is mutated in-place with the result\n", + "print(b0.coords.v)" + ] + }, + { + "cell_type": "markdown", + "id": "1d406465", + "metadata": {}, + "source": [ + "This is the real nonlinear Taylor map, computed from the integrator itself - no matrix or map is stored internally.\n", + "\n", + "The exponent specifies the power of each variable, e.g. the last row in `1: ...` corresponds to $\\delta^2$ - it defines how $x$ depends on $\\delta^2$.\n", + "\n", + "We can also get the linear part (as a matrix):" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "id": "bde7fdc3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/csv": [ + "-1.5014406748569284,24.337323961276095,3.090221851387348e-16,1.1862399218856096e-15,0.0,0.4655996724002949\n", + "-0.17397295890500816,2.1539554079824854,4.039302400325174e-17,1.5507898776475879e-16,0.0,0.06148284995636835\n", + "-2.3927261957155002e-17,1.1038748331200114e-15,0.8685789374358552,6.813167988537328,0.0,1.2867286114383261e-17\n", + "-3.1351618188348685e-18,1.4434565082821014e-16,-0.17398939290416998,-0.21347393321223374,0.0,1.6831903456569136e-18\n", + "0.011311099057935241,-0.4934471051291772,-3.893340880201425e-18,-1.494337398835536e-17,1.0,-0.006945481894111826\n", + "0.0,0.0,0.0,0.0,0.0,1.0\n" + ], + "text/plain": [ + "6×6 Matrix{Float64}:\n", + " -1.50144 24.3373 3.09022e-16 1.18624e-15 0.0 0.4656\n", + " -0.173973 2.15396 4.0393e-17 1.55079e-16 0.0 0.0614828\n", + " -2.39273e-17 1.10387e-15 0.868579 6.81317 0.0 1.28673e-17\n", + " -3.13516e-18 1.44346e-16 -0.173989 -0.213474 0.0 1.68319e-18\n", + " 0.0113111 -0.493447 -3.89334e-18 -1.49434e-17 1.0 -0.00694548\n", + " 0.0 0.0 0.0 0.0 0.0 1.0" + ], + "text/tab-separated-values": [ + "-1.5014406748569284\t24.337323961276095\t3.090221851387348e-16\t1.1862399218856096e-15\t0.0\t0.4655996724002949\n", + "-0.17397295890500816\t2.1539554079824854\t4.039302400325174e-17\t1.5507898776475879e-16\t0.0\t0.06148284995636835\n", + "-2.3927261957155002e-17\t1.1038748331200114e-15\t0.8685789374358552\t6.813167988537328\t0.0\t1.2867286114383261e-17\n", + "-3.1351618188348685e-18\t1.4434565082821014e-16\t-0.17398939290416998\t-0.21347393321223374\t0.0\t1.6831903456569136e-18\n", + "0.011311099057935241\t-0.4934471051291772\t-3.893340880201425e-18\t-1.494337398835536e-17\t1.0\t-0.006945481894111826\n", + "0.0\t0.0\t0.0\t0.0\t0.0\t1.0\n" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We can clean up the output with\n", + "jl.GTPSA.show_eps = 1e-10\n", + "\n", + "# Also print the matrix (linear part)\n", + "jl.GTPSA.jacobian(b0.coords.v)" + ] + }, + { + "cell_type": "markdown", + "id": "b0edbb7e", + "metadata": {}, + "source": [ + "To get the tunes, we need to go to the normal form, where the motion lies on circles in phase space with tunes as functions of solely the radius of the circle (amplitude-dependent rotations). E.g. we seek a nonlinear map $\\vec{a}$ such that $\\vec{r} = \\vec{a}^{-1}\\circ\\vec{m}\\circ\\vec{a}$ where $\\vec{m}$ is the one-turn map. $\\vec{r}$ will then, being in circle world, have the form\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\begin{pmatrix}\n", + " \\bar{q}_1 \\\\ \\bar{p}_1 \\\\ \\vdots \\\\ \\bar{q}_n \\\\ \\bar{p}_n\n", + " \\end{pmatrix}_{t_0+T} = \n", + " \\underbrace{\\begin{pmatrix}\n", + " \\mathsf{R}(\\mu_i(\\vec{J})) & \\mathsf{0} & \\mathsf{0} \\\\\n", + " \\mathsf{0} & \\ddots & \\mathsf{0}\\\\\n", + " \\mathsf{0} & \\mathsf{0} & \\mathsf{R}(\\mu_n(\\vec{J}))\n", + " \\end{pmatrix}}_{\\let\\scriptstyle\\textstyle\\substack{\\vec{r}}}\n", + "\\begin{pmatrix}\n", + " \\bar{q}_1 \\\\ \\bar{p}_1 \\\\ \\vdots \\\\ \\bar{q}_n \\\\ \\bar{p}_n\n", + " \\end{pmatrix}_{t_0},\\ \\ \\mathsf{R}(\\alpha)= \\begin{pmatrix}\n", + " \\cos{\\alpha} && \\sin{\\alpha} \\\\\n", + " -\\sin{\\alpha} && \\cos{\\alpha}\n", + " \\end{pmatrix} \\ .\n", + "\\end{equation}\n", + "$$\n", + "\n", + "where $(\\bar{q}_1,\\bar{p}_1) = (\\sqrt{2J_1}\\cos{\\phi_1},\\sqrt{2J_1}\\sin{\\phi_1})$.\n", + "\n", + "`SciBmad`'s `NonlinearNormalForm.jl` package makes it very easy to compute `a`, with a single function `normal`. We will elevate the tracking map result to a bona-fide `DAMap` (differential algebraic map) type, and then compute `a`:" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "id": "07d6365a", + "metadata": {}, + "outputs": [], + "source": [ + "m = jl.DAMap(v=b0.coords.v)\n", + "a = jl.normal(m)" + ] + }, + { + "cell_type": "markdown", + "id": "d2387e9a", + "metadata": {}, + "source": [ + "We now can compute the nonlinear rotation $\\vec{r}$:" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "id": "c062c4d2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/csv": [ + "0.32625736656277887,0.945280979795702,-2.3845514936543e-16,7.589886090100463e-17,0.0,1.3877787807814457e-16\n", + "-0.9452809797957029,0.32625736656277815,-1.232595164407831e-32,-1.8488927466117464e-32,0.0,4.163336342344337e-17\n", + "-3.7865323450608567e-29,-6.310887241768095e-30,0.3275525021118107,0.944832979081643,0.0,-1.262177448353619e-29\n", + "0.0,0.0,-0.9448329790816427,0.327552502111811,0.0,1.5777218104420236e-30\n", + "-4.718447854656915e-16,-3.3350058825654116e-16,0.0,2.465190328815662e-32,1.0,-0.025552060330665306\n", + "0.0,0.0,0.0,0.0,0.0,1.0\n" + ], + "text/plain": [ + "6×6 Matrix{Float64}:\n", + " 0.326257 0.945281 -2.38455e-16 7.58989e-17 0.0 1.38778e-16\n", + " -0.945281 0.326257 -1.2326e-32 -1.84889e-32 0.0 4.16334e-17\n", + " -3.78653e-29 -6.31089e-30 0.327553 0.944833 0.0 -1.26218e-29\n", + " 0.0 0.0 -0.944833 0.327553 0.0 1.57772e-30\n", + " -4.71845e-16 -3.33501e-16 0.0 2.46519e-32 1.0 -0.0255521\n", + " 0.0 0.0 0.0 0.0 0.0 1.0" + ], + "text/tab-separated-values": [ + "0.32625736656277887\t0.945280979795702\t-2.3845514936543e-16\t7.589886090100463e-17\t0.0\t1.3877787807814457e-16\n", + "-0.9452809797957029\t0.32625736656277815\t-1.232595164407831e-32\t-1.8488927466117464e-32\t0.0\t4.163336342344337e-17\n", + "-3.7865323450608567e-29\t-6.310887241768095e-30\t0.3275525021118107\t0.944832979081643\t0.0\t-1.262177448353619e-29\n", + "0.0\t0.0\t-0.9448329790816427\t0.327552502111811\t0.0\t1.5777218104420236e-30\n", + "-4.718447854656915e-16\t-3.3350058825654116e-16\t0.0\t2.465190328815662e-32\t1.0\t-0.025552060330665306\n", + "0.0\t0.0\t0.0\t0.0\t0.0\t1.0\n" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ai = jl.inv(a)\n", + "r = ai * m * a\n", + "jl.GTPSA.jacobian(r.v)" + ] + }, + { + "cell_type": "markdown", + "id": "06c464f6", + "metadata": {}, + "source": [ + "It is easiest to view this in the complex phasors basis where the coordinates are $(\\tilde{q}_i,\\tilde{p}_i)=(\\sqrt{J_i}e^{+\\textrm{i}\\phi_i},\\sqrt{J_i}e^{-\\textrm{i}\\phi_i})$. That way, we see explicitly that the monomials $(\\tilde{q}_i\\tilde{p}_i)^n = J_i^n$." + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "id": "eb00add2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DAMap{StaticArraysCore.MVector{5, ComplexF64}, StaticArraysCore.MVector{6, ComplexTPS64{GTPSA.Dynamic}}, Nothing, Nothing}(ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im], 6-element StaticArraysCore.MVector{6, ComplexTPS64{GTPSA.Dynamic}}:\n", + "Descriptor(NV=6, MO=2)\n", + " Index Real Imag Order Exponent\n", + "---------------------------------------------------------------------------------------------\n", + " 1: 3.2625736656277848e-01 -9.4528097979570247e-01 1 1 0 0 0 0 0\n", + " 1: 1.1996841454073626e+00 4.1406290653633482e-01 2 1 0 0 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 2: 3.2625736656277848e-01 9.4528097979570247e-01 1 0 1 0 0 0 0\n", + " 2: 1.1996841454073626e+00 -4.1406290653633482e-01 2 0 1 0 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 3: 3.2755250211181086e-01 -9.4483297908164277e-01 1 0 0 1 0 0 0\n", + " 3: 1.2943164363081314e+00 4.4871061512823929e-01 2 0 0 1 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 4: 3.2755250211181086e-01 9.4483297908164277e-01 1 0 0 0 1 0 0\n", + " 4: 1.2943164363081314e+00 -4.4871061512823929e-01 2 0 0 0 1 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 5: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -2.5552060330665306e-02 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + " 5: -1.2691296778939141e+00 0.0000000000000000e+00 2 1 1 0 0 0 0\n", + " 5: -1.3698891391007313e+00 0.0000000000000000e+00 2 0 0 1 1 0 0\n", + " 5: -3.8329009509992636e-02 0.0000000000000000e+00 2 0 0 0 0 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + ", nothing, nothing)\n" + ] + } + ], + "source": [ + "c = jl.c_map(m)\n", + "ci = jl.inv(c)\n", + "r_phasor = ci * r * c\n", + "print(r_phasor)" + ] + }, + { + "cell_type": "markdown", + "id": "1f0c06e6", + "metadata": {}, + "source": [ + "Note that this map, which is a rotation, is in the phasors basis. So, $\\tilde{q}_1 = \\sqrt{J}e^{\\textrm{i}\\phi_1}$. In the linear case we have\n", + "\n", + "$$\n", + "\\tilde{q}_1 ∘ \\vec{r}_{phasor,linear} = \\underbrace{\\sqrt{J}e^{\\textrm{i}\\phi_1}}_{\\tilde{q}_1}e^{-\\textrm{i}2\\pi\\nu_{1}} = \\sqrt{J}e^{\\textrm{i}(\\phi_1 - 2\\pi\\nu_{1})} \\ .\n", + "$$\n", + "This makes sense - it rotators phase. In the nonlinear case we see that we have\n", + "\n", + "$$\n", + "\\tilde{q}_1 ∘ \\vec{r}_{phasor} = \\sqrt{J}e^{\\textrm{i}\\phi_1}e^{-\\textrm{i}2\\pi\\left(\\nu_{1}+\\xi_x\\delta\\right)}\n", + "$$\n", + "\n", + "We can remove the $\\sqrt{J}e^{\\textrm{i}\\phi_1}$ using `par` in `GTPSA`, specifying to remove the first variable. Then we can naturally compute the amplitude-dependent tune" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "id": "d0cb4300", + "metadata": {}, + "outputs": [ + { + "data": { + "text/csv": [ + "TPS64{GTPSA.Dynamic}:\n", + "Descriptor(NV=6, MO=2)\n", + " Coefficient Order Exponent\n", + " 1.9710619563624454e-01 0 0 0 0 0 0 0\n", + " -2.0198826166144121e-01 1 0 0 0 0 0 1\n", + "\n" + ], + "text/plain": [ + "TPS64{GTPSA.Dynamic}:\n", + "Descriptor(NV=6, MO=2)\n", + " Coefficient Order Exponent\n", + " 1.9710619563624454e-01 0 0 0 0 0 0 0\n", + " -2.0198826166144121e-01 1 0 0 0 0 0 1\n" + ], + "text/tab-separated-values": [ + "TPS64{GTPSA.Dynamic}:\n", + "Descriptor(NV=6, MO=2)\n", + " Coefficient Order Exponent\n", + " 1.9710619563624454e-01 0 0 0 0 0 0 0\n", + " -2.0198826166144121e-01 1 0 0 0 0 0 1\n", + "\n" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ADT = jl.real(-jl.log(jl.par(r_phasor.v[0], 1))/(2*math.pi*1j))\n", + "ADT" + ] + }, + { + "cell_type": "markdown", + "id": "3b6b0502", + "metadata": {}, + "source": [ + "With a differentiable code, we can trivially extract things like the chromaticity, and get exact solutions given the physics of the tracking code - no nasty equations or integrals.\n", + "\n", + "Not only is differentiability necessary to compute and analyze high order Taylor maps, it also allows us to compute exact derivatives of anything we want. This includes the parameters, e.g. the quadrupole strengths. Using `SciBmad`, we can compute the tune $\\nu_x$ as a function of variations in the quadrupole strength, e.g. $\\nu=\\nu(\\Delta K_{n1})$" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/julia.ipynb b/examples/julia.ipynb new file mode 100644 index 0000000..71bd561 --- /dev/null +++ b/examples/julia.ipynb @@ -0,0 +1,798 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8fec6c66", + "metadata": {}, + "source": [ + "## Introduction to SciBmad \n", + "\n", + "Differentiable simulation codes are necessary tools in accelerator physics to properly compute (via integration) Taylor maps representing the particle transport, and subsequently extract the lattice functions from. Early examples of differentiable accelerator physics codes are the Polymorphic Tracking Code (PTC) and COSY-INFINITY, both developed in the early 1990s. Modern examples of differentiable codes are CERN's `MAD-NG`, and Cornell's `SciBmad`:\n", + "\n", + "`SciBmad` is a new, modular, polymorphic, differentiable, and portable (CPU/GPU compatible) accelerator physics code being developed at Cornell. This Jupyter notebook will show some its basic features, including lazily evaluated deferred expressions, polymorphism, and differentiability." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a82bd33d-26f9-4eb5-9fa5-c74384b1b2a4", + "metadata": {}, + "outputs": [], + "source": [ + "# This only needs to be done once\n", + "import Pkg; \n", + "Pkg.add(\"https://github.com/bmad-sim/SciBmad.jl\")\n", + "Pkg.add(\"Plots\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "dc2130c5", + "metadata": {}, + "outputs": [], + "source": [ + "using SciBmad, Plots" + ] + }, + { + "cell_type": "markdown", + "id": "96cb92ae", + "metadata": {}, + "source": [ + "Let's first make a FODO cell consisting of a quadrupole, sextupole, bend, and drift. This uses the [`Beamlines.jl`](https://github.com/bmad-sim/Beamlines.jl) package within the SciBmad family, which is automatically included when `using SciBmad`. We require by design that the focusing quadrupole strength is negative that of the defocusing quadrupole strength, and likewise for the sextupole. To achieve this, we will use `SciBmad`'s deferred expressions" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a4b9d39d", + "metadata": {}, + "outputs": [], + "source": [ + "# Make a FODO cell requiring that\n", + "# qf.Kn1 = -qd.Kn1 \n", + "# and\n", + "# sf.Kn2 = -sd.Kn2\n", + "# This is done using a \"deferred expression\"\n", + "# to form a \"closure\" of the variables we define:\n", + "\n", + "K1 = 0.36;\n", + "K2 = 0.1;\n", + "\n", + "qf = Quadrupole(Kn1=DefExpr(() -> +K1), L=0.5);\n", + "sf = Sextupole(Kn2=DefExpr(() -> +K2), L=0.2);\n", + "d = Drift(L=0.6);\n", + "b = SBend(L=6.0, angle=pi/132);\n", + "qd = Quadrupole(Kn1=DefExpr(() -> -K1), L=0.5);\n", + "sd = Sextupole(Kn2=DefExpr(() -> -K2), L=0.2);\n", + "\n", + "\n", + "fodo_line = [qf, sf, d, b, d, qd, sd, d, b, d];\n", + "fodo = Beamline(fodo_line, species_ref=Species(\"electron\"), E_ref=18e9);" + ] + }, + { + "cell_type": "markdown", + "id": "fb4cc815", + "metadata": {}, + "source": [ + "Now if we update `K1`, both `qf` and `qd` will be (lazily) updated." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4c9dc7e6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.3\n", + "-0.3\n" + ] + } + ], + "source": [ + "K1 = 0.3\n", + "println(qf.Kn1)\n", + "println(qd.Kn1)" + ] + }, + { + "cell_type": "markdown", + "id": "c451c9a6", + "metadata": {}, + "source": [ + "We can get the Twiss parameters using `twiss` " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "b88402ce", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "Table with 23 columns and 11 rows:\n", + " s phi_1 beta_1 alpha_1 phi_2 beta_2 alpha_2 ⋯\n", + " ┌───────────────────────────────────────────────────────────────────────\n", + " 1 │ 0.0 0.0 25.7461 -1.9335 0.0 7.21098 0.572616 ⋯\n", + " 2 │ 0.5 0.00305255 25.7461 1.93356 0.0111833 7.21098 -0.572616 ⋯\n", + " 3 │ 0.7 0.00430772 24.98 1.89675 0.0155274 7.44739 -0.609446 ⋯\n", + " 4 │ 1.3 0.00831212 22.7702 1.78632 0.0277257 8.24502 -0.719935 ⋯\n", + " 5 │ 7.3 0.0818501 7.95426 0.68254 0.0986311 23.5136 -1.82482 ⋯\n", + " 6 │ 7.9 0.0944804 7.20156 0.571968 0.102511 25.7697 -1.93531 ⋯\n", + " 7 │ 8.4 0.105678 7.20155 -0.571951 0.105561 25.7697 1.93531 ⋯\n", + " 8 │ 8.6 0.110028 7.4377 -0.608808 0.106815 25.0029 1.89848 ⋯\n", + " 9 │ 9.2 0.122242 8.23461 -0.719378 0.110815 22.791 1.78799 ⋯\n", + " 10 │ 15.2 0.193223 23.4922 -1.82307 0.184274 7.96441 0.683105 ⋯\n", + " 11 │ 15.8 0.197106 25.7461 -1.9335 0.196888 7.21098 0.572616 ⋯" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t = twiss(fodo)\n", + "\n", + "plt = plot()\n", + "plot!(plt, t.s, t.beta_1, label=\"beta_1\")\n", + "plot!(plt, t.s, t.beta_2, label=\"beta_2\")\n", + "xlabel!(plt, \"s [m]\")\n", + "ylabel!(plt, \"Beta Function [m]\")\n", + "display(plt)\n", + "t" + ] + }, + { + "cell_type": "markdown", + "id": "a8aed78e", + "metadata": {}, + "source": [ + "Let's compute the transport matrix for this FODO cell using automatic differentiation (AD). Because it is a periodic (closed) geometry, we first need to find the closed orbit. We then will expand for small deviations around this orbit." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "7d07240c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4-element StaticArraysCore.MVector{4, Float64} with indices SOneTo(4):\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "co = find_closed_orbit(fodo)\n", + "v0 = co.u" + ] + }, + { + "cell_type": "markdown", + "id": "c494612f", + "metadata": {}, + "source": [ + "We see that in this case the closed orbit is the \"zero orbit\", which makes sense because all the magnets are perfectly aligned and there are no RF cavities. Note that in general the \"zero orbit\" is not always the closed orbit (in the case of a periodic accelerator) or the reference orbit (in the case of a linac). We must always expand around some real trajectory.\n", + "\n", + "Now we will use [`GTPSA.jl`](https://github.com/bmad-sim/GTPSA.jl) to compute the Taylor map, to 2nd order. `GTPSA.jl` is a full-featured interface to the Generalised Truncated Power Series Algebra library, written by Laurent Deniau for CERN's `MAD-NG` code, and is another package in the `SciBmad` family. Because `SciBmad` is polymorphic, all we need to do is track a single particle on the closed orbit where the numbers are Truncated Power Series (`TPS`) types instead of the regular 64-bit floats `Float64`s.\n", + "\n", + "First, we define a `Descriptor` to define the number of variables (6) and the truncation order of our Taylor series (2)." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "158da855", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Descriptor(NV=6, MO=2)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "D2 = Descriptor(6, 2) # 6 variables, 2nd order" + ] + }, + { + "cell_type": "markdown", + "id": "0efc6faa", + "metadata": {}, + "source": [ + "We will then get our special `TPS` number types. Specifically, we will start with the \"identity map\", or a vector of unit \"wiggles\". E.g., wiggle the input a bit, see how the output wiggles" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "b8035fae", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6-element Vector{TPS64{Descriptor(NV=6, MO=2)}}:\n", + " Index Coefficient Order Exponent\n", + "--------------------------------------------------------------------\n", + " 1: 1.0000000000000000e+00 1 1 0 0 0 0 0\n", + "--------------------------------------------------------------------\n", + " 2: 1.0000000000000000e+00 1 0 1 0 0 0 0\n", + "--------------------------------------------------------------------\n", + " 3: 1.0000000000000000e+00 1 0 0 1 0 0 0\n", + "--------------------------------------------------------------------\n", + " 4: 1.0000000000000000e+00 1 0 0 0 1 0 0\n", + "--------------------------------------------------------------------\n", + " 5: 1.0000000000000000e+00 1 0 0 0 0 1 0\n", + "--------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 1 0 0 0 0 0 1\n" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Then get a vector of `TPS`s representing an identity of the variables:\n", + "dv = @vars(D2) # Think of these as unit \"wiggles\"\n", + "\n", + " # Finally initialize our particle coordinates\n", + "v0 = zeros(6) # Closed orbit\n", + "v = v0 + dv # Particle as a TPSA (wiggle around the closed orbit)" + ] + }, + { + "cell_type": "markdown", + "id": "a0c8b97c", + "metadata": {}, + "source": [ + "Now we track!" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "1d9f7c33", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mSetting bunch.species = Species(\"electron\", -1 e, 0.51099895069 MeV c^-2, 0.5 h_bar, -9.2847646917e-24 J T^-1, 0.0, AtomicAndPhysicalConstants.Kind.LEPTON) (reference species from the Beamline)\n", + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mSetting bunch.R_ref = -60.04153711147289 (reference R_ref from the Beamline)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6-element Matrix{TPS64{Descriptor(NV=6, MO=2)}}:\n", + " Index Coefficient Order Exponent\n", + "--------------------------------------------------------------------\n", + " 1: 2.5673907444456746e-17 0 0 0 0 0 0 0\n", + " 1: -1.5014406748569284e+00 1 1 0 0 0 0 0\n", + " 1: 2.4337323961276095e+01 1 0 1 0 0 0 0\n", + " 1: 3.0902218513873479e-16 1 0 0 1 0 0 0\n", + " 1: 1.1862399218856096e-15 1 0 0 0 1 0 0\n", + " 1: 4.6559967240029487e-01 1 0 0 0 0 0 1\n", + " 1: -2.1624629039941584e-01 2 2 0 0 0 0 0\n", + " 1: -5.9739097567507493e-01 2 1 1 0 0 0 0\n", + " 1: 6.0045879718470401e+00 2 0 2 0 0 0 0\n", + " 1: 2.0259254391159418e-17 2 1 0 1 0 0 0\n", + " 1: 3.6346854686241299e-17 2 0 1 1 0 0 0\n", + " 1: -7.3954551315820696e-02 2 0 0 2 0 0 0\n", + " 1: 9.5315805435515612e-18 2 1 0 0 1 0 0\n", + " 1: 9.5877497795269650e-17 2 0 1 0 1 0 0\n", + " 1: -2.3689760676231550e+00 2 0 0 1 1 0 0\n", + " 1: -5.2327062138421629e+00 2 0 0 0 2 0 0\n", + " 1: 3.8112249845238524e+00 2 1 0 0 0 0 1\n", + " 1: -3.2492213276665638e+01 2 0 1 0 0 0 1\n", + " 1: -4.7920330968023451e-16 2 0 0 1 0 0 1\n", + " 1: -2.4127154389007992e-15 2 0 0 0 1 0 1\n", + " 1: -5.7202779308232898e-01 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 2: -3.4694469519536142e-18 0 0 0 0 0 0 0\n", + " 2: -1.7397295890500816e-01 1 1 0 0 0 0 0\n", + " 2: 2.1539554079824854e+00 1 0 1 0 0 0 0\n", + " 2: 4.0393024003251738e-17 1 0 0 1 0 0 0\n", + " 2: 1.5507898776475879e-16 1 0 0 0 1 0 0\n", + " 2: 6.1482849956368352e-02 1 0 0 0 0 0 1\n", + " 2: -1.9722870913301199e-02 2 2 0 0 0 0 0\n", + " 2: -5.0282247259354089e-02 2 1 1 0 0 0 0\n", + " 2: 6.7476981448001927e-01 2 0 2 0 0 0 0\n", + " 2: 2.9279449552972185e-18 2 1 0 1 0 0 0\n", + " 2: 8.0243070091775161e-19 2 0 1 1 0 0 0\n", + " 2: -2.2745161470257270e-02 2 0 0 2 0 0 0\n", + " 2: 2.3366295028067268e-18 2 1 0 0 1 0 0\n", + " 2: -3.4623545717189121e-18 2 0 1 0 1 0 0\n", + " 2: -3.3723372881227109e-01 2 0 0 1 1 0 0\n", + " 2: -7.1343301607080045e-01 2 0 0 0 2 0 0\n", + " 2: 1.7345231288692578e-01 2 1 0 0 0 0 1\n", + " 2: -1.1088836056618629e+00 2 0 1 0 0 0 1\n", + " 2: -2.2321958047504711e-17 2 0 0 1 0 0 1\n", + " 2: -1.6063174858953920e-16 2 0 0 0 1 0 1\n", + " 2: -1.3965963035470819e-02 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 3: 1.9503102460948876e-33 0 0 0 0 0 0 0\n", + " 3: -2.3927261957155002e-17 1 1 0 0 0 0 0\n", + " 3: 1.1038748331200114e-15 1 0 1 0 0 0 0\n", + " 3: 8.6857893743585524e-01 1 0 0 1 0 0 0\n", + " 3: 6.8131679885373284e+00 1 0 0 0 1 0 0\n", + " 3: 1.2867286114383261e-17 1 0 0 0 0 0 1\n", + " 3: -9.8382803980890678e-18 2 2 0 0 0 0 0\n", + " 3: -1.2042156058859378e-17 2 1 1 0 0 0 0\n", + " 3: -2.3470654542006775e-18 2 0 2 0 0 0 0\n", + " 3: 2.0820966400777624e-01 2 1 0 1 0 0 0\n", + " 3: -2.6756654190446780e+00 2 0 1 1 0 0 0\n", + " 3: 6.5335351414440528e-18 2 0 0 2 0 0 0\n", + " 3: 3.6240773616285304e-01 2 1 0 0 1 0 0\n", + " 3: -1.0570001099680727e+01 2 0 1 0 1 0 0\n", + " 3: -2.5880277039527031e-17 2 0 0 1 1 0 0\n", + " 3: -7.2050602930178200e-17 2 0 0 0 2 0 0\n", + " 3: 1.8632928742761530e-16 2 1 0 0 0 0 1\n", + " 3: -2.1667494559807967e-15 2 0 1 0 0 0 1\n", + " 3: 1.4140740187800873e+00 2 0 0 1 0 0 1\n", + " 3: 2.2604678416660864e+00 2 0 0 0 1 0 1\n", + " 3: -2.5732412126539622e-17 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 4: 2.5494277617600177e-34 0 0 0 0 0 0 0\n", + " 4: -3.1351618188348685e-18 1 1 0 0 0 0 0\n", + " 4: 1.4434565082821014e-16 1 0 1 0 0 0 0\n", + " 4: -1.7398939290416998e-01 1 0 0 1 0 0 0\n", + " 4: -2.1347393321223374e-01 1 0 0 0 1 0 0\n", + " 4: 1.6831903456569136e-18 1 0 0 0 0 0 1\n", + " 4: -1.2952683507913980e-18 2 2 0 0 0 0 0\n", + " 4: -1.0010453721889786e-18 2 1 1 0 0 0 0\n", + " 4: -8.1487087223193381e-18 2 0 2 0 0 0 0\n", + " 4: 7.3022308400481958e-03 2 1 0 1 0 0 0\n", + " 4: -3.7185533658269149e-01 2 0 1 1 0 0 0\n", + " 4: 9.1558495150012200e-19 2 0 0 2 0 0 0\n", + " 4: 3.5855761603031715e-02 2 1 0 0 1 0 0\n", + " 4: -1.4571267707018307e+00 2 0 1 0 1 0 0\n", + " 4: -3.1474466339308438e-18 2 0 0 1 1 0 0\n", + " 4: -9.4147249692288701e-18 2 0 0 0 2 0 0\n", + " 4: 2.1243787128435713e-17 2 1 0 0 0 0 1\n", + " 4: -1.3920113956595321e-16 2 0 1 0 0 0 1\n", + " 4: 1.6947583964386848e-01 2 0 0 1 0 0 1\n", + " 4: 1.2241119774585181e+00 2 0 0 0 1 0 1\n", + " 4: -1.6843704085384344e-18 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 5: 3.5527136788005009e-15 0 0 0 0 0 0 0\n", + " 5: 1.1311099057935241e-02 1 1 0 0 0 0 0\n", + " 5: -4.9344710512917722e-01 1 0 1 0 0 0 0\n", + " 5: -3.8933408802014251e-18 1 0 0 1 0 0 0\n", + " 5: -1.4943373988355360e-17 1 0 0 0 1 0 0\n", + " 5: 1.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -6.9454818941118261e-03 1 0 0 0 0 0 1\n", + " 5: -1.9719838895671135e-01 2 2 0 0 0 0 0\n", + " 5: 4.0011614377625913e+00 2 1 1 0 0 0 0\n", + " 5: -2.1554766055882183e+01 2 0 2 0 0 0 0\n", + " 5: 4.9336220796246548e-17 2 1 0 1 0 0 0\n", + " 5: -4.7403272715040173e-16 2 0 1 1 0 0 0\n", + " 5: -2.0266171553111639e-01 2 0 0 2 0 0 0\n", + " 5: 2.0112418871060279e-16 2 1 0 0 1 0 0\n", + " 5: -2.3209771029334907e-15 2 0 1 0 1 0 0\n", + " 5: -1.4678998216757262e+00 2 0 0 1 1 0 0\n", + " 5: -4.4217682376835699e+00 2 0 0 0 2 0 0\n", + " 5: 3.5309717306444563e-03 2 1 0 0 0 0 1\n", + " 5: -3.0303835308768656e-01 2 0 1 0 0 0 1\n", + " 5: -6.8297018611890651e-18 2 0 0 1 0 0 1\n", + " 5: -2.4850087697338867e-17 2 0 0 0 1 0 1\n", + " 5: -1.9110915509567084e-03 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 1 0 0 0 0 0 1\n", + "\n" + ] + } + ], + "source": [ + "b0 = Bunch(v)\n", + "track!(b0, fodo) # b0 is mutated in-place with the result\n", + "println(b0.coords.v)" + ] + }, + { + "cell_type": "markdown", + "id": "1d406465", + "metadata": {}, + "source": [ + "This is the real nonlinear Taylor map, computed from the integrator itself - no matrix or map is stored internally.\n", + "\n", + "The exponent specifies the power of each variable, e.g. the last row in `1: ...` corresponds to $\\delta^2$ - it defines how $x$ depends on $\\delta^2$.\n", + "\n", + "We can also get the linear part (as a matrix):" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "bde7fdc3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6×6 Matrix{Float64}:\n", + " -1.50144 24.3373 3.09022e-16 1.18624e-15 0.0 0.4656\n", + " -0.173973 2.15396 4.0393e-17 1.55079e-16 0.0 0.0614828\n", + " -2.39273e-17 1.10387e-15 0.868579 6.81317 0.0 1.28673e-17\n", + " -3.13516e-18 1.44346e-16 -0.173989 -0.213474 0.0 1.68319e-18\n", + " 0.0113111 -0.493447 -3.89334e-18 -1.49434e-17 1.0 -0.00694548\n", + " 0.0 0.0 0.0 0.0 0.0 1.0" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We can clean up the output with\n", + "GTPSA.show_eps = 1e-10\n", + "\n", + "# Also print the matrix (linear part)\n", + "GTPSA.jacobian(b0.coords.v)" + ] + }, + { + "cell_type": "markdown", + "id": "b0edbb7e", + "metadata": {}, + "source": [ + "To get the tunes, we need to go to the normal form, where the motion lies on circles in phase space with tunes as functions of solely the radius of the circle (amplitude-dependent rotations). E.g. we seek a nonlinear map $\\vec{a}$ such that $\\vec{r} = \\vec{a}^{-1}\\circ\\vec{m}\\circ\\vec{a}$ where $\\vec{m}$ is the one-turn map. $\\vec{r}$ will then, being in circle world, have the form\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\begin{pmatrix}\n", + " \\bar{q}_1 \\\\ \\bar{p}_1 \\\\ \\vdots \\\\ \\bar{q}_n \\\\ \\bar{p}_n\n", + " \\end{pmatrix}_{t_0+T} = \n", + " \\underbrace{\\begin{pmatrix}\n", + " \\mathsf{R}(\\mu_i(\\vec{J})) & \\mathsf{0} & \\mathsf{0} \\\\\n", + " \\mathsf{0} & \\ddots & \\mathsf{0}\\\\\n", + " \\mathsf{0} & \\mathsf{0} & \\mathsf{R}(\\mu_n(\\vec{J}))\n", + " \\end{pmatrix}}_{\\let\\scriptstyle\\textstyle\\substack{\\vec{r}}}\n", + "\\begin{pmatrix}\n", + " \\bar{q}_1 \\\\ \\bar{p}_1 \\\\ \\vdots \\\\ \\bar{q}_n \\\\ \\bar{p}_n\n", + " \\end{pmatrix}_{t_0},\\ \\ \\mathsf{R}(\\alpha)= \\begin{pmatrix}\n", + " \\cos{\\alpha} && \\sin{\\alpha} \\\\\n", + " -\\sin{\\alpha} && \\cos{\\alpha}\n", + " \\end{pmatrix} \\ .\n", + "\\end{equation}\n", + "$$\n", + "\n", + "where $(\\bar{q}_1,\\bar{p}_1) = (\\sqrt{2J_1}\\cos{\\phi_1},\\sqrt{2J_1}\\sin{\\phi_1})$.\n", + "\n", + "`SciBmad`'s `NonlinearNormalForm.jl` package makes it very easy to compute `a`, with a single function `normal`. We will elevate the tracking map result to a bona-fide `DAMap` (differential algebraic map) type, and then compute `a`:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "07d6365a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DAMap{StaticArraysCore.MVector{5, Float64}, StaticArraysCore.MVector{6, TPS64{Descriptor(NV=6, MO=2)}}, Nothing, Nothing}([0.0, 0.0, 0.0, 0.0, 0.0], 6-element StaticArraysCore.MVector{6, TPS64{Descriptor(NV=6, MO=2)}}:\n", + " Index Coefficient Order Exponent\n", + "--------------------------------------------------------------------\n", + " 1: -5.0740641298145208e+00 1 0 1 0 0 0 0\n", + " 1: 7.1173080782844123e-01 1 0 0 0 0 0 1\n", + " 1: -3.2440195507262537e+00 2 2 0 0 0 0 0\n", + " 1: -1.0588609141558833e-01 2 1 1 0 0 0 0\n", + " 1: -6.2957227019419260e-01 2 0 2 0 0 0 0\n", + " 1: -7.7843206796179210e-01 2 0 0 2 0 0 0\n", + " 1: 2.0172973343682132e-01 2 0 0 1 1 0 0\n", + " 1: -9.4879578008434196e-01 2 0 0 0 2 0 0\n", + " 1: 4.0762360205410986e-01 2 1 0 0 0 0 1\n", + " 1: 2.2525273815312095e+00 2 0 1 0 0 0 1\n", + " 1: 4.8426245951542735e-01 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 2: 1.9708067821297998e-01 1 1 0 0 0 0 0\n", + " 2: -3.8105492152119613e-01 1 0 1 0 0 0 0\n", + " 2: 5.4022074158296678e-02 1 0 0 0 0 0 1\n", + " 2: -2.4567755447654155e-01 2 2 0 0 0 0 0\n", + " 2: -5.6858066603311094e-02 2 1 1 0 0 0 0\n", + " 2: 7.8358079323231578e-02 2 0 2 0 0 0 0\n", + " 2: -5.9006495658259682e-02 2 0 0 2 0 0 0\n", + " 2: -5.2924336286638424e-02 2 0 0 1 1 0 0\n", + " 2: -1.1275408902141754e-01 2 0 0 0 2 0 0\n", + " ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮\n", + "\u001b[36m 33 rows omitted\u001b[0m\n", + ", nothing, nothing)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m = DAMap(v=b0.coords.v)\n", + "a = normal(m)" + ] + }, + { + "cell_type": "markdown", + "id": "d2387e9a", + "metadata": {}, + "source": [ + "We now can compute the nonlinear rotation $\\vec{r}$:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "c062c4d2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6×6 Matrix{Float64}:\n", + " 0.326257 0.945281 -2.38455e-16 7.58989e-17 0.0 1.38778e-16\n", + " -0.945281 0.326257 -1.2326e-32 -1.84889e-32 0.0 4.16334e-17\n", + " -3.78653e-29 -6.31089e-30 0.327553 0.944833 0.0 -1.26218e-29\n", + " 0.0 0.0 -0.944833 0.327553 0.0 1.57772e-30\n", + " -4.71845e-16 -3.33501e-16 0.0 2.46519e-32 1.0 -0.0255521\n", + " 0.0 0.0 0.0 0.0 0.0 1.0" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ai = inv(a)\n", + "r = ai * m * a\n", + "GTPSA.jacobian(r.v)" + ] + }, + { + "cell_type": "markdown", + "id": "06c464f6", + "metadata": {}, + "source": [ + "It is easiest to view this in the complex phasors basis where the coordinates are $(\\tilde{q}_i,\\tilde{p}_i)=(\\sqrt{J_i}e^{+\\textrm{i}\\phi_i},\\sqrt{J_i}e^{-\\textrm{i}\\phi_i})$. That way, we see explicitly that the monomials $(\\tilde{q}_i\\tilde{p}_i)^n = J_i^n$." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "eb00add2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DAMap{StaticArraysCore.MVector{5, ComplexF64}, StaticArraysCore.MVector{6, ComplexTPS64{Descriptor(NV=6, MO=2)}}, Nothing, Nothing}(ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im], 6-element StaticArraysCore.MVector{6, ComplexTPS64{Descriptor(NV=6, MO=2)}}:\n", + " Index Real Imag Order Exponent\n", + "---------------------------------------------------------------------------------------------\n", + " 1: 3.2625736656277848e-01 -9.4528097979570247e-01 1 1 0 0 0 0 0\n", + " 1: 1.1996841454073626e+00 4.1406290653633482e-01 2 1 0 0 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 2: 3.2625736656277848e-01 9.4528097979570247e-01 1 0 1 0 0 0 0\n", + " 2: 1.1996841454073626e+00 -4.1406290653633482e-01 2 0 1 0 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 3: 3.2755250211181086e-01 -9.4483297908164277e-01 1 0 0 1 0 0 0\n", + " 3: 1.2943164363081314e+00 4.4871061512823929e-01 2 0 0 1 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 4: 3.2755250211181086e-01 9.4483297908164277e-01 1 0 0 0 1 0 0\n", + " 4: 1.2943164363081314e+00 -4.4871061512823929e-01 2 0 0 0 1 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 5: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -2.5552060330665306e-02 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + " 5: -1.2691296778939141e+00 0.0000000000000000e+00 2 1 1 0 0 0 0\n", + " 5: -1.3698891391007313e+00 0.0000000000000000e+00 2 0 0 1 1 0 0\n", + " 5: -3.8329009509992636e-02 0.0000000000000000e+00 2 0 0 0 0 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + ", nothing, nothing)" + ] + } + ], + "source": [ + "c = c_map(m)\n", + "ci = inv(c)\n", + "r_phasor = ci * r * c\n", + "print(r_phasor)" + ] + }, + { + "cell_type": "markdown", + "id": "1f0c06e6", + "metadata": {}, + "source": [ + "Note that this map, which is a rotation, is in the phasors basis. So, $\\tilde{q}_1 = \\sqrt{J}e^{\\textrm{i}\\phi_1}$. In the linear case we have\n", + "\n", + "$$\n", + "\\tilde{q}_1 ∘ \\vec{r}_{phasor,linear} = \\underbrace{\\sqrt{J}e^{\\textrm{i}\\phi_1}}_{\\tilde{q}_1}e^{-\\textrm{i}2\\pi\\nu_{1}} = \\sqrt{J}e^{\\textrm{i}(\\phi_1 - 2\\pi\\nu_{1})} \\ .\n", + "$$\n", + "This makes sense - it rotators phase. In the nonlinear case we see that we have\n", + "\n", + "$$\n", + "\\tilde{q}_1 ∘ \\vec{r}_{phasor} = \\sqrt{J}e^{\\textrm{i}\\phi_1}e^{-\\textrm{i}2\\pi\\left(\\nu_{1}+\\xi_x\\delta\\right)}\n", + "$$\n", + "\n", + "We can remove the $\\sqrt{J}e^{\\textrm{i}\\phi_1}$ using `par` in `GTPSA`, specifying to remove the first variable. Then we can naturally compute the amplitude-dependent tune" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "d0cb4300", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "TPS64{Descriptor(NV=6, MO=2)}:\n", + " Coefficient Order Exponent\n", + " 1.9710619563624454e-01 0 0 0 0 0 0 0\n", + " -2.0198826166144121e-01 1 0 0 0 0 0 1\n" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ADT = real(-log(par(r_phasor.v[1], 1))/(2*pi*im))\n", + "ADT" + ] + }, + { + "cell_type": "markdown", + "id": "3b6b0502", + "metadata": {}, + "source": [ + "With a differentiable code, we can trivially extract things like the chromaticity, and get exact solutions given the physics of the tracking code - no nasty equations or integrals.\n", + "\n", + "Not only is differentiability necessary to compute and analyze high order Taylor maps, it also allows us to compute exact derivatives of anything we want. This includes the parameters, e.g. the quadrupole strengths. Using `SciBmad`, we can compute the tune $\\nu_x$ as a function of variations in the quadrupole strength, e.g. $\\nu=\\nu(\\Delta K_{n1})$" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.11.6", + "language": "julia", + "name": "julia-1.11" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.11.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/python.ipynb b/examples/python.ipynb new file mode 100644 index 0000000..b9dab2e --- /dev/null +++ b/examples/python.ipynb @@ -0,0 +1,661 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8fec6c66", + "metadata": {}, + "source": [ + "## Introduction to SciBmad \n", + "\n", + "Differentiable simulation codes are necessary tools in accelerator physics to properly compute (via integration) Taylor maps representing the particle transport, and subsequently extract the lattice functions from. Early examples of differentiable accelerator physics codes are the Polymorphic Tracking Code (PTC) and COSY-INFINITY, both developed in the early 1990s. Modern examples of differentiable codes are CERN's `MAD-NG`, and Cornell's `SciBmad`:\n", + "\n", + "`SciBmad` is a new, modular, polymorphic, differentiable, and portable (CPU/GPU compatible) accelerator physics code being developed at Cornell. This Jupyter notebook will show some its basic features, including lazily evaluated deferred expressions, polymorphism, and differentiability." + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "dc2130c5", + "metadata": {}, + "outputs": [], + "source": [ + "import math\n", + "from juliacall import Main as jl\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b08a6b76-274a-4a8c-aae2-0def79116315", + "metadata": {}, + "outputs": [], + "source": [ + "# This only needs to be done once\n", + "jl.seval('import Pkg; Pkg.add(\"https://github.com/bmad-sim/SciBmad.jl\")')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "122aae65-2770-4ed8-8e42-b8d0dc9e778d", + "metadata": {}, + "outputs": [], + "source": [ + "jl.seval('using SciBmad')" + ] + }, + { + "cell_type": "markdown", + "id": "96cb92ae", + "metadata": {}, + "source": [ + "Let's first make a FODO cell consisting of a quadrupole, sextupole, bend, and drift. This uses the [`Beamlines.jl`](https://github.com/bmad-sim/Beamlines.jl) package within the SciBmad family, which is automatically included when `using SciBmad`. We require by design that the focusing quadrupole strength is negative that of the defocusing quadrupole strength, and likewise for the sextupole. To achieve this, we will use `SciBmad`'s deferred expressions" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "id": "a4b9d39d", + "metadata": {}, + "outputs": [], + "source": [ + "# Make a FODO cell requiring that\n", + "# qf.Kn1 = -qd.Kn1 \n", + "# and\n", + "# sf.Kn2 = -sd.Kn2\n", + "# This is done using a \"deferred expression\"\n", + "# to form a \"closure\" of the variables we define:\n", + "\n", + "K1 = 0.36\n", + "K2 = 0.1\n", + "\n", + "qf = jl.Quadrupole(Kn1=jl.DefExpr(lambda : +K1), L=0.5)\n", + "sf = jl.Sextupole(Kn2=jl.DefExpr(lambda : +K2), L=0.2)\n", + "d = jl.Drift(L=0.6)\n", + "b = jl.SBend(L=6.0, angle=math.pi/132)\n", + "qd = jl.Quadrupole(Kn1=jl.DefExpr(lambda : -K1), L=0.5)\n", + "sd = jl.Sextupole(Kn2=jl.DefExpr(lambda : -K2), L=0.2)\n", + "\n", + "\n", + "fodo_line = [qf, sf, d, b, d, qd, sd, d, b, d]\n", + "fodo = jl.Beamline(fodo_line, species_ref=jl.Species(\"electron\"), E_ref=18e9)" + ] + }, + { + "cell_type": "markdown", + "id": "fb4cc815", + "metadata": {}, + "source": [ + "Now if we update `K1`, both `qf` and `qd` will be (lazily) updated." + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "id": "4c9dc7e6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.3\n", + "-0.3\n" + ] + } + ], + "source": [ + "K1 = 0.3\n", + "print(qf.Kn1)\n", + "print(qd.Kn1)" + ] + }, + { + "cell_type": "markdown", + "id": "c451c9a6", + "metadata": {}, + "source": [ + "We can get the Twiss parameters using `twiss` " + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "id": "b88402ce", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/csv": [ + "0.0,0.0,25.7461267934704,-1.9334971087799893,0.0,7.210976055428953,0.5726159514985499,0.0,0.7117308078284412,8.677692406696553e-17,0.05402207415829668,-6.467888247580537e-18,1.0,4.037520933160633e-31,-2.2224004801661462e-30,1.5498785351652845e-30,-8.531103263046536e-30,2.5673907444456746e-17,-3.469446951953614e-18,1.9503102460948876e-33,2.5494277617600177e-34,3.552713678800501e-15,0.0\n", + "0.5,0.0030525501501389267,25.746095250772324,1.933558609098818,0.011183267028670124,7.210976055428948,-0.57261595149855,-4.0296285122857947e-10,0.7118819609706533,8.67769276876137e-17,-0.05342124514999037,6.467902820576544e-18,1.0,-3.210935834153522e-31,-1.0207901500631485e-30,-2.455489231844709e-30,-7.80625758631512e-30,2.3004017611536737e-17,-7.143281550576877e-18,2.15297589492062e-33,5.607801383343478e-34,3.552713678800501e-15,0.0\n", + "0.7,0.00430771980582032,24.980033931522797,1.8967479871488506,0.015527419176759177,7.447388368283326,-0.6094456127733466,-5.641479916499631e-10,0.7011977119406552,8.807050825172901e-17,-0.05342124514999037,6.467902820576544e-18,1.0,-5.252516134279817e-31,-1.0207901500631483e-30,-3.9116904264221374e-30,-7.602099556302493e-30,2.1575361301421363e-17,-7.143281550576877e-18,2.2651319225874895e-33,5.607801383343478e-34,3.552713678800501e-15,0.0\n", + "1.2999999999999998,0.008312118517134186,22.77019546645412,1.7863161212989485,0.02772570758331353,8.245016493905975,-0.7199345965977366,-1.047703412914114e-9,0.669144964850661,9.195124994407494e-17,-0.05342124514999037,6.467902820576544e-18,1.0,-1.1377257034658708e-30,-1.0207901500631483e-30,-7.79031473812411e-30,-6.989625466264605e-30,1.7289392371075237e-17,-7.143281550576877e-18,2.601600005588098e-33,5.607801383343478e-34,3.552713678800501e-15,0.0\n", + "7.3,0.08185009571856819,7.954261319966783,0.6825399800367532,0.0986310715066912,23.513570682542227,-1.824824434841638,0.012676436970884117,0.41985471028259647,1.307586668675342e-16,-0.02967158391035084,6.467902820576544e-18,1.0,-7.262466603844761e-30,-1.0207901500631483e-30,-6.153267912643168e-30,-8.648845658857141e-31,-2.7755575615628914e-17,-1.0408340855860843e-17,5.966280835594184e-33,5.607801383343478e-34,5.329070518200751e-15,0.0\n", + "7.8999999999999995,0.09448041173443075,7.2015563864175025,0.5719682425453809,0.1025107953557441,25.769653394646824,-1.9353134186660281,0.012676436487328696,0.402051759936386,1.3463940855988012e-16,-0.02967158391035084,6.467902820576544e-18,1.0,-7.874940693882651e-30,-1.0207901500631482e-30,-1.9472342358450065e-30,-2.524104758478254e-31,-3.400058012914542e-17,-1.0408340855860843e-17,6.302748918594793e-33,5.607801383343478e-34,5.329070518200751e-15,0.0\n", + "8.399999999999999,0.1056783372230678,7.201548006839477,-0.5719510664904711,0.10556055644725755,25.769653394646816,1.935313418666028,0.012676436084365845,0.4022012316827141,1.3463929709906148e-16,0.030273203026655097,-6.4678882475805374e-18,1.0,-7.87048444773898e-30,1.038093247468592e-30,1.9474797137037346e-30,-2.568667219663663e-31,-4.055305765871423e-17,-1.596517680069816e-17,6.180653453461315e-33,-1.0661670112927294e-33,5.329070518200751e-15,0.0\n", + "8.599999999999998,0.11002816381533444,7.437699782046824,-0.608807809546247,0.10681457855481097,25.002893959435355,1.8984837573912308,0.012676435923180705,0.4082558722880451,1.3334571944954535e-16,0.030273203026655097,-6.4678882475805374e-18,1.0,-7.66286579824526e-30,1.0380932474685919e-30,3.428679528959513e-30,-4.6448537146008455e-31,-4.374609301885386e-17,-1.596517680069816e-17,5.9674200512027694e-33,-1.0661670112927294e-33,5.329070518200751e-15,0.0\n", + "9.199999999999998,0.12224213477993526,8.23461129100272,-0.719378038713575,0.11081531760565881,22.791006840860515,1.7879947735668407,0.012676435439625284,0.4264197941040382,1.2946498650099703e-16,0.030273203026655097,-6.4678882475805374e-18,1.0,-7.040009849764104e-30,1.0380932474685917e-30,7.373994215941925e-30,-1.0873413199412397e-30,-5.332519909927276e-17,-1.596517680069816e-17,5.3277198444271315e-33,-1.0661670112927294e-33,5.329070518200751e-15,0.0\n", + "15.199999999999998,0.19322293261782714,23.49218597583307,-1.8230709206157505,0.1842740984496693,7.964408587521835,0.6831049353229397,0.025552060814220248,0.6793175633334632,9.065765701551381e-17,0.05402207415829678,-6.4678882475805374e-18,1.0,-8.114503649525547e-31,1.0380932474685913e-30,5.718648486009816e-30,-7.315900804752788e-30,-1.5265566588595902e-16,-2.0816681711721685e-17,-1.0692822233292452e-33,-1.0661670112927294e-33,7.105427357601002e-15,0.0\n", + "15.799999999999997,0.19710619563624432,25.746126793470516,-1.9334971087799986,0.19688808477433156,7.210976055428943,0.5726159514985495,0.025552060330664827,0.7117308078284412,8.677692406696548e-17,0.05402207415829678,-6.4678882475805374e-18,1.0,-1.8859441647139994e-31,1.0380932474685913e-30,1.4422646530409833e-30,-7.938756753233941e-30,-1.6514567491299204e-16,-2.0816681711721685e-17,-1.7089824301048828e-33,-1.0661670112927294e-33,7.105427357601002e-15,0.0\n" + ], + "text/plain": [ + "Table with 23 columns and 11 rows:\n", + " s phi_1 beta_1 alpha_1 phi_2 beta_2 alpha_2 phi_3 eta_1 ⋯\n", + " ┌───────────────────────────────────────────────────────────────────────────────────────────────\n", + " 1 │ 0.0 0.0 25.7461 -1.9335 0.0 7.21098 0.572616 0.0 0.711731 ⋯\n", + " 2 │ 0.5 0.00305255 25.7461 1.93356 0.0111833 7.21098 -0.572616 -4.02963e-10 0.711882 ⋯\n", + " 3 │ 0.7 0.00430772 24.98 1.89675 0.0155274 7.44739 -0.609446 -5.64148e-10 0.701198 ⋯\n", + " 4 │ 1.3 0.00831212 22.7702 1.78632 0.0277257 8.24502 -0.719935 -1.0477e-9 0.669145 ⋯\n", + " 5 │ 7.3 0.0818501 7.95426 0.68254 0.0986311 23.5136 -1.82482 0.0126764 0.419855 ⋯\n", + " 6 │ 7.9 0.0944804 7.20156 0.571968 0.102511 25.7697 -1.93531 0.0126764 0.402052 ⋯\n", + " 7 │ 8.4 0.105678 7.20155 -0.571951 0.105561 25.7697 1.93531 0.0126764 0.402201 ⋯\n", + " 8 │ 8.6 0.110028 7.4377 -0.608808 0.106815 25.0029 1.89848 0.0126764 0.408256 ⋯\n", + " 9 │ 9.2 0.122242 8.23461 -0.719378 0.110815 22.791 1.78799 0.0126764 0.42642 ⋯\n", + " 10 │ 15.2 0.193223 23.4922 -1.82307 0.184274 7.96441 0.683105 0.0255521 0.679318 ⋯\n", + " 11 │ 15.8 0.197106 25.7461 -1.9335 0.196888 7.21098 0.572616 0.0255521 0.711731 ⋯" + ], + "text/tab-separated-values": [ + "0.0\t0.0\t25.7461267934704\t-1.9334971087799893\t0.0\t7.210976055428953\t0.5726159514985499\t0.0\t0.7117308078284412\t8.677692406696553e-17\t0.05402207415829668\t-6.467888247580537e-18\t1.0\t4.037520933160633e-31\t-2.2224004801661462e-30\t1.5498785351652845e-30\t-8.531103263046536e-30\t2.5673907444456746e-17\t-3.469446951953614e-18\t1.9503102460948876e-33\t2.5494277617600177e-34\t3.552713678800501e-15\t0.0\n", + "0.5\t0.0030525501501389267\t25.746095250772324\t1.933558609098818\t0.011183267028670124\t7.210976055428948\t-0.57261595149855\t-4.0296285122857947e-10\t0.7118819609706533\t8.67769276876137e-17\t-0.05342124514999037\t6.467902820576544e-18\t1.0\t-3.210935834153522e-31\t-1.0207901500631485e-30\t-2.455489231844709e-30\t-7.80625758631512e-30\t2.3004017611536737e-17\t-7.143281550576877e-18\t2.15297589492062e-33\t5.607801383343478e-34\t3.552713678800501e-15\t0.0\n", + "0.7\t0.00430771980582032\t24.980033931522797\t1.8967479871488506\t0.015527419176759177\t7.447388368283326\t-0.6094456127733466\t-5.641479916499631e-10\t0.7011977119406552\t8.807050825172901e-17\t-0.05342124514999037\t6.467902820576544e-18\t1.0\t-5.252516134279817e-31\t-1.0207901500631483e-30\t-3.9116904264221374e-30\t-7.602099556302493e-30\t2.1575361301421363e-17\t-7.143281550576877e-18\t2.2651319225874895e-33\t5.607801383343478e-34\t3.552713678800501e-15\t0.0\n", + "1.2999999999999998\t0.008312118517134186\t22.77019546645412\t1.7863161212989485\t0.02772570758331353\t8.245016493905975\t-0.7199345965977366\t-1.047703412914114e-9\t0.669144964850661\t9.195124994407494e-17\t-0.05342124514999037\t6.467902820576544e-18\t1.0\t-1.1377257034658708e-30\t-1.0207901500631483e-30\t-7.79031473812411e-30\t-6.989625466264605e-30\t1.7289392371075237e-17\t-7.143281550576877e-18\t2.601600005588098e-33\t5.607801383343478e-34\t3.552713678800501e-15\t0.0\n", + "7.3\t0.08185009571856819\t7.954261319966783\t0.6825399800367532\t0.0986310715066912\t23.513570682542227\t-1.824824434841638\t0.012676436970884117\t0.41985471028259647\t1.307586668675342e-16\t-0.02967158391035084\t6.467902820576544e-18\t1.0\t-7.262466603844761e-30\t-1.0207901500631483e-30\t-6.153267912643168e-30\t-8.648845658857141e-31\t-2.7755575615628914e-17\t-1.0408340855860843e-17\t5.966280835594184e-33\t5.607801383343478e-34\t5.329070518200751e-15\t0.0\n", + "7.8999999999999995\t0.09448041173443075\t7.2015563864175025\t0.5719682425453809\t0.1025107953557441\t25.769653394646824\t-1.9353134186660281\t0.012676436487328696\t0.402051759936386\t1.3463940855988012e-16\t-0.02967158391035084\t6.467902820576544e-18\t1.0\t-7.874940693882651e-30\t-1.0207901500631482e-30\t-1.9472342358450065e-30\t-2.524104758478254e-31\t-3.400058012914542e-17\t-1.0408340855860843e-17\t6.302748918594793e-33\t5.607801383343478e-34\t5.329070518200751e-15\t0.0\n", + "8.399999999999999\t0.1056783372230678\t7.201548006839477\t-0.5719510664904711\t0.10556055644725755\t25.769653394646816\t1.935313418666028\t0.012676436084365845\t0.4022012316827141\t1.3463929709906148e-16\t0.030273203026655097\t-6.4678882475805374e-18\t1.0\t-7.87048444773898e-30\t1.038093247468592e-30\t1.9474797137037346e-30\t-2.568667219663663e-31\t-4.055305765871423e-17\t-1.596517680069816e-17\t6.180653453461315e-33\t-1.0661670112927294e-33\t5.329070518200751e-15\t0.0\n", + "8.599999999999998\t0.11002816381533444\t7.437699782046824\t-0.608807809546247\t0.10681457855481097\t25.002893959435355\t1.8984837573912308\t0.012676435923180705\t0.4082558722880451\t1.3334571944954535e-16\t0.030273203026655097\t-6.4678882475805374e-18\t1.0\t-7.66286579824526e-30\t1.0380932474685919e-30\t3.428679528959513e-30\t-4.6448537146008455e-31\t-4.374609301885386e-17\t-1.596517680069816e-17\t5.9674200512027694e-33\t-1.0661670112927294e-33\t5.329070518200751e-15\t0.0\n", + "9.199999999999998\t0.12224213477993526\t8.23461129100272\t-0.719378038713575\t0.11081531760565881\t22.791006840860515\t1.7879947735668407\t0.012676435439625284\t0.4264197941040382\t1.2946498650099703e-16\t0.030273203026655097\t-6.4678882475805374e-18\t1.0\t-7.040009849764104e-30\t1.0380932474685917e-30\t7.373994215941925e-30\t-1.0873413199412397e-30\t-5.332519909927276e-17\t-1.596517680069816e-17\t5.3277198444271315e-33\t-1.0661670112927294e-33\t5.329070518200751e-15\t0.0\n", + "15.199999999999998\t0.19322293261782714\t23.49218597583307\t-1.8230709206157505\t0.1842740984496693\t7.964408587521835\t0.6831049353229397\t0.025552060814220248\t0.6793175633334632\t9.065765701551381e-17\t0.05402207415829678\t-6.4678882475805374e-18\t1.0\t-8.114503649525547e-31\t1.0380932474685913e-30\t5.718648486009816e-30\t-7.315900804752788e-30\t-1.5265566588595902e-16\t-2.0816681711721685e-17\t-1.0692822233292452e-33\t-1.0661670112927294e-33\t7.105427357601002e-15\t0.0\n", + "15.799999999999997\t0.19710619563624432\t25.746126793470516\t-1.9334971087799986\t0.19688808477433156\t7.210976055428943\t0.5726159514985495\t0.025552060330664827\t0.7117308078284412\t8.677692406696548e-17\t0.05402207415829678\t-6.4678882475805374e-18\t1.0\t-1.8859441647139994e-31\t1.0380932474685913e-30\t1.4422646530409833e-30\t-7.938756753233941e-30\t-1.6514567491299204e-16\t-2.0816681711721685e-17\t-1.7089824301048828e-33\t-1.0661670112927294e-33\t7.105427357601002e-15\t0.0\n" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t = jl.twiss(fodo)\n", + "plt.plot(t.s, t.beta_1, label='beta_1')\n", + "plt.plot(t.s, t.beta_2, label='beta_2')\n", + "plt.xlabel('s [m]')\n", + "plt.ylabel('Beta Function [m]')\n", + "plt.legend()\n", + "plt.show(t)\n", + "t" + ] + }, + { + "cell_type": "markdown", + "id": "a8aed78e", + "metadata": {}, + "source": [ + "Let's compute the transport matrix for this FODO cell using automatic differentiation (AD). Because it is a periodic (closed) geometry, we first need to find the closed orbit. We then will expand for small deviations around this orbit." + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "id": "7d07240c", + "metadata": {}, + "outputs": [], + "source": [ + "co = jl.find_closed_orbit(fodo)\n", + "v0 = co.u" + ] + }, + { + "cell_type": "markdown", + "id": "c494612f", + "metadata": {}, + "source": [ + "We see that in this case the closed orbit is the \"zero orbit\", which makes sense because all the magnets are perfectly aligned and there are no RF cavities. Note that in general the \"zero orbit\" is not always the closed orbit (in the case of a periodic accelerator) or the reference orbit (in the case of a linac). We must always expand around some real trajectory.\n", + "\n", + "Now we will use [`GTPSA.jl`](https://github.com/bmad-sim/GTPSA.jl) to compute the Taylor map, to 2nd order. `GTPSA.jl` is a full-featured interface to the Generalised Truncated Power Series Algebra library, written by Laurent Deniau for CERN's `MAD-NG` code, and is another package in the `SciBmad` family. Because `SciBmad` is polymorphic, all we need to do is track a single particle on the closed orbit where the numbers are Truncated Power Series (`TPS`) types instead of the regular 64-bit floats `Float64`s.\n", + "\n", + "First, we define a `Descriptor` to define the number of variables (6) and the truncation order of our Taylor series (2)." + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "id": "158da855", + "metadata": {}, + "outputs": [], + "source": [ + "D2 = jl.Descriptor(6, 2) # 6 variables, 2nd order" + ] + }, + { + "cell_type": "markdown", + "id": "0efc6faa", + "metadata": {}, + "source": [ + "We will then get our special `TPS` number types. Specifically, we will start with the \"identity map\", or a vector of unit \"wiggles\". E.g., wiggle the input a bit, see how the output wiggles" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "id": "b8035fae", + "metadata": {}, + "outputs": [], + "source": [ + "# Then get a vector of `TPS`s representing an identity of the variables:\n", + "dv = jl.vars(D2) # Think of these as unit \"wiggles\"\n", + "\n", + " # Finally initialize our particle coordinates\n", + "v0 = jl.zeros(6) # Closed orbit\n", + "v = v0 + dv # Particle as a TPSA (wiggle around the closed orbit)" + ] + }, + { + "cell_type": "markdown", + "id": "a0c8b97c", + "metadata": {}, + "source": [ + "Now we track!" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "1d9f7c33", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[ Info: Setting bunch.species = Species(\"electron\", -1 e, 0.51099895069 MeV c^-2, 0.5 h_bar, -9.2847646917e-24 J T^-1, 0.0, AtomicAndPhysicalConstants.Kind.LEPTON) (reference species from the Beamline)\n", + "[ Info: Setting bunch.R_ref = -60.04153711147289 (reference R_ref from the Beamline)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6-element Matrix{TPS64{GTPSA.Dynamic}}:\n", + "Descriptor(NV=6, MO=2)\n", + " Index Coefficient Order Exponent\n", + "--------------------------------------------------------------------\n", + " 1: -1.5014406748569284e+00 1 1 0 0 0 0 0\n", + " 1: 2.4337323961276095e+01 1 0 1 0 0 0 0\n", + " 1: 4.6559967240029487e-01 1 0 0 0 0 0 1\n", + " 1: -2.1624629039941584e-01 2 2 0 0 0 0 0\n", + " 1: -5.9739097567507493e-01 2 1 1 0 0 0 0\n", + " 1: 6.0045879718470401e+00 2 0 2 0 0 0 0\n", + " 1: -7.3954551315820696e-02 2 0 0 2 0 0 0\n", + " 1: -2.3689760676231550e+00 2 0 0 1 1 0 0\n", + " 1: -5.2327062138421629e+00 2 0 0 0 2 0 0\n", + " 1: 3.8112249845238524e+00 2 1 0 0 0 0 1\n", + " 1: -3.2492213276665638e+01 2 0 1 0 0 0 1\n", + " 1: -5.7202779308232898e-01 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 2: -1.7397295890500816e-01 1 1 0 0 0 0 0\n", + " 2: 2.1539554079824854e+00 1 0 1 0 0 0 0\n", + " 2: 6.1482849956368352e-02 1 0 0 0 0 0 1\n", + " 2: -1.9722870913301199e-02 2 2 0 0 0 0 0\n", + " 2: -5.0282247259354089e-02 2 1 1 0 0 0 0\n", + " 2: 6.7476981448001927e-01 2 0 2 0 0 0 0\n", + " 2: -2.2745161470257270e-02 2 0 0 2 0 0 0\n", + " 2: -3.3723372881227109e-01 2 0 0 1 1 0 0\n", + " 2: -7.1343301607080045e-01 2 0 0 0 2 0 0\n", + " 2: 1.7345231288692578e-01 2 1 0 0 0 0 1\n", + " 2: -1.1088836056618629e+00 2 0 1 0 0 0 1\n", + " 2: -1.3965963035470819e-02 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 3: 8.6857893743585524e-01 1 0 0 1 0 0 0\n", + " 3: 6.8131679885373284e+00 1 0 0 0 1 0 0\n", + " 3: 2.0820966400777624e-01 2 1 0 1 0 0 0\n", + " 3: -2.6756654190446780e+00 2 0 1 1 0 0 0\n", + " 3: 3.6240773616285304e-01 2 1 0 0 1 0 0\n", + " 3: -1.0570001099680727e+01 2 0 1 0 1 0 0\n", + " 3: 1.4140740187800873e+00 2 0 0 1 0 0 1\n", + " 3: 2.2604678416660864e+00 2 0 0 0 1 0 1\n", + "--------------------------------------------------------------------\n", + " 4: -1.7398939290416998e-01 1 0 0 1 0 0 0\n", + " 4: -2.1347393321223374e-01 1 0 0 0 1 0 0\n", + " 4: 7.3022308400481958e-03 2 1 0 1 0 0 0\n", + " 4: -3.7185533658269149e-01 2 0 1 1 0 0 0\n", + " 4: 3.5855761603031715e-02 2 1 0 0 1 0 0\n", + " 4: -1.4571267707018307e+00 2 0 1 0 1 0 0\n", + " 4: 1.6947583964386848e-01 2 0 0 1 0 0 1\n", + " 4: 1.2241119774585181e+00 2 0 0 0 1 0 1\n", + "--------------------------------------------------------------------\n", + " 5: 1.1311099057935241e-02 1 1 0 0 0 0 0\n", + " 5: -4.9344710512917722e-01 1 0 1 0 0 0 0\n", + " 5: 1.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -6.9454818941118261e-03 1 0 0 0 0 0 1\n", + " 5: -1.9719838895671135e-01 2 2 0 0 0 0 0\n", + " 5: 4.0011614377625913e+00 2 1 1 0 0 0 0\n", + " 5: -2.1554766055882183e+01 2 0 2 0 0 0 0\n", + " 5: -2.0266171553111639e-01 2 0 0 2 0 0 0\n", + " 5: -1.4678998216757262e+00 2 0 0 1 1 0 0\n", + " 5: -4.4217682376835699e+00 2 0 0 0 2 0 0\n", + " 5: 3.5309717306444563e-03 2 1 0 0 0 0 1\n", + " 5: -3.0303835308768656e-01 2 0 1 0 0 0 1\n", + " 5: -1.9110915509567084e-03 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 1 0 0 0 0 0 1\n", + "\n" + ] + } + ], + "source": [ + "b0 = jl.Bunch(v)\n", + "jl.track_b(b0, fodo) # b0 is mutated in-place with the result\n", + "print(b0.coords.v)" + ] + }, + { + "cell_type": "markdown", + "id": "1d406465", + "metadata": {}, + "source": [ + "This is the real nonlinear Taylor map, computed from the integrator itself - no matrix or map is stored internally.\n", + "\n", + "The exponent specifies the power of each variable, e.g. the last row in `1: ...` corresponds to $\\delta^2$ - it defines how $x$ depends on $\\delta^2$.\n", + "\n", + "We can also get the linear part (as a matrix):" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "id": "bde7fdc3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/csv": [ + "-1.5014406748569284,24.337323961276095,3.090221851387348e-16,1.1862399218856096e-15,0.0,0.4655996724002949\n", + "-0.17397295890500816,2.1539554079824854,4.039302400325174e-17,1.5507898776475879e-16,0.0,0.06148284995636835\n", + "-2.3927261957155002e-17,1.1038748331200114e-15,0.8685789374358552,6.813167988537328,0.0,1.2867286114383261e-17\n", + "-3.1351618188348685e-18,1.4434565082821014e-16,-0.17398939290416998,-0.21347393321223374,0.0,1.6831903456569136e-18\n", + "0.011311099057935241,-0.4934471051291772,-3.893340880201425e-18,-1.494337398835536e-17,1.0,-0.006945481894111826\n", + "0.0,0.0,0.0,0.0,0.0,1.0\n" + ], + "text/plain": [ + "6×6 Matrix{Float64}:\n", + " -1.50144 24.3373 3.09022e-16 1.18624e-15 0.0 0.4656\n", + " -0.173973 2.15396 4.0393e-17 1.55079e-16 0.0 0.0614828\n", + " -2.39273e-17 1.10387e-15 0.868579 6.81317 0.0 1.28673e-17\n", + " -3.13516e-18 1.44346e-16 -0.173989 -0.213474 0.0 1.68319e-18\n", + " 0.0113111 -0.493447 -3.89334e-18 -1.49434e-17 1.0 -0.00694548\n", + " 0.0 0.0 0.0 0.0 0.0 1.0" + ], + "text/tab-separated-values": [ + "-1.5014406748569284\t24.337323961276095\t3.090221851387348e-16\t1.1862399218856096e-15\t0.0\t0.4655996724002949\n", + "-0.17397295890500816\t2.1539554079824854\t4.039302400325174e-17\t1.5507898776475879e-16\t0.0\t0.06148284995636835\n", + "-2.3927261957155002e-17\t1.1038748331200114e-15\t0.8685789374358552\t6.813167988537328\t0.0\t1.2867286114383261e-17\n", + "-3.1351618188348685e-18\t1.4434565082821014e-16\t-0.17398939290416998\t-0.21347393321223374\t0.0\t1.6831903456569136e-18\n", + "0.011311099057935241\t-0.4934471051291772\t-3.893340880201425e-18\t-1.494337398835536e-17\t1.0\t-0.006945481894111826\n", + "0.0\t0.0\t0.0\t0.0\t0.0\t1.0\n" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We can clean up the output with\n", + "jl.GTPSA.show_eps = 1e-10\n", + "\n", + "# Also print the matrix (linear part)\n", + "jl.GTPSA.jacobian(b0.coords.v)" + ] + }, + { + "cell_type": "markdown", + "id": "b0edbb7e", + "metadata": {}, + "source": [ + "To get the tunes, we need to go to the normal form, where the motion lies on circles in phase space with tunes as functions of solely the radius of the circle (amplitude-dependent rotations). E.g. we seek a nonlinear map $\\vec{a}$ such that $\\vec{r} = \\vec{a}^{-1}\\circ\\vec{m}\\circ\\vec{a}$ where $\\vec{m}$ is the one-turn map. $\\vec{r}$ will then, being in circle world, have the form\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\begin{pmatrix}\n", + " \\bar{q}_1 \\\\ \\bar{p}_1 \\\\ \\vdots \\\\ \\bar{q}_n \\\\ \\bar{p}_n\n", + " \\end{pmatrix}_{t_0+T} = \n", + " \\underbrace{\\begin{pmatrix}\n", + " \\mathsf{R}(\\mu_i(\\vec{J})) & \\mathsf{0} & \\mathsf{0} \\\\\n", + " \\mathsf{0} & \\ddots & \\mathsf{0}\\\\\n", + " \\mathsf{0} & \\mathsf{0} & \\mathsf{R}(\\mu_n(\\vec{J}))\n", + " \\end{pmatrix}}_{\\let\\scriptstyle\\textstyle\\substack{\\vec{r}}}\n", + "\\begin{pmatrix}\n", + " \\bar{q}_1 \\\\ \\bar{p}_1 \\\\ \\vdots \\\\ \\bar{q}_n \\\\ \\bar{p}_n\n", + " \\end{pmatrix}_{t_0},\\ \\ \\mathsf{R}(\\alpha)= \\begin{pmatrix}\n", + " \\cos{\\alpha} && \\sin{\\alpha} \\\\\n", + " -\\sin{\\alpha} && \\cos{\\alpha}\n", + " \\end{pmatrix} \\ .\n", + "\\end{equation}\n", + "$$\n", + "\n", + "where $(\\bar{q}_1,\\bar{p}_1) = (\\sqrt{2J_1}\\cos{\\phi_1},\\sqrt{2J_1}\\sin{\\phi_1})$.\n", + "\n", + "`SciBmad`'s `NonlinearNormalForm.jl` package makes it very easy to compute `a`, with a single function `normal`. We will elevate the tracking map result to a bona-fide `DAMap` (differential algebraic map) type, and then compute `a`:" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "id": "07d6365a", + "metadata": {}, + "outputs": [], + "source": [ + "m = jl.DAMap(v=b0.coords.v)\n", + "a = jl.normal(m)" + ] + }, + { + "cell_type": "markdown", + "id": "d2387e9a", + "metadata": {}, + "source": [ + "We now can compute the nonlinear rotation $\\vec{r}$:" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "id": "c062c4d2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/csv": [ + "0.32625736656277887,0.945280979795702,-2.3845514936543e-16,7.589886090100463e-17,0.0,1.3877787807814457e-16\n", + "-0.9452809797957029,0.32625736656277815,-1.232595164407831e-32,-1.8488927466117464e-32,0.0,4.163336342344337e-17\n", + "-3.7865323450608567e-29,-6.310887241768095e-30,0.3275525021118107,0.944832979081643,0.0,-1.262177448353619e-29\n", + "0.0,0.0,-0.9448329790816427,0.327552502111811,0.0,1.5777218104420236e-30\n", + "-4.718447854656915e-16,-3.3350058825654116e-16,0.0,2.465190328815662e-32,1.0,-0.025552060330665306\n", + "0.0,0.0,0.0,0.0,0.0,1.0\n" + ], + "text/plain": [ + "6×6 Matrix{Float64}:\n", + " 0.326257 0.945281 -2.38455e-16 7.58989e-17 0.0 1.38778e-16\n", + " -0.945281 0.326257 -1.2326e-32 -1.84889e-32 0.0 4.16334e-17\n", + " -3.78653e-29 -6.31089e-30 0.327553 0.944833 0.0 -1.26218e-29\n", + " 0.0 0.0 -0.944833 0.327553 0.0 1.57772e-30\n", + " -4.71845e-16 -3.33501e-16 0.0 2.46519e-32 1.0 -0.0255521\n", + " 0.0 0.0 0.0 0.0 0.0 1.0" + ], + "text/tab-separated-values": [ + "0.32625736656277887\t0.945280979795702\t-2.3845514936543e-16\t7.589886090100463e-17\t0.0\t1.3877787807814457e-16\n", + "-0.9452809797957029\t0.32625736656277815\t-1.232595164407831e-32\t-1.8488927466117464e-32\t0.0\t4.163336342344337e-17\n", + "-3.7865323450608567e-29\t-6.310887241768095e-30\t0.3275525021118107\t0.944832979081643\t0.0\t-1.262177448353619e-29\n", + "0.0\t0.0\t-0.9448329790816427\t0.327552502111811\t0.0\t1.5777218104420236e-30\n", + "-4.718447854656915e-16\t-3.3350058825654116e-16\t0.0\t2.465190328815662e-32\t1.0\t-0.025552060330665306\n", + "0.0\t0.0\t0.0\t0.0\t0.0\t1.0\n" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ai = jl.inv(a)\n", + "r = ai * m * a\n", + "jl.GTPSA.jacobian(r.v)" + ] + }, + { + "cell_type": "markdown", + "id": "06c464f6", + "metadata": {}, + "source": [ + "It is easiest to view this in the complex phasors basis where the coordinates are $(\\tilde{q}_i,\\tilde{p}_i)=(\\sqrt{J_i}e^{+\\textrm{i}\\phi_i},\\sqrt{J_i}e^{-\\textrm{i}\\phi_i})$. That way, we see explicitly that the monomials $(\\tilde{q}_i\\tilde{p}_i)^n = J_i^n$." + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "id": "eb00add2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DAMap{StaticArraysCore.MVector{5, ComplexF64}, StaticArraysCore.MVector{6, ComplexTPS64{GTPSA.Dynamic}}, Nothing, Nothing}(ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im], 6-element StaticArraysCore.MVector{6, ComplexTPS64{GTPSA.Dynamic}}:\n", + "Descriptor(NV=6, MO=2)\n", + " Index Real Imag Order Exponent\n", + "---------------------------------------------------------------------------------------------\n", + " 1: 3.2625736656277848e-01 -9.4528097979570247e-01 1 1 0 0 0 0 0\n", + " 1: 1.1996841454073626e+00 4.1406290653633482e-01 2 1 0 0 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 2: 3.2625736656277848e-01 9.4528097979570247e-01 1 0 1 0 0 0 0\n", + " 2: 1.1996841454073626e+00 -4.1406290653633482e-01 2 0 1 0 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 3: 3.2755250211181086e-01 -9.4483297908164277e-01 1 0 0 1 0 0 0\n", + " 3: 1.2943164363081314e+00 4.4871061512823929e-01 2 0 0 1 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 4: 3.2755250211181086e-01 9.4483297908164277e-01 1 0 0 0 1 0 0\n", + " 4: 1.2943164363081314e+00 -4.4871061512823929e-01 2 0 0 0 1 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 5: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -2.5552060330665306e-02 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + " 5: -1.2691296778939141e+00 0.0000000000000000e+00 2 1 1 0 0 0 0\n", + " 5: -1.3698891391007313e+00 0.0000000000000000e+00 2 0 0 1 1 0 0\n", + " 5: -3.8329009509992636e-02 0.0000000000000000e+00 2 0 0 0 0 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + ", nothing, nothing)\n" + ] + } + ], + "source": [ + "c = jl.c_map(m)\n", + "ci = jl.inv(c)\n", + "r_phasor = ci * r * c\n", + "print(r_phasor)" + ] + }, + { + "cell_type": "markdown", + "id": "1f0c06e6", + "metadata": {}, + "source": [ + "Note that this map, which is a rotation, is in the phasors basis. So, $\\tilde{q}_1 = \\sqrt{J}e^{\\textrm{i}\\phi_1}$. In the linear case we have\n", + "\n", + "$$\n", + "\\tilde{q}_1 ∘ \\vec{r}_{phasor,linear} = \\underbrace{\\sqrt{J}e^{\\textrm{i}\\phi_1}}_{\\tilde{q}_1}e^{-\\textrm{i}2\\pi\\nu_{1}} = \\sqrt{J}e^{\\textrm{i}(\\phi_1 - 2\\pi\\nu_{1})} \\ .\n", + "$$\n", + "This makes sense - it rotators phase. In the nonlinear case we see that we have\n", + "\n", + "$$\n", + "\\tilde{q}_1 ∘ \\vec{r}_{phasor} = \\sqrt{J}e^{\\textrm{i}\\phi_1}e^{-\\textrm{i}2\\pi\\left(\\nu_{1}+\\xi_x\\delta\\right)}\n", + "$$\n", + "\n", + "We can remove the $\\sqrt{J}e^{\\textrm{i}\\phi_1}$ using `par` in `GTPSA`, specifying to remove the first variable. Then we can naturally compute the amplitude-dependent tune" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "id": "d0cb4300", + "metadata": {}, + "outputs": [ + { + "data": { + "text/csv": [ + "TPS64{GTPSA.Dynamic}:\n", + "Descriptor(NV=6, MO=2)\n", + " Coefficient Order Exponent\n", + " 1.9710619563624454e-01 0 0 0 0 0 0 0\n", + " -2.0198826166144121e-01 1 0 0 0 0 0 1\n", + "\n" + ], + "text/plain": [ + "TPS64{GTPSA.Dynamic}:\n", + "Descriptor(NV=6, MO=2)\n", + " Coefficient Order Exponent\n", + " 1.9710619563624454e-01 0 0 0 0 0 0 0\n", + " -2.0198826166144121e-01 1 0 0 0 0 0 1\n" + ], + "text/tab-separated-values": [ + "TPS64{GTPSA.Dynamic}:\n", + "Descriptor(NV=6, MO=2)\n", + " Coefficient Order Exponent\n", + " 1.9710619563624454e-01 0 0 0 0 0 0 0\n", + " -2.0198826166144121e-01 1 0 0 0 0 0 1\n", + "\n" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ADT = jl.real(-jl.log(jl.par(r_phasor.v[0], 1))/(2*math.pi*1j))\n", + "ADT" + ] + }, + { + "cell_type": "markdown", + "id": "3b6b0502", + "metadata": {}, + "source": [ + "With a differentiable code, we can trivially extract things like the chromaticity, and get exact solutions given the physics of the tracking code - no nasty equations or integrals.\n", + "\n", + "Not only is differentiability necessary to compute and analyze high order Taylor maps, it also allows us to compute exact derivatives of anything we want. This includes the parameters, e.g. the quadrupole strengths. Using `SciBmad`, we can compute the tune $\\nu_x$ as a function of variations in the quadrupole strength, e.g. $\\nu=\\nu(\\Delta K_{n1})$" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/lattices/esr.jl b/lattices/esr.jl new file mode 100644 index 0000000..7bc57e9 --- /dev/null +++ b/lattices/esr.jl @@ -0,0 +1,5543 @@ +using Beamlines + +@eles begin +IP6__1 = Marker() +D000001__1 = Drift( L = 5.3) +Q1ER_6 = Quadrupole( L = 1.8, Kn1 = -0.2291420342) +D000002__1 = Drift( L = 0.5) +Q2ER_6 = Quadrupole( L = 1.4, Kn1 = 0.2267785688) +D000002__2 = Drift( L = 0.5) +D2ER_6 = SBend( L = 5.50007539103, g = -3.2977170394029E-3, e1 = -9.0688461675E-3, e2 = -9.0688461675E-3) +D000003__1 = Drift( L = 22.7) +Q3ER_6 = Quadrupole( L = 0.6, Kn1 = 0.2223634541) +D000004 = Drift( L = 3.530758) +Q4ER_6 = Quadrupole( L = 0.6, Kn1 = -0.26505565,) +D000005__1 = Drift( L = 4.6) +Q5ER_6 = Quadrupole( L = 1.2, Kn1 = -0.03480279635) +D000006__1 = Drift( L = 0.4) +D3ER_6 = SBend( L = 3.8000045358949, g = -1.4085135130897E-3, e1 = -2.676178869305E-3, e2 = -2.676178869305E-3) +D000006__2 = Drift( L = 0.4) +Q6ER_6 = Quadrupole( L = 1.2, Kn1 = 0.1490047164,) +D000005__2 = Drift( L = 4.6) +Q7ER_6 = Quadrupole( L = 1.2, Kn1 = -0.1838758976,) +D000005__3 = Drift( L = 4.6) +Q9ER_6 = Quadrupole( L = 1.2, Kn1 = 0.06052528741,) +D000007__1 = Drift( L = 0.3) +RF_CRAB__1 = Drift( L = 4) +D000007__2 = Drift( L = 0.3) +Q10ER_6 = Quadrupole( L = 1.2, Kn1 = 0.1362226534) +D000005__4 = Drift( L = 4.6) +Q11ER_6 = Quadrupole( L = 1.2, Kn1 = -0.1612034901) +D000006__3 = Drift( L = 0.4) +D5ER_6__1 = SBend( L = 3.8000383782291, g = 4.097007606343E-3, e1 = 7.78439307E-3, e2 = 7.78439307E-3) +D000006__4 = Drift( L = 0.4) +Q12ER_6 = Quadrupole( L = 1.2, Kn1 = 0.1776428377) +D000006__5 = Drift( L = 0.4) +D5ER_6__2 = SBend( L = 3.8000383782291, g = 4.097007606343E-3, e1 = 7.78439307E-3, e2 = 7.78439307E-3) +D000006__6 = Drift( L = 0.4) +Q13ER_6 = Quadrupole( L = 1.2, Kn1 = 0.108262799,) +D000006__7 = Drift( L = 0.4) +D5ER_6__3 = SBend( L = 3.8000383782291, g = 4.097007606343E-3, e1 = 7.78439307E-3, e2 = 7.78439307E-3) +D000006__8 = Drift( L = 0.4) +Q14ER_6 = Quadrupole( L = 1.2, Kn1 = -0.1762142779,) +D000006__9 = Drift( L = 0.4) +D5ER_6__4 = SBend( L = 3.8000383782291, g = 4.097007606343E-3, e1 = 7.78439307E-3, e2 = 7.78439307E-3) +D000006__10 = Drift( L = 0.4) +Q15ER_6 = Quadrupole( L = 1.2, Kn1 = 0.2658297117,) +MLRR_6 = Marker() +D000008__1 = Drift( L = 0.85) +MROT4__1 = Marker() +HSOL20_6__1 = Solenoid( L = 5.5, Ksol = 0.142634259959) +D000008__2 = Drift( L = 0.85) +HQLS7_6 = Quadrupole( L = 0.9819319, Kn1 = 0.4980048) +D000009__1 = Drift( L = 0.25) +HQLS6_6 = Quadrupole( L = 1.469939, Kn1 = -0.4983425) +D000009__2 = Drift( L = 0.25) +HQLS5_6 = Quadrupole( L = 1.530059, Kn1 = 0.3253198) +D000009__3 = Drift( L = 0.25) +HQLS4_6 = Quadrupole( L = 0.5187944, Kn1 = 0.498934) +D000009__4 = Drift( L = 0.25) +HQLS3_6 = Quadrupole( L = 1.530059, Kn1 = 0.3253198) +D000009__5 = Drift( L = 0.25) +HQLS2_6 = Quadrupole( L = 1.469939, Kn1 = -0.4983425) +D000009__6 = Drift( L = 0.25) +HQLS1_6 = Quadrupole( L = 0.9819319, Kn1 = 0.4980048) +D000008__3 = Drift( L = 0.85) +HSOL20_6__2 = Solenoid( L = 5.5, Ksol = 0.142634259959) +MROT3__1 = Marker() +D000008__4 = Drift( L = 0.85) +HQFF6_6 = Quadrupole( L = 0.5, Kn1 = 0.05714467433,) +MFF_6 = Marker() +D000010__1 = Drift( L = 0.753912) +DB23_6__1 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000010__2 = Drift( L = 0.753912) +HQFF5_6 = Quadrupole( L = 0.6, Kn1 = 0.2430267659,) +D000010__3 = Drift( L = 0.753912) +DB23_6__2 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000010__4 = Drift( L = 0.753912) +QFF4_6 = Quadrupole( L = 1, Kn1 = -0.1976684766,) +D000010__5 = Drift( L = 0.753912) +DB23_6__3 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000010__6 = Drift( L = 0.753912) +QFF3_6 = Quadrupole( L = 1.2, Kn1 = 0.274784227) +D000010__7 = Drift( L = 0.753912) +DB23_6__4 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000010__8 = Drift( L = 0.753912) +QFF2_6 = Quadrupole( L = 1.2, Kn1 = -0.1372520109) +D000010__9 = Drift( L = 0.753912) +DB23_6__5 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000010__10 = Drift( L = 0.753912) +QFF1_6 = Quadrupole( L = 1.6, Kn1 = 0.2242944837,) +D000008__5 = Drift( L = 0.85) +MROT2__1 = Marker() +HSOL5_6__1 = Solenoid( L = 1.8) +D000008__6 = Drift( L = 0.85) +HQSS5_6 = Quadrupole( L = 0.6861532, Kn1 = -0.1709619063,) +D000009__7 = Drift( L = 0.25) +HQSS4_6 = Quadrupole( L = 1.020723, Kn1 = -0.3178330623,) +D000009__8 = Drift( L = 0.25) +HQSS3_6 = Quadrupole( L = 1.634532, Kn1 = 0.1897683702,) +D000009__9 = Drift( L = 0.25) +HQSS2_6 = Quadrupole( L = 0.9550568, Kn1 = 0.3512480915) +D000009__10 = Drift( L = 0.25) +HQSS1_6 = Quadrupole( L = 0.6480402, Kn1 = -0.4953496086,) +D000008__7 = Drift( L = 0.85) +HSOL5_6__2 = Solenoid( L = 1.8) +MROT1__1 = Marker() +D000008__8 = Drift( L = 0.85) +HQD_6A = Quadrupole( L = 0.5, Kn1 = -0.06747722682,) +D000011__1 = Drift( L = 1.1) +HQF_6A = Quadrupole( L = 0.5, Kn1 = 0.3359722588) +D000012__1 = Drift( L = 0.1559) +SF1_7__1 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__1 = Drift( L = 0.1042) +SF1_7__2 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__1 = Drift( L = 0.50037) +EDGE1_002__1 = Multipole( Kn1L = -5.17873518337E-5) +D01A_002__1 = SBend( L = 3.005194535002, g = 3.9548203740468E-3) +EDGE2_002__1 = Multipole( Kn1L = 4.78133619569E-6) +D000015__1 = Drift( L = 0.1193) +EDGE3_002__1 = Multipole( Kn1L = -4.78133619569E-6) +D23_002__1 = SBend( L = 0.611400148943, g = 3.9548203741204E-3) +EDGE3_002__2 = Multipole( Kn1L = -4.78133619569E-6) +D000015__2 = Drift( L = 0.1193) +EDGE2_002__2 = Multipole( Kn1L = 4.78133619569E-6) +D01B_002__1 = SBend( L = 3.005194535002, g = 3.9548203740468E-3) +EDGE1_002__2 = Multipole( Kn1L = -5.17873518337E-5) +D000016__1 = Drift( L = 0.374508) +CV01_7 = VKicker( L = 0.2) +D000017__1 = Drift( L = 0.0638) +HQD_6B = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__2 = Drift( L = 0.1559) +SD1_7__1 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__2 = Drift( L = 0.1042) +SD1_7__2 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__2 = Drift( L = 0.50037) +EDGE1_002__3 = Multipole( Kn1L = -5.17873518337E-5) +D01A_002__2 = SBend( L = 3.005194535002, g = 3.9548203740468E-3) +EDGE2_002__3 = Multipole( Kn1L = 4.78133619569E-6) +D000015__3 = Drift( L = 0.1193) +EDGE3_002__3 = Multipole( Kn1L = -4.78133619569E-6) +D23_002__2 = SBend( L = 0.611400148943, g = 3.9548203741204E-3) +EDGE3_002__4 = Multipole( Kn1L = -4.78133619569E-6) +D000015__4 = Drift( L = 0.1193) +EDGE2_002__4 = Multipole( Kn1L = 4.78133619569E-6) +D01B_002__2 = SBend( L = 3.005194535002, g = 3.9548203740468E-3) +EDGE1_002__4 = Multipole( Kn1L = -5.17873518337E-5) +D000016__2 = Drift( L = 0.374508) +CH01_7 = HKicker( L = 0.2) +D000017__2 = Drift( L = 0.0638) +HQF_6B = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__3 = Drift( L = 0.1559) +SF2_7__1 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__3 = Drift( L = 0.1042) +SF2_7__2 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__3 = Drift( L = 0.50037) +EDGE1_002__5 = Multipole( Kn1L = -5.17873518337E-5) +D01A_002__3 = SBend( L = 3.005194535002, g = 3.9548203740468E-3) +EDGE2_002__5 = Multipole( Kn1L = 4.78133619569E-6) +D000015__5 = Drift( L = 0.1193) +EDGE3_002__5 = Multipole( Kn1L = -4.78133619569E-6) +D23_002__3 = SBend( L = 0.611400148943, g = 3.9548203741204E-3) +EDGE3_002__6 = Multipole( Kn1L = -4.78133619569E-6) +D000015__6 = Drift( L = 0.1193) +EDGE2_002__6 = Multipole( Kn1L = 4.78133619569E-6) +D01B_002__3 = SBend( L = 3.005194535002, g = 3.9548203740468E-3) +EDGE1_002__6 = Multipole( Kn1L = -5.17873518337E-5) +D000016__3 = Drift( L = 0.374508) +CV02_7 = VKicker( L = 0.2) +D000017__3 = Drift( L = 0.0638) +HQD_6C = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__4 = Drift( L = 0.1559) +SD2_7__1 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__4 = Drift( L = 0.1042) +SD2_7__2 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__4 = Drift( L = 0.50037) +EDGE1_002__7 = Multipole( Kn1L = -5.17873518337E-5) +D01A_002__4 = SBend( L = 3.005194535002, g = 3.9548203740468E-3) +EDGE2_002__7 = Multipole( Kn1L = 4.78133619569E-6) +D000015__7 = Drift( L = 0.1193) +EDGE3_002__7 = Multipole( Kn1L = -4.78133619569E-6) +D23_002__4 = SBend( L = 0.611400148943, g = 3.9548203741204E-3) +EDGE3_002__8 = Multipole( Kn1L = -4.78133619569E-6) +D000015__8 = Drift( L = 0.1193) +EDGE2_002__8 = Multipole( Kn1L = 4.78133619569E-6) +D01B_002__4 = SBend( L = 3.005194535002, g = 3.9548203740468E-3) +EDGE1_002__8 = Multipole( Kn1L = -5.17873518337E-5) +D000016__4 = Drift( L = 0.374508) +CH02_7 = HKicker( L = 0.2) +D000017__4 = Drift( L = 0.0638) +HQF_6C = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__5 = Drift( L = 0.1559) +SF1_7__3 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__5 = Drift( L = 0.1042) +SF1_7__4 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__5 = Drift( L = 0.50037) +EDGE1_000__1 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__1 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__1 = Multipole( Kn1L = 4.07894736378E-6) +D000018__1 = Drift( L = 0.1193) +EDGE3_000__1 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__1 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__2 = Multipole( Kn1L = -4.07894736378E-6) +D000018__2 = Drift( L = 0.1193) +EDGE2_000__2 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__1 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__2 = Multipole( Kn1L = -4.4179123956E-5) +D000016__5 = Drift( L = 0.374508) +CV03_7 = VKicker( L = 0.2) +D000017__5 = Drift( L = 0.0638) +HQD_7__1 = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__6 = Drift( L = 0.1559) +SD1_7__3 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__6 = Drift( L = 0.1042) +SD1_7__4 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__6 = Drift( L = 0.50037) +EDGE1_000__3 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__2 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__3 = Multipole( Kn1L = 4.07894736378E-6) +D000018__3 = Drift( L = 0.1193) +EDGE3_000__3 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__2 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__4 = Multipole( Kn1L = -4.07894736378E-6) +D000018__4 = Drift( L = 0.1193) +EDGE2_000__4 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__2 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__4 = Multipole( Kn1L = -4.4179123956E-5) +D000016__6 = Drift( L = 0.374508) +CH03_7 = HKicker( L = 0.2) +D000017__6 = Drift( L = 0.0638) +HQF_7__1 = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__7 = Drift( L = 0.1559) +SF2_7__3 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__7 = Drift( L = 0.1042) +SF2_7__4 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__7 = Drift( L = 0.50037) +EDGE1_000__5 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__3 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__5 = Multipole( Kn1L = 4.07894736378E-6) +D000018__5 = Drift( L = 0.1193) +EDGE3_000__5 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__3 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__6 = Multipole( Kn1L = -4.07894736378E-6) +D000018__6 = Drift( L = 0.1193) +EDGE2_000__6 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__3 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__6 = Multipole( Kn1L = -4.4179123956E-5) +D000016__7 = Drift( L = 0.374508) +CV04_7 = VKicker( L = 0.2) +D000017__7 = Drift( L = 0.0638) +HQD_7__2 = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__8 = Drift( L = 0.1559) +SD2_7__3 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__8 = Drift( L = 0.1042) +SD2_7__4 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__8 = Drift( L = 0.50037) +EDGE1_000__7 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__4 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__7 = Multipole( Kn1L = 4.07894736378E-6) +D000018__7 = Drift( L = 0.1193) +EDGE3_000__7 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__4 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__8 = Multipole( Kn1L = -4.07894736378E-6) +D000018__8 = Drift( L = 0.1193) +EDGE2_000__8 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__4 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__8 = Multipole( Kn1L = -4.4179123956E-5) +D000016__8 = Drift( L = 0.374508) +CH04_7 = HKicker( L = 0.2) +D000017__8 = Drift( L = 0.0638) +HQF_7__2 = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__9 = Drift( L = 0.1559) +SF1_7__5 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__9 = Drift( L = 0.1042) +SF1_7__6 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__9 = Drift( L = 0.50037) +EDGE1_000__9 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__5 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__9 = Multipole( Kn1L = 4.07894736378E-6) +D000018__9 = Drift( L = 0.1193) +EDGE3_000__9 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__5 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__10 = Multipole( Kn1L = -4.07894736378E-6) +D000018__10 = Drift( L = 0.1193) +EDGE2_000__10 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__5 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__10 = Multipole( Kn1L = -4.4179123956E-5) +D000016__9 = Drift( L = 0.374508) +CV05_7 = VKicker( L = 0.2) +D000017__9 = Drift( L = 0.0638) +HQD_7__3 = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__10 = Drift( L = 0.1559) +SD1_7__5 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__10 = Drift( L = 0.1042) +SD1_7__6 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__10 = Drift( L = 0.50037) +EDGE1_000__11 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__6 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__11 = Multipole( Kn1L = 4.07894736378E-6) +D000018__11 = Drift( L = 0.1193) +EDGE3_000__11 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__6 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__12 = Multipole( Kn1L = -4.07894736378E-6) +D000018__12 = Drift( L = 0.1193) +EDGE2_000__12 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__6 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__12 = Multipole( Kn1L = -4.4179123956E-5) +D000016__10 = Drift( L = 0.374508) +CH05_7 = HKicker( L = 0.2) +D000017__10 = Drift( L = 0.0638) +HQF_7__3 = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__11 = Drift( L = 0.1559) +SF2_7__5 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__11 = Drift( L = 0.1042) +SF2_7__6 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__11 = Drift( L = 0.50037) +EDGE1_000__13 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__7 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__13 = Multipole( Kn1L = 4.07894736378E-6) +D000018__13 = Drift( L = 0.1193) +EDGE3_000__13 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__7 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__14 = Multipole( Kn1L = -4.07894736378E-6) +D000018__14 = Drift( L = 0.1193) +EDGE2_000__14 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__7 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__14 = Multipole( Kn1L = -4.4179123956E-5) +D000016__11 = Drift( L = 0.374508) +CV06_7 = VKicker( L = 0.2) +D000017__11 = Drift( L = 0.0638) +HQD_7__4 = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__12 = Drift( L = 0.1559) +SD2_7__5 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__12 = Drift( L = 0.1042) +SD2_7__6 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__12 = Drift( L = 0.50037) +EDGE1_000__15 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__8 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__15 = Multipole( Kn1L = 4.07894736378E-6) +D000018__15 = Drift( L = 0.1193) +EDGE3_000__15 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__8 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__16 = Multipole( Kn1L = -4.07894736378E-6) +D000018__16 = Drift( L = 0.1193) +EDGE2_000__16 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__8 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__16 = Multipole( Kn1L = -4.4179123956E-5) +D000016__12 = Drift( L = 0.374508) +CH06_7 = HKicker( L = 0.2) +D000017__12 = Drift( L = 0.0638) +HQF_7__4 = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__13 = Drift( L = 0.1559) +SF1_7__7 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__13 = Drift( L = 0.1042) +SF1_7__8 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__13 = Drift( L = 0.50037) +EDGE1_000__17 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__9 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__17 = Multipole( Kn1L = 4.07894736378E-6) +D000018__17 = Drift( L = 0.1193) +EDGE3_000__17 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__9 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__18 = Multipole( Kn1L = -4.07894736378E-6) +D000018__18 = Drift( L = 0.1193) +EDGE2_000__18 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__9 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__18 = Multipole( Kn1L = -4.4179123956E-5) +D000016__13 = Drift( L = 0.374508) +CV07_7 = VKicker( L = 0.2) +D000017__13 = Drift( L = 0.0638) +HQD_7__5 = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__14 = Drift( L = 0.1559) +SD1_7__7 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__14 = Drift( L = 0.1042) +SD1_7__8 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__14 = Drift( L = 0.50037) +EDGE1_000__19 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__10 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__19 = Multipole( Kn1L = 4.07894736378E-6) +D000018__19 = Drift( L = 0.1193) +EDGE3_000__19 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__10 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__20 = Multipole( Kn1L = -4.07894736378E-6) +D000018__20 = Drift( L = 0.1193) +EDGE2_000__20 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__10 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__20 = Multipole( Kn1L = -4.4179123956E-5) +D000016__14 = Drift( L = 0.374508) +CH07_7 = HKicker( L = 0.2) +D000017__14 = Drift( L = 0.0638) +HQF_7__5 = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__15 = Drift( L = 0.1559) +SF2_7__7 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__15 = Drift( L = 0.1042) +SF2_7__8 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__15 = Drift( L = 0.50037) +EDGE1_000__21 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__11 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__21 = Multipole( Kn1L = 4.07894736378E-6) +D000018__21 = Drift( L = 0.1193) +EDGE3_000__21 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__11 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__22 = Multipole( Kn1L = -4.07894736378E-6) +D000018__22 = Drift( L = 0.1193) +EDGE2_000__22 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__11 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__22 = Multipole( Kn1L = -4.4179123956E-5) +D000016__15 = Drift( L = 0.374508) +CV08_7 = VKicker( L = 0.2) +D000017__15 = Drift( L = 0.0638) +HQD_7__6 = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__16 = Drift( L = 0.1559) +SD2_7__7 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__16 = Drift( L = 0.1042) +SD2_7__8 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__16 = Drift( L = 0.50037) +EDGE1_000__23 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__12 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__23 = Multipole( Kn1L = 4.07894736378E-6) +D000018__23 = Drift( L = 0.1193) +EDGE3_000__23 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__12 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__24 = Multipole( Kn1L = -4.07894736378E-6) +D000018__24 = Drift( L = 0.1193) +EDGE2_000__24 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__12 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__24 = Multipole( Kn1L = -4.4179123956E-5) +D000016__16 = Drift( L = 0.374508) +CH08_7 = HKicker( L = 0.2) +D000017__16 = Drift( L = 0.0638) +HQF_7__6 = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__17 = Drift( L = 0.1559) +SF1_7__9 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__17 = Drift( L = 0.1042) +SF1_7__10 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__17 = Drift( L = 0.50037) +EDGE1_000__25 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__13 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__25 = Multipole( Kn1L = 4.07894736378E-6) +D000018__25 = Drift( L = 0.1193) +EDGE3_000__25 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__13 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__26 = Multipole( Kn1L = -4.07894736378E-6) +D000018__26 = Drift( L = 0.1193) +EDGE2_000__26 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__13 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__26 = Multipole( Kn1L = -4.4179123956E-5) +D000016__17 = Drift( L = 0.374508) +CV09_7 = VKicker( L = 0.2) +D000017__17 = Drift( L = 0.0638) +HQD_7__7 = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__18 = Drift( L = 0.1559) +SD1_7__9 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__18 = Drift( L = 0.1042) +SD1_7__10 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__18 = Drift( L = 0.50037) +EDGE1_000__27 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__14 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__27 = Multipole( Kn1L = 4.07894736378E-6) +D000018__27 = Drift( L = 0.1193) +EDGE3_000__27 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__14 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__28 = Multipole( Kn1L = -4.07894736378E-6) +D000018__28 = Drift( L = 0.1193) +EDGE2_000__28 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__14 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__28 = Multipole( Kn1L = -4.4179123956E-5) +D000016__18 = Drift( L = 0.374508) +CH09_7 = HKicker( L = 0.2) +D000017__18 = Drift( L = 0.0638) +HQF_7__7 = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__19 = Drift( L = 0.1559) +SF2_7__9 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__19 = Drift( L = 0.1042) +SF2_7__10 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__19 = Drift( L = 0.50037) +EDGE1_000__29 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__15 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__29 = Multipole( Kn1L = 4.07894736378E-6) +D000018__29 = Drift( L = 0.1193) +EDGE3_000__29 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__15 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__30 = Multipole( Kn1L = -4.07894736378E-6) +D000018__30 = Drift( L = 0.1193) +EDGE2_000__30 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__15 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__30 = Multipole( Kn1L = -4.4179123956E-5) +D000016__19 = Drift( L = 0.374508) +CV10_7 = VKicker( L = 0.2) +D000017__19 = Drift( L = 0.0638) +HQD_7__8 = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__20 = Drift( L = 0.1559) +SD2_7__9 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__20 = Drift( L = 0.1042) +SD2_7__10 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__20 = Drift( L = 0.50037) +EDGE1_000__31 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__16 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__31 = Multipole( Kn1L = 4.07894736378E-6) +D000018__31 = Drift( L = 0.1193) +EDGE3_000__31 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__16 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__32 = Multipole( Kn1L = -4.07894736378E-6) +D000018__32 = Drift( L = 0.1193) +EDGE2_000__32 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__16 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__32 = Multipole( Kn1L = -4.4179123956E-5) +D000016__20 = Drift( L = 0.374508) +CH10_7 = HKicker( L = 0.2) +D000017__20 = Drift( L = 0.0638) +HQF_7__8 = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__21 = Drift( L = 0.1559) +SF1_7__11 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__21 = Drift( L = 0.1042) +SF1_7__12 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__21 = Drift( L = 0.50037) +EDGE1_000__33 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__17 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__33 = Multipole( Kn1L = 4.07894736378E-6) +D000018__33 = Drift( L = 0.1193) +EDGE3_000__33 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__17 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__34 = Multipole( Kn1L = -4.07894736378E-6) +D000018__34 = Drift( L = 0.1193) +EDGE2_000__34 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__17 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__34 = Multipole( Kn1L = -4.4179123956E-5) +D000016__21 = Drift( L = 0.374508) +CV11_7 = VKicker( L = 0.2) +D000017__21 = Drift( L = 0.0638) +HQD_7__9 = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__22 = Drift( L = 0.1559) +SD1_7__11 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__22 = Drift( L = 0.1042) +SD1_7__12 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__22 = Drift( L = 0.50037) +EDGE1_000__35 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__18 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__35 = Multipole( Kn1L = 4.07894736378E-6) +D000018__35 = Drift( L = 0.1193) +EDGE3_000__35 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__18 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__36 = Multipole( Kn1L = -4.07894736378E-6) +D000018__36 = Drift( L = 0.1193) +EDGE2_000__36 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__18 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__36 = Multipole( Kn1L = -4.4179123956E-5) +D000016__22 = Drift( L = 0.374508) +CH11_7 = HKicker( L = 0.2) +D000017__22 = Drift( L = 0.0638) +HQF_7__9 = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__23 = Drift( L = 0.1559) +SF2_7__11 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__23 = Drift( L = 0.1042) +SF2_7__12 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__23 = Drift( L = 0.50037) +EDGE1_000__37 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__19 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__37 = Multipole( Kn1L = 4.07894736378E-6) +D000018__37 = Drift( L = 0.1193) +EDGE3_000__37 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__19 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__38 = Multipole( Kn1L = -4.07894736378E-6) +D000018__38 = Drift( L = 0.1193) +EDGE2_000__38 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__19 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__38 = Multipole( Kn1L = -4.4179123956E-5) +D000016__23 = Drift( L = 0.374508) +CV12_7 = VKicker( L = 0.2) +D000017__23 = Drift( L = 0.0638) +HQD_7__10 = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__24 = Drift( L = 0.1559) +SD2_7__11 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__24 = Drift( L = 0.1042) +SD2_7__12 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__24 = Drift( L = 0.50037) +EDGE1_000__39 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__20 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__39 = Multipole( Kn1L = 4.07894736378E-6) +D000018__39 = Drift( L = 0.1193) +EDGE3_000__39 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__20 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__40 = Multipole( Kn1L = -4.07894736378E-6) +D000018__40 = Drift( L = 0.1193) +EDGE2_000__40 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__20 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__40 = Multipole( Kn1L = -4.4179123956E-5) +D000016__24 = Drift( L = 0.374508) +CH12_7 = HKicker( L = 0.2) +D000017__24 = Drift( L = 0.0638) +HQF_7__10 = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__25 = Drift( L = 0.1559) +SF1_7__13 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__25 = Drift( L = 0.1042) +SF1_7__14 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__25 = Drift( L = 0.50037) +EDGE1_000__41 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__21 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__41 = Multipole( Kn1L = 4.07894736378E-6) +D000018__41 = Drift( L = 0.1193) +EDGE3_000__41 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__21 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__42 = Multipole( Kn1L = -4.07894736378E-6) +D000018__42 = Drift( L = 0.1193) +EDGE2_000__42 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__21 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__42 = Multipole( Kn1L = -4.4179123956E-5) +D000016__25 = Drift( L = 0.374508) +CV13_7 = VKicker( L = 0.2) +D000017__25 = Drift( L = 0.0638) +HQD_7__11 = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__26 = Drift( L = 0.1559) +SD1_7__13 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__26 = Drift( L = 0.1042) +SD1_7__14 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__26 = Drift( L = 0.50037) +EDGE1_000__43 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__22 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__43 = Multipole( Kn1L = 4.07894736378E-6) +D000018__43 = Drift( L = 0.1193) +EDGE3_000__43 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__22 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__44 = Multipole( Kn1L = -4.07894736378E-6) +D000018__44 = Drift( L = 0.1193) +EDGE2_000__44 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__22 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__44 = Multipole( Kn1L = -4.4179123956E-5) +D000016__26 = Drift( L = 0.374508) +CH13_7 = HKicker( L = 0.2) +D000017__26 = Drift( L = 0.0638) +HQF_7__11 = Quadrupole( L = 0.5, Kn1 = 0.3118076686,) +D000012__27 = Drift( L = 0.1559) +SF2_7__13 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__27 = Drift( L = 0.1042) +SF2_7__14 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__27 = Drift( L = 0.50037) +EDGE1_000__45 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__23 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__45 = Multipole( Kn1L = 4.07894736378E-6) +D000018__45 = Drift( L = 0.1193) +EDGE3_000__45 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__23 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__46 = Multipole( Kn1L = -4.07894736378E-6) +D000018__46 = Drift( L = 0.1193) +EDGE2_000__46 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__23 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__46 = Multipole( Kn1L = -4.4179123956E-5) +D000016__27 = Drift( L = 0.374508) +CV14_7 = VKicker( L = 0.2) +D000017__27 = Drift( L = 0.0638) +HQD_7__12 = Quadrupole( L = 0.5, Kn1 = -0.3116315384,) +D000012__28 = Drift( L = 0.1559) +SD2_7__13 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__28 = Drift( L = 0.1042) +SD2_7__14 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__28 = Drift( L = 0.50037) +EDGE1_000__47 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__24 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__47 = Multipole( Kn1L = 4.07894736378E-6) +D000018__47 = Drift( L = 0.1193) +EDGE3_000__47 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__24 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__48 = Multipole( Kn1L = -4.07894736378E-6) +D000018__48 = Drift( L = 0.1193) +EDGE2_000__48 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__24 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__48 = Multipole( Kn1L = -4.4179123956E-5) +D000016__28 = Drift( L = 0.374508) +CH14_7 = HKicker( L = 0.2) +D000017__28 = Drift( L = 0.0638) +HQF_7C = Quadrupole( L = 0.5, Kn1 = 0.3127956769,) +D000012__29 = Drift( L = 0.1559) +SF1_7__15 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__29 = Drift( L = 0.1042) +SF1_7__16 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__29 = Drift( L = 0.50037) +EDGE1_003__1 = Multipole( Kn1L = -5.47962034702E-5) +D01A_003__1 = SBend( L = 3.005200027448, g = 4.0680760596098E-3) +EDGE2_003__1 = Multipole( Kn1L = 5.05910744438E-6) +D000015__9 = Drift( L = 0.1193) +EDGE3_003__1 = Multipole( Kn1L = -5.05910744438E-6) +D23_003__1 = SBend( L = 0.611400157595, g = 4.0680760596525E-3) +EDGE3_003__2 = Multipole( Kn1L = -5.05910744438E-6) +D000015__10 = Drift( L = 0.1193) +EDGE2_003__2 = Multipole( Kn1L = 5.05910744438E-6) +D01B_003__1 = SBend( L = 3.005200027448, g = 4.0680760596098E-3) +EDGE1_003__2 = Multipole( Kn1L = -5.47962034702E-5) +D000016__29 = Drift( L = 0.374508) +CV15_7 = VKicker( L = 0.2) +D000017__29 = Drift( L = 0.0638) +HQD_7C = Quadrupole( L = 0.5, Kn1 = -0.3108838126,) +D000012__30 = Drift( L = 0.1559) +SD1_7__15 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__30 = Drift( L = 0.1042) +SD1_7__16 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__30 = Drift( L = 0.50037) +EDGE1_003__3 = Multipole( Kn1L = -5.47962034702E-5) +D01A_003__2 = SBend( L = 3.005200027448, g = 4.0680760596098E-3) +EDGE2_003__3 = Multipole( Kn1L = 5.05910744438E-6) +D000015__11 = Drift( L = 0.1193) +EDGE3_003__3 = Multipole( Kn1L = -5.05910744438E-6) +D23_003__2 = SBend( L = 0.611400157595, g = 4.0680760596525E-3) +EDGE3_003__4 = Multipole( Kn1L = -5.05910744438E-6) +D000015__12 = Drift( L = 0.1193) +EDGE2_003__4 = Multipole( Kn1L = 5.05910744438E-6) +D01B_003__2 = SBend( L = 3.005200027448, g = 4.0680760596098E-3) +EDGE1_003__4 = Multipole( Kn1L = -5.47962034702E-5) +D000016__30 = Drift( L = 0.374508) +CH15_7 = HKicker( L = 0.2) +D000017__30 = Drift( L = 0.0638) +HQF_7B = Quadrupole( L = 0.5, Kn1 = 0.3194594174,) +D000012__31 = Drift( L = 0.1559) +SF2_7__15 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000013__31 = Drift( L = 0.1042) +SF2_7__16 = Sextupole( L = 0.24, Kn2 = 2.465563152) +D000014__31 = Drift( L = 0.50037) +EDGE1_003__5 = Multipole( Kn1L = -5.47962034702E-5) +D01A_003__3 = SBend( L = 3.005200027448, g = 4.0680760596098E-3) +EDGE2_003__5 = Multipole( Kn1L = 5.05910744438E-6) +D000015__13 = Drift( L = 0.1193) +EDGE3_003__5 = Multipole( Kn1L = -5.05910744438E-6) +D23_003__3 = SBend( L = 0.611400157595, g = 4.0680760596525E-3) +EDGE3_003__6 = Multipole( Kn1L = -5.05910744438E-6) +D000015__14 = Drift( L = 0.1193) +EDGE2_003__6 = Multipole( Kn1L = 5.05910744438E-6) +D01B_003__3 = SBend( L = 3.005200027448, g = 4.0680760596098E-3) +EDGE1_003__6 = Multipole( Kn1L = -5.47962034702E-5) +D000016__31 = Drift( L = 0.374508) +CV16_7 = VKicker( L = 0.2) +D000017__31 = Drift( L = 0.0638) +HQD_7B = Quadrupole( L = 0.5, Kn1 = -0.3105982322,) +D000012__32 = Drift( L = 0.1559) +SD2_7__15 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000013__32 = Drift( L = 0.1042) +SD2_7__16 = Sextupole( L = 0.24, Kn2 = -4.313410584) +D000014__32 = Drift( L = 0.50037) +EDGE1_003__7 = Multipole( Kn1L = -5.47962034702E-5) +D01A_003__4 = SBend( L = 3.005200027448, g = 4.0680760596098E-3) +EDGE2_003__7 = Multipole( Kn1L = 5.05910744438E-6) +D000015__15 = Drift( L = 0.1193) +EDGE3_003__7 = Multipole( Kn1L = -5.05910744438E-6) +D23_003__4 = SBend( L = 0.611400157595, g = 4.0680760596525E-3) +EDGE3_003__8 = Multipole( Kn1L = -5.05910744438E-6) +D000015__16 = Drift( L = 0.1193) +EDGE2_003__8 = Multipole( Kn1L = 5.05910744438E-6) +D01B_003__4 = SBend( L = 3.005200027448, g = 4.0680760596098E-3) +EDGE1_003__8 = Multipole( Kn1L = -5.47962034702E-5) +D000016__32 = Drift( L = 0.374508) +CH16_7 = HKicker( L = 0.2) +D000017__32 = Drift( L = 0.0638) +HQF_7A = Quadrupole( L = 0.5, Kn1 = 0.3259712517) +D000011__2 = Drift( L = 1.1) +HQD_7A = Quadrupole( L = 0.5, Kn1 = -0.071909135,) +D000008__9 = Drift( L = 0.85) +MROT1__2 = Marker() +HSOL5_8__1 = Solenoid( L = 1.8) +D000008__10 = Drift( L = 0.85) +HQSS1_7 = Quadrupole( L = 0.6480402, Kn1 = -0.1976628965) +D000009__11 = Drift( L = 0.25) +HQSS2_7 = Quadrupole( L = 0.9550568, Kn1 = -0.1370256837) +D000009__12 = Drift( L = 0.25) +HQSS3_7 = Quadrupole( L = 1.634532, Kn1 = 3.239613906E-3,) +D000009__13 = Drift( L = 0.25) +HQSS4_7 = Quadrupole( L = 1.020723, Kn1 = 0.255335572,) +D000009__14 = Drift( L = 0.25) +HQSS5_7 = Quadrupole( L = 0.6861532, Kn1 = -0.1505457051,) +D000008__11 = Drift( L = 0.85) +HSOL5_8__2 = Solenoid( L = 1.8) +MROT2__2 = Marker() +D000008__12 = Drift( L = 0.85) +HQFF1_7 = Quadrupole( L = 0.8, Kn1 = -0.1943356792,) +D000019__1 = Drift( L = 0.372681) +DB23_7__1 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000019__2 = Drift( L = 0.372681) +QFF2_7 = Quadrupole( L = 1.2, Kn1 = 0.1909728817,) +D000019__3 = Drift( L = 0.372681) +DB23_7__2 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000019__4 = Drift( L = 0.372681) +QFF3_7 = Quadrupole( L = 1.2, Kn1 = -0.1633145219,) +D000019__5 = Drift( L = 0.372681) +DB23_7__3 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000019__6 = Drift( L = 0.372681) +QFF4_7 = Quadrupole( L = 1, Kn1 = 0.2524257334) +D000019__7 = Drift( L = 0.372681) +DB23_7__4 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000019__8 = Drift( L = 0.372681) +HQFF5_7 = Quadrupole( L = 0.6, Kn1 = -0.2773213506) +D000019__9 = Drift( L = 0.372681) +DB23_7__5 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000019__10 = Drift( L = 0.372681) +MFF_7 = Marker() +HQFF6_7 = Quadrupole( L = 0.5, Kn1 = 0.3016541182,) +D000008__13 = Drift( L = 0.85) +MROT3__2 = Marker() +HSOL20_8__1 = Solenoid( L = 5.5) +D000008__14 = Drift( L = 0.85) +HQLS1_7 = Quadrupole( L = 0.9819319, Kn1 = 0.3525126074,) +D000009__15 = Drift( L = 0.25) +HQLS2_7 = Quadrupole( L = 1.469939, Kn1 = -0.3544489077,) +D000009__16 = Drift( L = 0.25) +HQLS3_7 = Quadrupole( L = 1.530059, Kn1 = 0.1497450638,) +D000009__17 = Drift( L = 0.25) +HQLS4_7 = Quadrupole( L = 0.5187944, Kn1 = 0.2705914324,) +D000009__18 = Drift( L = 0.25) +HQLS5_7 = Quadrupole( L = 1.530059, Kn1 = 0.2008969574,) +D000009__19 = Drift( L = 0.25) +HQLS6_7 = Quadrupole( L = 1.469939, Kn1 = -0.3524613373,) +D000009__20 = Drift( L = 0.25) +HQLS7_7 = Quadrupole( L = 0.9819319, Kn1 = 0.3516668168,) +D000008__15 = Drift( L = 0.85) +HSOL20_8__2 = Solenoid( L = 5.5) +MROT4__2 = Marker() +D000008__16 = Drift( L = 0.85) +MLRF_8 = Marker() +Q14EF_8 = Quadrupole( L = 1.2, Kn1 = -0.0805622429) +D000006__11 = Drift( L = 0.4) +D3EF_8__1 = SBend( L = 3.8000531337057, g = 4.8206664263497E-3, e1 = 9.15939428E-3, e2 = 9.15939428E-3) +D000006__12 = Drift( L = 0.4) +Q13EF_8 = Quadrupole( L = 1.2, Kn1 = 0.2147150407,) +D000006__13 = Drift( L = 0.4) +D3EF_8__2 = SBend( L = 3.8000531337057, g = 4.8206664263497E-3, e1 = 9.15939428E-3, e2 = 9.15939428E-3) +D000006__14 = Drift( L = 0.4) +Q12EF_8 = Quadrupole( L = 1.2, Kn1 = -0.1875116872) +D000006__15 = Drift( L = 0.4) +D3EF_8__3 = SBend( L = 3.8000531337057, g = 4.8206664263497E-3, e1 = 9.15939428E-3, e2 = 9.15939428E-3) +D000006__16 = Drift( L = 0.4) +Q11EF_8 = Quadrupole( L = 1.2, Kn1 = 0.319522109) +D000006__17 = Drift( L = 0.4) +D2EF_8 = SBend( L = 3.0051217587267, g = -4.3866170409633E-3, e1 = -6.5911591585E-3, e2 = -6.5911591585E-3) +D000006__18 = Drift( L = 0.4) +Q10EF_8 = Quadrupole( L = 1.2, Kn1 = -0.2329008389,) +D000005__5 = Drift( L = 4.6) +Q9EF_8 = Quadrupole( L = 1.2, Kn1 = 0.2677564554) +D000005__6 = Drift( L = 4.6) +Q8EF_8 = Quadrupole( L = 1.2, Kn1 = -0.1860583032) +D000005__7 = Drift( L = 4.6) +Q7EF_8 = Quadrupole( L = 1.2, Kn1 = 0.05181069896) +D000005__8 = Drift( L = 4.6) +Q6EF_8 = Quadrupole( L = 1.2, Kn1 = 0.01106416249) +D000005__9 = Drift( L = 4.6) +Q5EF_8 = Quadrupole( L = 1.2, Kn1 = 0.1111051943) +D000005__10 = Drift( L = 4.6) +Q4EF_8 = Quadrupole( L = 1.2, Kn1 = -0.1192696818) +D000020 = Drift( L = 5.367456) +Q3EF_8 = Quadrupole( L = 0.6, Kn1 = 0.1942090498) +D000007__3 = Drift( L = 0.3) +RF_CRAB__2 = Drift( L = 4) +D000007__4 = Drift( L = 0.3) +Q2EF_8 = Quadrupole( L = 0.6, Kn1 = -0.1340200446) +D000006__19 = Drift( L = 0.4) +D1EF_8__1 = SBend( L = 3.0051002796571, g = -4.9731333334425E-4, e1 = -7.47238218555E-4, e2 = -7.47238218555E-4) +D000006__20 = Drift( L = 0.4) +D1EF_8__2 = SBend( L = 3.0051002796571, g = -4.9731333334425E-4, e1 = -7.47238218555E-4, e2 = -7.47238218555E-4) +D000021 = Drift( L = 16.9) +Q1EF_8 = Quadrupole( L = 1.61, Kn1 = 0.1016217263) +D000022__1 = Drift( L = 3.76) +Q0EF_8 = Quadrupole( L = 1.2, Kn1 = -0.2159418046) +D000023__1 = Drift( L = 5.8) +IP8 = Marker() +D000001__2 = Drift( L = 5.3) +Q1ER_8 = Quadrupole( L = 1.8, Kn1 = -0.2143949606) +D000002__3 = Drift( L = 0.5) +Q2ER_8 = Quadrupole( L = 1.4, Kn1 = 0.2031685787) +D000002__4 = Drift( L = 0.5) +D2ER_8 = SBend( L = 5.50007539103, g = -3.2977170394029E-3, e1 = -9.0688461675E-3, e2 = -9.0688461675E-3) +D000003__2 = Drift( L = 22.7) +Q3ER_8 = Quadrupole( L = 0.6, Kn1 = -0.1022387522) +D000006__21 = Drift( L = 0.4) +D3ER_8 = SBend( L = 3.0051041632592, g = 1.9188151700459E-3, e1 = 2.883119728015E-3, e2 = 2.883119728015E-3) +D000024 = Drift( L = 3.522083) +Q4ER_8 = Quadrupole( L = 0.6, Kn1 = 0.1693940448) +D000025 = Drift( L = 4.8) +Q5ER_8 = Quadrupole( L = 1.2, Kn1 = -0.1475150732) +D000026 = Drift( L = 2.8) +Q6ER_8 = Quadrupole( L = 1.2, Kn1 = 0.07294971889) +D000005__11 = Drift( L = 4.6) +Q7ER_8 = Quadrupole( L = 1.2, Kn1 = 0.07596588916) +D000005__12 = Drift( L = 4.6) +Q8ER_8 = Quadrupole( L = 1.2, Kn1 = -0.202860792) +D000005__13 = Drift( L = 4.6) +Q9ER_8 = Quadrupole( L = 1.2, Kn1 = 0.09499816132) +D000007__5 = Drift( L = 0.3) +RF_CRAB__3 = Drift( L = 4) +D000007__6 = Drift( L = 0.3) +Q10ER_8 = Quadrupole( L = 1.2, Kn1 = 0.1322610543) +D000005__14 = Drift( L = 4.6) +Q11ER_8 = Quadrupole( L = 1.2, Kn1 = -0.221468388) +D000006__22 = Drift( L = 0.4) +D4ER_8 = SBend( L = 3.0051224305305, g = 4.453819619468E-3, e1 = 6.69213662E-3, e2 = 6.69213662E-3) +D000006__23 = Drift( L = 0.4) +Q12ER_8 = Quadrupole( L = 1.2, Kn1 = 0.1585832349) +D000006__24 = Drift( L = 0.4) +D5ER_8__1 = SBend( L = 3.0051198496773, g = 4.1897690181481E-3, e1 = 6.295379021E-3, e2 = 6.295379021E-3) +D000006__25 = Drift( L = 0.4) +Q13ER_8 = Quadrupole( L = 1.2, Kn1 = 0.1446740057) +D000006__26 = Drift( L = 0.4) +D5ER_8__2 = SBend( L = 3.0051198496773, g = 4.1897690181481E-3, e1 = 6.295379021E-3, e2 = 6.295379021E-3) +D000006__27 = Drift( L = 0.4) +Q14ER_8 = Quadrupole( L = 1.2, Kn1 = -0.2212744801) +D000006__28 = Drift( L = 0.4) +D5ER_8__3 = SBend( L = 3.0051198496773, g = 4.1897690181481E-3, e1 = 6.295379021E-3, e2 = 6.295379021E-3) +D000006__29 = Drift( L = 0.4) +Q15ER_8 = Quadrupole( L = 1.2, Kn1 = 0.2116494718,) +MLRR_8 = Marker() +D000008__17 = Drift( L = 0.85) +MROT4__3 = Marker() +HSOL20_8__3 = Solenoid( L = 5.5) +D000008__18 = Drift( L = 0.85) +HQLS7_8 = Quadrupole( L = 0.9819319, Kn1 = 0.3360574653) +D000009__21 = Drift( L = 0.25) +HQLS6_8 = Quadrupole( L = 1.469939, Kn1 = -0.3470868863,) +D000009__22 = Drift( L = 0.25) +HQLS5_8 = Quadrupole( L = 1.530059, Kn1 = 0.1626287734) +D000009__23 = Drift( L = 0.25) +HQLS4_8 = Quadrupole( L = 0.5187944, Kn1 = 0.2546260677) +D000009__24 = Drift( L = 0.25) +HQLS3_8 = Quadrupole( L = 1.530059, Kn1 = 0.158055864) +D000009__25 = Drift( L = 0.25) +HQLS2_8 = Quadrupole( L = 1.469939, Kn1 = -0.3498818893,) +D000009__26 = Drift( L = 0.25) +HQLS1_8 = Quadrupole( L = 0.9819319, Kn1 = 0.3342207154) +D000008__19 = Drift( L = 0.85) +HSOL20_8__4 = Solenoid( L = 5.5) +MROT3__3 = Marker() +D000008__20 = Drift( L = 0.85) +HQFF6_8 = Quadrupole( L = 0.5, Kn1 = 0.3107342787,) +MFF_8 = Marker() +D000027__1 = Drift( L = 0.354127) +DB23_8__1 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000027__2 = Drift( L = 0.354127) +HQFF5_8 = Quadrupole( L = 0.6, Kn1 = -0.3351061032) +D000027__3 = Drift( L = 0.354127) +DB23_8__2 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000027__4 = Drift( L = 0.354127) +QFF4_8 = Quadrupole( L = 1, Kn1 = 0.2878909144) +D000027__5 = Drift( L = 0.354127) +DB23_8__3 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000027__6 = Drift( L = 0.354127) +QFF3_8 = Quadrupole( L = 1.2, Kn1 = -0.2004078496) +D000027__7 = Drift( L = 0.354127) +DB23_8__4 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000027__8 = Drift( L = 0.354127) +QFF2_8 = Quadrupole( L = 1.2, Kn1 = 0.2051948078) +D000027__9 = Drift( L = 0.354127) +DB23_8__5 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000027__10 = Drift( L = 0.354127) +QFF1_8 = Quadrupole( L = 1.6, Kn1 = -0.137612492,) +D000008__21 = Drift( L = 0.85) +MROT2__3 = Marker() +HSOL5_8__3 = Solenoid( L = 1.8) +D000008__22 = Drift( L = 0.85) +HQSS5_8 = Quadrupole( L = 0.6861532, Kn1 = 0.02610418854,) +D000009__27 = Drift( L = 0.25) +HQSS4_8 = Quadrupole( L = 1.020723, Kn1 = 0.02642026735,) +D000009__28 = Drift( L = 0.25) +HQSS3_8 = Quadrupole( L = 1.634532, Kn1 = 0.07061989633,) +D000009__29 = Drift( L = 0.25) +HQSS2_8 = Quadrupole( L = 0.9550568, Kn1 = -0.099348953) +D000009__30 = Drift( L = 0.25) +HQSS1_8 = Quadrupole( L = 0.6480402, Kn1 = -0.1036476643,) +D000008__23 = Drift( L = 0.85) +HSOL5_8__4 = Solenoid( L = 1.8) +MROT1__3 = Marker() +D000008__24 = Drift( L = 0.85) +HQD_8A = Quadrupole( L = 0.5, Kn1 = -0.08760720367) +D000011__3 = Drift( L = 1.1) +HQF_8A = Quadrupole( L = 0.5, Kn1 = 0.3426857894) +D000017__33 = Drift( L = 0.0638) +CH01_9 = HKicker( L = 0.2) +D000028__1 = Drift( L = 0.29394) +EDGE1_004__1 = Multipole( Kn1L = -3.4704307448E-5) +D01A_004__1 = SBend( L = 3.005163351009, g = 3.2375221083251E-3) +EDGE2_004__1 = Multipole( Kn1L = 3.20421122147E-6) +D000029__1 = Drift( L = 0.1193) +EDGE3_004__1 = Multipole( Kn1L = -3.20421122147E-6) +D23_004__1 = SBend( L = 0.611400099814, g = 3.2375221083251E-3) +EDGE3_004__2 = Multipole( Kn1L = -3.20421122147E-6) +D000029__2 = Drift( L = 0.1193) +EDGE2_004__2 = Multipole( Kn1L = 3.20421122147E-6) +D01B_004__1 = SBend( L = 3.005163351009, g = 3.2375221083251E-3) +EDGE1_004__2 = Multipole( Kn1L = -3.4704307448E-5) +D000014__33 = Drift( L = 0.50037) +SD1_9__1 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000013__33 = Drift( L = 0.1042) +SD1_9__2 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000012__33 = Drift( L = 0.1559) +HQD_8B = Quadrupole( L = 0.5, Kn1 = -0.3126076902,) +D000017__34 = Drift( L = 0.0638) +CV01_9 = VKicker( L = 0.2) +D000028__2 = Drift( L = 0.29394) +EDGE1_004__3 = Multipole( Kn1L = -3.4704307448E-5) +D01A_004__2 = SBend( L = 3.005163351009, g = 3.2375221083251E-3) +EDGE2_004__3 = Multipole( Kn1L = 3.20421122147E-6) +D000029__3 = Drift( L = 0.1193) +EDGE3_004__3 = Multipole( Kn1L = -3.20421122147E-6) +D23_004__2 = SBend( L = 0.611400099814, g = 3.2375221083251E-3) +EDGE3_004__4 = Multipole( Kn1L = -3.20421122147E-6) +D000029__4 = Drift( L = 0.1193) +EDGE2_004__4 = Multipole( Kn1L = 3.20421122147E-6) +D01B_004__2 = SBend( L = 3.005163351009, g = 3.2375221083251E-3) +EDGE1_004__4 = Multipole( Kn1L = -3.4704307448E-5) +D000014__34 = Drift( L = 0.50037) +SF1_9__1 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000013__34 = Drift( L = 0.1042) +SF1_9__2 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000012__34 = Drift( L = 0.1559) +HQF_8B = Quadrupole( L = 0.5, Kn1 = 0.3285018589,) +D000017__35 = Drift( L = 0.0638) +CH02_9 = HKicker( L = 0.2) +D000028__3 = Drift( L = 0.29394) +EDGE1_004__5 = Multipole( Kn1L = -3.4704307448E-5) +D01A_004__3 = SBend( L = 3.005163351009, g = 3.2375221083251E-3) +EDGE2_004__5 = Multipole( Kn1L = 3.20421122147E-6) +D000029__5 = Drift( L = 0.1193) +EDGE3_004__5 = Multipole( Kn1L = -3.20421122147E-6) +D23_004__3 = SBend( L = 0.611400099814, g = 3.2375221083251E-3) +EDGE3_004__6 = Multipole( Kn1L = -3.20421122147E-6) +D000029__6 = Drift( L = 0.1193) +EDGE2_004__6 = Multipole( Kn1L = 3.20421122147E-6) +D01B_004__3 = SBend( L = 3.005163351009, g = 3.2375221083251E-3) +EDGE1_004__6 = Multipole( Kn1L = -3.4704307448E-5) +D000014__35 = Drift( L = 0.50037) +SD2_9__1 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000013__35 = Drift( L = 0.1042) +SD2_9__2 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000012__35 = Drift( L = 0.1559) +HQD_8C = Quadrupole( L = 0.5, Kn1 = -0.3136673336,) +D000017__36 = Drift( L = 0.0638) +CV02_9 = VKicker( L = 0.2) +D000028__4 = Drift( L = 0.29394) +EDGE1_004__7 = Multipole( Kn1L = -3.4704307448E-5) +D01A_004__4 = SBend( L = 3.005163351009, g = 3.2375221083251E-3) +EDGE2_004__7 = Multipole( Kn1L = 3.20421122147E-6) +D000029__7 = Drift( L = 0.1193) +EDGE3_004__7 = Multipole( Kn1L = -3.20421122147E-6) +D23_004__4 = SBend( L = 0.611400099814, g = 3.2375221083251E-3) +EDGE3_004__8 = Multipole( Kn1L = -3.20421122147E-6) +D000029__8 = Drift( L = 0.1193) +EDGE2_004__8 = Multipole( Kn1L = 3.20421122147E-6) +D01B_004__4 = SBend( L = 3.005163351009, g = 3.2375221083251E-3) +EDGE1_004__8 = Multipole( Kn1L = -3.4704307448E-5) +D000014__36 = Drift( L = 0.50037) +SF2_9__1 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000013__36 = Drift( L = 0.1042) +SF2_9__2 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000012__36 = Drift( L = 0.1559) +HQF_8C = Quadrupole( L = 0.5, Kn1 = 0.3021376478,) +D000017__37 = Drift( L = 0.0638) +CH03_9 = HKicker( L = 0.2) +D000028__5 = Drift( L = 0.29394) +EDGE1_000__49 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__25 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__49 = Multipole( Kn1L = 4.07894736378E-6) +D000018__49 = Drift( L = 0.1193) +EDGE3_000__49 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__25 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__50 = Multipole( Kn1L = -4.07894736378E-6) +D000018__50 = Drift( L = 0.1193) +EDGE2_000__50 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__25 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__50 = Multipole( Kn1L = -4.4179123956E-5) +D000014__37 = Drift( L = 0.50037) +SD1_9__3 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000013__37 = Drift( L = 0.1042) +SD1_9__4 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000012__37 = Drift( L = 0.1559) +HQD_9__1 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__38 = Drift( L = 0.0638) +CV03_9 = VKicker( L = 0.2) +D000028__6 = Drift( L = 0.29394) +EDGE1_000__51 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__26 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__51 = Multipole( Kn1L = 4.07894736378E-6) +D000018__51 = Drift( L = 0.1193) +EDGE3_000__51 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__26 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__52 = Multipole( Kn1L = -4.07894736378E-6) +D000018__52 = Drift( L = 0.1193) +EDGE2_000__52 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__26 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__52 = Multipole( Kn1L = -4.4179123956E-5) +D000014__38 = Drift( L = 0.50037) +SF1_9__3 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000013__38 = Drift( L = 0.1042) +SF1_9__4 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000012__38 = Drift( L = 0.1559) +HQF_9__1 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__39 = Drift( L = 0.0638) +CH04_9 = HKicker( L = 0.2) +D000028__7 = Drift( L = 0.29394) +EDGE1_000__53 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__27 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__53 = Multipole( Kn1L = 4.07894736378E-6) +D000018__53 = Drift( L = 0.1193) +EDGE3_000__53 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__27 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__54 = Multipole( Kn1L = -4.07894736378E-6) +D000018__54 = Drift( L = 0.1193) +EDGE2_000__54 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__27 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__54 = Multipole( Kn1L = -4.4179123956E-5) +D000014__39 = Drift( L = 0.50037) +SD2_9__3 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000013__39 = Drift( L = 0.1042) +SD2_9__4 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000012__39 = Drift( L = 0.1559) +HQD_9__2 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__40 = Drift( L = 0.0638) +CV04_9 = VKicker( L = 0.2) +D000028__8 = Drift( L = 0.29394) +EDGE1_000__55 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__28 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__55 = Multipole( Kn1L = 4.07894736378E-6) +D000018__55 = Drift( L = 0.1193) +EDGE3_000__55 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__28 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__56 = Multipole( Kn1L = -4.07894736378E-6) +D000018__56 = Drift( L = 0.1193) +EDGE2_000__56 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__28 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__56 = Multipole( Kn1L = -4.4179123956E-5) +D000014__40 = Drift( L = 0.50037) +SF2_9__3 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000013__40 = Drift( L = 0.1042) +SF2_9__4 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000012__40 = Drift( L = 0.1559) +HQF_9__2 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__41 = Drift( L = 0.0638) +CH05_9 = HKicker( L = 0.2) +D000028__9 = Drift( L = 0.29394) +EDGE1_000__57 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__29 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__57 = Multipole( Kn1L = 4.07894736378E-6) +D000018__57 = Drift( L = 0.1193) +EDGE3_000__57 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__29 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__58 = Multipole( Kn1L = -4.07894736378E-6) +D000018__58 = Drift( L = 0.1193) +EDGE2_000__58 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__29 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__58 = Multipole( Kn1L = -4.4179123956E-5) +D000014__41 = Drift( L = 0.50037) +SD1_9__5 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000013__41 = Drift( L = 0.1042) +SD1_9__6 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000012__41 = Drift( L = 0.1559) +HQD_9__3 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__42 = Drift( L = 0.0638) +CV05_9 = VKicker( L = 0.2) +D000028__10 = Drift( L = 0.29394) +EDGE1_000__59 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__30 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__59 = Multipole( Kn1L = 4.07894736378E-6) +D000018__59 = Drift( L = 0.1193) +EDGE3_000__59 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__30 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__60 = Multipole( Kn1L = -4.07894736378E-6) +D000018__60 = Drift( L = 0.1193) +EDGE2_000__60 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__30 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__60 = Multipole( Kn1L = -4.4179123956E-5) +D000014__42 = Drift( L = 0.50037) +SF1_9__5 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000013__42 = Drift( L = 0.1042) +SF1_9__6 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000012__42 = Drift( L = 0.1559) +HQF_9__3 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__43 = Drift( L = 0.0638) +CH06_9 = HKicker( L = 0.2) +D000028__11 = Drift( L = 0.29394) +EDGE1_000__61 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__31 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__61 = Multipole( Kn1L = 4.07894736378E-6) +D000018__61 = Drift( L = 0.1193) +EDGE3_000__61 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__31 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__62 = Multipole( Kn1L = -4.07894736378E-6) +D000018__62 = Drift( L = 0.1193) +EDGE2_000__62 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__31 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__62 = Multipole( Kn1L = -4.4179123956E-5) +D000014__43 = Drift( L = 0.50037) +SD2_9__5 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000013__43 = Drift( L = 0.1042) +SD2_9__6 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000012__43 = Drift( L = 0.1559) +HQD_9__4 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__44 = Drift( L = 0.0638) +CV06_9 = VKicker( L = 0.2) +D000028__12 = Drift( L = 0.29394) +EDGE1_000__63 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__32 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__63 = Multipole( Kn1L = 4.07894736378E-6) +D000018__63 = Drift( L = 0.1193) +EDGE3_000__63 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__32 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__64 = Multipole( Kn1L = -4.07894736378E-6) +D000018__64 = Drift( L = 0.1193) +EDGE2_000__64 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__32 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__64 = Multipole( Kn1L = -4.4179123956E-5) +D000014__44 = Drift( L = 0.50037) +SF2_9__5 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000013__44 = Drift( L = 0.1042) +SF2_9__6 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000012__44 = Drift( L = 0.1559) +HQF_9__4 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__45 = Drift( L = 0.0638) +CH07_9 = HKicker( L = 0.2) +D000028__13 = Drift( L = 0.29394) +EDGE1_000__65 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__33 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__65 = Multipole( Kn1L = 4.07894736378E-6) +D000018__65 = Drift( L = 0.1193) +EDGE3_000__65 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__33 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__66 = Multipole( Kn1L = -4.07894736378E-6) +D000018__66 = Drift( L = 0.1193) +EDGE2_000__66 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__33 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__66 = Multipole( Kn1L = -4.4179123956E-5) +D000014__45 = Drift( L = 0.50037) +SD1_9__7 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000013__45 = Drift( L = 0.1042) +SD1_9__8 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000012__45 = Drift( L = 0.1559) +HQD_9__5 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__46 = Drift( L = 0.0638) +CV07_9 = VKicker( L = 0.2) +D000028__14 = Drift( L = 0.29394) +EDGE1_000__67 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__34 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__67 = Multipole( Kn1L = 4.07894736378E-6) +D000018__67 = Drift( L = 0.1193) +EDGE3_000__67 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__34 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__68 = Multipole( Kn1L = -4.07894736378E-6) +D000018__68 = Drift( L = 0.1193) +EDGE2_000__68 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__34 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__68 = Multipole( Kn1L = -4.4179123956E-5) +D000014__46 = Drift( L = 0.50037) +SF1_9__7 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000013__46 = Drift( L = 0.1042) +SF1_9__8 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000012__46 = Drift( L = 0.1559) +HQF_9__5 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__47 = Drift( L = 0.0638) +CH08_9 = HKicker( L = 0.2) +D000028__15 = Drift( L = 0.29394) +EDGE1_000__69 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__35 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__69 = Multipole( Kn1L = 4.07894736378E-6) +D000018__69 = Drift( L = 0.1193) +EDGE3_000__69 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__35 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__70 = Multipole( Kn1L = -4.07894736378E-6) +D000018__70 = Drift( L = 0.1193) +EDGE2_000__70 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__35 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__70 = Multipole( Kn1L = -4.4179123956E-5) +D000014__47 = Drift( L = 0.50037) +SD2_9__7 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000013__47 = Drift( L = 0.1042) +SD2_9__8 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000012__47 = Drift( L = 0.1559) +HQD_9__6 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__48 = Drift( L = 0.0638) +CV08_9 = VKicker( L = 0.2) +D000028__16 = Drift( L = 0.29394) +EDGE1_000__71 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__36 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__71 = Multipole( Kn1L = 4.07894736378E-6) +D000018__71 = Drift( L = 0.1193) +EDGE3_000__71 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__36 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__72 = Multipole( Kn1L = -4.07894736378E-6) +D000018__72 = Drift( L = 0.1193) +EDGE2_000__72 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__36 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__72 = Multipole( Kn1L = -4.4179123956E-5) +D000014__48 = Drift( L = 0.50037) +SF2_9__7 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000013__48 = Drift( L = 0.1042) +SF2_9__8 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000012__48 = Drift( L = 0.1559) +HQF_9__6 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__49 = Drift( L = 0.0638) +CH09_9 = HKicker( L = 0.2) +D000028__17 = Drift( L = 0.29394) +EDGE1_000__73 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__37 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__73 = Multipole( Kn1L = 4.07894736378E-6) +D000018__73 = Drift( L = 0.1193) +EDGE3_000__73 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__37 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__74 = Multipole( Kn1L = -4.07894736378E-6) +D000018__74 = Drift( L = 0.1193) +EDGE2_000__74 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__37 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__74 = Multipole( Kn1L = -4.4179123956E-5) +D000014__49 = Drift( L = 0.50037) +SD1_9__9 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000013__49 = Drift( L = 0.1042) +SD1_9__10 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000012__49 = Drift( L = 0.1559) +HQD_9__7 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__50 = Drift( L = 0.0638) +CV09_9 = VKicker( L = 0.2) +D000028__18 = Drift( L = 0.29394) +EDGE1_000__75 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__38 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__75 = Multipole( Kn1L = 4.07894736378E-6) +D000018__75 = Drift( L = 0.1193) +EDGE3_000__75 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__38 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__76 = Multipole( Kn1L = -4.07894736378E-6) +D000018__76 = Drift( L = 0.1193) +EDGE2_000__76 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__38 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__76 = Multipole( Kn1L = -4.4179123956E-5) +D000014__50 = Drift( L = 0.50037) +SF1_9__9 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000013__50 = Drift( L = 0.1042) +SF1_9__10 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000012__50 = Drift( L = 0.1559) +HQF_9__7 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__51 = Drift( L = 0.0638) +CH10_9 = HKicker( L = 0.2) +D000028__19 = Drift( L = 0.29394) +EDGE1_000__77 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__39 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__77 = Multipole( Kn1L = 4.07894736378E-6) +D000018__77 = Drift( L = 0.1193) +EDGE3_000__77 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__39 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__78 = Multipole( Kn1L = -4.07894736378E-6) +D000018__78 = Drift( L = 0.1193) +EDGE2_000__78 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__39 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__78 = Multipole( Kn1L = -4.4179123956E-5) +D000014__51 = Drift( L = 0.50037) +SD2_9__9 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000013__51 = Drift( L = 0.1042) +SD2_9__10 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000012__51 = Drift( L = 0.1559) +HQD_9__8 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__52 = Drift( L = 0.0638) +CV10_9 = VKicker( L = 0.2) +D000028__20 = Drift( L = 0.29394) +EDGE1_000__79 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__40 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__79 = Multipole( Kn1L = 4.07894736378E-6) +D000018__79 = Drift( L = 0.1193) +EDGE3_000__79 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__40 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__80 = Multipole( Kn1L = -4.07894736378E-6) +D000018__80 = Drift( L = 0.1193) +EDGE2_000__80 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__40 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__80 = Multipole( Kn1L = -4.4179123956E-5) +D000014__52 = Drift( L = 0.50037) +SF2_9__9 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000013__52 = Drift( L = 0.1042) +SF2_9__10 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000012__52 = Drift( L = 0.1559) +HQF_9__8 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__53 = Drift( L = 0.0638) +CH11_9 = HKicker( L = 0.2) +D000028__21 = Drift( L = 0.29394) +EDGE1_000__81 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__41 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__81 = Multipole( Kn1L = 4.07894736378E-6) +D000018__81 = Drift( L = 0.1193) +EDGE3_000__81 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__41 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__82 = Multipole( Kn1L = -4.07894736378E-6) +D000018__82 = Drift( L = 0.1193) +EDGE2_000__82 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__41 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__82 = Multipole( Kn1L = -4.4179123956E-5) +D000014__53 = Drift( L = 0.50037) +SD1_9__11 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000013__53 = Drift( L = 0.1042) +SD1_9__12 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000012__53 = Drift( L = 0.1559) +HQD_9__9 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__54 = Drift( L = 0.0638) +CV11_9 = VKicker( L = 0.2) +D000028__22 = Drift( L = 0.29394) +EDGE1_000__83 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__42 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__83 = Multipole( Kn1L = 4.07894736378E-6) +D000018__83 = Drift( L = 0.1193) +EDGE3_000__83 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__42 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__84 = Multipole( Kn1L = -4.07894736378E-6) +D000018__84 = Drift( L = 0.1193) +EDGE2_000__84 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__42 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__84 = Multipole( Kn1L = -4.4179123956E-5) +D000014__54 = Drift( L = 0.50037) +SF1_9__11 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000013__54 = Drift( L = 0.1042) +SF1_9__12 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000012__54 = Drift( L = 0.1559) +HQF_9__9 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__55 = Drift( L = 0.0638) +CH12_9 = HKicker( L = 0.2) +D000028__23 = Drift( L = 0.29394) +EDGE1_000__85 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__43 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__85 = Multipole( Kn1L = 4.07894736378E-6) +D000018__85 = Drift( L = 0.1193) +EDGE3_000__85 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__43 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__86 = Multipole( Kn1L = -4.07894736378E-6) +D000018__86 = Drift( L = 0.1193) +EDGE2_000__86 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__43 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__86 = Multipole( Kn1L = -4.4179123956E-5) +D000014__55 = Drift( L = 0.50037) +SD2_9__11 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000013__55 = Drift( L = 0.1042) +SD2_9__12 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000012__55 = Drift( L = 0.1559) +HQD_9__10 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__56 = Drift( L = 0.0638) +CV12_9 = VKicker( L = 0.2) +D000028__24 = Drift( L = 0.29394) +EDGE1_000__87 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__44 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__87 = Multipole( Kn1L = 4.07894736378E-6) +D000018__87 = Drift( L = 0.1193) +EDGE3_000__87 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__44 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__88 = Multipole( Kn1L = -4.07894736378E-6) +D000018__88 = Drift( L = 0.1193) +EDGE2_000__88 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__44 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__88 = Multipole( Kn1L = -4.4179123956E-5) +D000014__56 = Drift( L = 0.50037) +SF2_9__11 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000013__56 = Drift( L = 0.1042) +SF2_9__12 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000012__56 = Drift( L = 0.1559) +HQF_9__10 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__57 = Drift( L = 0.0638) +CH13_9 = HKicker( L = 0.2) +D000028__25 = Drift( L = 0.29394) +EDGE1_000__89 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__45 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__89 = Multipole( Kn1L = 4.07894736378E-6) +D000018__89 = Drift( L = 0.1193) +EDGE3_000__89 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__45 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__90 = Multipole( Kn1L = -4.07894736378E-6) +D000018__90 = Drift( L = 0.1193) +EDGE2_000__90 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__45 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__90 = Multipole( Kn1L = -4.4179123956E-5) +D000014__57 = Drift( L = 0.50037) +SD1_9__13 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000013__57 = Drift( L = 0.1042) +SD1_9__14 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000012__57 = Drift( L = 0.1559) +HQD_9__11 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__58 = Drift( L = 0.0638) +CV13_9 = VKicker( L = 0.2) +D000028__26 = Drift( L = 0.29394) +EDGE1_000__91 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__46 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__91 = Multipole( Kn1L = 4.07894736378E-6) +D000018__91 = Drift( L = 0.1193) +EDGE3_000__91 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__46 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__92 = Multipole( Kn1L = -4.07894736378E-6) +D000018__92 = Drift( L = 0.1193) +EDGE2_000__92 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__46 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__92 = Multipole( Kn1L = -4.4179123956E-5) +D000014__58 = Drift( L = 0.50037) +SF1_9__13 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000013__58 = Drift( L = 0.1042) +SF1_9__14 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000012__58 = Drift( L = 0.1559) +HQF_9__11 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__59 = Drift( L = 0.0638) +CH14_9 = HKicker( L = 0.2) +D000028__27 = Drift( L = 0.29394) +EDGE1_000__93 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__47 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__93 = Multipole( Kn1L = 4.07894736378E-6) +D000018__93 = Drift( L = 0.1193) +EDGE3_000__93 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__47 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__94 = Multipole( Kn1L = -4.07894736378E-6) +D000018__94 = Drift( L = 0.1193) +EDGE2_000__94 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__47 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__94 = Multipole( Kn1L = -4.4179123956E-5) +D000014__59 = Drift( L = 0.50037) +SD2_9__13 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000013__59 = Drift( L = 0.1042) +SD2_9__14 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000012__59 = Drift( L = 0.1559) +HQD_9__12 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__60 = Drift( L = 0.0638) +CV14_9 = VKicker( L = 0.2) +D000028__28 = Drift( L = 0.29394) +EDGE1_000__95 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__48 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__95 = Multipole( Kn1L = 4.07894736378E-6) +D000018__95 = Drift( L = 0.1193) +EDGE3_000__95 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__48 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__96 = Multipole( Kn1L = -4.07894736378E-6) +D000018__96 = Drift( L = 0.1193) +EDGE2_000__96 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__48 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__96 = Multipole( Kn1L = -4.4179123956E-5) +D000014__60 = Drift( L = 0.50037) +SF2_9__13 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000013__60 = Drift( L = 0.1042) +SF2_9__14 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000012__60 = Drift( L = 0.1559) +HQF_9__12 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__61 = Drift( L = 0.0638) +CH15_9 = HKicker( L = 0.2) +D000028__29 = Drift( L = 0.29394) +EDGE1_000__97 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__49 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__97 = Multipole( Kn1L = 4.07894736378E-6) +D000018__97 = Drift( L = 0.1193) +EDGE3_000__97 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__49 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__98 = Multipole( Kn1L = -4.07894736378E-6) +D000018__98 = Drift( L = 0.1193) +EDGE2_000__98 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__49 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__98 = Multipole( Kn1L = -4.4179123956E-5) +D000014__61 = Drift( L = 0.50037) +SD1_9__15 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000013__61 = Drift( L = 0.1042) +SD1_9__16 = Sextupole( L = 0.24, Kn2 = -5.8103245174) +D000012__61 = Drift( L = 0.1559) +HQD_9__13 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__62 = Drift( L = 0.0638) +CV15_9 = VKicker( L = 0.2) +D000028__30 = Drift( L = 0.29394) +EDGE1_000__99 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__50 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__99 = Multipole( Kn1L = 4.07894736378E-6) +D000018__99 = Drift( L = 0.1193) +EDGE3_000__99 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__50 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__100 = Multipole( Kn1L = -4.07894736378E-6) +D000018__100 = Drift( L = 0.1193) +EDGE2_000__100 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__50 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__100 = Multipole( Kn1L = -4.4179123956E-5) +D000014__62 = Drift( L = 0.50037) +SF1_9__15 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000013__62 = Drift( L = 0.1042) +SF1_9__16 = Sextupole( L = 0.24, Kn2 = 1.7172760006) +D000012__62 = Drift( L = 0.1559) +HQF_9__13 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__63 = Drift( L = 0.0638) +CH16_9 = HKicker( L = 0.2) +D000028__31 = Drift( L = 0.29394) +EDGE1_000__101 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__51 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__101 = Multipole( Kn1L = 4.07894736378E-6) +D000018__101 = Drift( L = 0.1193) +EDGE3_000__101 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__51 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__102 = Multipole( Kn1L = -4.07894736378E-6) +D000018__102 = Drift( L = 0.1193) +EDGE2_000__102 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__51 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__102 = Multipole( Kn1L = -4.4179123956E-5) +D000014__63 = Drift( L = 0.50037) +SD2_9__15 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000013__63 = Drift( L = 0.1042) +SD2_9__16 = Sextupole( L = 0.24, Kn2 = -2.4101857362) +D000012__63 = Drift( L = 0.1559) +HQD_9__14 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__64 = Drift( L = 0.0638) +CV16_9 = VKicker( L = 0.2) +D000028__32 = Drift( L = 0.29394) +EDGE1_000__103 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__52 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__103 = Multipole( Kn1L = 4.07894736378E-6) +D000018__103 = Drift( L = 0.1193) +EDGE3_000__103 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__52 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__104 = Multipole( Kn1L = -4.07894736378E-6) +D000018__104 = Drift( L = 0.1193) +EDGE2_000__104 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__52 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__104 = Multipole( Kn1L = -4.4179123956E-5) +D000014__64 = Drift( L = 0.50037) +SF2_9__15 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000013__64 = Drift( L = 0.1042) +SF2_9__16 = Sextupole( L = 0.24, Kn2 = 3.010408804) +D000012__64 = Drift( L = 0.1559) +HQF_9__14 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000017__65 = Drift( L = 0.0638) +CH17_9 = HKicker( L = 0.2) +D000030__1 = Drift( L = 1.507746) +DB23_9__1 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000014__65 = Drift( L = 0.50037) +SD17_9 = Sextupole( L = 0.24) +D000012__65 = Drift( L = 0.1559) +HQD_9__15 = Quadrupole( L = 0.5, Kn1 = -0.3144260183,) +D000017__66 = Drift( L = 0.0638) +CV17_9 = VKicker( L = 0.2) +D000030__2 = Drift( L = 1.507746) +DB23_9__2 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000014__66 = Drift( L = 0.50037) +SF17_9 = Sextupole( L = 0.24) +D000012__66 = Drift( L = 0.1559) +HQF_9__15 = Quadrupole( L = 0.5, Kn1 = 0.3146029671,) +D000031__1 = Drift( L = 4.09917) +HQM22_9 = Quadrupole( L = 0.6, Kn1 = -0.1685397554,) +D000031__2 = Drift( L = 4.09917) +HQM21_9 = Quadrupole( L = 0.6, Kn1 = -0.1480298273) +D000032__1 = Drift( L = 0.535) +DB23_9__3 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__2 = Drift( L = 0.535) +HQM20_9 = Quadrupole( L = 0.6, Kn1 = 0.277981004) +D000032__3 = Drift( L = 0.535) +DB23_9__4 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__4 = Drift( L = 0.535) +HQM19_9 = Quadrupole( L = 0.6, Kn1 = -0.2250375129) +D000033__1 = Drift( L = 2.888539) +HQM18_9 = Quadrupole( L = 0.6, Kn1 = 0.02025658815,) +D000033__2 = Drift( L = 2.888539) +HQM17_9 = Quadrupole( L = 0.6, Kn1 = 0.03151369613,) +D000033__3 = Drift( L = 2.888539) +HQM16_9 = Quadrupole( L = 0.6, Kn1 = -0.1023890903,) +D000033__4 = Drift( L = 2.888539) +HQM15_9 = Quadrupole( L = 0.6, Kn1 = 0.1915717998,) +D000033__5 = Drift( L = 2.888539) +HQM14_9 = Quadrupole( L = 0.6, Kn1 = -0.1029612912,) +D000033__6 = Drift( L = 2.888539) +HQM13_9 = Quadrupole( L = 0.6, Kn1 = 0.2169016275) +D000032__5 = Drift( L = 0.535) +DB23_9__5 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__6 = Drift( L = 0.535) +HQM12_9 = Quadrupole( L = 0.6, Kn1 = -0.1792559115,) +D000032__7 = Drift( L = 0.535) +DB23_9__6 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000034 = Drift( L = 14.482069) +HQFSS_10__1 = Quadrupole( L = 0.6, Kn1 = 0.2106851444) +D000035__1 = Drift( L = 8.25) +HQDSS_10__1 = Quadrupole( L = 0.6, Kn1 = -0.2091039051) +D000035__2 = Drift( L = 8.25) +HQFSS_10__2 = Quadrupole( L = 0.6, Kn1 = 0.2106851444) +D000035__3 = Drift( L = 8.25) +HQDSS_10__2 = Quadrupole( L = 0.6, Kn1 = -0.2091039051) +D000036 = Drift( L = 6.11312) +HQFLSS_10__1 = Quadrupole( L = 1.2, Kn1 = 0.1407178134) +D000007__7 = Drift( L = 0.3) +RF0__1 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__8 = Drift( L = 0.3) +RF0__2 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__9 = Drift( L = 0.3) +HQDLSS_10__1 = Quadrupole( L = 1.2, Kn1 = -0.1176261853,) +D000007__10 = Drift( L = 0.3) +RF0__3 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__11 = Drift( L = 0.3) +RF0__4 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__12 = Drift( L = 0.3) +HQFLSS_10__2 = Quadrupole( L = 1.2, Kn1 = 0.1407178134) +D000007__13 = Drift( L = 0.3) +RF0__5 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__14 = Drift( L = 0.3) +RF0__6 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__15 = Drift( L = 0.3) +HQDLSS_10__2 = Quadrupole( L = 1.2, Kn1 = -0.1176261853,) +D000007__16 = Drift( L = 0.3) +RF0__7 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__17 = Drift( L = 0.3) +RF0__8 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__18 = Drift( L = 0.3) +HQFLSS_10__3 = Quadrupole( L = 1.2, Kn1 = 0.1407178134) +D000007__19 = Drift( L = 0.3) +RF0__9 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000037 = Drift( L = 0.3,) +RF0__10 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__20 = Drift( L = 0.3) +HQDLSS_10__3 = Quadrupole( L = 1.2, Kn1 = -0.1176261853,) +D000007__21 = Drift( L = 0.3) +RF0__11 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__22 = Drift( L = 0.3) +RF0__12 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__23 = Drift( L = 0.3) +HQFLSS_10__4 = Quadrupole( L = 1.2, Kn1 = 0.1407178134) +D000007__24 = Drift( L = 0.3) +RF0__13 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__25 = Drift( L = 0.3) +RF0__14 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__26 = Drift( L = 0.3) +HQDLSS_10__4 = Quadrupole( L = 1.2, Kn1 = -0.1176261853,) +D000007__27 = Drift( L = 0.3) +RF0__15 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__28 = Drift( L = 0.3) +RF0__16 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__29 = Drift( L = 0.3) +HQFLSS_10__5 = Quadrupole( L = 1.2, Kn1 = 0.1407178134) +D000007__30 = Drift( L = 0.3) +RF0__17 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__31 = Drift( L = 0.3) +RF0__18 = RFCavity( L = 4.01667) #, VOLTAGE = 3.3210942126011E6, RF_FREQUENCY = 5.9114268014977E8 +D000007__32 = Drift( L = 0.3) +HQDLSS_10__5 = Quadrupole( L = 1.2, Kn1 = -0.1176261853,) +D000035__4 = Drift( L = 8.25) +HQFSS_10__3 = Quadrupole( L = 0.6, Kn1 = 0.2106851444) +D000035__5 = Drift( L = 8.25) +HQDSS_10__3 = Quadrupole( L = 0.6, Kn1 = -0.2091039051) +D000035__6 = Drift( L = 8.25) +HQFSS_10__4 = Quadrupole( L = 0.6, Kn1 = 0.2106851444) +D000035__7 = Drift( L = 8.25) +HQDSS_10__4 = Quadrupole( L = 0.6, Kn1 = -0.2091039051) +D000038 = Drift( L = 12.120511) +DB23_10__1 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__8 = Drift( L = 0.535) +HQM12_10 = Quadrupole( L = 0.6, Kn1 = 0.2083558853) +D000032__9 = Drift( L = 0.535) +DB23_10__2 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__10 = Drift( L = 0.535) +HQM13_10 = Quadrupole( L = 0.6, Kn1 = -0.3339548025) +D000039__1 = Drift( L = 3.311504) +HQM14_10 = Quadrupole( L = 0.6, Kn1 = 0.260187069,) +D000039__2 = Drift( L = 3.311504) +HQM15_10 = Quadrupole( L = 0.6, Kn1 = -0.3169977879,) +D000039__3 = Drift( L = 3.311504) +HQM16_10 = Quadrupole( L = 0.6, Kn1 = 0.2834385625) +D000039__4 = Drift( L = 3.311504) +HQM17_10 = Quadrupole( L = 0.6, Kn1 = -0.04877659888,) +D000039__5 = Drift( L = 3.311504) +HQM18_10 = Quadrupole( L = 0.6, Kn1 = -0.3358614339) +D000039__6 = Drift( L = 3.311504) +HQM19_10 = Quadrupole( L = 0.6, Kn1 = 0.3254555367,) +D000039__7 = Drift( L = 3.311504) +HQM20_10 = Quadrupole( L = 0.6, Kn1 = -0.2765818098) +D000032__11 = Drift( L = 0.535) +DB23_10__3 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__12 = Drift( L = 0.535) +HQM21_10 = Quadrupole( L = 0.6, Kn1 = 0.1976841058,) +D000032__13 = Drift( L = 0.535) +DB23_10__4 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__14 = Drift( L = 0.535) +HQM22_10 = Quadrupole( L = 0.6, Kn1 = -0.3313145061,) +D000040 = Drift( L = 3.425026) +HQF_11__1 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__67 = Drift( L = 0.1559) +SF00_11 = Sextupole( L = 0.24) +D000014__67 = Drift( L = 0.50037) +DB23_10__5 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000041__1 = Drift( L = 1.201799) +CV00_11 = VKicker( L = 0.2) +D000017__67 = Drift( L = 0.0638) +HQD_11__1 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__68 = Drift( L = 0.1559) +SD00_11 = Sextupole( L = 0.24) +D000014__68 = Drift( L = 0.50037) +DB23_10__6 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000041__2 = Drift( L = 1.201799) +CH00_11 = HKicker( L = 0.2) +D000017__68 = Drift( L = 0.0638) +HQF_11__2 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__69 = Drift( L = 0.1559) +SF1_1__1 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__65 = Drift( L = 0.1042) +SF1_1__2 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__69 = Drift( L = 0.50037) +EDGE1_000__105 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__53 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__105 = Multipole( Kn1L = 4.07894736378E-6) +D000018__105 = Drift( L = 0.1193) +EDGE3_000__105 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__53 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__106 = Multipole( Kn1L = -4.07894736378E-6) +D000018__106 = Drift( L = 0.1193) +EDGE2_000__106 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__53 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__106 = Multipole( Kn1L = -4.4179123956E-5) +D000042__1 = Drift( L = 0.319264) +CV01_11 = VKicker( L = 0.2) +D000017__69 = Drift( L = 0.0638) +HQD_11__2 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__70 = Drift( L = 0.1559) +SD1_1__1 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__66 = Drift( L = 0.1042) +SD1_1__2 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__70 = Drift( L = 0.50037) +EDGE1_000__107 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__54 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__107 = Multipole( Kn1L = 4.07894736378E-6) +D000018__107 = Drift( L = 0.1193) +EDGE3_000__107 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__54 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__108 = Multipole( Kn1L = -4.07894736378E-6) +D000018__108 = Drift( L = 0.1193) +EDGE2_000__108 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__54 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__108 = Multipole( Kn1L = -4.4179123956E-5) +D000042__2 = Drift( L = 0.319264) +CH01_11 = HKicker( L = 0.2) +D000017__70 = Drift( L = 0.0638) +HQF_11__3 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__71 = Drift( L = 0.1559) +SF2_1__1 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__67 = Drift( L = 0.1042) +SF2_1__2 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__71 = Drift( L = 0.50037) +EDGE1_000__109 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__55 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__109 = Multipole( Kn1L = 4.07894736378E-6) +D000018__109 = Drift( L = 0.1193) +EDGE3_000__109 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__55 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__110 = Multipole( Kn1L = -4.07894736378E-6) +D000018__110 = Drift( L = 0.1193) +EDGE2_000__110 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__55 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__110 = Multipole( Kn1L = -4.4179123956E-5) +D000042__3 = Drift( L = 0.319264) +CV02_11 = VKicker( L = 0.2) +D000017__71 = Drift( L = 0.0638) +HQD_11__3 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__72 = Drift( L = 0.1559) +SD2_1__1 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__68 = Drift( L = 0.1042) +SD2_1__2 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__72 = Drift( L = 0.50037) +EDGE1_000__111 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__56 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__111 = Multipole( Kn1L = 4.07894736378E-6) +D000018__111 = Drift( L = 0.1193) +EDGE3_000__111 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__56 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__112 = Multipole( Kn1L = -4.07894736378E-6) +D000018__112 = Drift( L = 0.1193) +EDGE2_000__112 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__56 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__112 = Multipole( Kn1L = -4.4179123956E-5) +D000042__4 = Drift( L = 0.319264) +CH02_11 = HKicker( L = 0.2) +D000017__72 = Drift( L = 0.0638) +HQF_11__4 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__73 = Drift( L = 0.1559) +SF1_1__3 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__69 = Drift( L = 0.1042) +SF1_1__4 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__73 = Drift( L = 0.50037) +EDGE1_000__113 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__57 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__113 = Multipole( Kn1L = 4.07894736378E-6) +D000018__113 = Drift( L = 0.1193) +EDGE3_000__113 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__57 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__114 = Multipole( Kn1L = -4.07894736378E-6) +D000018__114 = Drift( L = 0.1193) +EDGE2_000__114 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__57 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__114 = Multipole( Kn1L = -4.4179123956E-5) +D000042__5 = Drift( L = 0.319264) +CV03_11 = VKicker( L = 0.2) +D000017__73 = Drift( L = 0.0638) +HQD_11__4 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__74 = Drift( L = 0.1559) +SD1_1__3 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__70 = Drift( L = 0.1042) +SD1_1__4 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__74 = Drift( L = 0.50037) +EDGE1_000__115 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__58 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__115 = Multipole( Kn1L = 4.07894736378E-6) +D000018__115 = Drift( L = 0.1193) +EDGE3_000__115 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__58 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__116 = Multipole( Kn1L = -4.07894736378E-6) +D000018__116 = Drift( L = 0.1193) +EDGE2_000__116 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__58 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__116 = Multipole( Kn1L = -4.4179123956E-5) +D000042__6 = Drift( L = 0.319264) +CH03_11 = HKicker( L = 0.2) +D000017__74 = Drift( L = 0.0638) +HQF_11__5 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__75 = Drift( L = 0.1559) +SF2_1__3 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__71 = Drift( L = 0.1042) +SF2_1__4 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__75 = Drift( L = 0.50037) +EDGE1_000__117 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__59 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__117 = Multipole( Kn1L = 4.07894736378E-6) +D000018__117 = Drift( L = 0.1193) +EDGE3_000__117 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__59 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__118 = Multipole( Kn1L = -4.07894736378E-6) +D000018__118 = Drift( L = 0.1193) +EDGE2_000__118 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__59 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__118 = Multipole( Kn1L = -4.4179123956E-5) +D000042__7 = Drift( L = 0.319264) +CV04_11 = VKicker( L = 0.2) +D000017__75 = Drift( L = 0.0638) +HQD_11__5 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__76 = Drift( L = 0.1559) +SD2_1__3 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__72 = Drift( L = 0.1042) +SD2_1__4 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__76 = Drift( L = 0.50037) +EDGE1_000__119 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__60 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__119 = Multipole( Kn1L = 4.07894736378E-6) +D000018__119 = Drift( L = 0.1193) +EDGE3_000__119 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__60 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__120 = Multipole( Kn1L = -4.07894736378E-6) +D000018__120 = Drift( L = 0.1193) +EDGE2_000__120 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__60 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__120 = Multipole( Kn1L = -4.4179123956E-5) +D000042__8 = Drift( L = 0.319264) +CH04_11 = HKicker( L = 0.2) +D000017__76 = Drift( L = 0.0638) +HQF_11__6 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__77 = Drift( L = 0.1559) +SF1_1__5 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__73 = Drift( L = 0.1042) +SF1_1__6 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__77 = Drift( L = 0.50037) +EDGE1_000__121 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__61 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__121 = Multipole( Kn1L = 4.07894736378E-6) +D000018__121 = Drift( L = 0.1193) +EDGE3_000__121 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__61 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__122 = Multipole( Kn1L = -4.07894736378E-6) +D000018__122 = Drift( L = 0.1193) +EDGE2_000__122 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__61 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__122 = Multipole( Kn1L = -4.4179123956E-5) +D000042__9 = Drift( L = 0.319264) +CV05_11 = VKicker( L = 0.2) +D000017__77 = Drift( L = 0.0638) +HQD_11__6 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__78 = Drift( L = 0.1559) +SD1_1__5 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__74 = Drift( L = 0.1042) +SD1_1__6 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__78 = Drift( L = 0.50037) +EDGE1_000__123 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__62 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__123 = Multipole( Kn1L = 4.07894736378E-6) +D000018__123 = Drift( L = 0.1193) +EDGE3_000__123 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__62 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__124 = Multipole( Kn1L = -4.07894736378E-6) +D000018__124 = Drift( L = 0.1193) +EDGE2_000__124 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__62 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__124 = Multipole( Kn1L = -4.4179123956E-5) +D000042__10 = Drift( L = 0.319264) +CH05_11 = HKicker( L = 0.2) +D000017__78 = Drift( L = 0.0638) +HQF_11__7 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__79 = Drift( L = 0.1559) +SF2_1__5 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__75 = Drift( L = 0.1042) +SF2_1__6 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__79 = Drift( L = 0.50037) +EDGE1_000__125 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__63 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__125 = Multipole( Kn1L = 4.07894736378E-6) +D000018__125 = Drift( L = 0.1193) +EDGE3_000__125 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__63 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__126 = Multipole( Kn1L = -4.07894736378E-6) +D000018__126 = Drift( L = 0.1193) +EDGE2_000__126 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__63 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__126 = Multipole( Kn1L = -4.4179123956E-5) +D000042__11 = Drift( L = 0.319264) +CV06_11 = VKicker( L = 0.2) +D000017__79 = Drift( L = 0.0638) +HQD_11__7 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__80 = Drift( L = 0.1559) +SD2_1__5 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__76 = Drift( L = 0.1042) +SD2_1__6 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__80 = Drift( L = 0.50037) +EDGE1_000__127 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__64 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__127 = Multipole( Kn1L = 4.07894736378E-6) +D000018__127 = Drift( L = 0.1193) +EDGE3_000__127 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__64 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__128 = Multipole( Kn1L = -4.07894736378E-6) +D000018__128 = Drift( L = 0.1193) +EDGE2_000__128 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__64 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__128 = Multipole( Kn1L = -4.4179123956E-5) +D000042__12 = Drift( L = 0.319264) +CH06_11 = HKicker( L = 0.2) +D000017__80 = Drift( L = 0.0638) +HQF_11__8 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__81 = Drift( L = 0.1559) +SF1_1__7 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__77 = Drift( L = 0.1042) +SF1_1__8 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__81 = Drift( L = 0.50037) +EDGE1_000__129 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__65 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__129 = Multipole( Kn1L = 4.07894736378E-6) +D000018__129 = Drift( L = 0.1193) +EDGE3_000__129 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__65 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__130 = Multipole( Kn1L = -4.07894736378E-6) +D000018__130 = Drift( L = 0.1193) +EDGE2_000__130 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__65 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__130 = Multipole( Kn1L = -4.4179123956E-5) +D000042__13 = Drift( L = 0.319264) +CV07_11 = VKicker( L = 0.2) +D000017__81 = Drift( L = 0.0638) +HQD_11__8 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__82 = Drift( L = 0.1559) +SD1_1__7 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__78 = Drift( L = 0.1042) +SD1_1__8 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__82 = Drift( L = 0.50037) +EDGE1_000__131 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__66 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__131 = Multipole( Kn1L = 4.07894736378E-6) +D000018__131 = Drift( L = 0.1193) +EDGE3_000__131 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__66 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__132 = Multipole( Kn1L = -4.07894736378E-6) +D000018__132 = Drift( L = 0.1193) +EDGE2_000__132 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__66 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__132 = Multipole( Kn1L = -4.4179123956E-5) +D000042__14 = Drift( L = 0.319264) +CH07_11 = HKicker( L = 0.2) +D000017__82 = Drift( L = 0.0638) +HQF_11__9 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__83 = Drift( L = 0.1559) +SF2_1__7 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__79 = Drift( L = 0.1042) +SF2_1__8 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__83 = Drift( L = 0.50037) +EDGE1_000__133 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__67 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__133 = Multipole( Kn1L = 4.07894736378E-6) +D000018__133 = Drift( L = 0.1193) +EDGE3_000__133 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__67 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__134 = Multipole( Kn1L = -4.07894736378E-6) +D000018__134 = Drift( L = 0.1193) +EDGE2_000__134 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__67 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__134 = Multipole( Kn1L = -4.4179123956E-5) +D000042__15 = Drift( L = 0.319264) +CV08_11 = VKicker( L = 0.2) +D000017__83 = Drift( L = 0.0638) +HQD_11__9 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__84 = Drift( L = 0.1559) +SD2_1__7 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__80 = Drift( L = 0.1042) +SD2_1__8 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__84 = Drift( L = 0.50037) +EDGE1_000__135 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__68 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__135 = Multipole( Kn1L = 4.07894736378E-6) +D000018__135 = Drift( L = 0.1193) +EDGE3_000__135 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__68 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__136 = Multipole( Kn1L = -4.07894736378E-6) +D000018__136 = Drift( L = 0.1193) +EDGE2_000__136 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__68 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__136 = Multipole( Kn1L = -4.4179123956E-5) +D000042__16 = Drift( L = 0.319264) +CH08_11 = HKicker( L = 0.2) +D000017__84 = Drift( L = 0.0638) +HQF_11__10 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__85 = Drift( L = 0.1559) +SF1_1__9 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__81 = Drift( L = 0.1042) +SF1_1__10 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__85 = Drift( L = 0.50037) +EDGE1_000__137 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__69 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__137 = Multipole( Kn1L = 4.07894736378E-6) +D000018__137 = Drift( L = 0.1193) +EDGE3_000__137 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__69 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__138 = Multipole( Kn1L = -4.07894736378E-6) +D000018__138 = Drift( L = 0.1193) +EDGE2_000__138 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__69 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__138 = Multipole( Kn1L = -4.4179123956E-5) +D000042__17 = Drift( L = 0.319264) +CV09_11 = VKicker( L = 0.2) +D000017__85 = Drift( L = 0.0638) +HQD_11__10 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__86 = Drift( L = 0.1559) +SD1_1__9 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__82 = Drift( L = 0.1042) +SD1_1__10 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__86 = Drift( L = 0.50037) +EDGE1_000__139 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__70 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__139 = Multipole( Kn1L = 4.07894736378E-6) +D000018__139 = Drift( L = 0.1193) +EDGE3_000__139 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__70 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__140 = Multipole( Kn1L = -4.07894736378E-6) +D000018__140 = Drift( L = 0.1193) +EDGE2_000__140 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__70 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__140 = Multipole( Kn1L = -4.4179123956E-5) +D000042__18 = Drift( L = 0.319264) +CH09_11 = HKicker( L = 0.2) +D000017__86 = Drift( L = 0.0638) +HQF_11__11 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__87 = Drift( L = 0.1559) +SF2_1__9 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__83 = Drift( L = 0.1042) +SF2_1__10 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__87 = Drift( L = 0.50037) +EDGE1_000__141 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__71 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__141 = Multipole( Kn1L = 4.07894736378E-6) +D000018__141 = Drift( L = 0.1193) +EDGE3_000__141 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__71 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__142 = Multipole( Kn1L = -4.07894736378E-6) +D000018__142 = Drift( L = 0.1193) +EDGE2_000__142 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__71 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__142 = Multipole( Kn1L = -4.4179123956E-5) +D000042__19 = Drift( L = 0.319264) +CV10_11 = VKicker( L = 0.2) +D000017__87 = Drift( L = 0.0638) +HQD_11__11 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__88 = Drift( L = 0.1559) +SD2_1__9 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__84 = Drift( L = 0.1042) +SD2_1__10 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__88 = Drift( L = 0.50037) +EDGE1_000__143 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__72 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__143 = Multipole( Kn1L = 4.07894736378E-6) +D000018__143 = Drift( L = 0.1193) +EDGE3_000__143 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__72 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__144 = Multipole( Kn1L = -4.07894736378E-6) +D000018__144 = Drift( L = 0.1193) +EDGE2_000__144 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__72 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__144 = Multipole( Kn1L = -4.4179123956E-5) +D000042__20 = Drift( L = 0.319264) +CH10_11 = HKicker( L = 0.2) +D000017__88 = Drift( L = 0.0638) +HQF_11__12 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__89 = Drift( L = 0.1559) +SF1_1__11 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__85 = Drift( L = 0.1042) +SF1_1__12 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__89 = Drift( L = 0.50037) +EDGE1_000__145 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__73 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__145 = Multipole( Kn1L = 4.07894736378E-6) +D000018__145 = Drift( L = 0.1193) +EDGE3_000__145 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__73 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__146 = Multipole( Kn1L = -4.07894736378E-6) +D000018__146 = Drift( L = 0.1193) +EDGE2_000__146 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__73 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__146 = Multipole( Kn1L = -4.4179123956E-5) +D000042__21 = Drift( L = 0.319264) +CV11_11 = VKicker( L = 0.2) +D000017__89 = Drift( L = 0.0638) +HQD_11__12 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__90 = Drift( L = 0.1559) +SD1_1__11 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__86 = Drift( L = 0.1042) +SD1_1__12 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__90 = Drift( L = 0.50037) +EDGE1_000__147 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__74 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__147 = Multipole( Kn1L = 4.07894736378E-6) +D000018__147 = Drift( L = 0.1193) +EDGE3_000__147 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__74 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__148 = Multipole( Kn1L = -4.07894736378E-6) +D000018__148 = Drift( L = 0.1193) +EDGE2_000__148 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__74 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__148 = Multipole( Kn1L = -4.4179123956E-5) +D000042__22 = Drift( L = 0.319264) +CH11_11 = HKicker( L = 0.2) +D000017__90 = Drift( L = 0.0638) +HQF_11__13 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__91 = Drift( L = 0.1559) +SF2_1__11 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__87 = Drift( L = 0.1042) +SF2_1__12 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__91 = Drift( L = 0.50037) +EDGE1_000__149 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__75 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__149 = Multipole( Kn1L = 4.07894736378E-6) +D000018__149 = Drift( L = 0.1193) +EDGE3_000__149 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__75 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__150 = Multipole( Kn1L = -4.07894736378E-6) +D000018__150 = Drift( L = 0.1193) +EDGE2_000__150 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__75 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__150 = Multipole( Kn1L = -4.4179123956E-5) +D000042__23 = Drift( L = 0.319264) +CV12_11 = VKicker( L = 0.2) +D000017__91 = Drift( L = 0.0638) +HQD_11__13 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__92 = Drift( L = 0.1559) +SD2_1__11 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__88 = Drift( L = 0.1042) +SD2_1__12 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__92 = Drift( L = 0.50037) +EDGE1_000__151 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__76 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__151 = Multipole( Kn1L = 4.07894736378E-6) +D000018__151 = Drift( L = 0.1193) +EDGE3_000__151 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__76 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__152 = Multipole( Kn1L = -4.07894736378E-6) +D000018__152 = Drift( L = 0.1193) +EDGE2_000__152 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__76 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__152 = Multipole( Kn1L = -4.4179123956E-5) +D000042__24 = Drift( L = 0.319264) +CH12_11 = HKicker( L = 0.2) +D000017__92 = Drift( L = 0.0638) +HQF_11__14 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__93 = Drift( L = 0.1559) +SF1_1__13 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__89 = Drift( L = 0.1042) +SF1_1__14 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__93 = Drift( L = 0.50037) +EDGE1_000__153 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__77 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__153 = Multipole( Kn1L = 4.07894736378E-6) +D000018__153 = Drift( L = 0.1193) +EDGE3_000__153 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__77 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__154 = Multipole( Kn1L = -4.07894736378E-6) +D000018__154 = Drift( L = 0.1193) +EDGE2_000__154 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__77 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__154 = Multipole( Kn1L = -4.4179123956E-5) +D000042__25 = Drift( L = 0.319264) +CV13_11 = VKicker( L = 0.2) +D000017__93 = Drift( L = 0.0638) +HQD_11__14 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__94 = Drift( L = 0.1559) +SD1_1__13 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__90 = Drift( L = 0.1042) +SD1_1__14 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__94 = Drift( L = 0.50037) +EDGE1_000__155 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__78 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__155 = Multipole( Kn1L = 4.07894736378E-6) +D000018__155 = Drift( L = 0.1193) +EDGE3_000__155 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__78 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__156 = Multipole( Kn1L = -4.07894736378E-6) +D000018__156 = Drift( L = 0.1193) +EDGE2_000__156 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__78 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__156 = Multipole( Kn1L = -4.4179123956E-5) +D000042__26 = Drift( L = 0.319264) +CH13_11 = HKicker( L = 0.2) +D000017__94 = Drift( L = 0.0638) +HQF_11__15 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__95 = Drift( L = 0.1559) +SF2_1__13 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__91 = Drift( L = 0.1042) +SF2_1__14 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__95 = Drift( L = 0.50037) +EDGE1_000__157 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__79 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__157 = Multipole( Kn1L = 4.07894736378E-6) +D000018__157 = Drift( L = 0.1193) +EDGE3_000__157 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__79 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__158 = Multipole( Kn1L = -4.07894736378E-6) +D000018__158 = Drift( L = 0.1193) +EDGE2_000__158 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__79 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__158 = Multipole( Kn1L = -4.4179123956E-5) +D000042__27 = Drift( L = 0.319264) +CV14_11 = VKicker( L = 0.2) +D000017__95 = Drift( L = 0.0638) +HQD_11__15 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__96 = Drift( L = 0.1559) +SD2_1__13 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__92 = Drift( L = 0.1042) +SD2_1__14 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__96 = Drift( L = 0.50037) +EDGE1_000__159 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__80 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__159 = Multipole( Kn1L = 4.07894736378E-6) +D000018__159 = Drift( L = 0.1193) +EDGE3_000__159 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__80 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__160 = Multipole( Kn1L = -4.07894736378E-6) +D000018__160 = Drift( L = 0.1193) +EDGE2_000__160 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__80 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__160 = Multipole( Kn1L = -4.4179123956E-5) +D000042__28 = Drift( L = 0.319264) +CH14_11 = HKicker( L = 0.2) +D000017__96 = Drift( L = 0.0638) +HQF_11__16 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__97 = Drift( L = 0.1559) +SF1_1__15 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__93 = Drift( L = 0.1042) +SF1_1__16 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__97 = Drift( L = 0.50037) +EDGE1_000__161 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__81 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__161 = Multipole( Kn1L = 4.07894736378E-6) +D000018__161 = Drift( L = 0.1193) +EDGE3_000__161 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__81 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__162 = Multipole( Kn1L = -4.07894736378E-6) +D000018__162 = Drift( L = 0.1193) +EDGE2_000__162 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__81 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__162 = Multipole( Kn1L = -4.4179123956E-5) +D000042__29 = Drift( L = 0.319264) +CV15_11 = VKicker( L = 0.2) +D000017__97 = Drift( L = 0.0638) +HQD_11__16 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__98 = Drift( L = 0.1559) +SD1_1__15 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__94 = Drift( L = 0.1042) +SD1_1__16 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__98 = Drift( L = 0.50037) +EDGE1_000__163 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__82 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__163 = Multipole( Kn1L = 4.07894736378E-6) +D000018__163 = Drift( L = 0.1193) +EDGE3_000__163 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__82 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__164 = Multipole( Kn1L = -4.07894736378E-6) +D000018__164 = Drift( L = 0.1193) +EDGE2_000__164 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__82 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__164 = Multipole( Kn1L = -4.4179123956E-5) +D000042__30 = Drift( L = 0.319264) +CH15_11 = HKicker( L = 0.2) +D000017__98 = Drift( L = 0.0638) +HQF_11__17 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__99 = Drift( L = 0.1559) +SF2_1__15 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__95 = Drift( L = 0.1042) +SF2_1__16 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__99 = Drift( L = 0.50037) +EDGE1_000__165 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__83 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__165 = Multipole( Kn1L = 4.07894736378E-6) +D000018__165 = Drift( L = 0.1193) +EDGE3_000__165 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__83 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__166 = Multipole( Kn1L = -4.07894736378E-6) +D000018__166 = Drift( L = 0.1193) +EDGE2_000__166 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__83 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__166 = Multipole( Kn1L = -4.4179123956E-5) +D000042__31 = Drift( L = 0.319264) +CV16_11 = VKicker( L = 0.2) +D000017__99 = Drift( L = 0.0638) +HQD_11__17 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__100 = Drift( L = 0.1559) +SD2_1__15 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__96 = Drift( L = 0.1042) +SD2_1__16 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__100 = Drift( L = 0.50037) +EDGE1_000__167 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__84 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__167 = Multipole( Kn1L = 4.07894736378E-6) +D000018__167 = Drift( L = 0.1193) +EDGE3_000__167 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__84 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__168 = Multipole( Kn1L = -4.07894736378E-6) +D000018__168 = Drift( L = 0.1193) +EDGE2_000__168 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__84 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__168 = Multipole( Kn1L = -4.4179123956E-5) +D000042__32 = Drift( L = 0.319264) +CH16_11 = HKicker( L = 0.2) +D000017__100 = Drift( L = 0.0638) +HQF_11__18 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__101 = Drift( L = 0.1559) +SF17_11 = Sextupole( L = 0.24) +D000014__101 = Drift( L = 0.50037) +DB23_11__1 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000043__1 = Drift( L = 1.374861) +CV17_11 = VKicker( L = 0.2) +D000017__101 = Drift( L = 0.0638) +HQD_11__18 = Quadrupole( L = 0.5, Kn1 = -0.3135422732,) +D000012__102 = Drift( L = 0.1559) +SD17_11 = Sextupole( L = 0.24) +D000014__102 = Drift( L = 0.50037) +DB23_11__2 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000043__2 = Drift( L = 1.374861) +CH17_11 = HKicker( L = 0.2) +D000017__102 = Drift( L = 0.0638) +HQF_11__19 = Quadrupole( L = 0.5, Kn1 = 0.3137189615,) +D000012__103 = Drift( L = 0.1559) +SF18_11 = Sextupole( L = 0.24) +D000044__1 = Drift( L = 4.055463) +HQM22_11 = Quadrupole( L = 0.6, Kn1 = -0.3288030901,) +D000044__2 = Drift( L = 4.055463) +HQM21_11 = Quadrupole( L = 0.6, Kn1 = 0.1805100149,) +D000032__15 = Drift( L = 0.535) +DB23_11__3 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__16 = Drift( L = 0.535) +HQM20_11 = Quadrupole( L = 0.6, Kn1 = -0.14458509) +D000032__17 = Drift( L = 0.535) +DB23_11__4 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__18 = Drift( L = 0.535) +HQM19_11 = Quadrupole( L = 0.6, Kn1 = 0.2557330047,) +D000045__1 = Drift( L = 3.035675) +HQM18_11 = Quadrupole( L = 0.6, Kn1 = -0.1001891766,) +D000045__2 = Drift( L = 3.035675) +HQM17_11 = Quadrupole( L = 0.6, Kn1 = -0.08890632892) +D000045__3 = Drift( L = 3.035675) +HQM16_11 = Quadrupole( L = 0.6, Kn1 = -0.1156289813,) +D000045__4 = Drift( L = 3.035675) +HQM15_11 = Quadrupole( L = 0.6, Kn1 = 0.1167136133,) +D000045__5 = Drift( L = 3.035675) +HQM14_11 = Quadrupole( L = 0.6, Kn1 = 0.01649413513,) +D000045__6 = Drift( L = 3.035675) +HQM13_11 = Quadrupole( L = 0.6, Kn1 = 0.1479132215,) +D000032__19 = Drift( L = 0.535) +DB23_11__5 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__20 = Drift( L = 0.535) +HQM12_11 = Quadrupole( L = 0.6, Kn1 = -0.1783631142,) +D000032__21 = Drift( L = 0.535) +DB23_11__6 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000046__1 = Drift( L = 2.526471) +HQFSS_12__1 = Quadrupole( L = 0.6, Kn1 = 0.1527595871) +D000047__1 = Drift( L = 11.5) +HQDSS_12__1 = Quadrupole( L = 0.6, Kn1 = -0.1399369071) +D000047__2 = Drift( L = 11.5) +HQFSS_12__2 = Quadrupole( L = 0.6, Kn1 = 0.1527595871) +D000047__3 = Drift( L = 11.5) +HQDSS_12__2 = Quadrupole( L = 0.6, Kn1 = -0.1399369071) +D000046__2 = Drift( L = 2.526471) +DB12_4M__1 = SBend( L = 3.0051000000005, g = -3.6299291204945E-3, e1 = -5.45415E-3, e2 = -5.45415E-3) +D000048__1 = Drift( L = 0.0975) +DB12_4M__2 = SBend( L = 3.0051000000005, g = -3.6299291204945E-3, e1 = -5.45415E-3, e2 = -5.45415E-3) +D000048__2 = Drift( L = 0.0975) +DB12_4M__3 = SBend( L = 3.0051000000005, g = -3.6299291204945E-3, e1 = -5.45415E-3, e2 = -5.45415E-3) +D000049 = Drift( L = 5.21429) +HQFSS_12__3 = Quadrupole( L = 0.6, Kn1 = 0.1527595871) +D000047__4 = Drift( L = 11.5) +HQDSS_12__3 = Quadrupole( L = 0.6, Kn1 = -0.1399369071) +D000047__5 = Drift( L = 11.5) +HQFSS_12__4 = Quadrupole( L = 0.6, Kn1 = 0.1527595871) +D000050 = Drift( L = 12.836707) +IP12 = Marker() +D000051 = Drift( L = 6.263293) +HQDSS_12__4 = Quadrupole( L = 0.6, Kn1 = -0.1399369071) +D000047__6 = Drift( L = 11.5) +HQFSS_12__5 = Quadrupole( L = 0.6, Kn1 = 0.1527595871) +D000047__7 = Drift( L = 11.5) +HQDSS_12__5 = Quadrupole( L = 0.6, Kn1 = -0.1399369071) +D000047__8 = Drift( L = 11.5) +HQFSS_12__6 = Quadrupole( L = 0.6, Kn1 = 0.1527595871) +D000052 = Drift( L = 0.714288) +DB12_4P__1 = SBend( L = 3.0051000000005, g = 3.6299291204945E-3, e1 = 5.45415E-3, e2 = 5.45415E-3) +D000048__3 = Drift( L = 0.0975) +DB12_4P__2 = SBend( L = 3.0051000000005, g = 3.6299291204945E-3, e1 = 5.45415E-3, e2 = 5.45415E-3) +D000048__4 = Drift( L = 0.0975) +DB12_4P__3 = SBend( L = 3.0051000000005, g = 3.6299291204945E-3, e1 = 5.45415E-3, e2 = 5.45415E-3) +D000053__1 = Drift( L = 1.590529) +HQDSS_12__6 = Quadrupole( L = 0.6, Kn1 = -0.1399369071) +MKICK_INJ = Marker() +D000047__9 = Drift( L = 11.5) +HQFSS_12__7 = Quadrupole( L = 0.6, Kn1 = 0.1527595871) +D000047__10 = Drift( L = 11.5) +HQDSS_12__7 = Quadrupole( L = 0.6, Kn1 = -0.1399369071) +D000047__11 = Drift( L = 11.5) +MCOLL_INJ = Marker() +HQFSS_12__8 = Quadrupole( L = 0.6, Kn1 = 0.1527595871) +D000053__2 = Drift( L = 1.590529) +DB23_12__1 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__22 = Drift( L = 0.535) +HQM14_12 = Quadrupole( L = 0.6, Kn1 = -0.1363018832,) +D000032__23 = Drift( L = 0.535) +DB23_12__2 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__24 = Drift( L = 0.535) +HQM15_12 = Quadrupole( L = 0.6, Kn1 = 0.1895913536,) +D000054__1 = Drift( L = 4.706452) +HQM16_12 = Quadrupole( L = 0.6, Kn1 = -0.2272414187) +D000054__2 = Drift( L = 4.706452) +HQM17_12 = Quadrupole( L = 0.6, Kn1 = 0.3038863874,) +D000054__3 = Drift( L = 4.706452) +HQM18_12 = Quadrupole( L = 0.6, Kn1 = -0.3056640346,) +D000054__4 = Drift( L = 4.706452) +HQM19_12 = Quadrupole( L = 0.6, Kn1 = 0.33500458,) +D000032__25 = Drift( L = 0.535) +DB23_12__3 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__26 = Drift( L = 0.535) +HQM20_12 = Quadrupole( L = 0.6, Kn1 = -0.2490023496,) +D000032__27 = Drift( L = 0.535) +DB23_12__4 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__28 = Drift( L = 0.535) +HQM21_12 = Quadrupole( L = 0.6, Kn1 = 0.26081512,) +D000055__1 = Drift( L = 4.809451) +HQM22_12 = Quadrupole( L = 0.6, Kn1 = -0.3351370008) +D000055__2 = Drift( L = 4.809451) +SFM1_1 = Sextupole( L = 0.24) +D000056__1 = Drift( L = 0.2) +HQF_1__1 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__103 = Drift( L = 0.0638) +CH00_1 = HKicker( L = 0.2) +D000057__1 = Drift( L = 1.442045) +DB23_12__5 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000014__103 = Drift( L = 0.50037) +SD00_1 = Sextupole( L = 0.24) +D000012__104 = Drift( L = 0.1559) +HQD_1__1 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__104 = Drift( L = 0.0638) +CV00_1 = VKicker( L = 0.2) +D000057__2 = Drift( L = 1.442045) +DB23_12__6 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000014__104 = Drift( L = 0.50037) +SF00_1 = Sextupole( L = 0.24) +D000012__105 = Drift( L = 0.1559) +HQF_1__2 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__105 = Drift( L = 0.0638) +CH01_1 = HKicker( L = 0.2) +D000058__1 = Drift( L = 0.386448) +EDGE1_000__169 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__85 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__169 = Multipole( Kn1L = 4.07894736378E-6) +D000018__169 = Drift( L = 0.1193) +EDGE3_000__169 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__85 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__170 = Multipole( Kn1L = -4.07894736378E-6) +D000018__170 = Drift( L = 0.1193) +EDGE2_000__170 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__85 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__170 = Multipole( Kn1L = -4.4179123956E-5) +D000014__105 = Drift( L = 0.50037) +SD1_1__17 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__97 = Drift( L = 0.1042) +SD1_1__18 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000012__106 = Drift( L = 0.1559) +HQD_1__2 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__106 = Drift( L = 0.0638) +CV01_1 = VKicker( L = 0.2) +D000058__2 = Drift( L = 0.386448) +EDGE1_000__171 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__86 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__171 = Multipole( Kn1L = 4.07894736378E-6) +D000018__171 = Drift( L = 0.1193) +EDGE3_000__171 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__86 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__172 = Multipole( Kn1L = -4.07894736378E-6) +D000018__172 = Drift( L = 0.1193) +EDGE2_000__172 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__86 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__172 = Multipole( Kn1L = -4.4179123956E-5) +D000014__106 = Drift( L = 0.50037) +SF1_1__17 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__98 = Drift( L = 0.1042) +SF1_1__18 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000012__107 = Drift( L = 0.1559) +HQF_1__3 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__107 = Drift( L = 0.0638) +CH02_1 = HKicker( L = 0.2) +D000058__3 = Drift( L = 0.386448) +EDGE1_000__173 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__87 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__173 = Multipole( Kn1L = 4.07894736378E-6) +D000018__173 = Drift( L = 0.1193) +EDGE3_000__173 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__87 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__174 = Multipole( Kn1L = -4.07894736378E-6) +D000018__174 = Drift( L = 0.1193) +EDGE2_000__174 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__87 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__174 = Multipole( Kn1L = -4.4179123956E-5) +D000014__107 = Drift( L = 0.50037) +SD2_1__17 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__99 = Drift( L = 0.1042) +SD2_1__18 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000012__108 = Drift( L = 0.1559) +HQD_1__3 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__108 = Drift( L = 0.0638) +CV02_1 = VKicker( L = 0.2) +D000058__4 = Drift( L = 0.386448) +EDGE1_000__175 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__88 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__175 = Multipole( Kn1L = 4.07894736378E-6) +D000018__175 = Drift( L = 0.1193) +EDGE3_000__175 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__88 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__176 = Multipole( Kn1L = -4.07894736378E-6) +D000018__176 = Drift( L = 0.1193) +EDGE2_000__176 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__88 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__176 = Multipole( Kn1L = -4.4179123956E-5) +D000014__108 = Drift( L = 0.50037) +SF2_1__17 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__100 = Drift( L = 0.1042) +SF2_1__18 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000012__109 = Drift( L = 0.1559) +HQF_1__4 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__109 = Drift( L = 0.0638) +CH03_1 = HKicker( L = 0.2) +D000058__5 = Drift( L = 0.386448) +EDGE1_000__177 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__89 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__177 = Multipole( Kn1L = 4.07894736378E-6) +D000018__177 = Drift( L = 0.1193) +EDGE3_000__177 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__89 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__178 = Multipole( Kn1L = -4.07894736378E-6) +D000018__178 = Drift( L = 0.1193) +EDGE2_000__178 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__89 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__178 = Multipole( Kn1L = -4.4179123956E-5) +D000014__109 = Drift( L = 0.50037) +SD1_1__19 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__101 = Drift( L = 0.1042) +SD1_1__20 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000012__110 = Drift( L = 0.1559) +HQD_1__4 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__110 = Drift( L = 0.0638) +CV03_1 = VKicker( L = 0.2) +D000058__6 = Drift( L = 0.386448) +EDGE1_000__179 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__90 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__179 = Multipole( Kn1L = 4.07894736378E-6) +D000018__179 = Drift( L = 0.1193) +EDGE3_000__179 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__90 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__180 = Multipole( Kn1L = -4.07894736378E-6) +D000018__180 = Drift( L = 0.1193) +EDGE2_000__180 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__90 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__180 = Multipole( Kn1L = -4.4179123956E-5) +D000014__110 = Drift( L = 0.50037) +SF1_1__19 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__102 = Drift( L = 0.1042) +SF1_1__20 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000012__111 = Drift( L = 0.1559) +HQF_1__5 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__111 = Drift( L = 0.0638) +CH04_1 = HKicker( L = 0.2) +D000058__7 = Drift( L = 0.386448) +EDGE1_000__181 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__91 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__181 = Multipole( Kn1L = 4.07894736378E-6) +D000018__181 = Drift( L = 0.1193) +EDGE3_000__181 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__91 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__182 = Multipole( Kn1L = -4.07894736378E-6) +D000018__182 = Drift( L = 0.1193) +EDGE2_000__182 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__91 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__182 = Multipole( Kn1L = -4.4179123956E-5) +D000014__111 = Drift( L = 0.50037) +SD2_1__19 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__103 = Drift( L = 0.1042) +SD2_1__20 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000012__112 = Drift( L = 0.1559) +HQD_1__5 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__112 = Drift( L = 0.0638) +CV04_1 = VKicker( L = 0.2) +D000058__8 = Drift( L = 0.386448) +EDGE1_000__183 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__92 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__183 = Multipole( Kn1L = 4.07894736378E-6) +D000018__183 = Drift( L = 0.1193) +EDGE3_000__183 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__92 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__184 = Multipole( Kn1L = -4.07894736378E-6) +D000018__184 = Drift( L = 0.1193) +EDGE2_000__184 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__92 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__184 = Multipole( Kn1L = -4.4179123956E-5) +D000014__112 = Drift( L = 0.50037) +SF2_1__19 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__104 = Drift( L = 0.1042) +SF2_1__20 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000012__113 = Drift( L = 0.1559) +HQF_1__6 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__113 = Drift( L = 0.0638) +CH05_1 = HKicker( L = 0.2) +D000058__9 = Drift( L = 0.386448) +EDGE1_000__185 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__93 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__185 = Multipole( Kn1L = 4.07894736378E-6) +D000018__185 = Drift( L = 0.1193) +EDGE3_000__185 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__93 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__186 = Multipole( Kn1L = -4.07894736378E-6) +D000018__186 = Drift( L = 0.1193) +EDGE2_000__186 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__93 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__186 = Multipole( Kn1L = -4.4179123956E-5) +D000014__113 = Drift( L = 0.50037) +SD1_1__21 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__105 = Drift( L = 0.1042) +SD1_1__22 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000012__114 = Drift( L = 0.1559) +HQD_1__6 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__114 = Drift( L = 0.0638) +CV05_1 = VKicker( L = 0.2) +D000058__10 = Drift( L = 0.386448) +EDGE1_000__187 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__94 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__187 = Multipole( Kn1L = 4.07894736378E-6) +D000018__187 = Drift( L = 0.1193) +EDGE3_000__187 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__94 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__188 = Multipole( Kn1L = -4.07894736378E-6) +D000018__188 = Drift( L = 0.1193) +EDGE2_000__188 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__94 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__188 = Multipole( Kn1L = -4.4179123956E-5) +D000014__114 = Drift( L = 0.50037) +SF1_1__21 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__106 = Drift( L = 0.1042) +SF1_1__22 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000012__115 = Drift( L = 0.1559) +HQF_1__7 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__115 = Drift( L = 0.0638) +CH06_1 = HKicker( L = 0.2) +D000058__11 = Drift( L = 0.386448) +EDGE1_000__189 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__95 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__189 = Multipole( Kn1L = 4.07894736378E-6) +D000018__189 = Drift( L = 0.1193) +EDGE3_000__189 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__95 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__190 = Multipole( Kn1L = -4.07894736378E-6) +D000018__190 = Drift( L = 0.1193) +EDGE2_000__190 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__95 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__190 = Multipole( Kn1L = -4.4179123956E-5) +D000014__115 = Drift( L = 0.50037) +SD2_1__21 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__107 = Drift( L = 0.1042) +SD2_1__22 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000012__116 = Drift( L = 0.1559) +HQD_1__7 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__116 = Drift( L = 0.0638) +CV06_1 = VKicker( L = 0.2) +D000058__12 = Drift( L = 0.386448) +EDGE1_000__191 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__96 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__191 = Multipole( Kn1L = 4.07894736378E-6) +D000018__191 = Drift( L = 0.1193) +EDGE3_000__191 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__96 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__192 = Multipole( Kn1L = -4.07894736378E-6) +D000018__192 = Drift( L = 0.1193) +EDGE2_000__192 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__96 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__192 = Multipole( Kn1L = -4.4179123956E-5) +D000014__116 = Drift( L = 0.50037) +SF2_1__21 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__108 = Drift( L = 0.1042) +SF2_1__22 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000012__117 = Drift( L = 0.1559) +HQF_1__8 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__117 = Drift( L = 0.0638) +CH07_1 = HKicker( L = 0.2) +D000058__13 = Drift( L = 0.386448) +EDGE1_000__193 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__97 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__193 = Multipole( Kn1L = 4.07894736378E-6) +D000018__193 = Drift( L = 0.1193) +EDGE3_000__193 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__97 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__194 = Multipole( Kn1L = -4.07894736378E-6) +D000018__194 = Drift( L = 0.1193) +EDGE2_000__194 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__97 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__194 = Multipole( Kn1L = -4.4179123956E-5) +D000014__117 = Drift( L = 0.50037) +SD1_1__23 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__109 = Drift( L = 0.1042) +SD1_1__24 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000012__118 = Drift( L = 0.1559) +HQD_1__8 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__118 = Drift( L = 0.0638) +CV07_1 = VKicker( L = 0.2) +D000058__14 = Drift( L = 0.386448) +EDGE1_000__195 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__98 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__195 = Multipole( Kn1L = 4.07894736378E-6) +D000018__195 = Drift( L = 0.1193) +EDGE3_000__195 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__98 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__196 = Multipole( Kn1L = -4.07894736378E-6) +D000018__196 = Drift( L = 0.1193) +EDGE2_000__196 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__98 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__196 = Multipole( Kn1L = -4.4179123956E-5) +D000014__118 = Drift( L = 0.50037) +SF1_1__23 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__110 = Drift( L = 0.1042) +SF1_1__24 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000012__119 = Drift( L = 0.1559) +HQF_1__9 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__119 = Drift( L = 0.0638) +CH08_1 = HKicker( L = 0.2) +D000058__15 = Drift( L = 0.386448) +EDGE1_000__197 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__99 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__197 = Multipole( Kn1L = 4.07894736378E-6) +D000018__197 = Drift( L = 0.1193) +EDGE3_000__197 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__99 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__198 = Multipole( Kn1L = -4.07894736378E-6) +D000018__198 = Drift( L = 0.1193) +EDGE2_000__198 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__99 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__198 = Multipole( Kn1L = -4.4179123956E-5) +D000014__119 = Drift( L = 0.50037) +SD2_1__23 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__111 = Drift( L = 0.1042) +SD2_1__24 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000012__120 = Drift( L = 0.1559) +HQD_1__9 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__120 = Drift( L = 0.0638) +CV08_1 = VKicker( L = 0.2) +D000058__16 = Drift( L = 0.386448) +EDGE1_000__199 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__100 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__199 = Multipole( Kn1L = 4.07894736378E-6) +D000018__199 = Drift( L = 0.1193) +EDGE3_000__199 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__100 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__200 = Multipole( Kn1L = -4.07894736378E-6) +D000018__200 = Drift( L = 0.1193) +EDGE2_000__200 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__100 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__200 = Multipole( Kn1L = -4.4179123956E-5) +D000014__120 = Drift( L = 0.50037) +SF2_1__23 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__112 = Drift( L = 0.1042) +SF2_1__24 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000012__121 = Drift( L = 0.1559) +HQF_1__10 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__121 = Drift( L = 0.0638) +CH09_1 = HKicker( L = 0.2) +D000058__17 = Drift( L = 0.386448) +EDGE1_000__201 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__101 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__201 = Multipole( Kn1L = 4.07894736378E-6) +D000018__201 = Drift( L = 0.1193) +EDGE3_000__201 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__101 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__202 = Multipole( Kn1L = -4.07894736378E-6) +D000018__202 = Drift( L = 0.1193) +EDGE2_000__202 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__101 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__202 = Multipole( Kn1L = -4.4179123956E-5) +D000014__121 = Drift( L = 0.50037) +SD1_1__25 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__113 = Drift( L = 0.1042) +SD1_1__26 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000012__122 = Drift( L = 0.1559) +HQD_1__10 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__122 = Drift( L = 0.0638) +CV09_1 = VKicker( L = 0.2) +D000058__18 = Drift( L = 0.386448) +EDGE1_000__203 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__102 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__203 = Multipole( Kn1L = 4.07894736378E-6) +D000018__203 = Drift( L = 0.1193) +EDGE3_000__203 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__102 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__204 = Multipole( Kn1L = -4.07894736378E-6) +D000018__204 = Drift( L = 0.1193) +EDGE2_000__204 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__102 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__204 = Multipole( Kn1L = -4.4179123956E-5) +D000014__122 = Drift( L = 0.50037) +SF1_1__25 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__114 = Drift( L = 0.1042) +SF1_1__26 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000012__123 = Drift( L = 0.1559) +HQF_1__11 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__123 = Drift( L = 0.0638) +CH10_1 = HKicker( L = 0.2) +D000058__19 = Drift( L = 0.386448) +EDGE1_000__205 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__103 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__205 = Multipole( Kn1L = 4.07894736378E-6) +D000018__205 = Drift( L = 0.1193) +EDGE3_000__205 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__103 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__206 = Multipole( Kn1L = -4.07894736378E-6) +D000018__206 = Drift( L = 0.1193) +EDGE2_000__206 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__103 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__206 = Multipole( Kn1L = -4.4179123956E-5) +D000014__123 = Drift( L = 0.50037) +SD2_1__25 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__115 = Drift( L = 0.1042) +SD2_1__26 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000012__124 = Drift( L = 0.1559) +HQD_1__11 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__124 = Drift( L = 0.0638) +CV10_1 = VKicker( L = 0.2) +D000058__20 = Drift( L = 0.386448) +EDGE1_000__207 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__104 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__207 = Multipole( Kn1L = 4.07894736378E-6) +D000018__207 = Drift( L = 0.1193) +EDGE3_000__207 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__104 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__208 = Multipole( Kn1L = -4.07894736378E-6) +D000018__208 = Drift( L = 0.1193) +EDGE2_000__208 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__104 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__208 = Multipole( Kn1L = -4.4179123956E-5) +D000014__124 = Drift( L = 0.50037) +SF2_1__25 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__116 = Drift( L = 0.1042) +SF2_1__26 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000012__125 = Drift( L = 0.1559) +HQF_1__12 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__125 = Drift( L = 0.0638) +CH11_1 = HKicker( L = 0.2) +D000058__21 = Drift( L = 0.386448) +EDGE1_000__209 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__105 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__209 = Multipole( Kn1L = 4.07894736378E-6) +D000018__209 = Drift( L = 0.1193) +EDGE3_000__209 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__105 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__210 = Multipole( Kn1L = -4.07894736378E-6) +D000018__210 = Drift( L = 0.1193) +EDGE2_000__210 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__105 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__210 = Multipole( Kn1L = -4.4179123956E-5) +D000014__125 = Drift( L = 0.50037) +SD1_1__27 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__117 = Drift( L = 0.1042) +SD1_1__28 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000012__126 = Drift( L = 0.1559) +HQD_1__12 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__126 = Drift( L = 0.0638) +CV11_1 = VKicker( L = 0.2) +D000058__22 = Drift( L = 0.386448) +EDGE1_000__211 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__106 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__211 = Multipole( Kn1L = 4.07894736378E-6) +D000018__211 = Drift( L = 0.1193) +EDGE3_000__211 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__106 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__212 = Multipole( Kn1L = -4.07894736378E-6) +D000018__212 = Drift( L = 0.1193) +EDGE2_000__212 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__106 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__212 = Multipole( Kn1L = -4.4179123956E-5) +D000014__126 = Drift( L = 0.50037) +SF1_1__27 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__118 = Drift( L = 0.1042) +SF1_1__28 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000012__127 = Drift( L = 0.1559) +HQF_1__13 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__127 = Drift( L = 0.0638) +CH12_1 = HKicker( L = 0.2) +D000058__23 = Drift( L = 0.386448) +EDGE1_000__213 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__107 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__213 = Multipole( Kn1L = 4.07894736378E-6) +D000018__213 = Drift( L = 0.1193) +EDGE3_000__213 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__107 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__214 = Multipole( Kn1L = -4.07894736378E-6) +D000018__214 = Drift( L = 0.1193) +EDGE2_000__214 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__107 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__214 = Multipole( Kn1L = -4.4179123956E-5) +D000014__127 = Drift( L = 0.50037) +SD2_1__27 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__119 = Drift( L = 0.1042) +SD2_1__28 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000012__128 = Drift( L = 0.1559) +HQD_1__13 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__128 = Drift( L = 0.0638) +CV12_1 = VKicker( L = 0.2) +D000058__24 = Drift( L = 0.386448) +EDGE1_000__215 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__108 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__215 = Multipole( Kn1L = 4.07894736378E-6) +D000018__215 = Drift( L = 0.1193) +EDGE3_000__215 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__108 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__216 = Multipole( Kn1L = -4.07894736378E-6) +D000018__216 = Drift( L = 0.1193) +EDGE2_000__216 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__108 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__216 = Multipole( Kn1L = -4.4179123956E-5) +D000014__128 = Drift( L = 0.50037) +SF2_1__27 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__120 = Drift( L = 0.1042) +SF2_1__28 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000012__129 = Drift( L = 0.1559) +HQF_1__14 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__129 = Drift( L = 0.0638) +CH13_1 = HKicker( L = 0.2) +D000058__25 = Drift( L = 0.386448) +EDGE1_000__217 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__109 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__217 = Multipole( Kn1L = 4.07894736378E-6) +D000018__217 = Drift( L = 0.1193) +EDGE3_000__217 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__109 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__218 = Multipole( Kn1L = -4.07894736378E-6) +D000018__218 = Drift( L = 0.1193) +EDGE2_000__218 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__109 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__218 = Multipole( Kn1L = -4.4179123956E-5) +D000014__129 = Drift( L = 0.50037) +SD1_1__29 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__121 = Drift( L = 0.1042) +SD1_1__30 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000012__130 = Drift( L = 0.1559) +HQD_1__14 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__130 = Drift( L = 0.0638) +CV13_1 = VKicker( L = 0.2) +D000058__26 = Drift( L = 0.386448) +EDGE1_000__219 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__110 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__219 = Multipole( Kn1L = 4.07894736378E-6) +D000018__219 = Drift( L = 0.1193) +EDGE3_000__219 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__110 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__220 = Multipole( Kn1L = -4.07894736378E-6) +D000018__220 = Drift( L = 0.1193) +EDGE2_000__220 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__110 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__220 = Multipole( Kn1L = -4.4179123956E-5) +D000014__130 = Drift( L = 0.50037) +SF1_1__29 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__122 = Drift( L = 0.1042) +SF1_1__30 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000012__131 = Drift( L = 0.1559) +HQF_1__15 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__131 = Drift( L = 0.0638) +CH14_1 = HKicker( L = 0.2) +D000058__27 = Drift( L = 0.386448) +EDGE1_000__221 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__111 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__221 = Multipole( Kn1L = 4.07894736378E-6) +D000018__221 = Drift( L = 0.1193) +EDGE3_000__221 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__111 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__222 = Multipole( Kn1L = -4.07894736378E-6) +D000018__222 = Drift( L = 0.1193) +EDGE2_000__222 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__111 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__222 = Multipole( Kn1L = -4.4179123956E-5) +D000014__131 = Drift( L = 0.50037) +SD2_1__29 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__123 = Drift( L = 0.1042) +SD2_1__30 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000012__132 = Drift( L = 0.1559) +HQD_1__15 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__132 = Drift( L = 0.0638) +CV14_1 = VKicker( L = 0.2) +D000058__28 = Drift( L = 0.386448) +EDGE1_000__223 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__112 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__223 = Multipole( Kn1L = 4.07894736378E-6) +D000018__223 = Drift( L = 0.1193) +EDGE3_000__223 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__112 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__224 = Multipole( Kn1L = -4.07894736378E-6) +D000018__224 = Drift( L = 0.1193) +EDGE2_000__224 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__112 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__224 = Multipole( Kn1L = -4.4179123956E-5) +D000014__132 = Drift( L = 0.50037) +SF2_1__29 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__124 = Drift( L = 0.1042) +SF2_1__30 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000012__133 = Drift( L = 0.1559) +HQF_1__16 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__133 = Drift( L = 0.0638) +CH15_1 = HKicker( L = 0.2) +D000058__29 = Drift( L = 0.386448) +EDGE1_000__225 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__113 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__225 = Multipole( Kn1L = 4.07894736378E-6) +D000018__225 = Drift( L = 0.1193) +EDGE3_000__225 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__113 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__226 = Multipole( Kn1L = -4.07894736378E-6) +D000018__226 = Drift( L = 0.1193) +EDGE2_000__226 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__113 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__226 = Multipole( Kn1L = -4.4179123956E-5) +D000014__133 = Drift( L = 0.50037) +SD1_1__31 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__125 = Drift( L = 0.1042) +SD1_1__32 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000012__134 = Drift( L = 0.1559) +HQD_1__16 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__134 = Drift( L = 0.0638) +CV15_1 = VKicker( L = 0.2) +D000058__30 = Drift( L = 0.386448) +EDGE1_000__227 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__114 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__227 = Multipole( Kn1L = 4.07894736378E-6) +D000018__227 = Drift( L = 0.1193) +EDGE3_000__227 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__114 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__228 = Multipole( Kn1L = -4.07894736378E-6) +D000018__228 = Drift( L = 0.1193) +EDGE2_000__228 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__114 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__228 = Multipole( Kn1L = -4.4179123956E-5) +D000014__134 = Drift( L = 0.50037) +SF1_1__31 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__126 = Drift( L = 0.1042) +SF1_1__32 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000012__135 = Drift( L = 0.1559) +HQF_1__17 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__135 = Drift( L = 0.0638) +CH16_1 = HKicker( L = 0.2) +D000058__31 = Drift( L = 0.386448) +EDGE1_000__229 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__115 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__229 = Multipole( Kn1L = 4.07894736378E-6) +D000018__229 = Drift( L = 0.1193) +EDGE3_000__229 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__115 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__230 = Multipole( Kn1L = -4.07894736378E-6) +D000018__230 = Drift( L = 0.1193) +EDGE2_000__230 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__115 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__230 = Multipole( Kn1L = -4.4179123956E-5) +D000014__135 = Drift( L = 0.50037) +SD2_1__31 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__127 = Drift( L = 0.1042) +SD2_1__32 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000012__136 = Drift( L = 0.1559) +HQD_1__17 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__136 = Drift( L = 0.0638) +CV16_1 = VKicker( L = 0.2) +D000058__32 = Drift( L = 0.386448) +EDGE1_000__231 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__116 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__231 = Multipole( Kn1L = 4.07894736378E-6) +D000018__231 = Drift( L = 0.1193) +EDGE3_000__231 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__116 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__232 = Multipole( Kn1L = -4.07894736378E-6) +D000018__232 = Drift( L = 0.1193) +EDGE2_000__232 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__116 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__232 = Multipole( Kn1L = -4.4179123956E-5) +D000014__136 = Drift( L = 0.50037) +SF2_1__31 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__128 = Drift( L = 0.1042) +SF2_1__32 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000012__137 = Drift( L = 0.1559) +HQF_1__18 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000017__137 = Drift( L = 0.0638) +CH17_1 = HKicker( L = 0.2) +D000057__3 = Drift( L = 1.442045) +DB23_1__1 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000014__137 = Drift( L = 0.50037) +SD17_1 = Sextupole( L = 0.24) +D000012__138 = Drift( L = 0.1559) +HQD_1__18 = Quadrupole( L = 0.5, Kn1 = -0.3112215884,) +D000017__138 = Drift( L = 0.0638) +CV17_1 = VKicker( L = 0.2) +D000057__4 = Drift( L = 1.442045) +DB23_1__2 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000014__138 = Drift( L = 0.50037) +SF17_1 = Sextupole( L = 0.24) +D000012__139 = Drift( L = 0.1559) +HQF_1__19 = Quadrupole( L = 0.5, Kn1 = 0.3113975997,) +D000059__1 = Drift( L = 2.551335) +HQM22_1 = Quadrupole( L = 0.6, Kn1 = 0.01722745969,) +D000059__2 = Drift( L = 2.551335) +HQM21_1 = Quadrupole( L = 0.6, Kn1 = -0.07374323012) +D000059__3 = Drift( L = 2.551335) +HQM20_1 = Quadrupole( L = 0.6, Kn1 = -0.01932000017,) +D000059__4 = Drift( L = 2.551335) +HQM19_1 = Quadrupole( L = 0.6, Kn1 = -0.08634709755) +D000059__5 = Drift( L = 2.551335) +HQM18_1 = Quadrupole( L = 0.6, Kn1 = -0.08439397155) +D000032__29 = Drift( L = 0.535) +DB23_1__3 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__30 = Drift( L = 0.535) +HQM17_1 = Quadrupole( L = 0.6, Kn1 = 0.215697629) +D000032__31 = Drift( L = 0.535) +DB23_1__4 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__32 = Drift( L = 0.535) +HQM16_1 = Quadrupole( L = 0.6, Kn1 = 0.09620701749) +D000060__1 = Drift( L = 6.217138) +HQM15_1 = Quadrupole( L = 0.6, Kn1 = -0.2153529094) +D000060__2 = Drift( L = 6.217138) +HQM14_1 = Quadrupole( L = 0.6, Kn1 = 0.312179911,) +D000060__3 = Drift( L = 6.217138) +HQM13_1 = Quadrupole( L = 0.6, Kn1 = -0.1606496122) +D000032__33 = Drift( L = 0.535) +DB23_1__5 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__34 = Drift( L = 0.535) +HQM12_1 = Quadrupole( L = 0.6, Kn1 = 0.1379574645) +D000032__35 = Drift( L = 0.535) +DB23_1__6 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000061__1 = Drift( L = 1.995182) +HQDSS_2__1 = Quadrupole( L = 0.6, Kn1 = -0.0980096273) +D000062__1 = Drift( L = 12.36) +SX41_2 = Sextupole( L = 0.24) +D000056__2 = Drift( L = 0.2) +HQFSS_2__1 = Quadrupole( L = 0.6, Kn1 = 0.1238165582,) +D000062__2 = Drift( L = 12.36) +SX42_2 = Sextupole( L = 0.24) +D000056__3 = Drift( L = 0.2) +HQDSS_2__2 = Quadrupole( L = 0.6, Kn1 = -0.0980096273) +MCOLL_H1 = Marker() +D000062__3 = Drift( L = 12.36) +SX43_2 = Sextupole( L = 0.24) +D000056__4 = Drift( L = 0.2) +HQFSS_2__2 = Quadrupole( L = 0.6, Kn1 = 0.1238165582,) +D000062__4 = Drift( L = 12.36) +MCOLL_H2 = Marker() +SX44_2 = Sextupole( L = 0.24) +D000056__5 = Drift( L = 0.2) +HQDSS_2__3 = Quadrupole( L = 0.6, Kn1 = -0.0980096273) +D000062__5 = Drift( L = 12.36) +SX45_2 = Sextupole( L = 0.24) +D000056__6 = Drift( L = 0.2) +HQFSS_2__3 = Quadrupole( L = 0.6, Kn1 = 0.1238165582,) +D000062__6 = Drift( L = 12.36) +MCOLL_H3 = Marker() +SX46_2 = Sextupole( L = 0.24) +D000056__7 = Drift( L = 0.2) +HQDSS_2__4 = Quadrupole( L = 0.6, Kn1 = -0.0980096273) +D000063 = Drift( L = 6.169233) +IP2 = Marker() +D000064 = Drift( L = 6.630767) +HQFSS_2__4 = Quadrupole( L = 0.6, Kn1 = 0.1238165582,) +D000056__8 = Drift( L = 0.2) +SX47_2 = Sextupole( L = 0.24) +D000062__7 = Drift( L = 12.36) +HQDSS_2__5 = Quadrupole( L = 0.6, Kn1 = -0.0980096273) +D000056__9 = Drift( L = 0.2) +SX48_2 = Sextupole( L = 0.24) +D000062__8 = Drift( L = 12.36) +HQFSS_2__5 = Quadrupole( L = 0.6, Kn1 = 0.1238165582,) +D000056__10 = Drift( L = 0.2) +SX49_2 = Sextupole( L = 0.24) +D000062__9 = Drift( L = 12.36) +HQDSS_2__6 = Quadrupole( L = 0.6, Kn1 = -0.0980096273) +D000056__11 = Drift( L = 0.2) +SX50_2 = Sextupole( L = 0.24) +MLAMB = Marker() +D000062__10 = Drift( L = 12.36) +HQFSS_2__6 = Quadrupole( L = 0.6, Kn1 = 0.1238165582,) +D000056__12 = Drift( L = 0.2) +SX51_2 = Sextupole( L = 0.24) +D000062__11 = Drift( L = 12.36) +HQDSS_2__7 = Quadrupole( L = 0.6, Kn1 = -0.0980096273) +D000056__13 = Drift( L = 0.2) +SX52_2 = Sextupole( L = 0.24) +D000062__12 = Drift( L = 12.36) +HQFSS_2__7 = Quadrupole( L = 0.6, Kn1 = 0.1238165582,) +D000061__2 = Drift( L = 1.995182) +DB23_2__1 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__36 = Drift( L = 0.535) +HQM12_2 = Quadrupole( L = 0.6, Kn1 = -0.08415385784) +D000032__37 = Drift( L = 0.535) +DB23_2__2 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__38 = Drift( L = 0.535) +HQM13_2 = Quadrupole( L = 0.6, Kn1 = -7.038584918E-4,) +D000065__1 = Drift( L = 5.927225) +HQM14_2 = Quadrupole( L = 0.6, Kn1 = -0.07676463633) +D000065__2 = Drift( L = 5.927225) +HQM15_2 = Quadrupole( L = 0.6, Kn1 = 0.3290445086,) +D000065__3 = Drift( L = 5.927225) +HQM16_2 = Quadrupole( L = 0.6, Kn1 = -0.2520023905,) +D000032__39 = Drift( L = 0.535) +DB23_2__3 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__40 = Drift( L = 0.535) +HQM17_2 = Quadrupole( L = 0.6, Kn1 = 0.2982328613) +D000032__41 = Drift( L = 0.535) +DB23_2__4 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__42 = Drift( L = 0.535) +HQM18_2 = Quadrupole( L = 0.6, Kn1 = 0.2057910441) +D000066__1 = Drift( L = 2.623669) +HQM19_2 = Quadrupole( L = 0.6, Kn1 = -0.2632180047,) +D000066__2 = Drift( L = 2.623669) +HQM20_2 = Quadrupole( L = 0.6, Kn1 = -0.06371765756,) +D000066__3 = Drift( L = 2.623669) +HQM21_2 = Quadrupole( L = 0.6, Kn1 = -2.457652622E-3,) +D000066__4 = Drift( L = 2.623669) +HQM22_2 = Quadrupole( L = 0.6, Kn1 = 0.08440660021) +D000066__5 = Drift( L = 2.623669) +HQF_3__1 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__140 = Drift( L = 0.1559) +SF00_3 = Sextupole( L = 0.24) +D000014__139 = Drift( L = 0.50037) +DB23_2__5 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000067__1 = Drift( L = 1.442004) +CV00_3 = HKicker( L = 0.2) +D000017__139 = Drift( L = 0.0638) +HQD_3__1 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__141 = Drift( L = 0.1559) +SD00_3 = Sextupole( L = 0.24) +D000014__140 = Drift( L = 0.50037) +DB23_2__6 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000067__2 = Drift( L = 1.442004) +CH00_3 = HKicker( L = 0.2) +D000017__140 = Drift( L = 0.0638) +HQF_3__2 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__142 = Drift( L = 0.1559) +SF1_1__33 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__129 = Drift( L = 0.1042) +SF1_1__34 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__141 = Drift( L = 0.50037) +EDGE1_000__233 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__117 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__233 = Multipole( Kn1L = 4.07894736378E-6) +D000018__233 = Drift( L = 0.1193) +EDGE3_000__233 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__117 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__234 = Multipole( Kn1L = -4.07894736378E-6) +D000018__234 = Drift( L = 0.1193) +EDGE2_000__234 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__117 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__234 = Multipole( Kn1L = -4.4179123956E-5) +D000068__1 = Drift( L = 0.386407) +CV01_3 = VKicker( L = 0.2) +D000017__141 = Drift( L = 0.0638) +HQD_3__2 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__143 = Drift( L = 0.1559) +SD1_1__33 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__130 = Drift( L = 0.1042) +SD1_1__34 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__142 = Drift( L = 0.50037) +EDGE1_000__235 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__118 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__235 = Multipole( Kn1L = 4.07894736378E-6) +D000018__235 = Drift( L = 0.1193) +EDGE3_000__235 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__118 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__236 = Multipole( Kn1L = -4.07894736378E-6) +D000018__236 = Drift( L = 0.1193) +EDGE2_000__236 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__118 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__236 = Multipole( Kn1L = -4.4179123956E-5) +D000068__2 = Drift( L = 0.386407) +CH01_3 = HKicker( L = 0.2) +D000017__142 = Drift( L = 0.0638) +HQF_3__3 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__144 = Drift( L = 0.1559) +SF2_1__33 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__131 = Drift( L = 0.1042) +SF2_1__34 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__143 = Drift( L = 0.50037) +EDGE1_000__237 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__119 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__237 = Multipole( Kn1L = 4.07894736378E-6) +D000018__237 = Drift( L = 0.1193) +EDGE3_000__237 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__119 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__238 = Multipole( Kn1L = -4.07894736378E-6) +D000018__238 = Drift( L = 0.1193) +EDGE2_000__238 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__119 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__238 = Multipole( Kn1L = -4.4179123956E-5) +D000068__3 = Drift( L = 0.386407) +CV02_3 = VKicker( L = 0.2) +D000017__143 = Drift( L = 0.0638) +HQD_3__3 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__145 = Drift( L = 0.1559) +SD2_1__33 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__132 = Drift( L = 0.1042) +SD2_1__34 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__144 = Drift( L = 0.50037) +EDGE1_000__239 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__120 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__239 = Multipole( Kn1L = 4.07894736378E-6) +D000018__239 = Drift( L = 0.1193) +EDGE3_000__239 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__120 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__240 = Multipole( Kn1L = -4.07894736378E-6) +D000018__240 = Drift( L = 0.1193) +EDGE2_000__240 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__120 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__240 = Multipole( Kn1L = -4.4179123956E-5) +D000068__4 = Drift( L = 0.386407) +CH02_3 = HKicker( L = 0.2) +D000017__144 = Drift( L = 0.0638) +HQF_3__4 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__146 = Drift( L = 0.1559) +SF1_1__35 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__133 = Drift( L = 0.1042) +SF1_1__36 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__145 = Drift( L = 0.50037) +EDGE1_000__241 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__121 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__241 = Multipole( Kn1L = 4.07894736378E-6) +D000018__241 = Drift( L = 0.1193) +EDGE3_000__241 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__121 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__242 = Multipole( Kn1L = -4.07894736378E-6) +D000018__242 = Drift( L = 0.1193) +EDGE2_000__242 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__121 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__242 = Multipole( Kn1L = -4.4179123956E-5) +D000068__5 = Drift( L = 0.386407) +CV03_3 = VKicker( L = 0.2) +D000017__145 = Drift( L = 0.0638) +HQD_3__4 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__147 = Drift( L = 0.1559) +SD1_1__35 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__134 = Drift( L = 0.1042) +SD1_1__36 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__146 = Drift( L = 0.50037) +EDGE1_000__243 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__122 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__243 = Multipole( Kn1L = 4.07894736378E-6) +D000018__243 = Drift( L = 0.1193) +EDGE3_000__243 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__122 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__244 = Multipole( Kn1L = -4.07894736378E-6) +D000018__244 = Drift( L = 0.1193) +EDGE2_000__244 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__122 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__244 = Multipole( Kn1L = -4.4179123956E-5) +D000068__6 = Drift( L = 0.386407) +CH03_3 = HKicker( L = 0.2) +D000017__146 = Drift( L = 0.0638) +HQF_3__5 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__148 = Drift( L = 0.1559) +SF2_1__35 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__135 = Drift( L = 0.1042) +SF2_1__36 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__147 = Drift( L = 0.50037) +EDGE1_000__245 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__123 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__245 = Multipole( Kn1L = 4.07894736378E-6) +D000018__245 = Drift( L = 0.1193) +EDGE3_000__245 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__123 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__246 = Multipole( Kn1L = -4.07894736378E-6) +D000018__246 = Drift( L = 0.1193) +EDGE2_000__246 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__123 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__246 = Multipole( Kn1L = -4.4179123956E-5) +D000068__7 = Drift( L = 0.386407) +CV04_3 = VKicker( L = 0.2) +D000017__147 = Drift( L = 0.0638) +HQD_3__5 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__149 = Drift( L = 0.1559) +SD2_1__35 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__136 = Drift( L = 0.1042) +SD2_1__36 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__148 = Drift( L = 0.50037) +EDGE1_000__247 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__124 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__247 = Multipole( Kn1L = 4.07894736378E-6) +D000018__247 = Drift( L = 0.1193) +EDGE3_000__247 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__124 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__248 = Multipole( Kn1L = -4.07894736378E-6) +D000018__248 = Drift( L = 0.1193) +EDGE2_000__248 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__124 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__248 = Multipole( Kn1L = -4.4179123956E-5) +D000068__8 = Drift( L = 0.386407) +CH04_3 = HKicker( L = 0.2) +D000017__148 = Drift( L = 0.0638) +HQF_3__6 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__150 = Drift( L = 0.1559) +SF1_1__37 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__137 = Drift( L = 0.1042) +SF1_1__38 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__149 = Drift( L = 0.50037) +EDGE1_000__249 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__125 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__249 = Multipole( Kn1L = 4.07894736378E-6) +D000018__249 = Drift( L = 0.1193) +EDGE3_000__249 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__125 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__250 = Multipole( Kn1L = -4.07894736378E-6) +D000018__250 = Drift( L = 0.1193) +EDGE2_000__250 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__125 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__250 = Multipole( Kn1L = -4.4179123956E-5) +D000068__9 = Drift( L = 0.386407) +CV05_3 = VKicker( L = 0.2) +D000017__149 = Drift( L = 0.0638) +HQD_3__6 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__151 = Drift( L = 0.1559) +SD1_1__37 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__138 = Drift( L = 0.1042) +SD1_1__38 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__150 = Drift( L = 0.50037) +EDGE1_000__251 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__126 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__251 = Multipole( Kn1L = 4.07894736378E-6) +D000018__251 = Drift( L = 0.1193) +EDGE3_000__251 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__126 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__252 = Multipole( Kn1L = -4.07894736378E-6) +D000018__252 = Drift( L = 0.1193) +EDGE2_000__252 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__126 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__252 = Multipole( Kn1L = -4.4179123956E-5) +D000068__10 = Drift( L = 0.386407) +CH05_3 = HKicker( L = 0.2) +D000017__150 = Drift( L = 0.0638) +HQF_3__7 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__152 = Drift( L = 0.1559) +SF2_1__37 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__139 = Drift( L = 0.1042) +SF2_1__38 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__151 = Drift( L = 0.50037) +EDGE1_000__253 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__127 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__253 = Multipole( Kn1L = 4.07894736378E-6) +D000018__253 = Drift( L = 0.1193) +EDGE3_000__253 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__127 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__254 = Multipole( Kn1L = -4.07894736378E-6) +D000018__254 = Drift( L = 0.1193) +EDGE2_000__254 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__127 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__254 = Multipole( Kn1L = -4.4179123956E-5) +D000068__11 = Drift( L = 0.386407) +CV06_3 = VKicker( L = 0.2) +D000017__151 = Drift( L = 0.0638) +HQD_3__7 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__153 = Drift( L = 0.1559) +SD2_1__37 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__140 = Drift( L = 0.1042) +SD2_1__38 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__152 = Drift( L = 0.50037) +EDGE1_000__255 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__128 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__255 = Multipole( Kn1L = 4.07894736378E-6) +D000018__255 = Drift( L = 0.1193) +EDGE3_000__255 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__128 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__256 = Multipole( Kn1L = -4.07894736378E-6) +D000018__256 = Drift( L = 0.1193) +EDGE2_000__256 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__128 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__256 = Multipole( Kn1L = -4.4179123956E-5) +D000068__12 = Drift( L = 0.386407) +CH06_3 = HKicker( L = 0.2) +D000017__152 = Drift( L = 0.0638) +HQF_3__8 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__154 = Drift( L = 0.1559) +SF1_1__39 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__141 = Drift( L = 0.1042) +SF1_1__40 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__153 = Drift( L = 0.50037) +EDGE1_000__257 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__129 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__257 = Multipole( Kn1L = 4.07894736378E-6) +D000018__257 = Drift( L = 0.1193) +EDGE3_000__257 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__129 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__258 = Multipole( Kn1L = -4.07894736378E-6) +D000018__258 = Drift( L = 0.1193) +EDGE2_000__258 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__129 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__258 = Multipole( Kn1L = -4.4179123956E-5) +D000068__13 = Drift( L = 0.386407) +CV07_3 = VKicker( L = 0.2) +D000017__153 = Drift( L = 0.0638) +HQD_3__8 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__155 = Drift( L = 0.1559) +SD1_1__39 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__142 = Drift( L = 0.1042) +SD1_1__40 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__154 = Drift( L = 0.50037) +EDGE1_000__259 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__130 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__259 = Multipole( Kn1L = 4.07894736378E-6) +D000018__259 = Drift( L = 0.1193) +EDGE3_000__259 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__130 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__260 = Multipole( Kn1L = -4.07894736378E-6) +D000018__260 = Drift( L = 0.1193) +EDGE2_000__260 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__130 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__260 = Multipole( Kn1L = -4.4179123956E-5) +D000068__14 = Drift( L = 0.386407) +CH07_3 = HKicker( L = 0.2) +D000017__154 = Drift( L = 0.0638) +HQF_3__9 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__156 = Drift( L = 0.1559) +SF2_1__39 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__143 = Drift( L = 0.1042) +SF2_1__40 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__155 = Drift( L = 0.50037) +EDGE1_000__261 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__131 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__261 = Multipole( Kn1L = 4.07894736378E-6) +D000018__261 = Drift( L = 0.1193) +EDGE3_000__261 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__131 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__262 = Multipole( Kn1L = -4.07894736378E-6) +D000018__262 = Drift( L = 0.1193) +EDGE2_000__262 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__131 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__262 = Multipole( Kn1L = -4.4179123956E-5) +D000068__15 = Drift( L = 0.386407) +CV08_3 = VKicker( L = 0.2) +D000017__155 = Drift( L = 0.0638) +HQD_3__9 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__157 = Drift( L = 0.1559) +SD2_1__39 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__144 = Drift( L = 0.1042) +SD2_1__40 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__156 = Drift( L = 0.50037) +EDGE1_000__263 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__132 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__263 = Multipole( Kn1L = 4.07894736378E-6) +D000018__263 = Drift( L = 0.1193) +EDGE3_000__263 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__132 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__264 = Multipole( Kn1L = -4.07894736378E-6) +D000018__264 = Drift( L = 0.1193) +EDGE2_000__264 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__132 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__264 = Multipole( Kn1L = -4.4179123956E-5) +D000068__16 = Drift( L = 0.386407) +CH08_3 = HKicker( L = 0.2) +D000017__156 = Drift( L = 0.0638) +HQF_3__10 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__158 = Drift( L = 0.1559) +SF1_1__41 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__145 = Drift( L = 0.1042) +SF1_1__42 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__157 = Drift( L = 0.50037) +EDGE1_000__265 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__133 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__265 = Multipole( Kn1L = 4.07894736378E-6) +D000018__265 = Drift( L = 0.1193) +EDGE3_000__265 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__133 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__266 = Multipole( Kn1L = -4.07894736378E-6) +D000018__266 = Drift( L = 0.1193) +EDGE2_000__266 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__133 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__266 = Multipole( Kn1L = -4.4179123956E-5) +D000068__17 = Drift( L = 0.386407) +CV09_3 = VKicker( L = 0.2) +D000017__157 = Drift( L = 0.0638) +HQD_3__10 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__159 = Drift( L = 0.1559) +SD1_1__41 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__146 = Drift( L = 0.1042) +SD1_1__42 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__158 = Drift( L = 0.50037) +EDGE1_000__267 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__134 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__267 = Multipole( Kn1L = 4.07894736378E-6) +D000018__267 = Drift( L = 0.1193) +EDGE3_000__267 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__134 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__268 = Multipole( Kn1L = -4.07894736378E-6) +D000018__268 = Drift( L = 0.1193) +EDGE2_000__268 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__134 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__268 = Multipole( Kn1L = -4.4179123956E-5) +D000068__18 = Drift( L = 0.386407) +CH09_3 = HKicker( L = 0.2) +D000017__158 = Drift( L = 0.0638) +HQF_3__11 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__160 = Drift( L = 0.1559) +SF2_1__41 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__147 = Drift( L = 0.1042) +SF2_1__42 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__159 = Drift( L = 0.50037) +EDGE1_000__269 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__135 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__269 = Multipole( Kn1L = 4.07894736378E-6) +D000018__269 = Drift( L = 0.1193) +EDGE3_000__269 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__135 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__270 = Multipole( Kn1L = -4.07894736378E-6) +D000018__270 = Drift( L = 0.1193) +EDGE2_000__270 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__135 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__270 = Multipole( Kn1L = -4.4179123956E-5) +D000068__19 = Drift( L = 0.386407) +CV10_3 = VKicker( L = 0.2) +D000017__159 = Drift( L = 0.0638) +HQD_3__11 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__161 = Drift( L = 0.1559) +SD2_1__41 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__148 = Drift( L = 0.1042) +SD2_1__42 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__160 = Drift( L = 0.50037) +EDGE1_000__271 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__136 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__271 = Multipole( Kn1L = 4.07894736378E-6) +D000018__271 = Drift( L = 0.1193) +EDGE3_000__271 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__136 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__272 = Multipole( Kn1L = -4.07894736378E-6) +D000018__272 = Drift( L = 0.1193) +EDGE2_000__272 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__136 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__272 = Multipole( Kn1L = -4.4179123956E-5) +D000068__20 = Drift( L = 0.386407) +CH10_3 = HKicker( L = 0.2) +D000017__160 = Drift( L = 0.0638) +HQF_3__12 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__162 = Drift( L = 0.1559) +SF1_1__43 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__149 = Drift( L = 0.1042) +SF1_1__44 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__161 = Drift( L = 0.50037) +EDGE1_000__273 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__137 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__273 = Multipole( Kn1L = 4.07894736378E-6) +D000018__273 = Drift( L = 0.1193) +EDGE3_000__273 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__137 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__274 = Multipole( Kn1L = -4.07894736378E-6) +D000018__274 = Drift( L = 0.1193) +EDGE2_000__274 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__137 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__274 = Multipole( Kn1L = -4.4179123956E-5) +D000068__21 = Drift( L = 0.386407) +CV11_3 = VKicker( L = 0.2) +D000017__161 = Drift( L = 0.0638) +HQD_3__12 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__163 = Drift( L = 0.1559) +SD1_1__43 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__150 = Drift( L = 0.1042) +SD1_1__44 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__162 = Drift( L = 0.50037) +EDGE1_000__275 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__138 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__275 = Multipole( Kn1L = 4.07894736378E-6) +D000018__275 = Drift( L = 0.1193) +EDGE3_000__275 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__138 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__276 = Multipole( Kn1L = -4.07894736378E-6) +D000018__276 = Drift( L = 0.1193) +EDGE2_000__276 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__138 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__276 = Multipole( Kn1L = -4.4179123956E-5) +D000068__22 = Drift( L = 0.386407) +CH11_3 = HKicker( L = 0.2) +D000017__162 = Drift( L = 0.0638) +HQF_3__13 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__164 = Drift( L = 0.1559) +SF2_1__43 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__151 = Drift( L = 0.1042) +SF2_1__44 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__163 = Drift( L = 0.50037) +EDGE1_000__277 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__139 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__277 = Multipole( Kn1L = 4.07894736378E-6) +D000018__277 = Drift( L = 0.1193) +EDGE3_000__277 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__139 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__278 = Multipole( Kn1L = -4.07894736378E-6) +D000018__278 = Drift( L = 0.1193) +EDGE2_000__278 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__139 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__278 = Multipole( Kn1L = -4.4179123956E-5) +D000068__23 = Drift( L = 0.386407) +CV12_3 = VKicker( L = 0.2) +D000017__163 = Drift( L = 0.0638) +HQD_3__13 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__165 = Drift( L = 0.1559) +SD2_1__43 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__152 = Drift( L = 0.1042) +SD2_1__44 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__164 = Drift( L = 0.50037) +EDGE1_000__279 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__140 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__279 = Multipole( Kn1L = 4.07894736378E-6) +D000018__279 = Drift( L = 0.1193) +EDGE3_000__279 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__140 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__280 = Multipole( Kn1L = -4.07894736378E-6) +D000018__280 = Drift( L = 0.1193) +EDGE2_000__280 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__140 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__280 = Multipole( Kn1L = -4.4179123956E-5) +D000068__24 = Drift( L = 0.386407) +CH12_3 = HKicker( L = 0.2) +D000017__164 = Drift( L = 0.0638) +HQF_3__14 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__166 = Drift( L = 0.1559) +SF1_1__45 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__153 = Drift( L = 0.1042) +SF1_1__46 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__165 = Drift( L = 0.50037) +EDGE1_000__281 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__141 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__281 = Multipole( Kn1L = 4.07894736378E-6) +D000018__281 = Drift( L = 0.1193) +EDGE3_000__281 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__141 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__282 = Multipole( Kn1L = -4.07894736378E-6) +D000018__282 = Drift( L = 0.1193) +EDGE2_000__282 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__141 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__282 = Multipole( Kn1L = -4.4179123956E-5) +D000068__25 = Drift( L = 0.386407) +CV13_3 = VKicker( L = 0.2) +D000017__165 = Drift( L = 0.0638) +HQD_3__14 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__167 = Drift( L = 0.1559) +SD1_1__45 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__154 = Drift( L = 0.1042) +SD1_1__46 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__166 = Drift( L = 0.50037) +EDGE1_000__283 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__142 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__283 = Multipole( Kn1L = 4.07894736378E-6) +D000018__283 = Drift( L = 0.1193) +EDGE3_000__283 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__142 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__284 = Multipole( Kn1L = -4.07894736378E-6) +D000018__284 = Drift( L = 0.1193) +EDGE2_000__284 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__142 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__284 = Multipole( Kn1L = -4.4179123956E-5) +D000068__26 = Drift( L = 0.386407) +CH13_3 = HKicker( L = 0.2) +D000017__166 = Drift( L = 0.0638) +HQF_3__15 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__168 = Drift( L = 0.1559) +SF2_1__45 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__155 = Drift( L = 0.1042) +SF2_1__46 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__167 = Drift( L = 0.50037) +EDGE1_000__285 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__143 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__285 = Multipole( Kn1L = 4.07894736378E-6) +D000018__285 = Drift( L = 0.1193) +EDGE3_000__285 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__143 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__286 = Multipole( Kn1L = -4.07894736378E-6) +D000018__286 = Drift( L = 0.1193) +EDGE2_000__286 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__143 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__286 = Multipole( Kn1L = -4.4179123956E-5) +D000068__27 = Drift( L = 0.386407) +CV14_3 = VKicker( L = 0.2) +D000017__167 = Drift( L = 0.0638) +HQD_3__15 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__169 = Drift( L = 0.1559) +SD2_1__45 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__156 = Drift( L = 0.1042) +SD2_1__46 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__168 = Drift( L = 0.50037) +EDGE1_000__287 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__144 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__287 = Multipole( Kn1L = 4.07894736378E-6) +D000018__287 = Drift( L = 0.1193) +EDGE3_000__287 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__144 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__288 = Multipole( Kn1L = -4.07894736378E-6) +D000018__288 = Drift( L = 0.1193) +EDGE2_000__288 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__144 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__288 = Multipole( Kn1L = -4.4179123956E-5) +D000068__28 = Drift( L = 0.386407) +CH14_3 = HKicker( L = 0.2) +D000017__168 = Drift( L = 0.0638) +HQF_3__16 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__170 = Drift( L = 0.1559) +SF1_1__47 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000013__157 = Drift( L = 0.1042) +SF1_1__48 = Sextupole( L = 0.24, Kn2 = 1.2778843352549) +D000014__169 = Drift( L = 0.50037) +EDGE1_000__289 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__145 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__289 = Multipole( Kn1L = 4.07894736378E-6) +D000018__289 = Drift( L = 0.1193) +EDGE3_000__289 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__145 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__290 = Multipole( Kn1L = -4.07894736378E-6) +D000018__290 = Drift( L = 0.1193) +EDGE2_000__290 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__145 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__290 = Multipole( Kn1L = -4.4179123956E-5) +D000068__29 = Drift( L = 0.386407) +CV15_3 = VKicker( L = 0.2) +D000017__169 = Drift( L = 0.0638) +HQD_3__16 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__171 = Drift( L = 0.1559) +SD1_1__47 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000013__158 = Drift( L = 0.1042) +SD1_1__48 = Sextupole( L = 0.24, Kn2 = -3.3675331974214) +D000014__170 = Drift( L = 0.50037) +EDGE1_000__291 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__146 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__291 = Multipole( Kn1L = 4.07894736378E-6) +D000018__291 = Drift( L = 0.1193) +EDGE3_000__291 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__146 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__292 = Multipole( Kn1L = -4.07894736378E-6) +D000018__292 = Drift( L = 0.1193) +EDGE2_000__292 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__146 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__292 = Multipole( Kn1L = -4.4179123956E-5) +D000068__30 = Drift( L = 0.386407) +CH15_3 = HKicker( L = 0.2) +D000017__170 = Drift( L = 0.0638) +HQF_3__17 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__172 = Drift( L = 0.1559) +SF2_1__47 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000013__159 = Drift( L = 0.1042) +SF2_1__48 = Sextupole( L = 0.24, Kn2 = 1.7265866168549) +D000014__171 = Drift( L = 0.50037) +EDGE1_000__293 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__147 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__293 = Multipole( Kn1L = 4.07894736378E-6) +D000018__293 = Drift( L = 0.1193) +EDGE3_000__293 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__147 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__294 = Multipole( Kn1L = -4.07894736378E-6) +D000018__294 = Drift( L = 0.1193) +EDGE2_000__294 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__147 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__294 = Multipole( Kn1L = -4.4179123956E-5) +D000068__31 = Drift( L = 0.386407) +CV16_3 = VKicker( L = 0.2) +D000017__171 = Drift( L = 0.0638) +HQD_3__17 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__173 = Drift( L = 0.1559) +SD2_1__47 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000013__160 = Drift( L = 0.1042) +SD2_1__48 = Sextupole( L = 0.24, Kn2 = -3.4287727906214) +D000014__172 = Drift( L = 0.50037) +EDGE1_000__295 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__148 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__295 = Multipole( Kn1L = 4.07894736378E-6) +D000018__295 = Drift( L = 0.1193) +EDGE3_000__295 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__148 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__296 = Multipole( Kn1L = -4.07894736378E-6) +D000018__296 = Drift( L = 0.1193) +EDGE2_000__296 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__148 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__296 = Multipole( Kn1L = -4.4179123956E-5) +D000068__32 = Drift( L = 0.386407) +CH16_3 = HKicker( L = 0.2) +D000017__172 = Drift( L = 0.0638) +HQF_3__18 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__174 = Drift( L = 0.1559) +SF17_3 = Sextupole( L = 0.24) +D000014__173 = Drift( L = 0.50037) +DB23_3__1 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000067__3 = Drift( L = 1.442004) +CV17_3 = VKicker( L = 0.2) +D000017__173 = Drift( L = 0.0638) +HQD_3__18 = Quadrupole( L = 0.5, Kn1 = -0.3112230088,) +D000012__175 = Drift( L = 0.1559) +SD17_3 = Sextupole( L = 0.24) +D000014__174 = Drift( L = 0.50037) +DB23_3__2 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000067__4 = Drift( L = 1.442004) +CH17_3 = HKicker( L = 0.2) +D000017__174 = Drift( L = 0.0638) +HQF_3__19 = Quadrupole( L = 0.5, Kn1 = 0.3113990205,) +D000012__176 = Drift( L = 0.1559) +SF18_3 = Sextupole( L = 0.24) +D000069__1 = Drift( L = 4.065299) +HQD22_3 = Quadrupole( L = 0.6, Kn1 = -0.2554856666,) +D000069__2 = Drift( L = 4.065299) +HQF21_3 = Quadrupole( L = 0.6, Kn1 = 0.1978933106,) +D000032__43 = Drift( L = 0.535) +DB23_3__3 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__44 = Drift( L = 0.535) +HQD20_3 = Quadrupole( L = 0.6, Kn1 = -0.207628952) +D000032__45 = Drift( L = 0.535) +DB23_3__4 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__46 = Drift( L = 0.535) +HQF19_3 = Quadrupole( L = 0.6, Kn1 = 0.1950635038,) +D000070__1 = Drift( L = 4.543623) +HQD18_3 = Quadrupole( L = 0.6, Kn1 = -0.1791108016,) +D000070__2 = Drift( L = 4.543623) +HQF17_3 = Quadrupole( L = 0.6, Kn1 = 0.1829347368,) +D000070__3 = Drift( L = 4.543623) +HQD16_3 = Quadrupole( L = 0.6, Kn1 = -0.1453526612) +D000032__47 = Drift( L = 0.535) +DB23_3__5 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__48 = Drift( L = 0.535) +HQF15_3 = Quadrupole( L = 0.6, Kn1 = 0.1369224329) +D000032__49 = Drift( L = 0.535) +DB23_3__6 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__50 = Drift( L = 0.535) +HQD14_3 = Quadrupole( L = 0.6, Kn1 = -0.1449015186) +MCOLL_V1 = Marker() +D000071__1 = Drift( L = 11.224938) +HQF13_3 = Quadrupole( L = 0.6, Kn1 = 0.1268512382,) +D000071__2 = Drift( L = 11.224938) +MCOLL_V2 = Marker() +HQD12_3 = Quadrupole( L = 0.6, Kn1 = -0.1085522138,) +D000071__3 = Drift( L = 11.224938) +HQF11_3 = Quadrupole( L = 0.6, Kn1 = 0.1203850125,) +D000056__14 = Drift( L = 0.2) +SX41_4 = Sextupole( L = 0.24) +D000072__1 = Drift( L = 10.784938) +MCOLL_V3 = Marker() +HQD10_3 = Quadrupole( L = 0.6, Kn1 = -0.1222253567,) +D000056__15 = Drift( L = 0.2) +SX42_4 = Sextupole( L = 0.24) +D000072__2 = Drift( L = 10.784938) +HQF9_3 = Quadrupole( L = 0.6, Kn1 = 0.1171029044,) +D000056__16 = Drift( L = 0.2) +SX43_4 = Sextupole( L = 0.24) +D000056__17 = Drift( L = 0.2) +DB12_4P__4 = SBend( L = 3.0051000000005, g = 3.6299291204945E-3, e1 = 5.45415E-3, e2 = 5.45415E-3) +D000048__5 = Drift( L = 0.0975) +DB12_4P__5 = SBend( L = 3.0051000000005, g = 3.6299291204945E-3, e1 = 5.45415E-3, e2 = 5.45415E-3) +D000048__6 = Drift( L = 0.0975) +DB12_4P__6 = SBend( L = 3.0051000000005, g = 3.6299291204945E-3, e1 = 5.45415E-3, e2 = 5.45415E-3) +D000032__51 = Drift( L = 0.535) +HQD8_3 = Quadrupole( L = 0.6, Kn1 = -0.08962195033) +D000056__18 = Drift( L = 0.2) +SX44_4 = Sextupole( L = 0.24) +D000072__3 = Drift( L = 10.784938) +HQF7_3 = Quadrupole( L = 0.6, Kn1 = 0.1075244171,) +D000056__19 = Drift( L = 0.2) +SX45_4 = Sextupole( L = 0.24) +D000072__4 = Drift( L = 10.784938) +HQD6_3 = Quadrupole( L = 0.6, Kn1 = -0.1442054796) +D000056__20 = Drift( L = 0.2) +SX46_4 = Sextupole( L = 0.24) +D000073 = Drift( L = 5.172469) +IP4 = Marker() +D000074 = Drift( L = 4.758889) +SX47_4 = Sextupole( L = 0.24) +D000056__21 = Drift( L = 0.2) +HQD4_4 = Quadrupole( L = 0.6, Kn1 = 0.08272423335) +D000075__1 = Drift( L = 9.957779) +SX48_4 = Sextupole( L = 0.24) +D000056__22 = Drift( L = 0.2) +HQF5_4 = Quadrupole( L = 0.6, Kn1 = 0.07737902144) +D000075__2 = Drift( L = 9.957779) +SX49_4 = Sextupole( L = 0.24) +D000056__23 = Drift( L = 0.2) +HQD6_4 = Quadrupole( L = 0.6, Kn1 = -0.08977116391) +D000032__52 = Drift( L = 0.535) +DB12_4M__4 = SBend( L = 3.0051000000005, g = -3.6299291204945E-3, e1 = -5.45415E-3, e2 = -5.45415E-3) +D000048__7 = Drift( L = 0.0975) +DB12_4M__5 = SBend( L = 3.0051000000005, g = -3.6299291204945E-3, e1 = -5.45415E-3, e2 = -5.45415E-3) +D000048__8 = Drift( L = 0.0975) +DB12_4M__6 = SBend( L = 3.0051000000005, g = -3.6299291204945E-3, e1 = -5.45415E-3, e2 = -5.45415E-3) +D000056__24 = Drift( L = 0.2) +SX50_4 = Sextupole( L = 0.24) +D000056__25 = Drift( L = 0.2) +HQF7_4 = Quadrupole( L = 0.6, Kn1 = -0.0511651397,) +D000075__3 = Drift( L = 9.957779) +SX51_4 = Sextupole( L = 0.24) +D000056__26 = Drift( L = 0.2) +HQD8_4 = Quadrupole( L = 0.6, Kn1 = 0.1278181338,) +D000075__4 = Drift( L = 9.957779) +SX52_4 = Sextupole( L = 0.24) +D000056__27 = Drift( L = 0.2) +HQF9_4 = Quadrupole( L = 0.6, Kn1 = -0.1396142326) +D000076__1 = Drift( L = 10.397779) +HQD10_4 = Quadrupole( L = 0.6, Kn1 = 0.05939249134,) +D000076__2 = Drift( L = 10.397779) +HQF11_4 = Quadrupole( L = 0.6, Kn1 = 0.1718574708,) +D000032__53 = Drift( L = 0.535) +DB23_4__1 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__54 = Drift( L = 0.535) +HQD12_4 = Quadrupole( L = 0.6, Kn1 = -0.2619520638,) +D000032__55 = Drift( L = 0.535) +DB23_4__2 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__56 = Drift( L = 0.535) +HQF13_4 = Quadrupole( L = 0.6, Kn1 = 0.2845893896) +D000077__1 = Drift( L = 4.541529) +HQD14_4 = Quadrupole( L = 0.6, Kn1 = 0.1003750764,) +D000077__2 = Drift( L = 4.541529) +HQF15_4 = Quadrupole( L = 0.6, Kn1 = -0.1076656075,) +D000077__3 = Drift( L = 4.541529) +HQD16_4 = Quadrupole( L = 0.6, Kn1 = -0.1185804289,) +D000077__4 = Drift( L = 4.541529) +HQF17_4 = Quadrupole( L = 0.6, Kn1 = 0.1115918173,) +D000077__5 = Drift( L = 4.541529) +HQD18_4 = Quadrupole( L = 0.6, Kn1 = 0.1271940476,) +D000032__57 = Drift( L = 0.535) +DB23_4__3 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__58 = Drift( L = 0.535) +HQF19_4 = Quadrupole( L = 0.6, Kn1 = -0.2573861159,) +D000032__59 = Drift( L = 0.535) +DB23_4__4 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000032__60 = Drift( L = 0.535) +HQD20_4 = Quadrupole( L = 0.6, Kn1 = 0.1950308183,) +D000078__1 = Drift( L = 4.621244) +HQF21_4 = Quadrupole( L = 0.6, Kn1 = -0.03563213932,) +D000078__2 = Drift( L = 4.621244) +HQD22_4 = Quadrupole( L = 0.6, Kn1 = -0.3301534091,) +D000078__3 = Drift( L = 4.621244) +SFM1_5 = Sextupole( L = 0.24) +D000056__28 = Drift( L = 0.2) +HQF_5__1 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__175 = Drift( L = 0.0638) +CH00_5 = HKicker( L = 0.2) +D000079__1 = Drift( L = 1.367552) +DB23_4__5 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000014__175 = Drift( L = 0.50037) +SD00_5 = Sextupole( L = 0.24) +D000012__177 = Drift( L = 0.1559) +HQD_5__1 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__176 = Drift( L = 0.0638) +CV00_5 = VKicker( L = 0.2) +D000079__2 = Drift( L = 1.367552) +DB23_4__6 = SBend( L = 5.8047647843254, g = 3.9218064817153E-3, e1 = 0.011382582078, e2 = 0.011382582078) +D000014__176 = Drift( L = 0.50037) +SF00_5 = Sextupole( L = 0.24) +D000012__178 = Drift( L = 0.1559) +HQF_5__2 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__177 = Drift( L = 0.0638) +CH01_5 = HKicker( L = 0.2) +D000080__1 = Drift( L = 0.311955) +EDGE1_000__297 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__149 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__297 = Multipole( Kn1L = 4.07894736378E-6) +D000018__297 = Drift( L = 0.1193) +EDGE3_000__297 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__149 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__298 = Multipole( Kn1L = -4.07894736378E-6) +D000018__298 = Drift( L = 0.1193) +EDGE2_000__298 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__149 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__298 = Multipole( Kn1L = -4.4179123956E-5) +D000014__177 = Drift( L = 0.50037) +SD1_5__1 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000013__161 = Drift( L = 0.1042) +SD1_5__2 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000012__179 = Drift( L = 0.1559) +HQD_5__2 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__178 = Drift( L = 0.0638) +CV01_5 = VKicker( L = 0.2) +D000080__2 = Drift( L = 0.311955) +EDGE1_000__299 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__150 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__299 = Multipole( Kn1L = 4.07894736378E-6) +D000018__299 = Drift( L = 0.1193) +EDGE3_000__299 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__150 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__300 = Multipole( Kn1L = -4.07894736378E-6) +D000018__300 = Drift( L = 0.1193) +EDGE2_000__300 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__150 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__300 = Multipole( Kn1L = -4.4179123956E-5) +D000014__178 = Drift( L = 0.50037) +SF1_5__1 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000013__162 = Drift( L = 0.1042) +SF1_5__2 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000012__180 = Drift( L = 0.1559) +HQF_5__3 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__179 = Drift( L = 0.0638) +CH02_5 = HKicker( L = 0.2) +D000080__3 = Drift( L = 0.311955) +EDGE1_000__301 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__151 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__301 = Multipole( Kn1L = 4.07894736378E-6) +D000018__301 = Drift( L = 0.1193) +EDGE3_000__301 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__151 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__302 = Multipole( Kn1L = -4.07894736378E-6) +D000018__302 = Drift( L = 0.1193) +EDGE2_000__302 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__151 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__302 = Multipole( Kn1L = -4.4179123956E-5) +D000014__179 = Drift( L = 0.50037) +SD2_5__1 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000013__163 = Drift( L = 0.1042) +SD2_5__2 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000012__181 = Drift( L = 0.1559) +HQD_5__3 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__180 = Drift( L = 0.0638) +CV02_5 = VKicker( L = 0.2) +D000080__4 = Drift( L = 0.311955) +EDGE1_000__303 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__152 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__303 = Multipole( Kn1L = 4.07894736378E-6) +D000018__303 = Drift( L = 0.1193) +EDGE3_000__303 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__152 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__304 = Multipole( Kn1L = -4.07894736378E-6) +D000018__304 = Drift( L = 0.1193) +EDGE2_000__304 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__152 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__304 = Multipole( Kn1L = -4.4179123956E-5) +D000014__180 = Drift( L = 0.50037) +SF2_5__1 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000013__164 = Drift( L = 0.1042) +SF2_5__2 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000012__182 = Drift( L = 0.1559) +HQF_5__4 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__181 = Drift( L = 0.0638) +CH03_5 = HKicker( L = 0.2) +D000080__5 = Drift( L = 0.311955) +EDGE1_000__305 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__153 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__305 = Multipole( Kn1L = 4.07894736378E-6) +D000018__305 = Drift( L = 0.1193) +EDGE3_000__305 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__153 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__306 = Multipole( Kn1L = -4.07894736378E-6) +D000018__306 = Drift( L = 0.1193) +EDGE2_000__306 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__153 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__306 = Multipole( Kn1L = -4.4179123956E-5) +D000014__181 = Drift( L = 0.50037) +SD1_5__3 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000013__165 = Drift( L = 0.1042) +SD1_5__4 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000012__183 = Drift( L = 0.1559) +HQD_5__4 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__182 = Drift( L = 0.0638) +CV03_5 = VKicker( L = 0.2) +D000080__6 = Drift( L = 0.311955) +EDGE1_000__307 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__154 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__307 = Multipole( Kn1L = 4.07894736378E-6) +D000018__307 = Drift( L = 0.1193) +EDGE3_000__307 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__154 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__308 = Multipole( Kn1L = -4.07894736378E-6) +D000018__308 = Drift( L = 0.1193) +EDGE2_000__308 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__154 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__308 = Multipole( Kn1L = -4.4179123956E-5) +D000014__182 = Drift( L = 0.50037) +SF1_5__3 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000013__166 = Drift( L = 0.1042) +SF1_5__4 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000012__184 = Drift( L = 0.1559) +HQF_5__5 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__183 = Drift( L = 0.0638) +CH04_5 = HKicker( L = 0.2) +D000080__7 = Drift( L = 0.311955) +EDGE1_000__309 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__155 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__309 = Multipole( Kn1L = 4.07894736378E-6) +D000018__309 = Drift( L = 0.1193) +EDGE3_000__309 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__155 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__310 = Multipole( Kn1L = -4.07894736378E-6) +D000018__310 = Drift( L = 0.1193) +EDGE2_000__310 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__155 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__310 = Multipole( Kn1L = -4.4179123956E-5) +D000014__183 = Drift( L = 0.50037) +SD2_5__3 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000013__167 = Drift( L = 0.1042) +SD2_5__4 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000012__185 = Drift( L = 0.1559) +HQD_5__5 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__184 = Drift( L = 0.0638) +CV04_5 = VKicker( L = 0.2) +D000080__8 = Drift( L = 0.311955) +EDGE1_000__311 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__156 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__311 = Multipole( Kn1L = 4.07894736378E-6) +D000018__311 = Drift( L = 0.1193) +EDGE3_000__311 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__156 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__312 = Multipole( Kn1L = -4.07894736378E-6) +D000018__312 = Drift( L = 0.1193) +EDGE2_000__312 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__156 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__312 = Multipole( Kn1L = -4.4179123956E-5) +D000014__184 = Drift( L = 0.50037) +SF2_5__3 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000013__168 = Drift( L = 0.1042) +SF2_5__4 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000012__186 = Drift( L = 0.1559) +HQF_5__6 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__185 = Drift( L = 0.0638) +CH05_5 = HKicker( L = 0.2) +D000080__9 = Drift( L = 0.311955) +EDGE1_000__313 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__157 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__313 = Multipole( Kn1L = 4.07894736378E-6) +D000018__313 = Drift( L = 0.1193) +EDGE3_000__313 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__157 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__314 = Multipole( Kn1L = -4.07894736378E-6) +D000018__314 = Drift( L = 0.1193) +EDGE2_000__314 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__157 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__314 = Multipole( Kn1L = -4.4179123956E-5) +D000014__185 = Drift( L = 0.50037) +SD1_5__5 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000013__169 = Drift( L = 0.1042) +SD1_5__6 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000012__187 = Drift( L = 0.1559) +HQD_5__6 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__186 = Drift( L = 0.0638) +CV05_5 = VKicker( L = 0.2) +D000080__10 = Drift( L = 0.311955) +EDGE1_000__315 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__158 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__315 = Multipole( Kn1L = 4.07894736378E-6) +D000018__315 = Drift( L = 0.1193) +EDGE3_000__315 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__158 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__316 = Multipole( Kn1L = -4.07894736378E-6) +D000018__316 = Drift( L = 0.1193) +EDGE2_000__316 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__158 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__316 = Multipole( Kn1L = -4.4179123956E-5) +D000014__186 = Drift( L = 0.50037) +SF1_5__5 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000013__170 = Drift( L = 0.1042) +SF1_5__6 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000012__188 = Drift( L = 0.1559) +HQF_5__7 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__187 = Drift( L = 0.0638) +CH06_5 = HKicker( L = 0.2) +D000080__11 = Drift( L = 0.311955) +EDGE1_000__317 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__159 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__317 = Multipole( Kn1L = 4.07894736378E-6) +D000018__317 = Drift( L = 0.1193) +EDGE3_000__317 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__159 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__318 = Multipole( Kn1L = -4.07894736378E-6) +D000018__318 = Drift( L = 0.1193) +EDGE2_000__318 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__159 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__318 = Multipole( Kn1L = -4.4179123956E-5) +D000014__187 = Drift( L = 0.50037) +SD2_5__5 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000013__171 = Drift( L = 0.1042) +SD2_5__6 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000012__189 = Drift( L = 0.1559) +HQD_5__7 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__188 = Drift( L = 0.0638) +CV06_5 = VKicker( L = 0.2) +D000080__12 = Drift( L = 0.311955) +EDGE1_000__319 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__160 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__319 = Multipole( Kn1L = 4.07894736378E-6) +D000018__319 = Drift( L = 0.1193) +EDGE3_000__319 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__160 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__320 = Multipole( Kn1L = -4.07894736378E-6) +D000018__320 = Drift( L = 0.1193) +EDGE2_000__320 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__160 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__320 = Multipole( Kn1L = -4.4179123956E-5) +D000014__188 = Drift( L = 0.50037) +SF2_5__5 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000013__172 = Drift( L = 0.1042) +SF2_5__6 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000012__190 = Drift( L = 0.1559) +HQF_5__8 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__189 = Drift( L = 0.0638) +CH07_5 = HKicker( L = 0.2) +D000080__13 = Drift( L = 0.311955) +EDGE1_000__321 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__161 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__321 = Multipole( Kn1L = 4.07894736378E-6) +D000018__321 = Drift( L = 0.1193) +EDGE3_000__321 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__161 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__322 = Multipole( Kn1L = -4.07894736378E-6) +D000018__322 = Drift( L = 0.1193) +EDGE2_000__322 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__161 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__322 = Multipole( Kn1L = -4.4179123956E-5) +D000014__189 = Drift( L = 0.50037) +SD1_5__7 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000013__173 = Drift( L = 0.1042) +SD1_5__8 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000012__191 = Drift( L = 0.1559) +HQD_5__8 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__190 = Drift( L = 0.0638) +CV07_5 = VKicker( L = 0.2) +D000080__14 = Drift( L = 0.311955) +EDGE1_000__323 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__162 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__323 = Multipole( Kn1L = 4.07894736378E-6) +D000018__323 = Drift( L = 0.1193) +EDGE3_000__323 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__162 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__324 = Multipole( Kn1L = -4.07894736378E-6) +D000018__324 = Drift( L = 0.1193) +EDGE2_000__324 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__162 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__324 = Multipole( Kn1L = -4.4179123956E-5) +D000014__190 = Drift( L = 0.50037) +SF1_5__7 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000013__174 = Drift( L = 0.1042) +SF1_5__8 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000012__192 = Drift( L = 0.1559) +HQF_5__9 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__191 = Drift( L = 0.0638) +CH08_5 = HKicker( L = 0.2) +D000080__15 = Drift( L = 0.311955) +EDGE1_000__325 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__163 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__325 = Multipole( Kn1L = 4.07894736378E-6) +D000018__325 = Drift( L = 0.1193) +EDGE3_000__325 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__163 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__326 = Multipole( Kn1L = -4.07894736378E-6) +D000018__326 = Drift( L = 0.1193) +EDGE2_000__326 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__163 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__326 = Multipole( Kn1L = -4.4179123956E-5) +D000014__191 = Drift( L = 0.50037) +SD2_5__7 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000013__175 = Drift( L = 0.1042) +SD2_5__8 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000012__193 = Drift( L = 0.1559) +HQD_5__9 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__192 = Drift( L = 0.0638) +CV08_5 = VKicker( L = 0.2) +D000080__16 = Drift( L = 0.311955) +EDGE1_000__327 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__164 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__327 = Multipole( Kn1L = 4.07894736378E-6) +D000018__327 = Drift( L = 0.1193) +EDGE3_000__327 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__164 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__328 = Multipole( Kn1L = -4.07894736378E-6) +D000018__328 = Drift( L = 0.1193) +EDGE2_000__328 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__164 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__328 = Multipole( Kn1L = -4.4179123956E-5) +D000014__192 = Drift( L = 0.50037) +SF2_5__7 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000013__176 = Drift( L = 0.1042) +SF2_5__8 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000012__194 = Drift( L = 0.1559) +HQF_5__10 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__193 = Drift( L = 0.0638) +CH09_5 = HKicker( L = 0.2) +D000080__17 = Drift( L = 0.311955) +EDGE1_000__329 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__165 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__329 = Multipole( Kn1L = 4.07894736378E-6) +D000018__329 = Drift( L = 0.1193) +EDGE3_000__329 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__165 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__330 = Multipole( Kn1L = -4.07894736378E-6) +D000018__330 = Drift( L = 0.1193) +EDGE2_000__330 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__165 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__330 = Multipole( Kn1L = -4.4179123956E-5) +D000014__193 = Drift( L = 0.50037) +SD1_5__9 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000013__177 = Drift( L = 0.1042) +SD1_5__10 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000012__195 = Drift( L = 0.1559) +HQD_5__10 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__194 = Drift( L = 0.0638) +CV09_5 = VKicker( L = 0.2) +D000080__18 = Drift( L = 0.311955) +EDGE1_000__331 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__166 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__331 = Multipole( Kn1L = 4.07894736378E-6) +D000018__331 = Drift( L = 0.1193) +EDGE3_000__331 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__166 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__332 = Multipole( Kn1L = -4.07894736378E-6) +D000018__332 = Drift( L = 0.1193) +EDGE2_000__332 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__166 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__332 = Multipole( Kn1L = -4.4179123956E-5) +D000014__194 = Drift( L = 0.50037) +SF1_5__9 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000013__178 = Drift( L = 0.1042) +SF1_5__10 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000012__196 = Drift( L = 0.1559) +HQF_5__11 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__195 = Drift( L = 0.0638) +CH10_5 = HKicker( L = 0.2) +D000080__19 = Drift( L = 0.311955) +EDGE1_000__333 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__167 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__333 = Multipole( Kn1L = 4.07894736378E-6) +D000018__333 = Drift( L = 0.1193) +EDGE3_000__333 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__167 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__334 = Multipole( Kn1L = -4.07894736378E-6) +D000018__334 = Drift( L = 0.1193) +EDGE2_000__334 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__167 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__334 = Multipole( Kn1L = -4.4179123956E-5) +D000014__195 = Drift( L = 0.50037) +SD2_5__9 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000013__179 = Drift( L = 0.1042) +SD2_5__10 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000012__197 = Drift( L = 0.1559) +HQD_5__11 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__196 = Drift( L = 0.0638) +CV10_5 = VKicker( L = 0.2) +D000080__20 = Drift( L = 0.311955) +EDGE1_000__335 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__168 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__335 = Multipole( Kn1L = 4.07894736378E-6) +D000018__335 = Drift( L = 0.1193) +EDGE3_000__335 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__168 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__336 = Multipole( Kn1L = -4.07894736378E-6) +D000018__336 = Drift( L = 0.1193) +EDGE2_000__336 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__168 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__336 = Multipole( Kn1L = -4.4179123956E-5) +D000014__196 = Drift( L = 0.50037) +SF2_5__9 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000013__180 = Drift( L = 0.1042) +SF2_5__10 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000012__198 = Drift( L = 0.1559) +HQF_5__12 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__197 = Drift( L = 0.0638) +CH11_5 = HKicker( L = 0.2) +D000080__21 = Drift( L = 0.311955) +EDGE1_000__337 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__169 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__337 = Multipole( Kn1L = 4.07894736378E-6) +D000018__337 = Drift( L = 0.1193) +EDGE3_000__337 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__169 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__338 = Multipole( Kn1L = -4.07894736378E-6) +D000018__338 = Drift( L = 0.1193) +EDGE2_000__338 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__169 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__338 = Multipole( Kn1L = -4.4179123956E-5) +D000014__197 = Drift( L = 0.50037) +SD1_5__11 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000013__181 = Drift( L = 0.1042) +SD1_5__12 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000012__199 = Drift( L = 0.1559) +HQD_5__12 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__198 = Drift( L = 0.0638) +CV11_5 = VKicker( L = 0.2) +D000080__22 = Drift( L = 0.311955) +EDGE1_000__339 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__170 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__339 = Multipole( Kn1L = 4.07894736378E-6) +D000018__339 = Drift( L = 0.1193) +EDGE3_000__339 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__170 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__340 = Multipole( Kn1L = -4.07894736378E-6) +D000018__340 = Drift( L = 0.1193) +EDGE2_000__340 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__170 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__340 = Multipole( Kn1L = -4.4179123956E-5) +D000014__198 = Drift( L = 0.50037) +SF1_5__11 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000013__182 = Drift( L = 0.1042) +SF1_5__12 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000012__200 = Drift( L = 0.1559) +HQF_5__13 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__199 = Drift( L = 0.0638) +CH12_5 = HKicker( L = 0.2) +D000080__23 = Drift( L = 0.311955) +EDGE1_000__341 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__171 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__341 = Multipole( Kn1L = 4.07894736378E-6) +D000018__341 = Drift( L = 0.1193) +EDGE3_000__341 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__171 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__342 = Multipole( Kn1L = -4.07894736378E-6) +D000018__342 = Drift( L = 0.1193) +EDGE2_000__342 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__171 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__342 = Multipole( Kn1L = -4.4179123956E-5) +D000014__199 = Drift( L = 0.50037) +SD2_5__11 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000013__183 = Drift( L = 0.1042) +SD2_5__12 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000012__201 = Drift( L = 0.1559) +HQD_5__13 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__200 = Drift( L = 0.0638) +CV12_5 = VKicker( L = 0.2) +D000080__24 = Drift( L = 0.311955) +EDGE1_000__343 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__172 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__343 = Multipole( Kn1L = 4.07894736378E-6) +D000018__343 = Drift( L = 0.1193) +EDGE3_000__343 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__172 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__344 = Multipole( Kn1L = -4.07894736378E-6) +D000018__344 = Drift( L = 0.1193) +EDGE2_000__344 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__172 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__344 = Multipole( Kn1L = -4.4179123956E-5) +D000014__200 = Drift( L = 0.50037) +SF2_5__11 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000013__184 = Drift( L = 0.1042) +SF2_5__12 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000012__202 = Drift( L = 0.1559) +HQF_5__14 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__201 = Drift( L = 0.0638) +CH13_5 = HKicker( L = 0.2) +D000080__25 = Drift( L = 0.311955) +EDGE1_000__345 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__173 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__345 = Multipole( Kn1L = 4.07894736378E-6) +D000018__345 = Drift( L = 0.1193) +EDGE3_000__345 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__173 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__346 = Multipole( Kn1L = -4.07894736378E-6) +D000018__346 = Drift( L = 0.1193) +EDGE2_000__346 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__173 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__346 = Multipole( Kn1L = -4.4179123956E-5) +D000014__201 = Drift( L = 0.50037) +SD1_5__13 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000013__185 = Drift( L = 0.1042) +SD1_5__14 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000012__203 = Drift( L = 0.1559) +HQD_5__14 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__202 = Drift( L = 0.0638) +CV13_5 = VKicker( L = 0.2) +D000080__26 = Drift( L = 0.311955) +EDGE1_000__347 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__174 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__347 = Multipole( Kn1L = 4.07894736378E-6) +D000018__347 = Drift( L = 0.1193) +EDGE3_000__347 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__174 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__348 = Multipole( Kn1L = -4.07894736378E-6) +D000018__348 = Drift( L = 0.1193) +EDGE2_000__348 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__174 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__348 = Multipole( Kn1L = -4.4179123956E-5) +D000014__202 = Drift( L = 0.50037) +SF1_5__13 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000013__186 = Drift( L = 0.1042) +SF1_5__14 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000012__204 = Drift( L = 0.1559) +HQF_5__15 = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__203 = Drift( L = 0.0638) +CH14_5 = HKicker( L = 0.2) +D000080__27 = Drift( L = 0.311955) +EDGE1_000__349 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__175 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__349 = Multipole( Kn1L = 4.07894736378E-6) +D000018__349 = Drift( L = 0.1193) +EDGE3_000__349 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__175 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__350 = Multipole( Kn1L = -4.07894736378E-6) +D000018__350 = Drift( L = 0.1193) +EDGE2_000__350 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__175 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__350 = Multipole( Kn1L = -4.4179123956E-5) +D000014__203 = Drift( L = 0.50037) +SD2_5__13 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000013__187 = Drift( L = 0.1042) +SD2_5__14 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000012__205 = Drift( L = 0.1559) +HQD_5__15 = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__204 = Drift( L = 0.0638) +CV14_5 = VKicker( L = 0.2) +D000080__28 = Drift( L = 0.311955) +EDGE1_000__351 = Multipole( Kn1L = -4.4179123956E-5) +D01A_000__176 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE2_000__351 = Multipole( Kn1L = 4.07894736378E-6) +D000018__351 = Drift( L = 0.1193) +EDGE3_000__351 = Multipole( Kn1L = -4.07894736378E-6) +D23_000__176 = SBend( L = 0.611400127063, g = 3.6528025370199E-3) +EDGE3_000__352 = Multipole( Kn1L = -4.07894736378E-6) +D000018__352 = Drift( L = 0.1193) +EDGE2_000__352 = Multipole( Kn1L = 4.07894736378E-6) +D01B_000__176 = SBend( L = 3.005180646695, g = 3.65280253687E-3) +EDGE1_000__352 = Multipole( Kn1L = -4.4179123956E-5) +D000014__204 = Drift( L = 0.50037) +SF2_5__13 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000013__188 = Drift( L = 0.1042) +SF2_5__14 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000012__206 = Drift( L = 0.1559) +HQF_5C = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__205 = Drift( L = 0.0638) +CH15_5 = HKicker( L = 0.2) +D000080__29 = Drift( L = 0.311955) +EDGE1_001__1 = Multipole( Kn1L = -3.71750681571E-5) +D01A_001__1 = SBend( L = 3.005167861233, g = 3.3507810471753E-3) +EDGE2_001__1 = Multipole( Kn1L = 3.43231997011E-6) +D000029__9 = Drift( L = 0.1193) +EDGE3_001__1 = Multipole( Kn1L = -3.43231997011E-6) +D23_001__1 = SBend( L = 0.61140010692, g = 3.3507810471287E-3) +EDGE3_001__2 = Multipole( Kn1L = -3.43231997011E-6) +D000029__10 = Drift( L = 0.1193) +EDGE2_001__2 = Multipole( Kn1L = 3.43231997011E-6) +D01B_001__1 = SBend( L = 3.005167861233, g = 3.3507810471753E-3) +EDGE1_001__2 = Multipole( Kn1L = -3.71750681571E-5) +D000014__205 = Drift( L = 0.50037) +SD1_5__15 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000013__189 = Drift( L = 0.1042) +SD1_5__16 = Sextupole( L = 0.24, Kn2 = -1.2585512508) +D000012__207 = Drift( L = 0.1559) +HQD_5C = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__206 = Drift( L = 0.0638) +CV15_5 = VKicker( L = 0.2) +D000080__30 = Drift( L = 0.311955) +EDGE1_001__3 = Multipole( Kn1L = -3.71750681571E-5) +D01A_001__2 = SBend( L = 3.005167861233, g = 3.3507810471753E-3) +EDGE2_001__3 = Multipole( Kn1L = 3.43231997011E-6) +D000029__11 = Drift( L = 0.1193) +EDGE3_001__3 = Multipole( Kn1L = -3.43231997011E-6) +D23_001__2 = SBend( L = 0.61140010692, g = 3.3507810471287E-3) +EDGE3_001__4 = Multipole( Kn1L = -3.43231997011E-6) +D000029__12 = Drift( L = 0.1193) +EDGE2_001__4 = Multipole( Kn1L = 3.43231997011E-6) +D01B_001__2 = SBend( L = 3.005167861233, g = 3.3507810471753E-3) +EDGE1_001__4 = Multipole( Kn1L = -3.71750681571E-5) +D000014__206 = Drift( L = 0.50037) +SF1_5__15 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000013__190 = Drift( L = 0.1042) +SF1_5__16 = Sextupole( L = 0.24, Kn2 = 3.1529470258) +D000012__208 = Drift( L = 0.1559) +HQF_5B = Quadrupole( L = 0.5, Kn1 = 0.3139735856,) +D000017__207 = Drift( L = 0.0638) +CH16_5 = HKicker( L = 0.2) +D000080__31 = Drift( L = 0.311955) +EDGE1_001__5 = Multipole( Kn1L = -3.71750681571E-5) +D01A_001__3 = SBend( L = 3.005167861233, g = 3.3507810471753E-3) +EDGE2_001__5 = Multipole( Kn1L = 3.43231997011E-6) +D000029__13 = Drift( L = 0.1193) +EDGE3_001__5 = Multipole( Kn1L = -3.43231997011E-6) +D23_001__3 = SBend( L = 0.61140010692, g = 3.3507810471287E-3) +EDGE3_001__6 = Multipole( Kn1L = -3.43231997011E-6) +D000029__14 = Drift( L = 0.1193) +EDGE2_001__6 = Multipole( Kn1L = 3.43231997011E-6) +D01B_001__3 = SBend( L = 3.005167861233, g = 3.3507810471753E-3) +EDGE1_001__6 = Multipole( Kn1L = -3.71750681571E-5) +D000014__207 = Drift( L = 0.50037) +SD2_5__15 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000013__191 = Drift( L = 0.1042) +SD2_5__16 = Sextupole( L = 0.24, Kn2 = -6.1246897208) +D000012__209 = Drift( L = 0.1559) +HQD_5B = Quadrupole( L = 0.5, Kn1 = -0.3137968224,) +D000017__208 = Drift( L = 0.0638) +CV16_5 = VKicker( L = 0.2) +D000080__32 = Drift( L = 0.311955) +EDGE1_001__7 = Multipole( Kn1L = -3.71750681571E-5) +D01A_001__4 = SBend( L = 3.005167861233, g = 3.3507810471753E-3) +EDGE2_001__7 = Multipole( Kn1L = 3.43231997011E-6) +D000029__15 = Drift( L = 0.1193) +EDGE3_001__7 = Multipole( Kn1L = -3.43231997011E-6) +D23_001__4 = SBend( L = 0.61140010692, g = 3.3507810471287E-3) +EDGE3_001__8 = Multipole( Kn1L = -3.43231997011E-6) +D000029__16 = Drift( L = 0.1193) +EDGE2_001__8 = Multipole( Kn1L = 3.43231997011E-6) +D01B_001__4 = SBend( L = 3.005167861233, g = 3.3507810471753E-3) +EDGE1_001__8 = Multipole( Kn1L = -3.71750681571E-5) +D000014__208 = Drift( L = 0.50037) +SF2_5__15 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000013__192 = Drift( L = 0.1042) +SF2_5__16 = Sextupole( L = 0.24, Kn2 = 1.7622709942) +D000012__210 = Drift( L = 0.1559) +HQF_5A = Quadrupole( L = 0.5, Kn1 = 0.3153779824,) +D000011__4 = Drift( L = 1.1) +HQD_5A = Quadrupole( L = 0.5, Kn1 = -0.1030417826) +D000008__25 = Drift( L = 0.85) +MROT1__4 = Marker() +HSOL5_6__3 = Solenoid( L = 1.8) +D000008__26 = Drift( L = 0.85) +HQSS1_5 = Quadrupole( L = 0.6480402, Kn1 = -0.4317684894,) +D000009__31 = Drift( L = 0.25) +HQSS2_5 = Quadrupole( L = 0.9550568, Kn1 = -0.1999111594,) +D000009__32 = Drift( L = 0.25) +HQSS3_5 = Quadrupole( L = 1.634532, Kn1 = 0.3708753774) +D000009__33 = Drift( L = 0.25) +HQSS4_5 = Quadrupole( L = 1.020723, Kn1 = -0.288327878) +D000009__34 = Drift( L = 0.25) +HQSS5_5 = Quadrupole( L = 0.6861532, Kn1 = -0.1632518563,) +D000008__27 = Drift( L = 0.85) +HSOL5_6__4 = Solenoid( L = 1.8) +MROT2__4 = Marker() +D000008__28 = Drift( L = 0.85) +HQFF1_5 = Quadrupole( L = 0.8, Kn1 = -0.3422170623,) +D000081__1 = Drift( L = 0.566391) +DB23_5__1 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000081__2 = Drift( L = 0.566391) +QFF2_5 = Quadrupole( L = 1.2, Kn1 = 0.191103341,) +D000081__3 = Drift( L = 0.566391) +DB23_5__2 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000081__4 = Drift( L = 0.566391) +QFF3_5 = Quadrupole( L = 1.2, Kn1 = -0.1586177022,) +D000081__5 = Drift( L = 0.566391) +DB23_5__3 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000081__6 = Drift( L = 0.566391) +QFF4_5 = Quadrupole( L = 1, Kn1 = 0.3022856494,) +D000081__7 = Drift( L = 0.566391) +DB23_5__4 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000081__8 = Drift( L = 0.566391) +HQFF5_5 = Quadrupole( L = 0.6, Kn1 = -0.3354145962,) +D000081__9 = Drift( L = 0.566391) +DB23_5__5 = SBend( L = 3.8000605852935, g = 5.1475963740429E-3, e1 = 9.780589045E-3, e2 = 9.780589045E-3) +D000081__10 = Drift( L = 0.566391) +MFF_5 = Marker() +HQFF6_5 = Quadrupole( L = 0.5, Kn1 = 0.2871373468,) +D000008__29 = Drift( L = 0.85) +MROT3__4 = Marker() +HSOL20_6__3 = Solenoid( L = 5.5, Ksol = 0.142634259959) +D000008__30 = Drift( L = 0.85) +HQLS1_5 = Quadrupole( L = 0.9819319, Kn1 = 0.4980048) +D000009__35 = Drift( L = 0.25) +HQLS2_5 = Quadrupole( L = 1.469939, Kn1 = -0.4983425) +D000009__36 = Drift( L = 0.25) +HQLS3_5 = Quadrupole( L = 1.530059, Kn1 = 0.3253198) +D000009__37 = Drift( L = 0.25) +HQLS4_5 = Quadrupole( L = 0.5187944, Kn1 = 0.498934) +D000009__38 = Drift( L = 0.25) +HQLS5_5 = Quadrupole( L = 1.530059, Kn1 = 0.3253198) +D000009__39 = Drift( L = 0.25) +HQLS6_5 = Quadrupole( L = 1.469939, Kn1 = -0.4983425) +D000009__40 = Drift( L = 0.25) +HQLS7_5 = Quadrupole( L = 0.9819319, Kn1 = 0.4980048) +D000008__31 = Drift( L = 0.85) +HSOL20_6__4 = Solenoid( L = 5.5, Ksol = 0.142634259959) +MROT4__4 = Marker() +D000008__32 = Drift( L = 0.85) +MLRF_6 = Marker() +Q12EF_6 = Quadrupole( L = 1.2, Kn1 = 0.05667673526,) +D000006__30 = Drift( L = 0.4) +D3EF_6__1 = SBend( L = 3.8000341971292, g = 3.8674060652146E-3, e1 = 7.348137651E-3, e2 = 7.348137651E-3) +D000006__31 = Drift( L = 0.4) +Q11EF_6 = Quadrupole( L = 1.2, Kn1 = -0.12274232) +D000006__32 = Drift( L = 0.4) +D3EF_6__2 = SBend( L = 3.8000341971292, g = 3.8674060652146E-3, e1 = 7.348137651E-3, e2 = 7.348137651E-3) +D000006__33 = Drift( L = 0.4) +Q10EF_6 = Quadrupole( L = 1.2, Kn1 = 0.1325250342) +D000006__34 = Drift( L = 0.4) +D3EF_6__3 = SBend( L = 3.8000341971292, g = 3.8674060652146E-3, e1 = 7.348137651E-3, e2 = 7.348137651E-3) +D000006__35 = Drift( L = 0.4) +Q9EF_6 = Quadrupole( L = 1.2, Kn1 = 0.06324195501) +D000006__36 = Drift( L = 0.4) +D3EF_6__4 = SBend( L = 3.8000341971292, g = 3.8674060652146E-3, e1 = 7.348137651E-3, e2 = 7.348137651E-3) +D000006__37 = Drift( L = 0.4) +Q8EF_6 = Quadrupole( L = 1.2, Kn1 = -0.1305514285) +D000005__15 = Drift( L = 4.6) +Q7EF_6 = Quadrupole( L = 1.2, Kn1 = 0.2370467134,) +D000005__16 = Drift( L = 4.6) +Q6EF_6 = Quadrupole( L = 1.2, Kn1 = -0.2243033401) +D000005__17 = Drift( L = 4.6) +Q5EF_6 = Quadrupole( L = 1.2, Kn1 = 0.2358711172) +D000005__18 = Drift( L = 4.6) +Q4EF_6 = Quadrupole( L = 1.2, Kn1 = -0.1541105329) +D000082 = Drift( L = 12.410188) +Q3EF_6 = Quadrupole( L = 0.6, Kn1 = 0.1207364787,) +D000007__33 = Drift( L = 0.3) +RF_CRAB__4 = Drift( L = 4) +D000007__34 = Drift( L = 0.3) +Q2EF_6 = Quadrupole( L = 0.6, Kn1 = -0.07669023958) +D000006__38 = Drift( L = 0.4) +D1EF_6 = SBend( L = 3.8000633341148, g = -5.263071944473E-3, e1 = -0.0100000033605, e2 = -0.0100000033605) +D000083 = Drift( L = 20.3) +MCOLL_MASK = Marker() +Q1EF_6 = Quadrupole( L = 1.61, Kn1 = 0.1003916016) +D000022__2 = Drift( L = 3.76) +Q0EF_6 = Quadrupole( L = 1.2, Kn1 = -0.2168808898) +D000023__2 = Drift( L = 5.8) +IP6__2 = Marker() +end + + +ring = Beamline([ IP6__1, D000001__1, Q1ER_6, D000002__1, Q2ER_6, D000002__2, D2ER_6, D000003__1, Q3ER_6, +D000004, Q4ER_6, D000005__1, Q5ER_6, D000006__1, D3ER_6, D000006__2, Q6ER_6, D000005__2, Q7ER_6, +D000005__3, Q9ER_6, D000007__1, RF_CRAB__1, D000007__2, Q10ER_6, D000005__4, Q11ER_6, D000006__3, +D5ER_6__1, D000006__4, Q12ER_6, D000006__5, D5ER_6__2, D000006__6, Q13ER_6, D000006__7, D5ER_6__3, +D000006__8, Q14ER_6, D000006__9, D5ER_6__4, D000006__10, Q15ER_6, MLRR_6, D000008__1, MROT4__1, +HSOL20_6__1, D000008__2, HQLS7_6, D000009__1, HQLS6_6, D000009__2, HQLS5_6, D000009__3, HQLS4_6, +D000009__4, HQLS3_6, D000009__5, HQLS2_6, D000009__6, HQLS1_6, D000008__3, HSOL20_6__2, MROT3__1, +D000008__4, HQFF6_6, MFF_6, D000010__1, DB23_6__1, D000010__2, HQFF5_6, D000010__3, DB23_6__2, +D000010__4, QFF4_6, D000010__5, DB23_6__3, D000010__6, QFF3_6, D000010__7, DB23_6__4, D000010__8, +QFF2_6, D000010__9, DB23_6__5, D000010__10, QFF1_6, D000008__5, MROT2__1, HSOL5_6__1, D000008__6, +HQSS5_6, D000009__7, HQSS4_6, D000009__8, HQSS3_6, D000009__9, HQSS2_6, D000009__10, HQSS1_6, +D000008__7, HSOL5_6__2, MROT1__1, D000008__8, HQD_6A, D000011__1, HQF_6A, D000012__1, SF1_7__1, +D000013__1, SF1_7__2, D000014__1, EDGE1_002__1, D01A_002__1, EDGE2_002__1, D000015__1, EDGE3_002__1, +D23_002__1, EDGE3_002__2, D000015__2, EDGE2_002__2, D01B_002__1, EDGE1_002__2, D000016__1, CV01_7, +D000017__1, HQD_6B, D000012__2, SD1_7__1, D000013__2, SD1_7__2, D000014__2, EDGE1_002__3, D01A_002__2, +EDGE2_002__3, D000015__3, EDGE3_002__3, D23_002__2, EDGE3_002__4, D000015__4, EDGE2_002__4, D01B_002__2, +EDGE1_002__4, D000016__2, CH01_7, D000017__2, HQF_6B, D000012__3, SF2_7__1, D000013__3, SF2_7__2, +D000014__3, EDGE1_002__5, D01A_002__3, EDGE2_002__5, D000015__5, EDGE3_002__5, D23_002__3, EDGE3_002__6, +D000015__6, EDGE2_002__6, D01B_002__3, EDGE1_002__6, D000016__3, CV02_7, D000017__3, HQD_6C, D000012__4, +SD2_7__1, D000013__4, SD2_7__2, D000014__4, EDGE1_002__7, D01A_002__4, EDGE2_002__7, D000015__7, +EDGE3_002__7, D23_002__4, EDGE3_002__8, D000015__8, EDGE2_002__8, D01B_002__4, EDGE1_002__8, D000016__4, +CH02_7, D000017__4, HQF_6C, D000012__5, SF1_7__3, D000013__5, SF1_7__4, D000014__5, EDGE1_000__1, +D01A_000__1, EDGE2_000__1, D000018__1, EDGE3_000__1, D23_000__1, EDGE3_000__2, D000018__2, EDGE2_000__2, +D01B_000__1, EDGE1_000__2, D000016__5, CV03_7, D000017__5, HQD_7__1, D000012__6, SD1_7__3, D000013__6, +SD1_7__4, D000014__6, EDGE1_000__3, D01A_000__2, EDGE2_000__3, D000018__3, EDGE3_000__3, D23_000__2, +EDGE3_000__4, D000018__4, EDGE2_000__4, D01B_000__2, EDGE1_000__4, D000016__6, CH03_7, D000017__6, +HQF_7__1, D000012__7, SF2_7__3, D000013__7, SF2_7__4, D000014__7, EDGE1_000__5, D01A_000__3, +EDGE2_000__5, D000018__5, EDGE3_000__5, D23_000__3, EDGE3_000__6, D000018__6, EDGE2_000__6, D01B_000__3, +EDGE1_000__6, D000016__7, CV04_7, D000017__7, HQD_7__2, D000012__8, SD2_7__3, D000013__8, SD2_7__4, +D000014__8, EDGE1_000__7, D01A_000__4, EDGE2_000__7, D000018__7, EDGE3_000__7, D23_000__4, EDGE3_000__8, +D000018__8, EDGE2_000__8, D01B_000__4, EDGE1_000__8, D000016__8, CH04_7, D000017__8, HQF_7__2, +D000012__9, SF1_7__5, D000013__9, SF1_7__6, D000014__9, EDGE1_000__9, D01A_000__5, EDGE2_000__9, +D000018__9, EDGE3_000__9, D23_000__5, EDGE3_000__10, D000018__10, EDGE2_000__10, D01B_000__5, +EDGE1_000__10, D000016__9, CV05_7, D000017__9, HQD_7__3, D000012__10, SD1_7__5, D000013__10, SD1_7__6, +D000014__10, EDGE1_000__11, D01A_000__6, EDGE2_000__11, D000018__11, EDGE3_000__11, D23_000__6, +EDGE3_000__12, D000018__12, EDGE2_000__12, D01B_000__6, EDGE1_000__12, D000016__10, CH05_7, D000017__10, +HQF_7__3, D000012__11, SF2_7__5, D000013__11, SF2_7__6, D000014__11, EDGE1_000__13, D01A_000__7, +EDGE2_000__13, D000018__13, EDGE3_000__13, D23_000__7, EDGE3_000__14, D000018__14, EDGE2_000__14, +D01B_000__7, EDGE1_000__14, D000016__11, CV06_7, D000017__11, HQD_7__4, D000012__12, SD2_7__5, +D000013__12, SD2_7__6, D000014__12, EDGE1_000__15, D01A_000__8, EDGE2_000__15, D000018__15, +EDGE3_000__15, D23_000__8, EDGE3_000__16, D000018__16, EDGE2_000__16, D01B_000__8, EDGE1_000__16, +D000016__12, CH06_7, D000017__12, HQF_7__4, D000012__13, SF1_7__7, D000013__13, SF1_7__8, D000014__13, +EDGE1_000__17, D01A_000__9, EDGE2_000__17, D000018__17, EDGE3_000__17, D23_000__9, EDGE3_000__18, +D000018__18, EDGE2_000__18, D01B_000__9, EDGE1_000__18, D000016__13, CV07_7, D000017__13, HQD_7__5, +D000012__14, SD1_7__7, D000013__14, SD1_7__8, D000014__14, EDGE1_000__19, D01A_000__10, EDGE2_000__19, +D000018__19, EDGE3_000__19, D23_000__10, EDGE3_000__20, D000018__20, EDGE2_000__20, D01B_000__10, +EDGE1_000__20, D000016__14, CH07_7, D000017__14, HQF_7__5, D000012__15, SF2_7__7, D000013__15, SF2_7__8, +D000014__15, EDGE1_000__21, D01A_000__11, EDGE2_000__21, D000018__21, EDGE3_000__21, D23_000__11, +EDGE3_000__22, D000018__22, EDGE2_000__22, D01B_000__11, EDGE1_000__22, D000016__15, CV08_7, +D000017__15, HQD_7__6, D000012__16, SD2_7__7, D000013__16, SD2_7__8, D000014__16, EDGE1_000__23, +D01A_000__12, EDGE2_000__23, D000018__23, EDGE3_000__23, D23_000__12, EDGE3_000__24, D000018__24, +EDGE2_000__24, D01B_000__12, EDGE1_000__24, D000016__16, CH08_7, D000017__16, HQF_7__6, D000012__17, +SF1_7__9, D000013__17, SF1_7__10, D000014__17, EDGE1_000__25, D01A_000__13, EDGE2_000__25, D000018__25, +EDGE3_000__25, D23_000__13, EDGE3_000__26, D000018__26, EDGE2_000__26, D01B_000__13, EDGE1_000__26, +D000016__17, CV09_7, D000017__17, HQD_7__7, D000012__18, SD1_7__9, D000013__18, SD1_7__10, D000014__18, +EDGE1_000__27, D01A_000__14, EDGE2_000__27, D000018__27, EDGE3_000__27, D23_000__14, EDGE3_000__28, +D000018__28, EDGE2_000__28, D01B_000__14, EDGE1_000__28, D000016__18, CH09_7, D000017__18, HQF_7__7, +D000012__19, SF2_7__9, D000013__19, SF2_7__10, D000014__19, EDGE1_000__29, D01A_000__15, EDGE2_000__29, +D000018__29, EDGE3_000__29, D23_000__15, EDGE3_000__30, D000018__30, EDGE2_000__30, D01B_000__15, +EDGE1_000__30, D000016__19, CV10_7, D000017__19, HQD_7__8, D000012__20, SD2_7__9, D000013__20, +SD2_7__10, D000014__20, EDGE1_000__31, D01A_000__16, EDGE2_000__31, D000018__31, EDGE3_000__31, +D23_000__16, EDGE3_000__32, D000018__32, EDGE2_000__32, D01B_000__16, EDGE1_000__32, D000016__20, +CH10_7, D000017__20, HQF_7__8, D000012__21, SF1_7__11, D000013__21, SF1_7__12, D000014__21, +EDGE1_000__33, D01A_000__17, EDGE2_000__33, D000018__33, EDGE3_000__33, D23_000__17, EDGE3_000__34, +D000018__34, EDGE2_000__34, D01B_000__17, EDGE1_000__34, D000016__21, CV11_7, D000017__21, HQD_7__9, +D000012__22, SD1_7__11, D000013__22, SD1_7__12, D000014__22, EDGE1_000__35, D01A_000__18, EDGE2_000__35, +D000018__35, EDGE3_000__35, D23_000__18, EDGE3_000__36, D000018__36, EDGE2_000__36, D01B_000__18, +EDGE1_000__36, D000016__22, CH11_7, D000017__22, HQF_7__9, D000012__23, SF2_7__11, D000013__23, +SF2_7__12, D000014__23, EDGE1_000__37, D01A_000__19, EDGE2_000__37, D000018__37, EDGE3_000__37, +D23_000__19, EDGE3_000__38, D000018__38, EDGE2_000__38, D01B_000__19, EDGE1_000__38, D000016__23, +CV12_7, D000017__23, HQD_7__10, D000012__24, SD2_7__11, D000013__24, SD2_7__12, D000014__24, +EDGE1_000__39, D01A_000__20, EDGE2_000__39, D000018__39, EDGE3_000__39, D23_000__20, EDGE3_000__40, +D000018__40, EDGE2_000__40, D01B_000__20, EDGE1_000__40, D000016__24, CH12_7, D000017__24, HQF_7__10, +D000012__25, SF1_7__13, D000013__25, SF1_7__14, D000014__25, EDGE1_000__41, D01A_000__21, EDGE2_000__41, +D000018__41, EDGE3_000__41, D23_000__21, EDGE3_000__42, D000018__42, EDGE2_000__42, D01B_000__21, +EDGE1_000__42, D000016__25, CV13_7, D000017__25, HQD_7__11, D000012__26, SD1_7__13, D000013__26, +SD1_7__14, D000014__26, EDGE1_000__43, D01A_000__22, EDGE2_000__43, D000018__43, EDGE3_000__43, +D23_000__22, EDGE3_000__44, D000018__44, EDGE2_000__44, D01B_000__22, EDGE1_000__44, D000016__26, +CH13_7, D000017__26, HQF_7__11, D000012__27, SF2_7__13, D000013__27, SF2_7__14, D000014__27, +EDGE1_000__45, D01A_000__23, EDGE2_000__45, D000018__45, EDGE3_000__45, D23_000__23, EDGE3_000__46, +D000018__46, EDGE2_000__46, D01B_000__23, EDGE1_000__46, D000016__27, CV14_7, D000017__27, HQD_7__12, +D000012__28, SD2_7__13, D000013__28, SD2_7__14, D000014__28, EDGE1_000__47, D01A_000__24, EDGE2_000__47, +D000018__47, EDGE3_000__47, D23_000__24, EDGE3_000__48, D000018__48, EDGE2_000__48, D01B_000__24, +EDGE1_000__48, D000016__28, CH14_7, D000017__28, HQF_7C, D000012__29, SF1_7__15, D000013__29, SF1_7__16, +D000014__29, EDGE1_003__1, D01A_003__1, EDGE2_003__1, D000015__9, EDGE3_003__1, D23_003__1, +EDGE3_003__2, D000015__10, EDGE2_003__2, D01B_003__1, EDGE1_003__2, D000016__29, CV15_7, D000017__29, +HQD_7C, D000012__30, SD1_7__15, D000013__30, SD1_7__16, D000014__30, EDGE1_003__3, D01A_003__2, +EDGE2_003__3, D000015__11, EDGE3_003__3, D23_003__2, EDGE3_003__4, D000015__12, EDGE2_003__4, +D01B_003__2, EDGE1_003__4, D000016__30, CH15_7, D000017__30, HQF_7B, D000012__31, SF2_7__15, +D000013__31, SF2_7__16, D000014__31, EDGE1_003__5, D01A_003__3, EDGE2_003__5, D000015__13, EDGE3_003__5, +D23_003__3, EDGE3_003__6, D000015__14, EDGE2_003__6, D01B_003__3, EDGE1_003__6, D000016__31, CV16_7, +D000017__31, HQD_7B, D000012__32, SD2_7__15, D000013__32, SD2_7__16, D000014__32, EDGE1_003__7, +D01A_003__4, EDGE2_003__7, D000015__15, EDGE3_003__7, D23_003__4, EDGE3_003__8, D000015__16, +EDGE2_003__8, D01B_003__4, EDGE1_003__8, D000016__32, CH16_7, D000017__32, HQF_7A, D000011__2, HQD_7A, +D000008__9, MROT1__2, HSOL5_8__1, D000008__10, HQSS1_7, D000009__11, HQSS2_7, D000009__12, HQSS3_7, +D000009__13, HQSS4_7, D000009__14, HQSS5_7, D000008__11, HSOL5_8__2, MROT2__2, D000008__12, HQFF1_7, +D000019__1, DB23_7__1, D000019__2, QFF2_7, D000019__3, DB23_7__2, D000019__4, QFF3_7, D000019__5, +DB23_7__3, D000019__6, QFF4_7, D000019__7, DB23_7__4, D000019__8, HQFF5_7, D000019__9, DB23_7__5, +D000019__10, MFF_7, HQFF6_7, D000008__13, MROT3__2, HSOL20_8__1, D000008__14, HQLS1_7, D000009__15, +HQLS2_7, D000009__16, HQLS3_7, D000009__17, HQLS4_7, D000009__18, HQLS5_7, D000009__19, HQLS6_7, +D000009__20, HQLS7_7, D000008__15, HSOL20_8__2, MROT4__2, D000008__16, MLRF_8, Q14EF_8, D000006__11, +D3EF_8__1, D000006__12, Q13EF_8, D000006__13, D3EF_8__2, D000006__14, Q12EF_8, D000006__15, D3EF_8__3, +D000006__16, Q11EF_8, D000006__17, D2EF_8, D000006__18, Q10EF_8, D000005__5, Q9EF_8, D000005__6, Q8EF_8, +D000005__7, Q7EF_8, D000005__8, Q6EF_8, D000005__9, Q5EF_8, D000005__10, Q4EF_8, D000020, Q3EF_8, +D000007__3, RF_CRAB__2, D000007__4, Q2EF_8, D000006__19, D1EF_8__1, D000006__20, D1EF_8__2, D000021, +Q1EF_8, D000022__1, Q0EF_8, D000023__1, IP8, D000001__2, Q1ER_8, D000002__3, Q2ER_8, D000002__4, D2ER_8, +D000003__2, Q3ER_8, D000006__21, D3ER_8, D000024, Q4ER_8, D000025, Q5ER_8, D000026, Q6ER_8, D000005__11, +Q7ER_8, D000005__12, Q8ER_8, D000005__13, Q9ER_8, D000007__5, RF_CRAB__3, D000007__6, Q10ER_8, +D000005__14, Q11ER_8, D000006__22, D4ER_8, D000006__23, Q12ER_8, D000006__24, D5ER_8__1, D000006__25, +Q13ER_8, D000006__26, D5ER_8__2, D000006__27, Q14ER_8, D000006__28, D5ER_8__3, D000006__29, Q15ER_8, +MLRR_8, D000008__17, MROT4__3, HSOL20_8__3, D000008__18, HQLS7_8, D000009__21, HQLS6_8, D000009__22, +HQLS5_8, D000009__23, HQLS4_8, D000009__24, HQLS3_8, D000009__25, HQLS2_8, D000009__26, HQLS1_8, +D000008__19, HSOL20_8__4, MROT3__3, D000008__20, HQFF6_8, MFF_8, D000027__1, DB23_8__1, D000027__2, +HQFF5_8, D000027__3, DB23_8__2, D000027__4, QFF4_8, D000027__5, DB23_8__3, D000027__6, QFF3_8, +D000027__7, DB23_8__4, D000027__8, QFF2_8, D000027__9, DB23_8__5, D000027__10, QFF1_8, D000008__21, +MROT2__3, HSOL5_8__3, D000008__22, HQSS5_8, D000009__27, HQSS4_8, D000009__28, HQSS3_8, D000009__29, +HQSS2_8, D000009__30, HQSS1_8, D000008__23, HSOL5_8__4, MROT1__3, D000008__24, HQD_8A, D000011__3, +HQF_8A, D000017__33, CH01_9, D000028__1, EDGE1_004__1, D01A_004__1, EDGE2_004__1, D000029__1, +EDGE3_004__1, D23_004__1, EDGE3_004__2, D000029__2, EDGE2_004__2, D01B_004__1, EDGE1_004__2, +D000014__33, SD1_9__1, D000013__33, SD1_9__2, D000012__33, HQD_8B, D000017__34, CV01_9, D000028__2, +EDGE1_004__3, D01A_004__2, EDGE2_004__3, D000029__3, EDGE3_004__3, D23_004__2, EDGE3_004__4, D000029__4, +EDGE2_004__4, D01B_004__2, EDGE1_004__4, D000014__34, SF1_9__1, D000013__34, SF1_9__2, D000012__34, +HQF_8B, D000017__35, CH02_9, D000028__3, EDGE1_004__5, D01A_004__3, EDGE2_004__5, D000029__5, +EDGE3_004__5, D23_004__3, EDGE3_004__6, D000029__6, EDGE2_004__6, D01B_004__3, EDGE1_004__6, +D000014__35, SD2_9__1, D000013__35, SD2_9__2, D000012__35, HQD_8C, D000017__36, CV02_9, D000028__4, +EDGE1_004__7, D01A_004__4, EDGE2_004__7, D000029__7, EDGE3_004__7, D23_004__4, EDGE3_004__8, D000029__8, +EDGE2_004__8, D01B_004__4, EDGE1_004__8, D000014__36, SF2_9__1, D000013__36, SF2_9__2, D000012__36, +HQF_8C, D000017__37, CH03_9, D000028__5, EDGE1_000__49, D01A_000__25, EDGE2_000__49, D000018__49, +EDGE3_000__49, D23_000__25, EDGE3_000__50, D000018__50, EDGE2_000__50, D01B_000__25, EDGE1_000__50, +D000014__37, SD1_9__3, D000013__37, SD1_9__4, D000012__37, HQD_9__1, D000017__38, CV03_9, D000028__6, +EDGE1_000__51, D01A_000__26, EDGE2_000__51, D000018__51, EDGE3_000__51, D23_000__26, EDGE3_000__52, +D000018__52, EDGE2_000__52, D01B_000__26, EDGE1_000__52, D000014__38, SF1_9__3, D000013__38, SF1_9__4, +D000012__38, HQF_9__1, D000017__39, CH04_9, D000028__7, EDGE1_000__53, D01A_000__27, EDGE2_000__53, +D000018__53, EDGE3_000__53, D23_000__27, EDGE3_000__54, D000018__54, EDGE2_000__54, D01B_000__27, +EDGE1_000__54, D000014__39, SD2_9__3, D000013__39, SD2_9__4, D000012__39, HQD_9__2, D000017__40, CV04_9, +D000028__8, EDGE1_000__55, D01A_000__28, EDGE2_000__55, D000018__55, EDGE3_000__55, D23_000__28, +EDGE3_000__56, D000018__56, EDGE2_000__56, D01B_000__28, EDGE1_000__56, D000014__40, SF2_9__3, +D000013__40, SF2_9__4, D000012__40, HQF_9__2, D000017__41, CH05_9, D000028__9, EDGE1_000__57, +D01A_000__29, EDGE2_000__57, D000018__57, EDGE3_000__57, D23_000__29, EDGE3_000__58, D000018__58, +EDGE2_000__58, D01B_000__29, EDGE1_000__58, D000014__41, SD1_9__5, D000013__41, SD1_9__6, D000012__41, +HQD_9__3, D000017__42, CV05_9, D000028__10, EDGE1_000__59, D01A_000__30, EDGE2_000__59, D000018__59, +EDGE3_000__59, D23_000__30, EDGE3_000__60, D000018__60, EDGE2_000__60, D01B_000__30, EDGE1_000__60, +D000014__42, SF1_9__5, D000013__42, SF1_9__6, D000012__42, HQF_9__3, D000017__43, CH06_9, D000028__11, +EDGE1_000__61, D01A_000__31, EDGE2_000__61, D000018__61, EDGE3_000__61, D23_000__31, EDGE3_000__62, +D000018__62, EDGE2_000__62, D01B_000__31, EDGE1_000__62, D000014__43, SD2_9__5, D000013__43, SD2_9__6, +D000012__43, HQD_9__4, D000017__44, CV06_9, D000028__12, EDGE1_000__63, D01A_000__32, EDGE2_000__63, +D000018__63, EDGE3_000__63, D23_000__32, EDGE3_000__64, D000018__64, EDGE2_000__64, D01B_000__32, +EDGE1_000__64, D000014__44, SF2_9__5, D000013__44, SF2_9__6, D000012__44, HQF_9__4, D000017__45, CH07_9, +D000028__13, EDGE1_000__65, D01A_000__33, EDGE2_000__65, D000018__65, EDGE3_000__65, D23_000__33, +EDGE3_000__66, D000018__66, EDGE2_000__66, D01B_000__33, EDGE1_000__66, D000014__45, SD1_9__7, +D000013__45, SD1_9__8, D000012__45, HQD_9__5, D000017__46, CV07_9, D000028__14, EDGE1_000__67, +D01A_000__34, EDGE2_000__67, D000018__67, EDGE3_000__67, D23_000__34, EDGE3_000__68, D000018__68, +EDGE2_000__68, D01B_000__34, EDGE1_000__68, D000014__46, SF1_9__7, D000013__46, SF1_9__8, D000012__46, +HQF_9__5, D000017__47, CH08_9, D000028__15, EDGE1_000__69, D01A_000__35, EDGE2_000__69, D000018__69, +EDGE3_000__69, D23_000__35, EDGE3_000__70, D000018__70, EDGE2_000__70, D01B_000__35, EDGE1_000__70, +D000014__47, SD2_9__7, D000013__47, SD2_9__8, D000012__47, HQD_9__6, D000017__48, CV08_9, D000028__16, +EDGE1_000__71, D01A_000__36, EDGE2_000__71, D000018__71, EDGE3_000__71, D23_000__36, EDGE3_000__72, +D000018__72, EDGE2_000__72, D01B_000__36, EDGE1_000__72, D000014__48, SF2_9__7, D000013__48, SF2_9__8, +D000012__48, HQF_9__6, D000017__49, CH09_9, D000028__17, EDGE1_000__73, D01A_000__37, EDGE2_000__73, +D000018__73, EDGE3_000__73, D23_000__37, EDGE3_000__74, D000018__74, EDGE2_000__74, D01B_000__37, +EDGE1_000__74, D000014__49, SD1_9__9, D000013__49, SD1_9__10, D000012__49, HQD_9__7, D000017__50, +CV09_9, D000028__18, EDGE1_000__75, D01A_000__38, EDGE2_000__75, D000018__75, EDGE3_000__75, +D23_000__38, EDGE3_000__76, D000018__76, EDGE2_000__76, D01B_000__38, EDGE1_000__76, D000014__50, +SF1_9__9, D000013__50, SF1_9__10, D000012__50, HQF_9__7, D000017__51, CH10_9, D000028__19, +EDGE1_000__77, D01A_000__39, EDGE2_000__77, D000018__77, EDGE3_000__77, D23_000__39, EDGE3_000__78, +D000018__78, EDGE2_000__78, D01B_000__39, EDGE1_000__78, D000014__51, SD2_9__9, D000013__51, SD2_9__10, +D000012__51, HQD_9__8, D000017__52, CV10_9, D000028__20, EDGE1_000__79, D01A_000__40, EDGE2_000__79, +D000018__79, EDGE3_000__79, D23_000__40, EDGE3_000__80, D000018__80, EDGE2_000__80, D01B_000__40, +EDGE1_000__80, D000014__52, SF2_9__9, D000013__52, SF2_9__10, D000012__52, HQF_9__8, D000017__53, +CH11_9, D000028__21, EDGE1_000__81, D01A_000__41, EDGE2_000__81, D000018__81, EDGE3_000__81, +D23_000__41, EDGE3_000__82, D000018__82, EDGE2_000__82, D01B_000__41, EDGE1_000__82, D000014__53, +SD1_9__11, D000013__53, SD1_9__12, D000012__53, HQD_9__9, D000017__54, CV11_9, D000028__22, +EDGE1_000__83, D01A_000__42, EDGE2_000__83, D000018__83, EDGE3_000__83, D23_000__42, EDGE3_000__84, +D000018__84, EDGE2_000__84, D01B_000__42, EDGE1_000__84, D000014__54, SF1_9__11, D000013__54, SF1_9__12, +D000012__54, HQF_9__9, D000017__55, CH12_9, D000028__23, EDGE1_000__85, D01A_000__43, EDGE2_000__85, +D000018__85, EDGE3_000__85, D23_000__43, EDGE3_000__86, D000018__86, EDGE2_000__86, D01B_000__43, +EDGE1_000__86, D000014__55, SD2_9__11, D000013__55, SD2_9__12, D000012__55, HQD_9__10, D000017__56, +CV12_9, D000028__24, EDGE1_000__87, D01A_000__44, EDGE2_000__87, D000018__87, EDGE3_000__87, +D23_000__44, EDGE3_000__88, D000018__88, EDGE2_000__88, D01B_000__44, EDGE1_000__88, D000014__56, +SF2_9__11, D000013__56, SF2_9__12, D000012__56, HQF_9__10, D000017__57, CH13_9, D000028__25, +EDGE1_000__89, D01A_000__45, EDGE2_000__89, D000018__89, EDGE3_000__89, D23_000__45, EDGE3_000__90, +D000018__90, EDGE2_000__90, D01B_000__45, EDGE1_000__90, D000014__57, SD1_9__13, D000013__57, SD1_9__14, +D000012__57, HQD_9__11, D000017__58, CV13_9, D000028__26, EDGE1_000__91, D01A_000__46, EDGE2_000__91, +D000018__91, EDGE3_000__91, D23_000__46, EDGE3_000__92, D000018__92, EDGE2_000__92, D01B_000__46, +EDGE1_000__92, D000014__58, SF1_9__13, D000013__58, SF1_9__14, D000012__58, HQF_9__11, D000017__59, +CH14_9, D000028__27, EDGE1_000__93, D01A_000__47, EDGE2_000__93, D000018__93, EDGE3_000__93, +D23_000__47, EDGE3_000__94, D000018__94, EDGE2_000__94, D01B_000__47, EDGE1_000__94, D000014__59, +SD2_9__13, D000013__59, SD2_9__14, D000012__59, HQD_9__12, D000017__60, CV14_9, D000028__28, +EDGE1_000__95, D01A_000__48, EDGE2_000__95, D000018__95, EDGE3_000__95, D23_000__48, EDGE3_000__96, +D000018__96, EDGE2_000__96, D01B_000__48, EDGE1_000__96, D000014__60, SF2_9__13, D000013__60, SF2_9__14, +D000012__60, HQF_9__12, D000017__61, CH15_9, D000028__29, EDGE1_000__97, D01A_000__49, EDGE2_000__97, +D000018__97, EDGE3_000__97, D23_000__49, EDGE3_000__98, D000018__98, EDGE2_000__98, D01B_000__49, +EDGE1_000__98, D000014__61, SD1_9__15, D000013__61, SD1_9__16, D000012__61, HQD_9__13, D000017__62, +CV15_9, D000028__30, EDGE1_000__99, D01A_000__50, EDGE2_000__99, D000018__99, EDGE3_000__99, +D23_000__50, EDGE3_000__100, D000018__100, EDGE2_000__100, D01B_000__50, EDGE1_000__100, D000014__62, +SF1_9__15, D000013__62, SF1_9__16, D000012__62, HQF_9__13, D000017__63, CH16_9, D000028__31, +EDGE1_000__101, D01A_000__51, EDGE2_000__101, D000018__101, EDGE3_000__101, D23_000__51, EDGE3_000__102, +D000018__102, EDGE2_000__102, D01B_000__51, EDGE1_000__102, D000014__63, SD2_9__15, D000013__63, +SD2_9__16, D000012__63, HQD_9__14, D000017__64, CV16_9, D000028__32, EDGE1_000__103, D01A_000__52, +EDGE2_000__103, D000018__103, EDGE3_000__103, D23_000__52, EDGE3_000__104, D000018__104, EDGE2_000__104, +D01B_000__52, EDGE1_000__104, D000014__64, SF2_9__15, D000013__64, SF2_9__16, D000012__64, HQF_9__14, +D000017__65, CH17_9, D000030__1, DB23_9__1, D000014__65, SD17_9, D000012__65, HQD_9__15, D000017__66, +CV17_9, D000030__2, DB23_9__2, D000014__66, SF17_9, D000012__66, HQF_9__15, D000031__1, HQM22_9, +D000031__2, HQM21_9, D000032__1, DB23_9__3, D000032__2, HQM20_9, D000032__3, DB23_9__4, D000032__4, +HQM19_9, D000033__1, HQM18_9, D000033__2, HQM17_9, D000033__3, HQM16_9, D000033__4, HQM15_9, D000033__5, +HQM14_9, D000033__6, HQM13_9, D000032__5, DB23_9__5, D000032__6, HQM12_9, D000032__7, DB23_9__6, +D000034, HQFSS_10__1, D000035__1, HQDSS_10__1, D000035__2, HQFSS_10__2, D000035__3, HQDSS_10__2, +D000036, HQFLSS_10__1, D000007__7, RF0__1, D000007__8, RF0__2, D000007__9, HQDLSS_10__1, D000007__10, +RF0__3, D000007__11, RF0__4, D000007__12, HQFLSS_10__2, D000007__13, RF0__5, D000007__14, RF0__6, +D000007__15, HQDLSS_10__2, D000007__16, RF0__7, D000007__17, RF0__8, D000007__18, HQFLSS_10__3, +D000007__19, RF0__9, D000037, RF0__10, D000007__20, HQDLSS_10__3, D000007__21, RF0__11, D000007__22, +RF0__12, D000007__23, HQFLSS_10__4, D000007__24, RF0__13, D000007__25, RF0__14, D000007__26, +HQDLSS_10__4, D000007__27, RF0__15, D000007__28, RF0__16, D000007__29, HQFLSS_10__5, D000007__30, +RF0__17, D000007__31, RF0__18, D000007__32, HQDLSS_10__5, D000035__4, HQFSS_10__3, D000035__5, +HQDSS_10__3, D000035__6, HQFSS_10__4, D000035__7, HQDSS_10__4, D000038, DB23_10__1, D000032__8, +HQM12_10, D000032__9, DB23_10__2, D000032__10, HQM13_10, D000039__1, HQM14_10, D000039__2, HQM15_10, +D000039__3, HQM16_10, D000039__4, HQM17_10, D000039__5, HQM18_10, D000039__6, HQM19_10, D000039__7, +HQM20_10, D000032__11, DB23_10__3, D000032__12, HQM21_10, D000032__13, DB23_10__4, D000032__14, +HQM22_10, D000040, HQF_11__1, D000012__67, SF00_11, D000014__67, DB23_10__5, D000041__1, CV00_11, +D000017__67, HQD_11__1, D000012__68, SD00_11, D000014__68, DB23_10__6, D000041__2, CH00_11, D000017__68, +HQF_11__2, D000012__69, SF1_1__1, D000013__65, SF1_1__2, D000014__69, EDGE1_000__105, D01A_000__53, +EDGE2_000__105, D000018__105, EDGE3_000__105, D23_000__53, EDGE3_000__106, D000018__106, EDGE2_000__106, +D01B_000__53, EDGE1_000__106, D000042__1, CV01_11, D000017__69, HQD_11__2, D000012__70, SD1_1__1, +D000013__66, SD1_1__2, D000014__70, EDGE1_000__107, D01A_000__54, EDGE2_000__107, D000018__107, +EDGE3_000__107, D23_000__54, EDGE3_000__108, D000018__108, EDGE2_000__108, D01B_000__54, EDGE1_000__108, +D000042__2, CH01_11, D000017__70, HQF_11__3, D000012__71, SF2_1__1, D000013__67, SF2_1__2, D000014__71, +EDGE1_000__109, D01A_000__55, EDGE2_000__109, D000018__109, EDGE3_000__109, D23_000__55, EDGE3_000__110, +D000018__110, EDGE2_000__110, D01B_000__55, EDGE1_000__110, D000042__3, CV02_11, D000017__71, HQD_11__3, +D000012__72, SD2_1__1, D000013__68, SD2_1__2, D000014__72, EDGE1_000__111, D01A_000__56, EDGE2_000__111, +D000018__111, EDGE3_000__111, D23_000__56, EDGE3_000__112, D000018__112, EDGE2_000__112, D01B_000__56, +EDGE1_000__112, D000042__4, CH02_11, D000017__72, HQF_11__4, D000012__73, SF1_1__3, D000013__69, +SF1_1__4, D000014__73, EDGE1_000__113, D01A_000__57, EDGE2_000__113, D000018__113, EDGE3_000__113, +D23_000__57, EDGE3_000__114, D000018__114, EDGE2_000__114, D01B_000__57, EDGE1_000__114, D000042__5, +CV03_11, D000017__73, HQD_11__4, D000012__74, SD1_1__3, D000013__70, SD1_1__4, D000014__74, +EDGE1_000__115, D01A_000__58, EDGE2_000__115, D000018__115, EDGE3_000__115, D23_000__58, EDGE3_000__116, +D000018__116, EDGE2_000__116, D01B_000__58, EDGE1_000__116, D000042__6, CH03_11, D000017__74, HQF_11__5, +D000012__75, SF2_1__3, D000013__71, SF2_1__4, D000014__75, EDGE1_000__117, D01A_000__59, EDGE2_000__117, +D000018__117, EDGE3_000__117, D23_000__59, EDGE3_000__118, D000018__118, EDGE2_000__118, D01B_000__59, +EDGE1_000__118, D000042__7, CV04_11, D000017__75, HQD_11__5, D000012__76, SD2_1__3, D000013__72, +SD2_1__4, D000014__76, EDGE1_000__119, D01A_000__60, EDGE2_000__119, D000018__119, EDGE3_000__119, +D23_000__60, EDGE3_000__120, D000018__120, EDGE2_000__120, D01B_000__60, EDGE1_000__120, D000042__8, +CH04_11, D000017__76, HQF_11__6, D000012__77, SF1_1__5, D000013__73, SF1_1__6, D000014__77, +EDGE1_000__121, D01A_000__61, EDGE2_000__121, D000018__121, EDGE3_000__121, D23_000__61, EDGE3_000__122, +D000018__122, EDGE2_000__122, D01B_000__61, EDGE1_000__122, D000042__9, CV05_11, D000017__77, HQD_11__6, +D000012__78, SD1_1__5, D000013__74, SD1_1__6, D000014__78, EDGE1_000__123, D01A_000__62, EDGE2_000__123, +D000018__123, EDGE3_000__123, D23_000__62, EDGE3_000__124, D000018__124, EDGE2_000__124, D01B_000__62, +EDGE1_000__124, D000042__10, CH05_11, D000017__78, HQF_11__7, D000012__79, SF2_1__5, D000013__75, +SF2_1__6, D000014__79, EDGE1_000__125, D01A_000__63, EDGE2_000__125, D000018__125, EDGE3_000__125, +D23_000__63, EDGE3_000__126, D000018__126, EDGE2_000__126, D01B_000__63, EDGE1_000__126, D000042__11, +CV06_11, D000017__79, HQD_11__7, D000012__80, SD2_1__5, D000013__76, SD2_1__6, D000014__80, +EDGE1_000__127, D01A_000__64, EDGE2_000__127, D000018__127, EDGE3_000__127, D23_000__64, EDGE3_000__128, +D000018__128, EDGE2_000__128, D01B_000__64, EDGE1_000__128, D000042__12, CH06_11, D000017__80, +HQF_11__8, D000012__81, SF1_1__7, D000013__77, SF1_1__8, D000014__81, EDGE1_000__129, D01A_000__65, +EDGE2_000__129, D000018__129, EDGE3_000__129, D23_000__65, EDGE3_000__130, D000018__130, EDGE2_000__130, +D01B_000__65, EDGE1_000__130, D000042__13, CV07_11, D000017__81, HQD_11__8, D000012__82, SD1_1__7, +D000013__78, SD1_1__8, D000014__82, EDGE1_000__131, D01A_000__66, EDGE2_000__131, D000018__131, +EDGE3_000__131, D23_000__66, EDGE3_000__132, D000018__132, EDGE2_000__132, D01B_000__66, EDGE1_000__132, +D000042__14, CH07_11, D000017__82, HQF_11__9, D000012__83, SF2_1__7, D000013__79, SF2_1__8, D000014__83, +EDGE1_000__133, D01A_000__67, EDGE2_000__133, D000018__133, EDGE3_000__133, D23_000__67, EDGE3_000__134, +D000018__134, EDGE2_000__134, D01B_000__67, EDGE1_000__134, D000042__15, CV08_11, D000017__83, +HQD_11__9, D000012__84, SD2_1__7, D000013__80, SD2_1__8, D000014__84, EDGE1_000__135, D01A_000__68, +EDGE2_000__135, D000018__135, EDGE3_000__135, D23_000__68, EDGE3_000__136, D000018__136, EDGE2_000__136, +D01B_000__68, EDGE1_000__136, D000042__16, CH08_11, D000017__84, HQF_11__10, D000012__85, SF1_1__9, +D000013__81, SF1_1__10, D000014__85, EDGE1_000__137, D01A_000__69, EDGE2_000__137, D000018__137, +EDGE3_000__137, D23_000__69, EDGE3_000__138, D000018__138, EDGE2_000__138, D01B_000__69, EDGE1_000__138, +D000042__17, CV09_11, D000017__85, HQD_11__10, D000012__86, SD1_1__9, D000013__82, SD1_1__10, +D000014__86, EDGE1_000__139, D01A_000__70, EDGE2_000__139, D000018__139, EDGE3_000__139, D23_000__70, +EDGE3_000__140, D000018__140, EDGE2_000__140, D01B_000__70, EDGE1_000__140, D000042__18, CH09_11, +D000017__86, HQF_11__11, D000012__87, SF2_1__9, D000013__83, SF2_1__10, D000014__87, EDGE1_000__141, +D01A_000__71, EDGE2_000__141, D000018__141, EDGE3_000__141, D23_000__71, EDGE3_000__142, D000018__142, +EDGE2_000__142, D01B_000__71, EDGE1_000__142, D000042__19, CV10_11, D000017__87, HQD_11__11, +D000012__88, SD2_1__9, D000013__84, SD2_1__10, D000014__88, EDGE1_000__143, D01A_000__72, +EDGE2_000__143, D000018__143, EDGE3_000__143, D23_000__72, EDGE3_000__144, D000018__144, EDGE2_000__144, +D01B_000__72, EDGE1_000__144, D000042__20, CH10_11, D000017__88, HQF_11__12, D000012__89, SF1_1__11, +D000013__85, SF1_1__12, D000014__89, EDGE1_000__145, D01A_000__73, EDGE2_000__145, D000018__145, +EDGE3_000__145, D23_000__73, EDGE3_000__146, D000018__146, EDGE2_000__146, D01B_000__73, EDGE1_000__146, +D000042__21, CV11_11, D000017__89, HQD_11__12, D000012__90, SD1_1__11, D000013__86, SD1_1__12, +D000014__90, EDGE1_000__147, D01A_000__74, EDGE2_000__147, D000018__147, EDGE3_000__147, D23_000__74, +EDGE3_000__148, D000018__148, EDGE2_000__148, D01B_000__74, EDGE1_000__148, D000042__22, CH11_11, +D000017__90, HQF_11__13, D000012__91, SF2_1__11, D000013__87, SF2_1__12, D000014__91, EDGE1_000__149, +D01A_000__75, EDGE2_000__149, D000018__149, EDGE3_000__149, D23_000__75, EDGE3_000__150, D000018__150, +EDGE2_000__150, D01B_000__75, EDGE1_000__150, D000042__23, CV12_11, D000017__91, HQD_11__13, +D000012__92, SD2_1__11, D000013__88, SD2_1__12, D000014__92, EDGE1_000__151, D01A_000__76, +EDGE2_000__151, D000018__151, EDGE3_000__151, D23_000__76, EDGE3_000__152, D000018__152, EDGE2_000__152, +D01B_000__76, EDGE1_000__152, D000042__24, CH12_11, D000017__92, HQF_11__14, D000012__93, SF1_1__13, +D000013__89, SF1_1__14, D000014__93, EDGE1_000__153, D01A_000__77, EDGE2_000__153, D000018__153, +EDGE3_000__153, D23_000__77, EDGE3_000__154, D000018__154, EDGE2_000__154, D01B_000__77, EDGE1_000__154, +D000042__25, CV13_11, D000017__93, HQD_11__14, D000012__94, SD1_1__13, D000013__90, SD1_1__14, +D000014__94, EDGE1_000__155, D01A_000__78, EDGE2_000__155, D000018__155, EDGE3_000__155, D23_000__78, +EDGE3_000__156, D000018__156, EDGE2_000__156, D01B_000__78, EDGE1_000__156, D000042__26, CH13_11, +D000017__94, HQF_11__15, D000012__95, SF2_1__13, D000013__91, SF2_1__14, D000014__95, EDGE1_000__157, +D01A_000__79, EDGE2_000__157, D000018__157, EDGE3_000__157, D23_000__79, EDGE3_000__158, D000018__158, +EDGE2_000__158, D01B_000__79, EDGE1_000__158, D000042__27, CV14_11, D000017__95, HQD_11__15, +D000012__96, SD2_1__13, D000013__92, SD2_1__14, D000014__96, EDGE1_000__159, D01A_000__80, +EDGE2_000__159, D000018__159, EDGE3_000__159, D23_000__80, EDGE3_000__160, D000018__160, EDGE2_000__160, +D01B_000__80, EDGE1_000__160, D000042__28, CH14_11, D000017__96, HQF_11__16, D000012__97, SF1_1__15, +D000013__93, SF1_1__16, D000014__97, EDGE1_000__161, D01A_000__81, EDGE2_000__161, D000018__161, +EDGE3_000__161, D23_000__81, EDGE3_000__162, D000018__162, EDGE2_000__162, D01B_000__81, EDGE1_000__162, +D000042__29, CV15_11, D000017__97, HQD_11__16, D000012__98, SD1_1__15, D000013__94, SD1_1__16, +D000014__98, EDGE1_000__163, D01A_000__82, EDGE2_000__163, D000018__163, EDGE3_000__163, D23_000__82, +EDGE3_000__164, D000018__164, EDGE2_000__164, D01B_000__82, EDGE1_000__164, D000042__30, CH15_11, +D000017__98, HQF_11__17, D000012__99, SF2_1__15, D000013__95, SF2_1__16, D000014__99, EDGE1_000__165, +D01A_000__83, EDGE2_000__165, D000018__165, EDGE3_000__165, D23_000__83, EDGE3_000__166, D000018__166, +EDGE2_000__166, D01B_000__83, EDGE1_000__166, D000042__31, CV16_11, D000017__99, HQD_11__17, +D000012__100, SD2_1__15, D000013__96, SD2_1__16, D000014__100, EDGE1_000__167, D01A_000__84, +EDGE2_000__167, D000018__167, EDGE3_000__167, D23_000__84, EDGE3_000__168, D000018__168, EDGE2_000__168, +D01B_000__84, EDGE1_000__168, D000042__32, CH16_11, D000017__100, HQF_11__18, D000012__101, SF17_11, +D000014__101, DB23_11__1, D000043__1, CV17_11, D000017__101, HQD_11__18, D000012__102, SD17_11, +D000014__102, DB23_11__2, D000043__2, CH17_11, D000017__102, HQF_11__19, D000012__103, SF18_11, +D000044__1, HQM22_11, D000044__2, HQM21_11, D000032__15, DB23_11__3, D000032__16, HQM20_11, D000032__17, +DB23_11__4, D000032__18, HQM19_11, D000045__1, HQM18_11, D000045__2, HQM17_11, D000045__3, HQM16_11, +D000045__4, HQM15_11, D000045__5, HQM14_11, D000045__6, HQM13_11, D000032__19, DB23_11__5, D000032__20, +HQM12_11, D000032__21, DB23_11__6, D000046__1, HQFSS_12__1, D000047__1, HQDSS_12__1, D000047__2, +HQFSS_12__2, D000047__3, HQDSS_12__2, D000046__2, DB12_4M__1, D000048__1, DB12_4M__2, D000048__2, +DB12_4M__3, D000049, HQFSS_12__3, D000047__4, HQDSS_12__3, D000047__5, HQFSS_12__4, D000050, IP12, +D000051, HQDSS_12__4, D000047__6, HQFSS_12__5, D000047__7, HQDSS_12__5, D000047__8, HQFSS_12__6, +D000052, DB12_4P__1, D000048__3, DB12_4P__2, D000048__4, DB12_4P__3, D000053__1, HQDSS_12__6, MKICK_INJ, +D000047__9, HQFSS_12__7, D000047__10, HQDSS_12__7, D000047__11, MCOLL_INJ, HQFSS_12__8, D000053__2, +DB23_12__1, D000032__22, HQM14_12, D000032__23, DB23_12__2, D000032__24, HQM15_12, D000054__1, HQM16_12, +D000054__2, HQM17_12, D000054__3, HQM18_12, D000054__4, HQM19_12, D000032__25, DB23_12__3, D000032__26, +HQM20_12, D000032__27, DB23_12__4, D000032__28, HQM21_12, D000055__1, HQM22_12, D000055__2, SFM1_1, +D000056__1, HQF_1__1, D000017__103, CH00_1, D000057__1, DB23_12__5, D000014__103, SD00_1, D000012__104, +HQD_1__1, D000017__104, CV00_1, D000057__2, DB23_12__6, D000014__104, SF00_1, D000012__105, HQF_1__2, +D000017__105, CH01_1, D000058__1, EDGE1_000__169, D01A_000__85, EDGE2_000__169, D000018__169, +EDGE3_000__169, D23_000__85, EDGE3_000__170, D000018__170, EDGE2_000__170, D01B_000__85, EDGE1_000__170, +D000014__105, SD1_1__17, D000013__97, SD1_1__18, D000012__106, HQD_1__2, D000017__106, CV01_1, +D000058__2, EDGE1_000__171, D01A_000__86, EDGE2_000__171, D000018__171, EDGE3_000__171, D23_000__86, +EDGE3_000__172, D000018__172, EDGE2_000__172, D01B_000__86, EDGE1_000__172, D000014__106, SF1_1__17, +D000013__98, SF1_1__18, D000012__107, HQF_1__3, D000017__107, CH02_1, D000058__3, EDGE1_000__173, +D01A_000__87, EDGE2_000__173, D000018__173, EDGE3_000__173, D23_000__87, EDGE3_000__174, D000018__174, +EDGE2_000__174, D01B_000__87, EDGE1_000__174, D000014__107, SD2_1__17, D000013__99, SD2_1__18, +D000012__108, HQD_1__3, D000017__108, CV02_1, D000058__4, EDGE1_000__175, D01A_000__88, EDGE2_000__175, +D000018__175, EDGE3_000__175, D23_000__88, EDGE3_000__176, D000018__176, EDGE2_000__176, D01B_000__88, +EDGE1_000__176, D000014__108, SF2_1__17, D000013__100, SF2_1__18, D000012__109, HQF_1__4, D000017__109, +CH03_1, D000058__5, EDGE1_000__177, D01A_000__89, EDGE2_000__177, D000018__177, EDGE3_000__177, +D23_000__89, EDGE3_000__178, D000018__178, EDGE2_000__178, D01B_000__89, EDGE1_000__178, D000014__109, +SD1_1__19, D000013__101, SD1_1__20, D000012__110, HQD_1__4, D000017__110, CV03_1, D000058__6, +EDGE1_000__179, D01A_000__90, EDGE2_000__179, D000018__179, EDGE3_000__179, D23_000__90, EDGE3_000__180, +D000018__180, EDGE2_000__180, D01B_000__90, EDGE1_000__180, D000014__110, SF1_1__19, D000013__102, +SF1_1__20, D000012__111, HQF_1__5, D000017__111, CH04_1, D000058__7, EDGE1_000__181, D01A_000__91, +EDGE2_000__181, D000018__181, EDGE3_000__181, D23_000__91, EDGE3_000__182, D000018__182, EDGE2_000__182, +D01B_000__91, EDGE1_000__182, D000014__111, SD2_1__19, D000013__103, SD2_1__20, D000012__112, HQD_1__5, +D000017__112, CV04_1, D000058__8, EDGE1_000__183, D01A_000__92, EDGE2_000__183, D000018__183, +EDGE3_000__183, D23_000__92, EDGE3_000__184, D000018__184, EDGE2_000__184, D01B_000__92, EDGE1_000__184, +D000014__112, SF2_1__19, D000013__104, SF2_1__20, D000012__113, HQF_1__6, D000017__113, CH05_1, +D000058__9, EDGE1_000__185, D01A_000__93, EDGE2_000__185, D000018__185, EDGE3_000__185, D23_000__93, +EDGE3_000__186, D000018__186, EDGE2_000__186, D01B_000__93, EDGE1_000__186, D000014__113, SD1_1__21, +D000013__105, SD1_1__22, D000012__114, HQD_1__6, D000017__114, CV05_1, D000058__10, EDGE1_000__187, +D01A_000__94, EDGE2_000__187, D000018__187, EDGE3_000__187, D23_000__94, EDGE3_000__188, D000018__188, +EDGE2_000__188, D01B_000__94, EDGE1_000__188, D000014__114, SF1_1__21, D000013__106, SF1_1__22, +D000012__115, HQF_1__7, D000017__115, CH06_1, D000058__11, EDGE1_000__189, D01A_000__95, EDGE2_000__189, +D000018__189, EDGE3_000__189, D23_000__95, EDGE3_000__190, D000018__190, EDGE2_000__190, D01B_000__95, +EDGE1_000__190, D000014__115, SD2_1__21, D000013__107, SD2_1__22, D000012__116, HQD_1__7, D000017__116, +CV06_1, D000058__12, EDGE1_000__191, D01A_000__96, EDGE2_000__191, D000018__191, EDGE3_000__191, +D23_000__96, EDGE3_000__192, D000018__192, EDGE2_000__192, D01B_000__96, EDGE1_000__192, D000014__116, +SF2_1__21, D000013__108, SF2_1__22, D000012__117, HQF_1__8, D000017__117, CH07_1, D000058__13, +EDGE1_000__193, D01A_000__97, EDGE2_000__193, D000018__193, EDGE3_000__193, D23_000__97, EDGE3_000__194, +D000018__194, EDGE2_000__194, D01B_000__97, EDGE1_000__194, D000014__117, SD1_1__23, D000013__109, +SD1_1__24, D000012__118, HQD_1__8, D000017__118, CV07_1, D000058__14, EDGE1_000__195, D01A_000__98, +EDGE2_000__195, D000018__195, EDGE3_000__195, D23_000__98, EDGE3_000__196, D000018__196, EDGE2_000__196, +D01B_000__98, EDGE1_000__196, D000014__118, SF1_1__23, D000013__110, SF1_1__24, D000012__119, HQF_1__9, +D000017__119, CH08_1, D000058__15, EDGE1_000__197, D01A_000__99, EDGE2_000__197, D000018__197, +EDGE3_000__197, D23_000__99, EDGE3_000__198, D000018__198, EDGE2_000__198, D01B_000__99, EDGE1_000__198, +D000014__119, SD2_1__23, D000013__111, SD2_1__24, D000012__120, HQD_1__9, D000017__120, CV08_1, +D000058__16, EDGE1_000__199, D01A_000__100, EDGE2_000__199, D000018__199, EDGE3_000__199, D23_000__100, +EDGE3_000__200, D000018__200, EDGE2_000__200, D01B_000__100, EDGE1_000__200, D000014__120, SF2_1__23, +D000013__112, SF2_1__24, D000012__121, HQF_1__10, D000017__121, CH09_1, D000058__17, EDGE1_000__201, +D01A_000__101, EDGE2_000__201, D000018__201, EDGE3_000__201, D23_000__101, EDGE3_000__202, D000018__202, +EDGE2_000__202, D01B_000__101, EDGE1_000__202, D000014__121, SD1_1__25, D000013__113, SD1_1__26, +D000012__122, HQD_1__10, D000017__122, CV09_1, D000058__18, EDGE1_000__203, D01A_000__102, +EDGE2_000__203, D000018__203, EDGE3_000__203, D23_000__102, EDGE3_000__204, D000018__204, +EDGE2_000__204, D01B_000__102, EDGE1_000__204, D000014__122, SF1_1__25, D000013__114, SF1_1__26, +D000012__123, HQF_1__11, D000017__123, CH10_1, D000058__19, EDGE1_000__205, D01A_000__103, +EDGE2_000__205, D000018__205, EDGE3_000__205, D23_000__103, EDGE3_000__206, D000018__206, +EDGE2_000__206, D01B_000__103, EDGE1_000__206, D000014__123, SD2_1__25, D000013__115, SD2_1__26, +D000012__124, HQD_1__11, D000017__124, CV10_1, D000058__20, EDGE1_000__207, D01A_000__104, +EDGE2_000__207, D000018__207, EDGE3_000__207, D23_000__104, EDGE3_000__208, D000018__208, +EDGE2_000__208, D01B_000__104, EDGE1_000__208, D000014__124, SF2_1__25, D000013__116, SF2_1__26, +D000012__125, HQF_1__12, D000017__125, CH11_1, D000058__21, EDGE1_000__209, D01A_000__105, +EDGE2_000__209, D000018__209, EDGE3_000__209, D23_000__105, EDGE3_000__210, D000018__210, +EDGE2_000__210, D01B_000__105, EDGE1_000__210, D000014__125, SD1_1__27, D000013__117, SD1_1__28, +D000012__126, HQD_1__12, D000017__126, CV11_1, D000058__22, EDGE1_000__211, D01A_000__106, +EDGE2_000__211, D000018__211, EDGE3_000__211, D23_000__106, EDGE3_000__212, D000018__212, +EDGE2_000__212, D01B_000__106, EDGE1_000__212, D000014__126, SF1_1__27, D000013__118, SF1_1__28, +D000012__127, HQF_1__13, D000017__127, CH12_1, D000058__23, EDGE1_000__213, D01A_000__107, +EDGE2_000__213, D000018__213, EDGE3_000__213, D23_000__107, EDGE3_000__214, D000018__214, +EDGE2_000__214, D01B_000__107, EDGE1_000__214, D000014__127, SD2_1__27, D000013__119, SD2_1__28, +D000012__128, HQD_1__13, D000017__128, CV12_1, D000058__24, EDGE1_000__215, D01A_000__108, +EDGE2_000__215, D000018__215, EDGE3_000__215, D23_000__108, EDGE3_000__216, D000018__216, +EDGE2_000__216, D01B_000__108, EDGE1_000__216, D000014__128, SF2_1__27, D000013__120, SF2_1__28, +D000012__129, HQF_1__14, D000017__129, CH13_1, D000058__25, EDGE1_000__217, D01A_000__109, +EDGE2_000__217, D000018__217, EDGE3_000__217, D23_000__109, EDGE3_000__218, D000018__218, +EDGE2_000__218, D01B_000__109, EDGE1_000__218, D000014__129, SD1_1__29, D000013__121, SD1_1__30, +D000012__130, HQD_1__14, D000017__130, CV13_1, D000058__26, EDGE1_000__219, D01A_000__110, +EDGE2_000__219, D000018__219, EDGE3_000__219, D23_000__110, EDGE3_000__220, D000018__220, +EDGE2_000__220, D01B_000__110, EDGE1_000__220, D000014__130, SF1_1__29, D000013__122, SF1_1__30, +D000012__131, HQF_1__15, D000017__131, CH14_1, D000058__27, EDGE1_000__221, D01A_000__111, +EDGE2_000__221, D000018__221, EDGE3_000__221, D23_000__111, EDGE3_000__222, D000018__222, +EDGE2_000__222, D01B_000__111, EDGE1_000__222, D000014__131, SD2_1__29, D000013__123, SD2_1__30, +D000012__132, HQD_1__15, D000017__132, CV14_1, D000058__28, EDGE1_000__223, D01A_000__112, +EDGE2_000__223, D000018__223, EDGE3_000__223, D23_000__112, EDGE3_000__224, D000018__224, +EDGE2_000__224, D01B_000__112, EDGE1_000__224, D000014__132, SF2_1__29, D000013__124, SF2_1__30, +D000012__133, HQF_1__16, D000017__133, CH15_1, D000058__29, EDGE1_000__225, D01A_000__113, +EDGE2_000__225, D000018__225, EDGE3_000__225, D23_000__113, EDGE3_000__226, D000018__226, +EDGE2_000__226, D01B_000__113, EDGE1_000__226, D000014__133, SD1_1__31, D000013__125, SD1_1__32, +D000012__134, HQD_1__16, D000017__134, CV15_1, D000058__30, EDGE1_000__227, D01A_000__114, +EDGE2_000__227, D000018__227, EDGE3_000__227, D23_000__114, EDGE3_000__228, D000018__228, +EDGE2_000__228, D01B_000__114, EDGE1_000__228, D000014__134, SF1_1__31, D000013__126, SF1_1__32, +D000012__135, HQF_1__17, D000017__135, CH16_1, D000058__31, EDGE1_000__229, D01A_000__115, +EDGE2_000__229, D000018__229, EDGE3_000__229, D23_000__115, EDGE3_000__230, D000018__230, +EDGE2_000__230, D01B_000__115, EDGE1_000__230, D000014__135, SD2_1__31, D000013__127, SD2_1__32, +D000012__136, HQD_1__17, D000017__136, CV16_1, D000058__32, EDGE1_000__231, D01A_000__116, +EDGE2_000__231, D000018__231, EDGE3_000__231, D23_000__116, EDGE3_000__232, D000018__232, +EDGE2_000__232, D01B_000__116, EDGE1_000__232, D000014__136, SF2_1__31, D000013__128, SF2_1__32, +D000012__137, HQF_1__18, D000017__137, CH17_1, D000057__3, DB23_1__1, D000014__137, SD17_1, +D000012__138, HQD_1__18, D000017__138, CV17_1, D000057__4, DB23_1__2, D000014__138, SF17_1, +D000012__139, HQF_1__19, D000059__1, HQM22_1, D000059__2, HQM21_1, D000059__3, HQM20_1, D000059__4, +HQM19_1, D000059__5, HQM18_1, D000032__29, DB23_1__3, D000032__30, HQM17_1, D000032__31, DB23_1__4, +D000032__32, HQM16_1, D000060__1, HQM15_1, D000060__2, HQM14_1, D000060__3, HQM13_1, D000032__33, +DB23_1__5, D000032__34, HQM12_1, D000032__35, DB23_1__6, D000061__1, HQDSS_2__1, D000062__1, SX41_2, +D000056__2, HQFSS_2__1, D000062__2, SX42_2, D000056__3, HQDSS_2__2, MCOLL_H1, D000062__3, SX43_2, +D000056__4, HQFSS_2__2, D000062__4, MCOLL_H2, SX44_2, D000056__5, HQDSS_2__3, D000062__5, SX45_2, +D000056__6, HQFSS_2__3, D000062__6, MCOLL_H3, SX46_2, D000056__7, HQDSS_2__4, D000063, IP2, D000064, +HQFSS_2__4, D000056__8, SX47_2, D000062__7, HQDSS_2__5, D000056__9, SX48_2, D000062__8, HQFSS_2__5, +D000056__10, SX49_2, D000062__9, HQDSS_2__6, D000056__11, SX50_2, MLAMB, D000062__10, HQFSS_2__6, +D000056__12, SX51_2, D000062__11, HQDSS_2__7, D000056__13, SX52_2, D000062__12, HQFSS_2__7, D000061__2, +DB23_2__1, D000032__36, HQM12_2, D000032__37, DB23_2__2, D000032__38, HQM13_2, D000065__1, HQM14_2, +D000065__2, HQM15_2, D000065__3, HQM16_2, D000032__39, DB23_2__3, D000032__40, HQM17_2, D000032__41, +DB23_2__4, D000032__42, HQM18_2, D000066__1, HQM19_2, D000066__2, HQM20_2, D000066__3, HQM21_2, +D000066__4, HQM22_2, D000066__5, HQF_3__1, D000012__140, SF00_3, D000014__139, DB23_2__5, D000067__1, +CV00_3, D000017__139, HQD_3__1, D000012__141, SD00_3, D000014__140, DB23_2__6, D000067__2, CH00_3, +D000017__140, HQF_3__2, D000012__142, SF1_1__33, D000013__129, SF1_1__34, D000014__141, EDGE1_000__233, +D01A_000__117, EDGE2_000__233, D000018__233, EDGE3_000__233, D23_000__117, EDGE3_000__234, D000018__234, +EDGE2_000__234, D01B_000__117, EDGE1_000__234, D000068__1, CV01_3, D000017__141, HQD_3__2, D000012__143, +SD1_1__33, D000013__130, SD1_1__34, D000014__142, EDGE1_000__235, D01A_000__118, EDGE2_000__235, +D000018__235, EDGE3_000__235, D23_000__118, EDGE3_000__236, D000018__236, EDGE2_000__236, D01B_000__118, +EDGE1_000__236, D000068__2, CH01_3, D000017__142, HQF_3__3, D000012__144, SF2_1__33, D000013__131, +SF2_1__34, D000014__143, EDGE1_000__237, D01A_000__119, EDGE2_000__237, D000018__237, EDGE3_000__237, +D23_000__119, EDGE3_000__238, D000018__238, EDGE2_000__238, D01B_000__119, EDGE1_000__238, D000068__3, +CV02_3, D000017__143, HQD_3__3, D000012__145, SD2_1__33, D000013__132, SD2_1__34, D000014__144, +EDGE1_000__239, D01A_000__120, EDGE2_000__239, D000018__239, EDGE3_000__239, D23_000__120, +EDGE3_000__240, D000018__240, EDGE2_000__240, D01B_000__120, EDGE1_000__240, D000068__4, CH02_3, +D000017__144, HQF_3__4, D000012__146, SF1_1__35, D000013__133, SF1_1__36, D000014__145, EDGE1_000__241, +D01A_000__121, EDGE2_000__241, D000018__241, EDGE3_000__241, D23_000__121, EDGE3_000__242, D000018__242, +EDGE2_000__242, D01B_000__121, EDGE1_000__242, D000068__5, CV03_3, D000017__145, HQD_3__4, D000012__147, +SD1_1__35, D000013__134, SD1_1__36, D000014__146, EDGE1_000__243, D01A_000__122, EDGE2_000__243, +D000018__243, EDGE3_000__243, D23_000__122, EDGE3_000__244, D000018__244, EDGE2_000__244, D01B_000__122, +EDGE1_000__244, D000068__6, CH03_3, D000017__146, HQF_3__5, D000012__148, SF2_1__35, D000013__135, +SF2_1__36, D000014__147, EDGE1_000__245, D01A_000__123, EDGE2_000__245, D000018__245, EDGE3_000__245, +D23_000__123, EDGE3_000__246, D000018__246, EDGE2_000__246, D01B_000__123, EDGE1_000__246, D000068__7, +CV04_3, D000017__147, HQD_3__5, D000012__149, SD2_1__35, D000013__136, SD2_1__36, D000014__148, +EDGE1_000__247, D01A_000__124, EDGE2_000__247, D000018__247, EDGE3_000__247, D23_000__124, +EDGE3_000__248, D000018__248, EDGE2_000__248, D01B_000__124, EDGE1_000__248, D000068__8, CH04_3, +D000017__148, HQF_3__6, D000012__150, SF1_1__37, D000013__137, SF1_1__38, D000014__149, EDGE1_000__249, +D01A_000__125, EDGE2_000__249, D000018__249, EDGE3_000__249, D23_000__125, EDGE3_000__250, D000018__250, +EDGE2_000__250, D01B_000__125, EDGE1_000__250, D000068__9, CV05_3, D000017__149, HQD_3__6, D000012__151, +SD1_1__37, D000013__138, SD1_1__38, D000014__150, EDGE1_000__251, D01A_000__126, EDGE2_000__251, +D000018__251, EDGE3_000__251, D23_000__126, EDGE3_000__252, D000018__252, EDGE2_000__252, D01B_000__126, +EDGE1_000__252, D000068__10, CH05_3, D000017__150, HQF_3__7, D000012__152, SF2_1__37, D000013__139, +SF2_1__38, D000014__151, EDGE1_000__253, D01A_000__127, EDGE2_000__253, D000018__253, EDGE3_000__253, +D23_000__127, EDGE3_000__254, D000018__254, EDGE2_000__254, D01B_000__127, EDGE1_000__254, D000068__11, +CV06_3, D000017__151, HQD_3__7, D000012__153, SD2_1__37, D000013__140, SD2_1__38, D000014__152, +EDGE1_000__255, D01A_000__128, EDGE2_000__255, D000018__255, EDGE3_000__255, D23_000__128, +EDGE3_000__256, D000018__256, EDGE2_000__256, D01B_000__128, EDGE1_000__256, D000068__12, CH06_3, +D000017__152, HQF_3__8, D000012__154, SF1_1__39, D000013__141, SF1_1__40, D000014__153, EDGE1_000__257, +D01A_000__129, EDGE2_000__257, D000018__257, EDGE3_000__257, D23_000__129, EDGE3_000__258, D000018__258, +EDGE2_000__258, D01B_000__129, EDGE1_000__258, D000068__13, CV07_3, D000017__153, HQD_3__8, +D000012__155, SD1_1__39, D000013__142, SD1_1__40, D000014__154, EDGE1_000__259, D01A_000__130, +EDGE2_000__259, D000018__259, EDGE3_000__259, D23_000__130, EDGE3_000__260, D000018__260, +EDGE2_000__260, D01B_000__130, EDGE1_000__260, D000068__14, CH07_3, D000017__154, HQF_3__9, +D000012__156, SF2_1__39, D000013__143, SF2_1__40, D000014__155, EDGE1_000__261, D01A_000__131, +EDGE2_000__261, D000018__261, EDGE3_000__261, D23_000__131, EDGE3_000__262, D000018__262, +EDGE2_000__262, D01B_000__131, EDGE1_000__262, D000068__15, CV08_3, D000017__155, HQD_3__9, +D000012__157, SD2_1__39, D000013__144, SD2_1__40, D000014__156, EDGE1_000__263, D01A_000__132, +EDGE2_000__263, D000018__263, EDGE3_000__263, D23_000__132, EDGE3_000__264, D000018__264, +EDGE2_000__264, D01B_000__132, EDGE1_000__264, D000068__16, CH08_3, D000017__156, HQF_3__10, +D000012__158, SF1_1__41, D000013__145, SF1_1__42, D000014__157, EDGE1_000__265, D01A_000__133, +EDGE2_000__265, D000018__265, EDGE3_000__265, D23_000__133, EDGE3_000__266, D000018__266, +EDGE2_000__266, D01B_000__133, EDGE1_000__266, D000068__17, CV09_3, D000017__157, HQD_3__10, +D000012__159, SD1_1__41, D000013__146, SD1_1__42, D000014__158, EDGE1_000__267, D01A_000__134, +EDGE2_000__267, D000018__267, EDGE3_000__267, D23_000__134, EDGE3_000__268, D000018__268, +EDGE2_000__268, D01B_000__134, EDGE1_000__268, D000068__18, CH09_3, D000017__158, HQF_3__11, +D000012__160, SF2_1__41, D000013__147, SF2_1__42, D000014__159, EDGE1_000__269, D01A_000__135, +EDGE2_000__269, D000018__269, EDGE3_000__269, D23_000__135, EDGE3_000__270, D000018__270, +EDGE2_000__270, D01B_000__135, EDGE1_000__270, D000068__19, CV10_3, D000017__159, HQD_3__11, +D000012__161, SD2_1__41, D000013__148, SD2_1__42, D000014__160, EDGE1_000__271, D01A_000__136, +EDGE2_000__271, D000018__271, EDGE3_000__271, D23_000__136, EDGE3_000__272, D000018__272, +EDGE2_000__272, D01B_000__136, EDGE1_000__272, D000068__20, CH10_3, D000017__160, HQF_3__12, +D000012__162, SF1_1__43, D000013__149, SF1_1__44, D000014__161, EDGE1_000__273, D01A_000__137, +EDGE2_000__273, D000018__273, EDGE3_000__273, D23_000__137, EDGE3_000__274, D000018__274, +EDGE2_000__274, D01B_000__137, EDGE1_000__274, D000068__21, CV11_3, D000017__161, HQD_3__12, +D000012__163, SD1_1__43, D000013__150, SD1_1__44, D000014__162, EDGE1_000__275, D01A_000__138, +EDGE2_000__275, D000018__275, EDGE3_000__275, D23_000__138, EDGE3_000__276, D000018__276, +EDGE2_000__276, D01B_000__138, EDGE1_000__276, D000068__22, CH11_3, D000017__162, HQF_3__13, +D000012__164, SF2_1__43, D000013__151, SF2_1__44, D000014__163, EDGE1_000__277, D01A_000__139, +EDGE2_000__277, D000018__277, EDGE3_000__277, D23_000__139, EDGE3_000__278, D000018__278, +EDGE2_000__278, D01B_000__139, EDGE1_000__278, D000068__23, CV12_3, D000017__163, HQD_3__13, +D000012__165, SD2_1__43, D000013__152, SD2_1__44, D000014__164, EDGE1_000__279, D01A_000__140, +EDGE2_000__279, D000018__279, EDGE3_000__279, D23_000__140, EDGE3_000__280, D000018__280, +EDGE2_000__280, D01B_000__140, EDGE1_000__280, D000068__24, CH12_3, D000017__164, HQF_3__14, +D000012__166, SF1_1__45, D000013__153, SF1_1__46, D000014__165, EDGE1_000__281, D01A_000__141, +EDGE2_000__281, D000018__281, EDGE3_000__281, D23_000__141, EDGE3_000__282, D000018__282, +EDGE2_000__282, D01B_000__141, EDGE1_000__282, D000068__25, CV13_3, D000017__165, HQD_3__14, +D000012__167, SD1_1__45, D000013__154, SD1_1__46, D000014__166, EDGE1_000__283, D01A_000__142, +EDGE2_000__283, D000018__283, EDGE3_000__283, D23_000__142, EDGE3_000__284, D000018__284, +EDGE2_000__284, D01B_000__142, EDGE1_000__284, D000068__26, CH13_3, D000017__166, HQF_3__15, +D000012__168, SF2_1__45, D000013__155, SF2_1__46, D000014__167, EDGE1_000__285, D01A_000__143, +EDGE2_000__285, D000018__285, EDGE3_000__285, D23_000__143, EDGE3_000__286, D000018__286, +EDGE2_000__286, D01B_000__143, EDGE1_000__286, D000068__27, CV14_3, D000017__167, HQD_3__15, +D000012__169, SD2_1__45, D000013__156, SD2_1__46, D000014__168, EDGE1_000__287, D01A_000__144, +EDGE2_000__287, D000018__287, EDGE3_000__287, D23_000__144, EDGE3_000__288, D000018__288, +EDGE2_000__288, D01B_000__144, EDGE1_000__288, D000068__28, CH14_3, D000017__168, HQF_3__16, +D000012__170, SF1_1__47, D000013__157, SF1_1__48, D000014__169, EDGE1_000__289, D01A_000__145, +EDGE2_000__289, D000018__289, EDGE3_000__289, D23_000__145, EDGE3_000__290, D000018__290, +EDGE2_000__290, D01B_000__145, EDGE1_000__290, D000068__29, CV15_3, D000017__169, HQD_3__16, +D000012__171, SD1_1__47, D000013__158, SD1_1__48, D000014__170, EDGE1_000__291, D01A_000__146, +EDGE2_000__291, D000018__291, EDGE3_000__291, D23_000__146, EDGE3_000__292, D000018__292, +EDGE2_000__292, D01B_000__146, EDGE1_000__292, D000068__30, CH15_3, D000017__170, HQF_3__17, +D000012__172, SF2_1__47, D000013__159, SF2_1__48, D000014__171, EDGE1_000__293, D01A_000__147, +EDGE2_000__293, D000018__293, EDGE3_000__293, D23_000__147, EDGE3_000__294, D000018__294, +EDGE2_000__294, D01B_000__147, EDGE1_000__294, D000068__31, CV16_3, D000017__171, HQD_3__17, +D000012__173, SD2_1__47, D000013__160, SD2_1__48, D000014__172, EDGE1_000__295, D01A_000__148, +EDGE2_000__295, D000018__295, EDGE3_000__295, D23_000__148, EDGE3_000__296, D000018__296, +EDGE2_000__296, D01B_000__148, EDGE1_000__296, D000068__32, CH16_3, D000017__172, HQF_3__18, +D000012__174, SF17_3, D000014__173, DB23_3__1, D000067__3, CV17_3, D000017__173, HQD_3__18, +D000012__175, SD17_3, D000014__174, DB23_3__2, D000067__4, CH17_3, D000017__174, HQF_3__19, +D000012__176, SF18_3, D000069__1, HQD22_3, D000069__2, HQF21_3, D000032__43, DB23_3__3, D000032__44, +HQD20_3, D000032__45, DB23_3__4, D000032__46, HQF19_3, D000070__1, HQD18_3, D000070__2, HQF17_3, +D000070__3, HQD16_3, D000032__47, DB23_3__5, D000032__48, HQF15_3, D000032__49, DB23_3__6, D000032__50, +HQD14_3, MCOLL_V1, D000071__1, HQF13_3, D000071__2, MCOLL_V2, HQD12_3, D000071__3, HQF11_3, D000056__14, +SX41_4, D000072__1, MCOLL_V3, HQD10_3, D000056__15, SX42_4, D000072__2, HQF9_3, D000056__16, SX43_4, +D000056__17, DB12_4P__4, D000048__5, DB12_4P__5, D000048__6, DB12_4P__6, D000032__51, HQD8_3, +D000056__18, SX44_4, D000072__3, HQF7_3, D000056__19, SX45_4, D000072__4, HQD6_3, D000056__20, SX46_4, +D000073, IP4, D000074, SX47_4, D000056__21, HQD4_4, D000075__1, SX48_4, D000056__22, HQF5_4, D000075__2, +SX49_4, D000056__23, HQD6_4, D000032__52, DB12_4M__4, D000048__7, DB12_4M__5, D000048__8, DB12_4M__6, +D000056__24, SX50_4, D000056__25, HQF7_4, D000075__3, SX51_4, D000056__26, HQD8_4, D000075__4, SX52_4, +D000056__27, HQF9_4, D000076__1, HQD10_4, D000076__2, HQF11_4, D000032__53, DB23_4__1, D000032__54, +HQD12_4, D000032__55, DB23_4__2, D000032__56, HQF13_4, D000077__1, HQD14_4, D000077__2, HQF15_4, +D000077__3, HQD16_4, D000077__4, HQF17_4, D000077__5, HQD18_4, D000032__57, DB23_4__3, D000032__58, +HQF19_4, D000032__59, DB23_4__4, D000032__60, HQD20_4, D000078__1, HQF21_4, D000078__2, HQD22_4, +D000078__3, SFM1_5, D000056__28, HQF_5__1, D000017__175, CH00_5, D000079__1, DB23_4__5, D000014__175, +SD00_5, D000012__177, HQD_5__1, D000017__176, CV00_5, D000079__2, DB23_4__6, D000014__176, SF00_5, +D000012__178, HQF_5__2, D000017__177, CH01_5, D000080__1, EDGE1_000__297, D01A_000__149, EDGE2_000__297, +D000018__297, EDGE3_000__297, D23_000__149, EDGE3_000__298, D000018__298, EDGE2_000__298, D01B_000__149, +EDGE1_000__298, D000014__177, SD1_5__1, D000013__161, SD1_5__2, D000012__179, HQD_5__2, D000017__178, +CV01_5, D000080__2, EDGE1_000__299, D01A_000__150, EDGE2_000__299, D000018__299, EDGE3_000__299, +D23_000__150, EDGE3_000__300, D000018__300, EDGE2_000__300, D01B_000__150, EDGE1_000__300, D000014__178, +SF1_5__1, D000013__162, SF1_5__2, D000012__180, HQF_5__3, D000017__179, CH02_5, D000080__3, +EDGE1_000__301, D01A_000__151, EDGE2_000__301, D000018__301, EDGE3_000__301, D23_000__151, +EDGE3_000__302, D000018__302, EDGE2_000__302, D01B_000__151, EDGE1_000__302, D000014__179, SD2_5__1, +D000013__163, SD2_5__2, D000012__181, HQD_5__3, D000017__180, CV02_5, D000080__4, EDGE1_000__303, +D01A_000__152, EDGE2_000__303, D000018__303, EDGE3_000__303, D23_000__152, EDGE3_000__304, D000018__304, +EDGE2_000__304, D01B_000__152, EDGE1_000__304, D000014__180, SF2_5__1, D000013__164, SF2_5__2, +D000012__182, HQF_5__4, D000017__181, CH03_5, D000080__5, EDGE1_000__305, D01A_000__153, EDGE2_000__305, +D000018__305, EDGE3_000__305, D23_000__153, EDGE3_000__306, D000018__306, EDGE2_000__306, D01B_000__153, +EDGE1_000__306, D000014__181, SD1_5__3, D000013__165, SD1_5__4, D000012__183, HQD_5__4, D000017__182, +CV03_5, D000080__6, EDGE1_000__307, D01A_000__154, EDGE2_000__307, D000018__307, EDGE3_000__307, +D23_000__154, EDGE3_000__308, D000018__308, EDGE2_000__308, D01B_000__154, EDGE1_000__308, D000014__182, +SF1_5__3, D000013__166, SF1_5__4, D000012__184, HQF_5__5, D000017__183, CH04_5, D000080__7, +EDGE1_000__309, D01A_000__155, EDGE2_000__309, D000018__309, EDGE3_000__309, D23_000__155, +EDGE3_000__310, D000018__310, EDGE2_000__310, D01B_000__155, EDGE1_000__310, D000014__183, SD2_5__3, +D000013__167, SD2_5__4, D000012__185, HQD_5__5, D000017__184, CV04_5, D000080__8, EDGE1_000__311, +D01A_000__156, EDGE2_000__311, D000018__311, EDGE3_000__311, D23_000__156, EDGE3_000__312, D000018__312, +EDGE2_000__312, D01B_000__156, EDGE1_000__312, D000014__184, SF2_5__3, D000013__168, SF2_5__4, +D000012__186, HQF_5__6, D000017__185, CH05_5, D000080__9, EDGE1_000__313, D01A_000__157, EDGE2_000__313, +D000018__313, EDGE3_000__313, D23_000__157, EDGE3_000__314, D000018__314, EDGE2_000__314, D01B_000__157, +EDGE1_000__314, D000014__185, SD1_5__5, D000013__169, SD1_5__6, D000012__187, HQD_5__6, D000017__186, +CV05_5, D000080__10, EDGE1_000__315, D01A_000__158, EDGE2_000__315, D000018__315, EDGE3_000__315, +D23_000__158, EDGE3_000__316, D000018__316, EDGE2_000__316, D01B_000__158, EDGE1_000__316, D000014__186, +SF1_5__5, D000013__170, SF1_5__6, D000012__188, HQF_5__7, D000017__187, CH06_5, D000080__11, +EDGE1_000__317, D01A_000__159, EDGE2_000__317, D000018__317, EDGE3_000__317, D23_000__159, +EDGE3_000__318, D000018__318, EDGE2_000__318, D01B_000__159, EDGE1_000__318, D000014__187, SD2_5__5, +D000013__171, SD2_5__6, D000012__189, HQD_5__7, D000017__188, CV06_5, D000080__12, EDGE1_000__319, +D01A_000__160, EDGE2_000__319, D000018__319, EDGE3_000__319, D23_000__160, EDGE3_000__320, D000018__320, +EDGE2_000__320, D01B_000__160, EDGE1_000__320, D000014__188, SF2_5__5, D000013__172, SF2_5__6, +D000012__190, HQF_5__8, D000017__189, CH07_5, D000080__13, EDGE1_000__321, D01A_000__161, +EDGE2_000__321, D000018__321, EDGE3_000__321, D23_000__161, EDGE3_000__322, D000018__322, +EDGE2_000__322, D01B_000__161, EDGE1_000__322, D000014__189, SD1_5__7, D000013__173, SD1_5__8, +D000012__191, HQD_5__8, D000017__190, CV07_5, D000080__14, EDGE1_000__323, D01A_000__162, +EDGE2_000__323, D000018__323, EDGE3_000__323, D23_000__162, EDGE3_000__324, D000018__324, +EDGE2_000__324, D01B_000__162, EDGE1_000__324, D000014__190, SF1_5__7, D000013__174, SF1_5__8, +D000012__192, HQF_5__9, D000017__191, CH08_5, D000080__15, EDGE1_000__325, D01A_000__163, +EDGE2_000__325, D000018__325, EDGE3_000__325, D23_000__163, EDGE3_000__326, D000018__326, +EDGE2_000__326, D01B_000__163, EDGE1_000__326, D000014__191, SD2_5__7, D000013__175, SD2_5__8, +D000012__193, HQD_5__9, D000017__192, CV08_5, D000080__16, EDGE1_000__327, D01A_000__164, +EDGE2_000__327, D000018__327, EDGE3_000__327, D23_000__164, EDGE3_000__328, D000018__328, +EDGE2_000__328, D01B_000__164, EDGE1_000__328, D000014__192, SF2_5__7, D000013__176, SF2_5__8, +D000012__194, HQF_5__10, D000017__193, CH09_5, D000080__17, EDGE1_000__329, D01A_000__165, +EDGE2_000__329, D000018__329, EDGE3_000__329, D23_000__165, EDGE3_000__330, D000018__330, +EDGE2_000__330, D01B_000__165, EDGE1_000__330, D000014__193, SD1_5__9, D000013__177, SD1_5__10, +D000012__195, HQD_5__10, D000017__194, CV09_5, D000080__18, EDGE1_000__331, D01A_000__166, +EDGE2_000__331, D000018__331, EDGE3_000__331, D23_000__166, EDGE3_000__332, D000018__332, +EDGE2_000__332, D01B_000__166, EDGE1_000__332, D000014__194, SF1_5__9, D000013__178, SF1_5__10, +D000012__196, HQF_5__11, D000017__195, CH10_5, D000080__19, EDGE1_000__333, D01A_000__167, +EDGE2_000__333, D000018__333, EDGE3_000__333, D23_000__167, EDGE3_000__334, D000018__334, +EDGE2_000__334, D01B_000__167, EDGE1_000__334, D000014__195, SD2_5__9, D000013__179, SD2_5__10, +D000012__197, HQD_5__11, D000017__196, CV10_5, D000080__20, EDGE1_000__335, D01A_000__168, +EDGE2_000__335, D000018__335, EDGE3_000__335, D23_000__168, EDGE3_000__336, D000018__336, +EDGE2_000__336, D01B_000__168, EDGE1_000__336, D000014__196, SF2_5__9, D000013__180, SF2_5__10, +D000012__198, HQF_5__12, D000017__197, CH11_5, D000080__21, EDGE1_000__337, D01A_000__169, +EDGE2_000__337, D000018__337, EDGE3_000__337, D23_000__169, EDGE3_000__338, D000018__338, +EDGE2_000__338, D01B_000__169, EDGE1_000__338, D000014__197, SD1_5__11, D000013__181, SD1_5__12, +D000012__199, HQD_5__12, D000017__198, CV11_5, D000080__22, EDGE1_000__339, D01A_000__170, +EDGE2_000__339, D000018__339, EDGE3_000__339, D23_000__170, EDGE3_000__340, D000018__340, +EDGE2_000__340, D01B_000__170, EDGE1_000__340, D000014__198, SF1_5__11, D000013__182, SF1_5__12, +D000012__200, HQF_5__13, D000017__199, CH12_5, D000080__23, EDGE1_000__341, D01A_000__171, +EDGE2_000__341, D000018__341, EDGE3_000__341, D23_000__171, EDGE3_000__342, D000018__342, +EDGE2_000__342, D01B_000__171, EDGE1_000__342, D000014__199, SD2_5__11, D000013__183, SD2_5__12, +D000012__201, HQD_5__13, D000017__200, CV12_5, D000080__24, EDGE1_000__343, D01A_000__172, +EDGE2_000__343, D000018__343, EDGE3_000__343, D23_000__172, EDGE3_000__344, D000018__344, +EDGE2_000__344, D01B_000__172, EDGE1_000__344, D000014__200, SF2_5__11, D000013__184, SF2_5__12, +D000012__202, HQF_5__14, D000017__201, CH13_5, D000080__25, EDGE1_000__345, D01A_000__173, +EDGE2_000__345, D000018__345, EDGE3_000__345, D23_000__173, EDGE3_000__346, D000018__346, +EDGE2_000__346, D01B_000__173, EDGE1_000__346, D000014__201, SD1_5__13, D000013__185, SD1_5__14, +D000012__203, HQD_5__14, D000017__202, CV13_5, D000080__26, EDGE1_000__347, D01A_000__174, +EDGE2_000__347, D000018__347, EDGE3_000__347, D23_000__174, EDGE3_000__348, D000018__348, +EDGE2_000__348, D01B_000__174, EDGE1_000__348, D000014__202, SF1_5__13, D000013__186, SF1_5__14, +D000012__204, HQF_5__15, D000017__203, CH14_5, D000080__27, EDGE1_000__349, D01A_000__175, +EDGE2_000__349, D000018__349, EDGE3_000__349, D23_000__175, EDGE3_000__350, D000018__350, +EDGE2_000__350, D01B_000__175, EDGE1_000__350, D000014__203, SD2_5__13, D000013__187, SD2_5__14, +D000012__205, HQD_5__15, D000017__204, CV14_5, D000080__28, EDGE1_000__351, D01A_000__176, +EDGE2_000__351, D000018__351, EDGE3_000__351, D23_000__176, EDGE3_000__352, D000018__352, +EDGE2_000__352, D01B_000__176, EDGE1_000__352, D000014__204, SF2_5__13, D000013__188, SF2_5__14, +D000012__206, HQF_5C, D000017__205, CH15_5, D000080__29, EDGE1_001__1, D01A_001__1, EDGE2_001__1, +D000029__9, EDGE3_001__1, D23_001__1, EDGE3_001__2, D000029__10, EDGE2_001__2, D01B_001__1, +EDGE1_001__2, D000014__205, SD1_5__15, D000013__189, SD1_5__16, D000012__207, HQD_5C, D000017__206, +CV15_5, D000080__30, EDGE1_001__3, D01A_001__2, EDGE2_001__3, D000029__11, EDGE3_001__3, D23_001__2, +EDGE3_001__4, D000029__12, EDGE2_001__4, D01B_001__2, EDGE1_001__4, D000014__206, SF1_5__15, +D000013__190, SF1_5__16, D000012__208, HQF_5B, D000017__207, CH16_5, D000080__31, EDGE1_001__5, +D01A_001__3, EDGE2_001__5, D000029__13, EDGE3_001__5, D23_001__3, EDGE3_001__6, D000029__14, +EDGE2_001__6, D01B_001__3, EDGE1_001__6, D000014__207, SD2_5__15, D000013__191, SD2_5__16, D000012__209, +HQD_5B, D000017__208, CV16_5, D000080__32, EDGE1_001__7, D01A_001__4, EDGE2_001__7, D000029__15, +EDGE3_001__7, D23_001__4, EDGE3_001__8, D000029__16, EDGE2_001__8, D01B_001__4, EDGE1_001__8, +D000014__208, SF2_5__15, D000013__192, SF2_5__16, D000012__210, HQF_5A, D000011__4, HQD_5A, D000008__25, +MROT1__4, HSOL5_6__3, D000008__26, HQSS1_5, D000009__31, HQSS2_5, D000009__32, HQSS3_5, D000009__33, +HQSS4_5, D000009__34, HQSS5_5, D000008__27, HSOL5_6__4, MROT2__4, D000008__28, HQFF1_5, D000081__1, +DB23_5__1, D000081__2, QFF2_5, D000081__3, DB23_5__2, D000081__4, QFF3_5, D000081__5, DB23_5__3, +D000081__6, QFF4_5, D000081__7, DB23_5__4, D000081__8, HQFF5_5, D000081__9, DB23_5__5, D000081__10, +MFF_5, HQFF6_5, D000008__29, MROT3__4, HSOL20_6__3, D000008__30, HQLS1_5, D000009__35, HQLS2_5, +D000009__36, HQLS3_5, D000009__37, HQLS4_5, D000009__38, HQLS5_5, D000009__39, HQLS6_5, D000009__40, +HQLS7_5, D000008__31, HSOL20_6__4, MROT4__4, D000008__32, MLRF_6, Q12EF_6, D000006__30, D3EF_6__1, +D000006__31, Q11EF_6, D000006__32, D3EF_6__2, D000006__33, Q10EF_6, D000006__34, D3EF_6__3, D000006__35, +Q9EF_6, D000006__36, D3EF_6__4, D000006__37, Q8EF_6, D000005__15, Q7EF_6, D000005__16, Q6EF_6, +D000005__17, Q5EF_6, D000005__18, Q4EF_6, D000082, Q3EF_6, D000007__33, RF_CRAB__4, D000007__34, Q2EF_6, +D000006__38, D1EF_6, D000083, MCOLL_MASK, Q1EF_6, D000022__2, Q0EF_6, D000023__2, IP6__2], + R_ref=-59.52872449027632, species_ref=Species("electron")) diff --git a/src/Constants.jl b/src/Constants.jl new file mode 100644 index 0000000..7b8d629 --- /dev/null +++ b/src/Constants.jl @@ -0,0 +1,5 @@ +module Constants +using AtomicAndPhysicalConstants +@APCdef tupleflag=false +isnullspecies(species_ref::Species) = getfield(species_ref, :kind) == Kind.NULL +end \ No newline at end of file diff --git a/src/SciBmad.jl b/src/SciBmad.jl index 5693e3b..4c24812 100644 --- a/src/SciBmad.jl +++ b/src/SciBmad.jl @@ -1,5 +1,350 @@ module SciBmad -# Write your package code here. +using LinearAlgebra, + TypedTables, + Reexport, + StaticArrays, + NonlinearSolve, + ForwardDiff, + RecursiveArrayTools, + BeamTracking + +@reexport using Beamlines +@reexport using NonlinearNormalForm +@reexport using GTPSA + +using NonlinearNormalForm: NonlinearNormalForm as NNF +using DifferentiationInterface: DifferentiationInterface as DI +using PrecompileTools: @setup_workload, @compile_workload + +# Put AtomicAndPhysicalConstants in a box for now for safety +include("Constants.jl") +using .Constants: Constants, Species, massof, chargeof, C_LIGHT, isnullspecies +export Species + +# BeamTrackingBeamlinesExt +const BTBL = Base.get_extension(BeamTracking, :BeamTrackingBeamlinesExt) + +export twiss, find_closed_orbit, track! + +function track_a_particle!(coords, coords0, p; use_KA=false, use_explicit_SIMD=false) + _bl = p[1] + coords .= coords0 + b0 = Bunch(reshape(coords, (1,6))) + BTBL.check_bl_bunch!(_bl, b0, false) # Do not notify + track!(b0, _bl; use_KA=use_KA, use_explicit_SIMD=use_explicit_SIMD) + return coords +end + +coast_check(t,p) = track_a_particle!(t, t, p; use_KA=false, use_explicit_SIMD=false)[6] + +function find_closed_orbit(bl::Beamline; solver=nothing, reltol=1e-8, abstol=1e-11) + # First check if coasting, for this push a particle starting at 0 and see if + # delta is a parameter + x = zero(MVector{6,Float64}) + grad = zero(MVector{6,Float64}) + prep = DI.prepare_gradient(coast_check, AutoForwardDiff(chunksize=6), x, DI.Constant((bl,))) + DI.gradient!(coast_check, grad, prep, AutoForwardDiff(chunksize=6), x, DI.Constant((bl,))) + if all(view(grad, 1:5) .≈ 0) && grad[6] ≈ 1 + coast = Val{true}() + else + coast = Val{false}() + end + return @noinline _find_closed_orbit(coast, bl, solver, reltol, abstol) +end + +function _find_closed_orbit(coast::Val{true}, bl, solver, reltol, abstol) + prob = NonlinearProblem{true}(zero(MVector{4,Float64}), (bl,)) do u, u0, p + track_a_particle!(ArrayPartition(u,MVector{2,eltype(u)}(0,0)), SA[u0[1], u0[2], u0[3], u0[4], 0, 0], p; use_KA=false, use_explicit_SIMD=false) + u .= u .- u0 + end + if isnothing(solver) + solver = SimpleHalley(autodiff=AutoForwardDiff(chunksize = NonlinearSolve.pickchunksize(prob.u0))) + end + sol = solve(prob, solver; reltol=reltol, abstol=abstol) + return sol +end + +function _find_closed_orbit(coast::Val{false}, bl, solver, reltol, abstol) + prob = NonlinearProblem{true}(zeros(6), (bl,)) do u, u0, p + track_a_particle!(u, u0, p; use_KA=false, use_explicit_SIMD=false) + u .= u .- u0 + end + if isnothing(solver) + solver = SimpleHalley(autodiff=AutoForwardDiff(chunksize = NonlinearSolve.pickchunksize(prob.u0))) + end + sol = solve(prob, solver; reltol=reltol, abstol=abstol) + return sol +end + + +#= +function find_closed_orbit(bl::Beamline; ftol=1e-13, autodiff=:forward, method=:newton, options...) + function track_a_particle!(coords, coords0=coords; track_options...) + coords .= coords0 + b0 = Bunch(reshape(coords, (1,6))) + BTBL.check_bl_bunch!(bl, b0, false) # Do not notify + track!(b0, bl; track_options...) + return coords + end + + # First check if coasting + grad = DI.gradient(t->track_a_particle!(t)[6], AutoForwardDiff(), zeros(6)) + if all(view(grad, 1:5) .≈ 0) && grad[6] ≈ 1 + coast = true + else + coast = false + end + + if coast + sol = fixedpoint(zeros(4); ftol=ftol, autodiff=autodiff, method=method, options...) do c, c0 + track_a_particle!(ArrayPartition(c,eltype(c)[0,0]), SA[c0[1], c0[2], c0[3], c0[4], 0, 0], use_KA=false, use_explicit_SIMD=false) + end + #optf = OptimizationFunction((t,p)->sum(abs2, view(track_a_particle!([t[1],t[2],t[3],t[4],0,0]), 1:4) .- t), AD_backend) + #optprob = OptimizationProblem(optf, zeros(4)) + #sol = solve(optprob, Optimization.LBFGS(); options...) + else + sol = fixedpoint(track_a_particle!, zeros(6); ftol=ftol, autodiff=autodiff, method=method, options...) + #optf = OptimizationFunction((t,p)->sum(abs2, track_a_particle!(collect(t)) .- t), AD_backend) + #optprob = OptimizationProblem(optf, zeros(6)) + #sol = solve(optprob, Optimization.LBFGS(); options...) + end + + return sol +end +=# + +# Returns a Table of the Twiss parameters +# See Eq. 4.28 in EBB +function twiss( + bl::Beamline; + GTPSA_descriptor=Descriptor(6, 1), # GTPSA.desc_current, + de_moivre=false, + closed_orbit=find_closed_orbit(bl).u) + # First get closed orbit: + if length(closed_orbit) == 4 + coast = true + v0 = similar(closed_orbit, 6) + v0[1:4] .= closed_orbit + v0[5:6] .= 0 + else + coast = false + v0 = closed_orbit + end + # This will get the map and tell us if coasting, etc etc + if GTPSA_descriptor.desc == C_NULL + GTPSA_descriptor = Descriptor(6, 1) + end + Δv = @vars(GTPSA_descriptor)[1:6] + v = reshape(v0 + Δv, (1, 6)) + b0 = Bunch(v) + BTBL.check_bl_bunch!(bl, b0, false) # Do not notify + linear = NNF.maxord(b0.coords.v[1]) == 1 ? true : false + track!(b0, bl) + m = DAMap(v=dropdims(b0.coords.v; dims=1)) + # function barrier + S = typeof(bl.line[end].s) + #return m, b0, bl, S, Val{linear}(), Val{de_moivre}() + return _twiss(m, b0, bl, S, Val{linear}(), Val{de_moivre}()) +end + +function twiss_tuple(s, phi, NNF_tuple, orbit) + return (; + s = s, + phi_1 = phi[1], + beta_1 = NNF_tuple.beta[1], + alpha_1 = NNF_tuple.alpha[1], + phi_2 = phi[2], + beta_2 = NNF_tuple.beta[2], + alpha_2 = NNF_tuple.alpha[2], + phi_3 = phi[3], + eta_1 = NNF_tuple.eta[1], + eta_2 = NNF_tuple.eta[2], + etap_1 = NNF_tuple.etap[1], + etap_2 = NNF_tuple.etap[2], + gamma_c = NNF_tuple.gamma_c, + c11 = NNF_tuple.C[1,1], + c12 = NNF_tuple.C[1,2], + c21 = NNF_tuple.C[2,1], + c22 = NNF_tuple.C[2,2], + orbit_x = orbit[1], + orbit_px = orbit[2], + orbit_y = orbit[3], + orbit_py = orbit[4], + orbit_z = orbit[5], + orbit_pz = orbit[6], + ) +end + +function twiss_table(tt, N_ele) + S = typeof(tt.s) + T = typeof(tt.phi_1) + t = Table( + s = Vector{S}(undef, N_ele+1), + phi_1 = Vector{T}(undef, N_ele+1), + beta_1 = Vector{T}(undef, N_ele+1), + alpha_1 = Vector{T}(undef, N_ele+1), + phi_2 = Vector{T}(undef, N_ele+1), + beta_2 = Vector{T}(undef, N_ele+1), + alpha_2 = Vector{T}(undef, N_ele+1), + phi_3 = Vector{T}(undef, N_ele+1), + eta_1 = Vector{T}(undef, N_ele+1), + eta_2 = Vector{T}(undef, N_ele+1), + etap_1 = Vector{T}(undef, N_ele+1), + etap_2 = Vector{T}(undef, N_ele+1), + gamma_c = Vector{T}(undef, N_ele+1), + c11 = Vector{T}(undef, N_ele+1), + c12 = Vector{T}(undef, N_ele+1), + c21 = Vector{T}(undef, N_ele+1), + c22 = Vector{T}(undef, N_ele+1), + orbit_x = Vector{T}(undef, N_ele+1), + orbit_px = Vector{T}(undef, N_ele+1), + orbit_y = Vector{T}(undef, N_ele+1), + orbit_py = Vector{T}(undef, N_ele+1), + orbit_z = Vector{T}(undef, N_ele+1), + orbit_pz = Vector{T}(undef, N_ele+1), + ) + t[1] = tt + return t +end + +function de_moivre_tuple(s, phi, NNF_tuple, orbit) + return (; + s = s, + phi_1 = phi[1], + phi_2 = phi[2], + phi_3 = phi[3], + H = NNF_tuple.H, + B = NNF_tuple.B, + E = NNF_tuple.E, + K = NNF_tuple.K, + orbit_x = orbit[1], + orbit_px = orbit[2], + orbit_y = orbit[3], + orbit_py = orbit[4], + orbit_z = orbit[5], + orbit_pz = orbit[6], + ) +end + +function de_moivre_table(dt, N_ele) + S = typeof(dt.s) + T = typeof(dt.phi_1) + U = typeof(dt.H) + t = Table( + s = Vector{S}(undef, N_ele+1), + phi_1 = Vector{T}(undef, N_ele+1), + phi_2 = Vector{T}(undef, N_ele+1), + phi_3 = Vector{T}(undef, N_ele+1), + H = Vector{U}(undef, N_ele+1), + B = Vector{U}(undef, N_ele+1), + E = Vector{U}(undef, N_ele+1), + K = Vector{U}(undef, N_ele+1), + orbit_x = Vector{T}(undef, N_ele+1), + orbit_px = Vector{T}(undef, N_ele+1), + orbit_y = Vector{T}(undef, N_ele+1), + orbit_py = Vector{T}(undef, N_ele+1), + orbit_z = Vector{T}(undef, N_ele+1), + orbit_pz = Vector{T}(undef, N_ele+1), + ) + t[1] = dt + return t +end + +function _twiss(m::DAMap, b0::Bunch, bl::Beamline, S::Type, ::Val{linear}, ::Val{de_moivre}) where {linear, de_moivre} + # Ripken-Wolski-Forest de Moivre coupling formalism + # If linear is true, then we do not need to do any factorization + # Else we must factorize at every element + + COMPUTE_TWISS = de_moivre ? compute_de_moivre : compute_sagan_rubin + LF = !de_moivre ? twiss_tuple : de_moivre_tuple + LF_TABLE = !de_moivre ? twiss_table : de_moivre_table + + s::S = 0 + + if linear + N_ele = length(bl.line) + a = normal(m) + NNF.setray!(a.v, scalar=m.v) + r = fast_canonize(a) + a = a ∘ r + NNF_tuple = COMPUTE_TWISS(a, Val{linear}()) + T = eltype(eltype(typeof(getproperty(NNF_tuple, first(propertynames(NNF_tuple)))))) + lf1 = LF(S(s), T.(SA[0,0,0]), COMPUTE_TWISS(a, Val{linear}()), scalar.(view(a.v, 1:6))) + lf_table = LF_TABLE(lf1, N_ele) + phase = MVector{3,T}(0,0,0) + for i in 1:N_ele + phase .= 0 + b0.coords.v .= view(a.v, 1:6)' + track!(b0, bl.line[i]) + s = lf_table.s[i] + S(bl.line[i].L)::S + NNF.setray!(a.v; v=view(b0.coords.v, 1:6)) + r = fast_canonize(a; phase=phase) + a = a ∘ r + old_phases = SA[lf_table.phi_1[i], lf_table.phi_2[i], lf_table.phi_3[i]] + lfi = LF(s, old_phases+phase, COMPUTE_TWISS(a, Val{linear}()), scalar.(view(a.v, 1:6))) + lf_table[i+1] = lfi + end + else + # In the nonlinear case, we need to track the FULL a, and + # factorize each element. In this case, if there is coasting, + # H will NOT contain the dispersion because we include that + # in the parameter-dependent transformation + + # The lattice functions must be evaluated for each a1 specifically + error("Nonlinear twiss calculation currently being developed") + end + + return lf_table +end +include("track.jl") + + #= + t = Table(s=s, phi_x=phase[1,:], phi_y=phase[2,:], phi_z=phase[3,:], + beta_xx=map(t->t.E[1][1,1], lf), + alpha_xx=map(t->t.E[1][1,2], lf), + beta_yy=map(t->t.E[2][3,3], lf), + alpha_yy=map(t->t.E[2][3,4], lf), + eta_x=map(t->t.H[3][1,6], lf), + eta_y=map(t->t.H[3][3,6], lf), + ) + =# + + + +@setup_workload begin + @compile_workload begin + K1 = 0.36; + K2 = 0.1; + + qf = Quadrupole(Kn1=DefExpr(() -> +K1), L=0.5); + sf = Sextupole(Kn2=DefExpr(() -> +K2), L=0.2); + d = Drift(L=0.6); + b = SBend(L=6.0, angle=pi/132); + qd = Quadrupole(Kn1=DefExpr(() -> -K1), L=0.5); + sd = Sextupole(Kn2=DefExpr(() -> -K2), L=0.2); + + + fodo_line = [qf, sf, d, b, d, qd, sd, d, b, d]; + fodo = Beamline(fodo_line, species_ref=Species("electron"), E_ref=18e9); + + K1 = 0.3 + qf.Kn1 + qd.Kn1 + t = twiss(fodo) + co = find_closed_orbit(fodo) + v0 = co.u + dv = @vars(D2) + v0 = zeros(6) + v = v0 + dv + m = DAMap(v=b0.coords.v) + a = normal(m) + c = c_map(m) + ci = inv(c) + r_phasor = ci * r * c + ADT = real(-log(par(r_phasor.v[1], 1))/(2*pi*im)) + ADT + end +end end diff --git a/src/track.jl b/src/track.jl new file mode 100644 index 0000000..f8e35e1 --- /dev/null +++ b/src/track.jl @@ -0,0 +1,22 @@ +function track( + v0::Union{AbstractMatrix,AbstractVector}, + bl::Beamline; + N_turns=1, +) + if v0 isa AbstractVector + length(v0) == 6 || error("Track accepts a N x 6 matrix of N particle coordinates, + or alternatively a single particle as a vector. Received + a vector of length $(length(v))") + v0 = reshape(v0, (1, 6)) + end + N_particles = size(v0, 1) + b0 = Bunch(v0) + BTBL.check_bl_bunch!(bl, b0, false) # Do not notify + res = Array{eltype(v0),3}(undef, N_particles, N_turns+1, 6) + res[:,1,:] .= b0.coords.v + for i in 1:N_turns + track!(b0, bl) + res[:,i+1,:] .= b0.coords.v + end + return res +end \ No newline at end of file diff --git a/tmp/.ipynb_checkpoints/tmp-checkpoint.ipynb b/tmp/.ipynb_checkpoints/tmp-checkpoint.ipynb new file mode 100644 index 0000000..8b20b26 --- /dev/null +++ b/tmp/.ipynb_checkpoints/tmp-checkpoint.ipynb @@ -0,0 +1,1019 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8fec6c66", + "metadata": {}, + "source": [ + "## Introduction to SciBmad \n", + "\n", + "Differentiable simulation codes are necessary tools in accelerator physics to properly compute (via integration) Taylor maps representing the particle transport, and subsequently extract the lattice functions from. Early examples of differentiable accelerator physics codes are the Polymorphic Tracking Code (PTC) and COSY-INFINITY, both developed in the early 1990s. Modern examples of differentiable codes are CERN's `MAD-NG`, and Cornell's `SciBmad`:\n", + "\n", + "`SciBmad` is a new, modular, polymorphic, differentiable, and portable (CPU/GPU compatible) accelerator physics code being developed at Cornell. This Jupyter notebook will show some its basic features, including lazily evaluated deferred expressions, polymorphism, and differentiability." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "dc2130c5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Detected IPython. Loading juliacall extension. See https://juliapy.github.io/PythonCall.jl/stable/compat/#IPython\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[ Info: Precompiling SciBmad [7bf6e793-a2ec-421f-8700-d1465381ee80] (cache misses: include_dependency fsize change (6), incompatible header (2))\n", + "[ Info: Precompiling BeamlinesPythonCallExt [1bd1f19e-78eb-58e7-990a-94b9895c993a] (cache misses: wrong dep version loaded (4))\n" + ] + } + ], + "source": [ + "import math\n", + "import numpy as np\n", + "import juliacall\n", + "from juliacall import Main as jl\n", + "import matplotlib.pyplot as plt\n", + "jl.seval('using SciBmad')" + ] + }, + { + "cell_type": "markdown", + "id": "96cb92ae", + "metadata": {}, + "source": [ + "Let's first make a FODO cell consisting of a quadrupole, sextupole, bend, and drift. This uses the [`Beamlines.jl`](https://github.com/bmad-sim/Beamlines.jl) package within the SciBmad family, which is automatically included when `using SciBmad`. We require by design that the focusing quadrupole strength is negative that of the defocusing quadrupole strength, and likewise for the sextupole. To achieve this, we will use `SciBmad`'s deferred expressions" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "a4b9d39d", + "metadata": {}, + "outputs": [], + "source": [ + "# Make a FODO cell requiring that\n", + "# qf.Kn1 = -qd.Kn1 \n", + "# and\n", + "# sf.Kn2 = -sd.Kn2\n", + "# This is done using a \"deferred expression\"\n", + "# to form a \"closure\" of the variables we define:\n", + "\n", + "K1 = 0.36\n", + "K2 = 0.1\n", + "\n", + "qf = jl.Quadrupole(Kn1=jl.DefExpr(lambda : +K1), L=0.5)\n", + "sf = jl.Sextupole(Kn2=jl.DefExpr(lambda : +K2), L=0.2)\n", + "d = jl.Drift(L=0.6)\n", + "b = jl.SBend(L=6.0, angle=math.pi/132)\n", + "qd = jl.Quadrupole(Kn1=jl.DefExpr(lambda : -K1), L=0.5)\n", + "sd = jl.Sextupole(Kn2=jl.DefExpr(lambda : -K2), L=0.2)\n", + "\n", + "\n", + "fodo_line = [qf, sf, d, b, d, qd, sd, d, b, d]\n", + "fodo = jl.Beamline(fodo_line, species_ref=jl.Species(\"electron\"), E_ref=18e9)" + ] + }, + { + "cell_type": "markdown", + "id": "fb4cc815", + "metadata": {}, + "source": [ + "Now if we update `K1`, both `qf` and `qd` will be (lazily) updated." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "4c9dc7e6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.4\n", + "-0.4\n" + ] + } + ], + "source": [ + "K1 = 0.4\n", + "print(qf.Kn1)\n", + "print(qd.Kn1)" + ] + }, + { + "cell_type": "markdown", + "id": "a8aed78e", + "metadata": {}, + "source": [ + "Let's compute the transport matrix for this FODO cell using automatic differentiation (AD). Because it is a periodic (closed) geometry, we first need to find the closed orbit. We then will expand for small deviations around this orbit." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7d07240c", + "metadata": {}, + "outputs": [], + "source": [ + "co = jl.find_closed_orbit(fodo)\n", + "v0 = co.u" + ] + }, + { + "cell_type": "markdown", + "id": "c494612f", + "metadata": {}, + "source": [ + "We see that in this case the closed orbit is the \"zero orbit\", which makes sense because all the magnets are perfectly aligned and there are no RF cavities. Note that in general the \"zero orbit\" is not always the closed orbit (in the case of a periodic accelerator) or the reference orbit (in the case of a linac). We must always expand around some real trajectory.\n", + "\n", + "Now we will use [`GTPSA.jl`](https://github.com/bmad-sim/GTPSA.jl) to compute the Taylor map, to 2nd order. `GTPSA.jl` is a full-featured interface to the Generalised Truncated Power Series Algebra library, written by Laurent Deniau for CERN's `MAD-NG` code, and is another package in the `SciBmad` family. Because `SciBmad` is polymorphic, all we need to do is track a single particle on the closed orbit where the numbers are Truncated Power Series (`TPS`) types instead of the regular 64-bit floats `Float64`s.\n", + "\n", + "First, we define a `Descriptor` to define the number of variables (6) and the truncation order of our Taylor series (2)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "158da855", + "metadata": {}, + "outputs": [], + "source": [ + "D2 = jl.Descriptor(6, 2) # 6 variables, 2nd order" + ] + }, + { + "cell_type": "markdown", + "id": "0efc6faa", + "metadata": {}, + "source": [ + "We will then get our special `TPS` number types. Specifically, we will start with the \"identity map\", or a vector of unit \"wiggles\". E.g., wiggle the input a bit, see how the output wiggles" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "b8035fae", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "┌ Warning: `vars` is deprecated, use the @vars macro instead.\n", + "│ caller = pyjlany_call(self::typeof(vars), args_::Py, kwargs_::Py) at any.jl:47\n", + "└ @ PythonCall.JlWrap ~/.julia/packages/PythonCall/L4cjh/src/JlWrap/any.jl:47\n" + ] + } + ], + "source": [ + "# Then get a vector of `TPS`s representing an identity of the variables:\n", + "dv = jl.vars(D2) # Think of these as unit \"wiggles\"\n", + "\n", + " # Finally initialize our particle coordinates\n", + "v0 = jl.zeros(6) # Closed orbit\n", + "v = v0 + dv # Particle as a TPSA (wiggle around the closed orbit)" + ] + }, + { + "cell_type": "markdown", + "id": "a0c8b97c", + "metadata": {}, + "source": [ + "Now we track!" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "1d9f7c33", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[ Info: Setting bunch.species = Species(\"electron\", -1 e, 0.51099895069 MeV c^-2, 0.5 h_bar, -9.2847646917e-24 J T^-1, 0.0, AtomicAndPhysicalConstants.Kind.LEPTON) (reference species from the Beamline)\n", + "[ Info: Setting bunch.R_ref = -60.04153711147289 (reference R_ref from the Beamline)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6-element Matrix{TPS64{GTPSA.Dynamic}}:\n", + "Descriptor(NV=6, MO=2)\n", + " Index Coefficient Order Exponent\n", + "--------------------------------------------------------------------\n", + " 1: 2.5673907444456746e-17 0 0 0 0 0 0 0\n", + " 1: -2.9192628645234939e+00 1 1 0 0 0 0 0\n", + " 1: 2.7086736617305288e+01 1 0 1 0 0 0 0\n", + " 1: 4.8816309175570605e-16 1 0 0 1 0 0 0\n", + " 1: 1.6002744341408089e-15 1 0 0 0 1 0 0\n", + " 1: 5.0159518894282085e-01 1 0 0 0 0 0 1\n", + " 1: -2.0257056356964581e-01 2 2 0 0 0 0 0\n", + " 1: -1.2619985248293755e+00 2 1 1 0 0 0 0\n", + " 1: 6.2118760845449215e+00 2 0 2 0 0 0 0\n", + " 1: 2.4604077045055341e-17 2 1 0 1 0 0 0\n", + " 1: 5.9531587215093307e-17 2 0 1 1 0 0 0\n", + " 1: -1.5931515195463741e-01 2 0 0 2 0 0 0\n", + " 1: 5.3129394880295523e-18 2 1 0 0 1 0 0\n", + " 1: 1.4630794896905926e-16 2 0 1 0 1 0 0\n", + " 1: -2.7868717305398274e+00 2 0 0 1 1 0 0\n", + " 1: -5.2029442575209863e+00 2 0 0 0 2 0 0\n", + " 1: 6.2425242700219412e+00 2 1 0 0 0 0 1\n", + " 1: -3.7807578433494399e+01 2 0 1 0 0 0 1\n", + " 1: -7.9322461478621057e-16 2 0 0 1 0 0 1\n", + " 1: -3.2729016554810794e-15 2 0 0 0 1 0 1\n", + " 1: -6.4493388130436402e-01 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 2: -3.4694469519536142e-18 0 0 0 0 0 0 0\n", + " 2: -3.0917479448881280e-01 1 1 0 0 0 0 0\n", + " 2: 2.5261638191775830e+00 1 0 1 0 0 0 0\n", + " 2: 6.3810568787362897e-17 1 0 0 1 0 0 0\n", + " 2: 2.0920655675076445e-16 1 0 0 0 1 0 0\n", + " 2: 6.6192405815655844e-02 1 0 0 0 0 0 1\n", + " 2: -1.9716409674901295e-02 2 2 0 0 0 0 0\n", + " 2: -1.1836022168217045e-01 2 1 1 0 0 0 0\n", + " 2: 6.6096962489185951e-01 2 0 2 0 0 0 0\n", + " 2: 4.0169500055934360e-18 2 1 0 1 0 0 0\n", + " 2: 9.1087863340823260e-19 2 0 1 1 0 0 0\n", + " 2: -3.5334645092761102e-02 2 0 0 2 0 0 0\n", + " 2: 3.3846237650093815e-18 2 1 0 0 1 0 0\n", + " 2: -4.3296541431451771e-18 2 0 1 0 1 0 0\n", + " 2: -3.9609101473959490e-01 2 0 0 1 1 0 0\n", + " 2: -7.1128402975022920e-01 2 0 0 0 2 0 0\n", + " 2: 3.0781729794912083e-01 2 1 0 0 0 0 1\n", + " 2: -1.4583398667393581e+00 2 0 1 0 0 0 1\n", + " 2: -4.0006495007695620e-17 2 0 0 1 0 0 1\n", + " 2: -2.1908587316981384e-16 2 0 0 0 1 0 1\n", + " 2: -1.8806564185196412e-02 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 3: 2.6005063989261206e-33 0 0 0 0 0 0 0\n", + " 3: -1.0377507506125307e-16 1 1 0 0 0 0 0\n", + " 3: 1.4538479106997436e-15 1 0 1 0 0 0 0\n", + " 3: 2.3967935861470133e-01 1 0 0 1 0 0 0\n", + " 3: 3.7216841490284902e+00 1 0 0 0 1 0 0\n", + " 3: 1.7156967235435141e-17 1 0 0 0 0 0 1\n", + " 3: -1.2625390189872071e-17 2 2 0 0 0 0 0\n", + " 3: -1.6715018798627032e-17 2 1 1 0 0 0 0\n", + " 3: 2.8631748569385404e-18 2 0 2 0 0 0 0\n", + " 3: 3.3053479018582710e-01 2 1 0 1 0 0 0\n", + " 3: -3.2443102819751535e+00 2 0 1 1 0 0 0\n", + " 3: 5.8464977912096827e-18 2 0 0 2 0 0 0\n", + " 3: 8.7239691323397284e-01 2 1 0 0 1 0 0\n", + " 3: -1.0793192164106848e+01 2 0 1 0 1 0 0\n", + " 3: -4.8742304905171187e-17 2 0 0 1 1 0 0\n", + " 3: -1.0522416929865590e-16 2 0 0 0 2 0 0\n", + " 3: 3.9006947041197318e-16 2 1 0 0 0 0 1\n", + " 3: -2.8352181182238744e-15 2 0 1 0 0 0 1\n", + " 3: 3.0596989853096992e+00 2 0 0 1 0 0 1\n", + " 3: 8.6053372401129504e+00 2 0 0 0 1 0 1\n", + " 3: -3.4311390073538383e-17 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 4: 3.3993609410275580e-34 0 0 0 0 0 0 0\n", + " 4: -1.3578512960405904e-17 1 1 0 0 0 0 0\n", + " 4: 1.9010918552101528e-16 1 0 1 0 0 0 0\n", + " 4: -3.0929980978803862e-01 1 0 0 1 0 0 0\n", + " 4: -6.3049317329240628e-01 1 0 0 0 1 0 0\n", + " 4: 2.2443320709156127e-18 1 0 0 0 0 0 1\n", + " 4: -1.7300989520914240e-18 2 2 0 0 0 0 0\n", + " 4: -2.8048596331190322e-19 2 1 1 0 0 0 0\n", + " 4: -1.0789253382167049e-17 2 0 2 0 0 0 0\n", + " 4: 2.3178583550436675e-02 2 1 0 1 0 0 0\n", + " 4: -4.4152134026615630e-01 2 0 1 1 0 0 0\n", + " 4: 9.6282272955842114e-19 2 0 0 2 0 0 0\n", + " 4: 1.0360131370917137e-01 2 1 0 0 1 0 0\n", + " 4: -1.4618954966135980e+00 2 0 1 0 1 0 0\n", + " 4: -5.3846180015453750e-18 2 0 0 1 1 0 0\n", + " 4: -1.2647804231652445e-17 2 0 0 0 2 0 0\n", + " 4: 3.7462774094416378e-17 2 1 0 0 0 0 1\n", + " 4: -1.8094029099130119e-16 2 0 1 0 0 0 1\n", + " 4: 3.0389854279493800e-01 2 0 0 1 0 0 1\n", + " 4: 1.6626569053533065e+00 2 0 0 0 1 0 1\n", + " 4: -2.2460869305159325e-18 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 5: 3.5527136788005009e-15 0 0 0 0 0 0 0\n", + " 5: 3.8152442753139303e-02 1 1 0 0 0 0 0\n", + " 5: -5.2582464421355957e-01 1 0 1 0 0 0 0\n", + " 5: -6.1501819400079603e-18 1 0 0 1 0 0 0\n", + " 5: -2.0159058209417100e-17 1 0 0 0 1 0 0\n", + " 5: 1.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -7.3986007285192883e-03 1 0 0 0 0 0 1\n", + " 5: -5.1219679894336123e-01 2 2 0 0 0 0 0\n", + " 5: 7.4560386762052318e+00 2 1 1 0 0 0 0\n", + " 5: -2.8082874269045234e+01 2 0 2 0 0 0 0\n", + " 5: 1.1848863791978028e-16 2 1 0 1 0 0 0\n", + " 5: -7.8409281276384091e-16 2 0 1 1 0 0 0\n", + " 5: -5.1677949578375570e-01 2 0 0 2 0 0 0\n", + " 5: 4.2918967566389098e-16 2 1 0 0 1 0 0\n", + " 5: -3.1275754115222628e-15 2 0 1 0 1 0 0\n", + " 5: -3.0743413150330352e+00 2 0 0 1 1 0 0\n", + " 5: -5.8191263664126609e+00 2 0 0 0 2 0 0\n", + " 5: 3.0183967481340175e-02 2 1 0 0 0 0 1\n", + " 5: -4.6852205832686250e-01 2 0 1 0 0 0 1\n", + " 5: -1.0858783396114030e-17 2 0 0 1 0 0 1\n", + " 5: -3.3711088564721932e-17 2 0 0 0 1 0 1\n", + " 5: -2.8323737684837185e-03 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 1 0 0 0 0 0 1\n", + "\n" + ] + } + ], + "source": [ + "b0 = jl.Bunch(v)\n", + "jl.track_b(b0, fodo) # b0 is mutated in-place with the result\n", + "print(b0.coords.v)" + ] + }, + { + "cell_type": "markdown", + "id": "1d406465", + "metadata": {}, + "source": [ + "This is the real nonlinear Taylor map, computed from the integrator itself - no matrix or map is stored internally.\n", + "\n", + "The exponent specifies the power of each variable, e.g. the last row in `1: ...` corresponds to $\\delta^2$ - it defines how $x$ depends on $\\delta^2$.\n", + "\n", + "We can also get the linear part (as a matrix):" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "bde7fdc3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/csv": [ + "-2.919262864523494,27.086736617305288,4.881630917557061e-16,1.6002744341408089e-15,0.0,0.5015951889428208\n", + "-0.3091747944888128,2.526163819177583,6.38105687873629e-17,2.0920655675076445e-16,0.0,0.06619240581565584\n", + "-1.0377507506125307e-16,1.4538479106997436e-15,0.23967935861470133,3.72168414902849,0.0,1.715696723543514e-17\n", + "-1.3578512960405904e-17,1.9010918552101528e-16,-0.3092998097880386,-0.6304931732924063,0.0,2.2443320709156127e-18\n", + "0.0381524427531393,-0.5258246442135596,-6.15018194000796e-18,-2.01590582094171e-17,1.0,-0.007398600728519288\n", + "0.0,0.0,0.0,0.0,0.0,1.0\n" + ], + "text/plain": [ + "6×6 Matrix{Float64}:\n", + " -2.91926 27.0867 4.88163e-16 1.60027e-15 0.0 0.501595\n", + " -0.309175 2.52616 6.38106e-17 2.09207e-16 0.0 0.0661924\n", + " -1.03775e-16 1.45385e-15 0.239679 3.72168 0.0 1.7157e-17\n", + " -1.35785e-17 1.90109e-16 -0.3093 -0.630493 0.0 2.24433e-18\n", + " 0.0381524 -0.525825 -6.15018e-18 -2.01591e-17 1.0 -0.0073986\n", + " 0.0 0.0 0.0 0.0 0.0 1.0" + ], + "text/tab-separated-values": [ + "-2.919262864523494\t27.086736617305288\t4.881630917557061e-16\t1.6002744341408089e-15\t0.0\t0.5015951889428208\n", + "-0.3091747944888128\t2.526163819177583\t6.38105687873629e-17\t2.0920655675076445e-16\t0.0\t0.06619240581565584\n", + "-1.0377507506125307e-16\t1.4538479106997436e-15\t0.23967935861470133\t3.72168414902849\t0.0\t1.715696723543514e-17\n", + "-1.3578512960405904e-17\t1.9010918552101528e-16\t-0.3092998097880386\t-0.6304931732924063\t0.0\t2.2443320709156127e-18\n", + "0.0381524427531393\t-0.5258246442135596\t-6.15018194000796e-18\t-2.01590582094171e-17\t1.0\t-0.007398600728519288\n", + "0.0\t0.0\t0.0\t0.0\t0.0\t1.0\n" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We can clean up the output with\n", + "jl.GTPSA.show_eps = 1e-10\n", + "\n", + "# Also print the matrix (linear part)\n", + "jl.GTPSA.jacobian(b0.coords.v)" + ] + }, + { + "cell_type": "markdown", + "id": "b0edbb7e", + "metadata": {}, + "source": [ + "To get the tunes, we need to go to the normal form, where the motion lies on circles in phase space with tunes as functions of solely the radius of the circle (amplitude-dependent rotations). E.g. we seek a nonlinear map $\\vec{a}$ such that $\\vec{r} = \\vec{a}^{-1}\\circ\\vec{m}\\circ\\vec{a}$ where $\\vec{m}$ is the one-turn map. $\\vec{r}$ will then, being in circle world, have the form\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\begin{pmatrix}\n", + " \\bar{q}_1 \\\\ \\bar{p}_1 \\\\ \\vdots \\\\ \\bar{q}_n \\\\ \\bar{p}_n\n", + " \\end{pmatrix}_{t_0+T} = \n", + " \\underbrace{\\begin{pmatrix}\n", + " \\mathsf{R}(\\mu_i(\\vec{J})) & \\mathsf{0} & \\mathsf{0} \\\\\n", + " \\mathsf{0} & \\ddots & \\mathsf{0}\\\\\n", + " \\mathsf{0} & \\mathsf{0} & \\mathsf{R}(\\mu_n(\\vec{J}))\n", + " \\end{pmatrix}}_{\\let\\scriptstyle\\textstyle\\substack{\\vec{r}}}\n", + "\\begin{pmatrix}\n", + " \\bar{q}_1 \\\\ \\bar{p}_1 \\\\ \\vdots \\\\ \\bar{q}_n \\\\ \\bar{p}_n\n", + " \\end{pmatrix}_{t_0},\\ \\ \\mathsf{R}(\\alpha)= \\begin{pmatrix}\n", + " \\cos{\\alpha} && \\sin{\\alpha} \\\\\n", + " -\\sin{\\alpha} && \\cos{\\alpha}\n", + " \\end{pmatrix} \\ .\n", + "\\end{equation}\n", + "$$\n", + "\n", + "where $(\\bar{q}_1,\\bar{p}_1) = (\\sqrt{2J_1}\\cos{\\phi_1},\\sqrt{2J_1}\\sin{\\phi_1})$.\n", + "\n", + "`SciBmad`'s `NonlinearNormalForm.jl` package makes it very easy to compute `a`, with a single function `normal`. We will elevate the tracking map result to a bona-fide `DAMap` (differential algebraic map) type, and then compute `a`:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "07d6365a", + "metadata": {}, + "outputs": [], + "source": [ + "m = jl.DAMap(v=b0.coords.v)\n", + "a = jl.normal(m)" + ] + }, + { + "cell_type": "markdown", + "id": "d2387e9a", + "metadata": {}, + "source": [ + "We now can compute the nonlinear rotation $\\vec{r}$:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "c062c4d2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/csv": [ + "-0.19654952267295533,0.9804938985720597,-2.4225068524357985e-16,-6.31401878407614e-17,0.0,1.3877787807814457e-17\n", + "-0.9804938985720588,-0.19654952267295522,2.465190328815662e-32,0.0,0.0,-1.249000902703301e-16\n", + "-1.1675141397270975e-28,-2.0352611354702105e-28,-0.19540690733885208,0.9807222545472616,0.0,-1.5777218104420236e-30\n", + "1.262177448353619e-29,8.835242138475332e-29,-0.9807222545472617,-0.19540690733885285,0.0,1.34106353887572e-29\n", + "-3.7470027081099033e-16,-1.1145598333150986e-16,-3.967415685437706e-32,4.622231866529366e-33,1.0,-0.013945975579860171\n", + "0.0,0.0,0.0,0.0,0.0,1.0\n" + ], + "text/plain": [ + "6×6 Matrix{Float64}:\n", + " -0.19655 0.980494 -2.42251e-16 -6.31402e-17 0.0 1.38778e-17\n", + " -0.980494 -0.19655 2.46519e-32 0.0 0.0 -1.249e-16\n", + " -1.16751e-28 -2.03526e-28 -0.195407 0.980722 0.0 -1.57772e-30\n", + " 1.26218e-29 8.83524e-29 -0.980722 -0.195407 0.0 1.34106e-29\n", + " -3.747e-16 -1.11456e-16 -3.96742e-32 4.62223e-33 1.0 -0.013946\n", + " 0.0 0.0 0.0 0.0 0.0 1.0" + ], + "text/tab-separated-values": [ + "-0.19654952267295533\t0.9804938985720597\t-2.4225068524357985e-16\t-6.31401878407614e-17\t0.0\t1.3877787807814457e-17\n", + "-0.9804938985720588\t-0.19654952267295522\t2.465190328815662e-32\t0.0\t0.0\t-1.249000902703301e-16\n", + "-1.1675141397270975e-28\t-2.0352611354702105e-28\t-0.19540690733885208\t0.9807222545472616\t0.0\t-1.5777218104420236e-30\n", + "1.262177448353619e-29\t8.835242138475332e-29\t-0.9807222545472617\t-0.19540690733885285\t0.0\t1.34106353887572e-29\n", + "-3.7470027081099033e-16\t-1.1145598333150986e-16\t-3.967415685437706e-32\t4.622231866529366e-33\t1.0\t-0.013945975579860171\n", + "0.0\t0.0\t0.0\t0.0\t0.0\t1.0\n" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ai = jl.inv(a)\n", + "r = ai * m * a\n", + "jl.GTPSA.jacobian(r.v)" + ] + }, + { + "cell_type": "markdown", + "id": "06c464f6", + "metadata": {}, + "source": [ + "It is easiest to view this in the complex phasors basis where the coordinates are $(\\tilde{p}_i,\\tilde{q}_i)=(\\sqrt{J_i}e^{+\\textrm{i}\\phi_i},\\sqrt{J_i}e^{-\\textrm{i}\\phi_i})$. That way, we see explicitly that the monomials $(\\tilde{p}_i\\tilde{q}_i)^n = J_i^n$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb00add2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DAMap{StaticArraysCore.MVector{5, ComplexF64}, StaticArraysCore.MVector{6, ComplexTPS64{Descriptor(NV=6, MO=2)}}, Nothing, Nothing}(ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im], 6-element StaticArraysCore.MVector{6, ComplexTPS64{Descriptor(NV=6, MO=2)}}:\n", + " Index Real Imag Order Exponent\n", + "---------------------------------------------------------------------------------------------\n", + " 1: -1.9654952267295528e-01 -9.8049389857205926e-01 1 1 0 0 0 0 0\n", + " 1: 2.2810225901204735e+00 -4.5725312717125638e-01 2 1 0 0 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 2: -1.9654952267295528e-01 9.8049389857205926e-01 1 0 1 0 0 0 0\n", + " 2: 2.2810225901204735e+00 4.5725312717125638e-01 2 0 1 0 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 3: -1.9540690733885246e-01 -9.8072225454726158e-01 1 0 0 1 0 0 0\n", + " 3: 2.3517700008594504e+00 -4.6858537216776275e-01 2 0 0 1 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 4: -1.9540690733885246e-01 9.8072225454726158e-01 1 0 0 0 1 0 0\n", + " 4: 2.3517700008594504e+00 4.6858537216776275e-01 2 0 0 0 1 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 5: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -1.3945975579860171e-02 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + " 5: -2.3264016160043939e+00 0.0000000000000000e+00 2 1 1 0 0 0 0\n", + " 5: -2.3979979958190234e+00 0.0000000000000000e+00 2 0 0 1 1 0 0\n", + " 5: -2.3202741736933086e-02 0.0000000000000000e+00 2 0 0 0 0 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + ", nothing, nothing)\n" + ] + } + ], + "source": [ + "c = jl.c_map(m)\n", + "ci = jl.inv(c)\n", + "r_phasor = ci * r * c\n", + "print(r_phasor)" + ] + }, + { + "cell_type": "markdown", + "id": "3b6b0502", + "metadata": {}, + "source": [ + "Not only is differentiability necessary to compute and analyze high order Taylor maps, it also allows us to compute exact derivatives of anything we want. This includes the parameters, e.g. the quadrupole strengths. Using `SciBmad`, we can compute the tune $\\nu_x$ as a function of variations in the quadrupole strength, e.g. $\\nu_x=\\nu_x(K_{n1})$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d1ceef5a", + "metadata": {}, + "outputs": [], + "source": [ + "# Now let's get the tune as a function of the quadrupole strength. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2639809d", + "metadata": {}, + "outputs": [ + { + "ename": "LoadError", + "evalue": "UndefVarError: `track` not defined in `Main`\nSuggestion: check for spelling errors or missing imports.", + "output_type": "error", + "traceback": [ + "UndefVarError: `track` not defined in `Main`\nSuggestion: check for spelling errors or missing imports.", + "", + "Stacktrace:", + " [1] top-level scope", + "\u001b[90m @\u001b[39m \u001b[90m\u001b[4mIn[21]:8\u001b[24m\u001b[39m" + ] + } + ], + "source": [ + "# Let's track some particles\n", + "# Initialize distribution with varying initial x\n", + "N_particles = 10\n", + "N_turns = 40\n", + "x_max = 1e-5\n", + "v = zeros(N_particles, 6) # N_particles x 6 array\n", + "v[:,1] = range(0, stop=x_max, length=N_particles)\n", + "res = track(v, fodo; N_turns=N_turns)\n", + "plt = scatter()\n", + "for i in 1:N_particles\n", + " # Plot x and px\n", + " scatter!(plt, res[i,:,1], res[i,:,2])\n", + "end\n", + "display(plt)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "09f496a4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Table with 23 columns and 11 rows:\n", + " s phi_1 beta_1 alpha_1 phi_2 beta_2 alpha_2 ⋯\n", + " ┌───────────────────────────────────────────────────────────────────────\n", + " 1 │ 0.0 0.0 26.0051 -2.34866 0.0 4.96648 0.49489 ⋯\n", + " 2 │ 0.5 0.00301456 26.005 2.34873 0.0162928 4.96648 -0.49489 ⋯\n", + " 3 │ 0.7 0.00426109 25.0756 2.29861 0.0225735 5.17446 -0.545023 ⋯\n", + " 4 │ 1.3 0.00829008 22.4074 2.14826 0.0398629 5.91872 -0.695422 ⋯\n", + " 5 │ 7.3 0.0978414 5.64482 0.644985 0.125237 23.2877 -2.19941 ⋯\n", + " 6 │ 7.9 0.115925 4.96114 0.494475 0.129117 26.0172 -2.3498 ⋯\n", + " 7 │ 8.4 0.132236 4.96114 -0.494463 0.13213 26.0172 2.3498 ⋯\n", + " 8 │ 8.6 0.138523 5.16896 -0.544633 0.133376 25.0873 2.29967 ⋯\n", + " 9 │ 9.2 0.15583 5.91282 -0.695142 0.137403 22.418 2.14927 ⋯\n", + " 10 │ 15.2 0.241265 23.2769 -2.19832 0.226889 5.65058 0.645289 ⋯\n", + " 11 │ 15.8 0.245146 26.0051 -2.34866 0.244954 4.96648 0.49489 ⋯" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Compute Twiss parameters\n", + "t = twiss(fodo)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a1dd2a33", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Plot betas and dispersion\n", + "plot(t.s, t.beta_1, label=\"beta_1\"); plot!(t.s, t.beta_2, label=\"beta_b\")\n", + "xlabel!(\"s [m]\")\n", + "ylabel!(\"Beta Function [m]\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f58214d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6-element Vector{TPS64{Descriptor(NV=6, MO=1)}}:\n", + " Index Coefficient Order Exponent\n", + "--------------------------------------------------------------------\n", + " 1: -2.3170807306711905e+00 1 1 0 0 0 0 0\n", + " 1: 2.5992967947822709e+01 1 0 1 0 0 0 0\n", + " 1: 4.8716319988507722e-01 1 0 0 0 0 0 1\n", + "--------------------------------------------------------------------\n", + " 2: -2.5045883283697512e-01 1 1 0 0 0 0 0\n", + " 2: 2.3780649250768429e+00 1 0 1 0 0 0 0\n", + " 2: 6.4304094327838082e-02 1 0 0 0 0 0 1\n", + "--------------------------------------------------------------------\n", + " 3: 5.2634259299842112e-01 1 0 0 1 0 0 0\n", + " 3: 4.9639790409998383e+00 1 0 0 0 1 0 0\n", + "--------------------------------------------------------------------\n", + " 4: -2.5053800516899360e-01 1 0 0 1 0 0 0\n", + " 4: -4.6294069656172643e-01 1 0 0 0 1 0 0\n", + "--------------------------------------------------------------------\n", + " 5: 2.6983451425953753e-02 1 1 0 0 0 0 0\n", + " 5: -5.1294854434236214e-01 1 0 1 0 0 0 0\n", + " 5: 1.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -7.2169338582354185e-03 1 0 0 0 0 0 1\n", + "--------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 1 0 0 0 0 0 1\n" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Track a particle as a TPSA\n", + "D1 = Descriptor(6, 1) # 6 variables, 3rd order\n", + "GTPSA.show_eps=1e-10 # hide small monomials\n", + "v0 = @vars(D1)\n", + "res = track(v0, fodo) # Mutates b0 to contain the result\n", + "res[1,2,:]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a7801d66", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Descriptor(NV=6, MO=2, NP=1, PO=2)" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Now \n", + "D1_p = Descriptor([1,1,1,1,1,1], 2, [2], 2)\n", + "v0 = @vars(D1_p)\n", + "dk = \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b247195a", + "metadata": {}, + "outputs": [ + { + "ename": "LoadError", + "evalue": "MethodError: no method matching track(::Bunch{Float64, BeamTracking.Coords{Vector{BeamTracking.State.T}, Matrix{TPS64{Descriptor(NV=6, MO=1)}}, Nothing}}, ::Beamline)\nThe function `track` exists, but no method is defined for this combination of argument types.\n\n\u001b[0mClosest candidates are:\n\u001b[0m track(\u001b[91m::Union{AbstractMatrix, AbstractVector}\u001b[39m, ::Beamline; N_turns)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mSciBmad\u001b[39m \u001b[90m~/.julia/dev/SciBmad/src/\u001b[39m\u001b[90m\u001b[4mtrack.jl:1\u001b[24m\u001b[39m\n", + "output_type": "error", + "traceback": [ + "MethodError: no method matching track(::Bunch{Float64, BeamTracking.Coords{Vector{BeamTracking.State.T}, Matrix{TPS64{Descriptor(NV=6, MO=1)}}, Nothing}}, ::Beamline)\nThe function `track` exists, but no method is defined for this combination of argument types.\n\n\u001b[0mClosest candidates are:\n\u001b[0m track(\u001b[91m::Union{AbstractMatrix, AbstractVector}\u001b[39m, ::Beamline; N_turns)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mSciBmad\u001b[39m \u001b[90m~/.julia/dev/SciBmad/src/\u001b[39m\u001b[90m\u001b[4mtrack.jl:1\u001b[24m\u001b[39m\n", + "", + "Stacktrace:", + " [1] top-level scope", + "\u001b[90m @\u001b[39m \u001b[90m\u001b[4mIn[16]:6\u001b[24m\u001b[39m" + ] + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "619c1d03", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DAMap{StaticArraysCore.MVector{5, ComplexF64}, StaticArraysCore.MVector{6, ComplexTPS64{Descriptor(NV=6, MO=3)}}, Nothing, Nothing}(ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im], 6-element StaticArraysCore.MVector{6, ComplexTPS64{Descriptor(NV=6, MO=3)}}:\n", + " Index Real Imag Order Exponent\n", + "---------------------------------------------------------------------------------------------\n", + " 1: 3.0492097202826335e-02 -9.9953500789525795e-01 1 1 0 0 0 0 0\n", + " 1: 1.8150337287104346e+00 5.5369931463216386e-02 2 1 0 0 0 0 1\n", + " 1: -1.1285465004047446e-01 -3.4427758230310170e-03 3 2 1 0 0 0 0\n", + " 1: -7.5632592013723896e-02 -2.3072692093332094e-03 3 1 0 1 1 0 0\n", + " 1: -2.7843055280258771e+00 1.5645348143666986e+00 3 1 0 0 0 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 2: 3.0492097202826335e-02 9.9953500789525795e-01 1 0 1 0 0 0 0\n", + " 2: 1.8150337287104346e+00 -5.5369931463216386e-02 2 0 1 0 0 0 1\n", + " 2: -1.1285465004047446e-01 3.4427758230310170e-03 3 1 2 0 0 0 0\n", + " 2: -7.5632592013723896e-02 2.3072692093332094e-03 3 0 1 1 1 0 0\n", + " 2: -2.7843055280258771e+00 -1.5645348143666986e+00 3 0 1 0 0 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 3: 3.1700948218347319e-02 -9.9949739863696330e-01 1 0 0 1 0 0 0\n", + " 3: 1.8937429327173496e+00 6.0063634713610106e-02 2 0 0 1 0 0 1\n", + " 3: -7.5629746205468348e-02 -2.3987402792574335e-03 3 1 1 1 0 0 0\n", + " 3: -4.6481040216239627e-01 -1.4742340010482361e-02 3 0 0 2 1 0 0\n", + " 3: -2.8594700186253510e+00 1.7051440644545568e+00 3 0 0 1 0 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 4: 3.1700948218347319e-02 9.9949739863696330e-01 1 0 0 0 1 0 0\n", + " 4: 1.8937429327173496e+00 -6.0063634713610106e-02 2 0 0 0 1 0 1\n", + " 4: -7.5629746205468348e-02 2.3987402792574335e-03 3 1 1 0 1 0 0\n", + " 4: -4.6481040216239627e-01 1.4742340010482361e-02 3 0 0 1 2 0 0\n", + " 4: -2.8594700186253510e+00 -1.7051440644545568e+00 3 0 0 0 1 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 5: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -1.7448592095815476e-02 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + " 5: -1.8158780976890285e+00 0.0000000000000000e+00 2 1 1 0 0 0 0\n", + " 5: -1.8946952091119851e+00 0.0000000000000000e+00 2 0 0 1 1 0 0\n", + " 5: -2.7958561633357793e-02 0.0000000000000000e+00 2 0 0 0 0 0 2\n", + " 5: 5.4706098006026203e+00 0.0000000000000000e+00 3 1 1 0 0 0 1\n", + " 5: 5.6079563228086462e+00 0.0000000000000000e+00 3 0 0 1 1 0 1\n", + " 5: 5.0643189525996354e-03 0.0000000000000000e+00 3 0 0 0 0 0 3\n", + "---------------------------------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + ", nothing, nothing)" + ] + } + ], + "source": [ + "m = DAMap(v=b0.coords.v) # Create a differential algebraic map from the tracking result\n", + "a = normal(m) # Normalizing map, circle world to regular world\n", + "ai = inv(a) # Regular world to circle world\n", + "c = c_map(m) # Phasors sqrt(J)*exp(+-im*phi) to regular world\n", + "ci = inv(c) # Regular world to phasors\n", + "r = ci ∘ ai ∘ m ∘ a ∘ c # Amplitude dependent rotation\n", + "print(r)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bd8428d7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5.0e-5:5.0e-5:0.001" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Initialize distribution of particles with varying initial x\n", + "N = 20\n", + "x_max=1e-3\n", + "v = zeros(N, 6)\n", + "v[:,1] = x_max/N:x_max/N:x_max" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "878caa8d", + "metadata": {}, + "outputs": [], + "source": [ + "# Structure\n", + "trajectories = " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b6c6757", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "20×6 Matrix{Float64}:\n", + " -2.05972e-5 -8.77e-6 2.09179e-18 9.94561e-19 2.10532e-6 0.0\n", + " -2.91289e-5 -1.24028e-5 2.95824e-18 1.40654e-18 2.9773e-6 0.0\n", + " -3.56754e-5 -1.51904e-5 3.62309e-18 1.72267e-18 3.64637e-6 0.0\n", + " -4.11945e-5 -1.75405e-5 4.18358e-18 1.98918e-18 4.21039e-6 0.0\n", + " -4.60569e-5 -1.96111e-5 4.67739e-18 2.22398e-18 4.7073e-6 0.0\n", + " -5.04528e-5 -2.1483e-5 5.12383e-18 2.43627e-18 5.15652e-6 0.0\n", + " -5.44953e-5 -2.32044e-5 5.53437e-18 2.63148e-18 5.56961e-6 0.0\n", + " -5.82579e-5 -2.48067e-5 5.91649e-18 2.81319e-18 5.9541e-6 0.0\n", + " -6.17919e-5 -2.63116e-5 6.27539e-18 2.98385e-18 6.31521e-6 0.0\n", + " -6.51344e-5 -2.7735e-5 6.61484e-18 3.14527e-18 6.65675e-6 0.0\n", + " -6.83135e-5 -2.90889e-5 6.9377e-18 3.2988e-18 6.98159e-6 0.0\n", + " -7.13512e-5 -3.03825e-5 7.2462e-18 3.4455e-18 7.29197e-6 0.0\n", + " -7.42647e-5 -3.16232e-5 7.54208e-18 3.58621e-18 7.58966e-6 0.0\n", + " -7.70681e-5 -3.28171e-5 7.82679e-18 3.7216e-18 7.87609e-6 0.0\n", + " -7.97731e-5 -3.39691e-5 8.1015e-18 3.85223e-18 8.15247e-6 0.0\n", + " -8.23893e-5 -3.50833e-5 8.36719e-18 3.97858e-18 8.41977e-6 0.0\n", + " -8.4925e-5 -3.61631e-5 8.62471e-18 4.10104e-18 8.67883e-6 0.0\n", + " -8.73871e-5 -3.72117e-5 8.87475e-18 4.21995e-18 8.93038e-6 0.0\n", + " -8.97818e-5 -3.82315e-5 9.11794e-18 4.3356e-18 9.17503e-6 0.0\n", + " -9.21142e-5 -3.92249e-5 9.35481e-18 4.44825e-18 9.41332e-6 0.0" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Now let's look at the phase space\n", + "# Let's look at particles with J = 0:0.\n", + "# In Floquet variables x = sqrt(2J)*cos(phi), px=sqrt(2J)*sin(phi)\n", + "# so we can start a distribution with phi=0 so px=0\n", + "N = 20\n", + "J_max = 20e-9\n", + "J = J_max/(N):J_max/(N):J_max\n", + "x_in_floquet = sqrt.(2 .*J)\n", + "\n", + "# initialize particle distribution\n", + "v_in_floquet = zeros(N, 6)\n", + "v_in_floquet[:,1] = x_in_floquet\n", + "\n", + "v = zeros(N,6)\n", + "for i in 1:N\n", + " v[i,:] = ai.v(v_in_floquet[i,:])\n", + "end\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tmp/tmp.ipynb b/tmp/tmp.ipynb new file mode 100644 index 0000000..8b20b26 --- /dev/null +++ b/tmp/tmp.ipynb @@ -0,0 +1,1019 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8fec6c66", + "metadata": {}, + "source": [ + "## Introduction to SciBmad \n", + "\n", + "Differentiable simulation codes are necessary tools in accelerator physics to properly compute (via integration) Taylor maps representing the particle transport, and subsequently extract the lattice functions from. Early examples of differentiable accelerator physics codes are the Polymorphic Tracking Code (PTC) and COSY-INFINITY, both developed in the early 1990s. Modern examples of differentiable codes are CERN's `MAD-NG`, and Cornell's `SciBmad`:\n", + "\n", + "`SciBmad` is a new, modular, polymorphic, differentiable, and portable (CPU/GPU compatible) accelerator physics code being developed at Cornell. This Jupyter notebook will show some its basic features, including lazily evaluated deferred expressions, polymorphism, and differentiability." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "dc2130c5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Detected IPython. Loading juliacall extension. See https://juliapy.github.io/PythonCall.jl/stable/compat/#IPython\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[ Info: Precompiling SciBmad [7bf6e793-a2ec-421f-8700-d1465381ee80] (cache misses: include_dependency fsize change (6), incompatible header (2))\n", + "[ Info: Precompiling BeamlinesPythonCallExt [1bd1f19e-78eb-58e7-990a-94b9895c993a] (cache misses: wrong dep version loaded (4))\n" + ] + } + ], + "source": [ + "import math\n", + "import numpy as np\n", + "import juliacall\n", + "from juliacall import Main as jl\n", + "import matplotlib.pyplot as plt\n", + "jl.seval('using SciBmad')" + ] + }, + { + "cell_type": "markdown", + "id": "96cb92ae", + "metadata": {}, + "source": [ + "Let's first make a FODO cell consisting of a quadrupole, sextupole, bend, and drift. This uses the [`Beamlines.jl`](https://github.com/bmad-sim/Beamlines.jl) package within the SciBmad family, which is automatically included when `using SciBmad`. We require by design that the focusing quadrupole strength is negative that of the defocusing quadrupole strength, and likewise for the sextupole. To achieve this, we will use `SciBmad`'s deferred expressions" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "a4b9d39d", + "metadata": {}, + "outputs": [], + "source": [ + "# Make a FODO cell requiring that\n", + "# qf.Kn1 = -qd.Kn1 \n", + "# and\n", + "# sf.Kn2 = -sd.Kn2\n", + "# This is done using a \"deferred expression\"\n", + "# to form a \"closure\" of the variables we define:\n", + "\n", + "K1 = 0.36\n", + "K2 = 0.1\n", + "\n", + "qf = jl.Quadrupole(Kn1=jl.DefExpr(lambda : +K1), L=0.5)\n", + "sf = jl.Sextupole(Kn2=jl.DefExpr(lambda : +K2), L=0.2)\n", + "d = jl.Drift(L=0.6)\n", + "b = jl.SBend(L=6.0, angle=math.pi/132)\n", + "qd = jl.Quadrupole(Kn1=jl.DefExpr(lambda : -K1), L=0.5)\n", + "sd = jl.Sextupole(Kn2=jl.DefExpr(lambda : -K2), L=0.2)\n", + "\n", + "\n", + "fodo_line = [qf, sf, d, b, d, qd, sd, d, b, d]\n", + "fodo = jl.Beamline(fodo_line, species_ref=jl.Species(\"electron\"), E_ref=18e9)" + ] + }, + { + "cell_type": "markdown", + "id": "fb4cc815", + "metadata": {}, + "source": [ + "Now if we update `K1`, both `qf` and `qd` will be (lazily) updated." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "4c9dc7e6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.4\n", + "-0.4\n" + ] + } + ], + "source": [ + "K1 = 0.4\n", + "print(qf.Kn1)\n", + "print(qd.Kn1)" + ] + }, + { + "cell_type": "markdown", + "id": "a8aed78e", + "metadata": {}, + "source": [ + "Let's compute the transport matrix for this FODO cell using automatic differentiation (AD). Because it is a periodic (closed) geometry, we first need to find the closed orbit. We then will expand for small deviations around this orbit." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7d07240c", + "metadata": {}, + "outputs": [], + "source": [ + "co = jl.find_closed_orbit(fodo)\n", + "v0 = co.u" + ] + }, + { + "cell_type": "markdown", + "id": "c494612f", + "metadata": {}, + "source": [ + "We see that in this case the closed orbit is the \"zero orbit\", which makes sense because all the magnets are perfectly aligned and there are no RF cavities. Note that in general the \"zero orbit\" is not always the closed orbit (in the case of a periodic accelerator) or the reference orbit (in the case of a linac). We must always expand around some real trajectory.\n", + "\n", + "Now we will use [`GTPSA.jl`](https://github.com/bmad-sim/GTPSA.jl) to compute the Taylor map, to 2nd order. `GTPSA.jl` is a full-featured interface to the Generalised Truncated Power Series Algebra library, written by Laurent Deniau for CERN's `MAD-NG` code, and is another package in the `SciBmad` family. Because `SciBmad` is polymorphic, all we need to do is track a single particle on the closed orbit where the numbers are Truncated Power Series (`TPS`) types instead of the regular 64-bit floats `Float64`s.\n", + "\n", + "First, we define a `Descriptor` to define the number of variables (6) and the truncation order of our Taylor series (2)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "158da855", + "metadata": {}, + "outputs": [], + "source": [ + "D2 = jl.Descriptor(6, 2) # 6 variables, 2nd order" + ] + }, + { + "cell_type": "markdown", + "id": "0efc6faa", + "metadata": {}, + "source": [ + "We will then get our special `TPS` number types. Specifically, we will start with the \"identity map\", or a vector of unit \"wiggles\". E.g., wiggle the input a bit, see how the output wiggles" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "b8035fae", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "┌ Warning: `vars` is deprecated, use the @vars macro instead.\n", + "│ caller = pyjlany_call(self::typeof(vars), args_::Py, kwargs_::Py) at any.jl:47\n", + "└ @ PythonCall.JlWrap ~/.julia/packages/PythonCall/L4cjh/src/JlWrap/any.jl:47\n" + ] + } + ], + "source": [ + "# Then get a vector of `TPS`s representing an identity of the variables:\n", + "dv = jl.vars(D2) # Think of these as unit \"wiggles\"\n", + "\n", + " # Finally initialize our particle coordinates\n", + "v0 = jl.zeros(6) # Closed orbit\n", + "v = v0 + dv # Particle as a TPSA (wiggle around the closed orbit)" + ] + }, + { + "cell_type": "markdown", + "id": "a0c8b97c", + "metadata": {}, + "source": [ + "Now we track!" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "1d9f7c33", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[ Info: Setting bunch.species = Species(\"electron\", -1 e, 0.51099895069 MeV c^-2, 0.5 h_bar, -9.2847646917e-24 J T^-1, 0.0, AtomicAndPhysicalConstants.Kind.LEPTON) (reference species from the Beamline)\n", + "[ Info: Setting bunch.R_ref = -60.04153711147289 (reference R_ref from the Beamline)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6-element Matrix{TPS64{GTPSA.Dynamic}}:\n", + "Descriptor(NV=6, MO=2)\n", + " Index Coefficient Order Exponent\n", + "--------------------------------------------------------------------\n", + " 1: 2.5673907444456746e-17 0 0 0 0 0 0 0\n", + " 1: -2.9192628645234939e+00 1 1 0 0 0 0 0\n", + " 1: 2.7086736617305288e+01 1 0 1 0 0 0 0\n", + " 1: 4.8816309175570605e-16 1 0 0 1 0 0 0\n", + " 1: 1.6002744341408089e-15 1 0 0 0 1 0 0\n", + " 1: 5.0159518894282085e-01 1 0 0 0 0 0 1\n", + " 1: -2.0257056356964581e-01 2 2 0 0 0 0 0\n", + " 1: -1.2619985248293755e+00 2 1 1 0 0 0 0\n", + " 1: 6.2118760845449215e+00 2 0 2 0 0 0 0\n", + " 1: 2.4604077045055341e-17 2 1 0 1 0 0 0\n", + " 1: 5.9531587215093307e-17 2 0 1 1 0 0 0\n", + " 1: -1.5931515195463741e-01 2 0 0 2 0 0 0\n", + " 1: 5.3129394880295523e-18 2 1 0 0 1 0 0\n", + " 1: 1.4630794896905926e-16 2 0 1 0 1 0 0\n", + " 1: -2.7868717305398274e+00 2 0 0 1 1 0 0\n", + " 1: -5.2029442575209863e+00 2 0 0 0 2 0 0\n", + " 1: 6.2425242700219412e+00 2 1 0 0 0 0 1\n", + " 1: -3.7807578433494399e+01 2 0 1 0 0 0 1\n", + " 1: -7.9322461478621057e-16 2 0 0 1 0 0 1\n", + " 1: -3.2729016554810794e-15 2 0 0 0 1 0 1\n", + " 1: -6.4493388130436402e-01 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 2: -3.4694469519536142e-18 0 0 0 0 0 0 0\n", + " 2: -3.0917479448881280e-01 1 1 0 0 0 0 0\n", + " 2: 2.5261638191775830e+00 1 0 1 0 0 0 0\n", + " 2: 6.3810568787362897e-17 1 0 0 1 0 0 0\n", + " 2: 2.0920655675076445e-16 1 0 0 0 1 0 0\n", + " 2: 6.6192405815655844e-02 1 0 0 0 0 0 1\n", + " 2: -1.9716409674901295e-02 2 2 0 0 0 0 0\n", + " 2: -1.1836022168217045e-01 2 1 1 0 0 0 0\n", + " 2: 6.6096962489185951e-01 2 0 2 0 0 0 0\n", + " 2: 4.0169500055934360e-18 2 1 0 1 0 0 0\n", + " 2: 9.1087863340823260e-19 2 0 1 1 0 0 0\n", + " 2: -3.5334645092761102e-02 2 0 0 2 0 0 0\n", + " 2: 3.3846237650093815e-18 2 1 0 0 1 0 0\n", + " 2: -4.3296541431451771e-18 2 0 1 0 1 0 0\n", + " 2: -3.9609101473959490e-01 2 0 0 1 1 0 0\n", + " 2: -7.1128402975022920e-01 2 0 0 0 2 0 0\n", + " 2: 3.0781729794912083e-01 2 1 0 0 0 0 1\n", + " 2: -1.4583398667393581e+00 2 0 1 0 0 0 1\n", + " 2: -4.0006495007695620e-17 2 0 0 1 0 0 1\n", + " 2: -2.1908587316981384e-16 2 0 0 0 1 0 1\n", + " 2: -1.8806564185196412e-02 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 3: 2.6005063989261206e-33 0 0 0 0 0 0 0\n", + " 3: -1.0377507506125307e-16 1 1 0 0 0 0 0\n", + " 3: 1.4538479106997436e-15 1 0 1 0 0 0 0\n", + " 3: 2.3967935861470133e-01 1 0 0 1 0 0 0\n", + " 3: 3.7216841490284902e+00 1 0 0 0 1 0 0\n", + " 3: 1.7156967235435141e-17 1 0 0 0 0 0 1\n", + " 3: -1.2625390189872071e-17 2 2 0 0 0 0 0\n", + " 3: -1.6715018798627032e-17 2 1 1 0 0 0 0\n", + " 3: 2.8631748569385404e-18 2 0 2 0 0 0 0\n", + " 3: 3.3053479018582710e-01 2 1 0 1 0 0 0\n", + " 3: -3.2443102819751535e+00 2 0 1 1 0 0 0\n", + " 3: 5.8464977912096827e-18 2 0 0 2 0 0 0\n", + " 3: 8.7239691323397284e-01 2 1 0 0 1 0 0\n", + " 3: -1.0793192164106848e+01 2 0 1 0 1 0 0\n", + " 3: -4.8742304905171187e-17 2 0 0 1 1 0 0\n", + " 3: -1.0522416929865590e-16 2 0 0 0 2 0 0\n", + " 3: 3.9006947041197318e-16 2 1 0 0 0 0 1\n", + " 3: -2.8352181182238744e-15 2 0 1 0 0 0 1\n", + " 3: 3.0596989853096992e+00 2 0 0 1 0 0 1\n", + " 3: 8.6053372401129504e+00 2 0 0 0 1 0 1\n", + " 3: -3.4311390073538383e-17 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 4: 3.3993609410275580e-34 0 0 0 0 0 0 0\n", + " 4: -1.3578512960405904e-17 1 1 0 0 0 0 0\n", + " 4: 1.9010918552101528e-16 1 0 1 0 0 0 0\n", + " 4: -3.0929980978803862e-01 1 0 0 1 0 0 0\n", + " 4: -6.3049317329240628e-01 1 0 0 0 1 0 0\n", + " 4: 2.2443320709156127e-18 1 0 0 0 0 0 1\n", + " 4: -1.7300989520914240e-18 2 2 0 0 0 0 0\n", + " 4: -2.8048596331190322e-19 2 1 1 0 0 0 0\n", + " 4: -1.0789253382167049e-17 2 0 2 0 0 0 0\n", + " 4: 2.3178583550436675e-02 2 1 0 1 0 0 0\n", + " 4: -4.4152134026615630e-01 2 0 1 1 0 0 0\n", + " 4: 9.6282272955842114e-19 2 0 0 2 0 0 0\n", + " 4: 1.0360131370917137e-01 2 1 0 0 1 0 0\n", + " 4: -1.4618954966135980e+00 2 0 1 0 1 0 0\n", + " 4: -5.3846180015453750e-18 2 0 0 1 1 0 0\n", + " 4: -1.2647804231652445e-17 2 0 0 0 2 0 0\n", + " 4: 3.7462774094416378e-17 2 1 0 0 0 0 1\n", + " 4: -1.8094029099130119e-16 2 0 1 0 0 0 1\n", + " 4: 3.0389854279493800e-01 2 0 0 1 0 0 1\n", + " 4: 1.6626569053533065e+00 2 0 0 0 1 0 1\n", + " 4: -2.2460869305159325e-18 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 5: 3.5527136788005009e-15 0 0 0 0 0 0 0\n", + " 5: 3.8152442753139303e-02 1 1 0 0 0 0 0\n", + " 5: -5.2582464421355957e-01 1 0 1 0 0 0 0\n", + " 5: -6.1501819400079603e-18 1 0 0 1 0 0 0\n", + " 5: -2.0159058209417100e-17 1 0 0 0 1 0 0\n", + " 5: 1.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -7.3986007285192883e-03 1 0 0 0 0 0 1\n", + " 5: -5.1219679894336123e-01 2 2 0 0 0 0 0\n", + " 5: 7.4560386762052318e+00 2 1 1 0 0 0 0\n", + " 5: -2.8082874269045234e+01 2 0 2 0 0 0 0\n", + " 5: 1.1848863791978028e-16 2 1 0 1 0 0 0\n", + " 5: -7.8409281276384091e-16 2 0 1 1 0 0 0\n", + " 5: -5.1677949578375570e-01 2 0 0 2 0 0 0\n", + " 5: 4.2918967566389098e-16 2 1 0 0 1 0 0\n", + " 5: -3.1275754115222628e-15 2 0 1 0 1 0 0\n", + " 5: -3.0743413150330352e+00 2 0 0 1 1 0 0\n", + " 5: -5.8191263664126609e+00 2 0 0 0 2 0 0\n", + " 5: 3.0183967481340175e-02 2 1 0 0 0 0 1\n", + " 5: -4.6852205832686250e-01 2 0 1 0 0 0 1\n", + " 5: -1.0858783396114030e-17 2 0 0 1 0 0 1\n", + " 5: -3.3711088564721932e-17 2 0 0 0 1 0 1\n", + " 5: -2.8323737684837185e-03 2 0 0 0 0 0 2\n", + "--------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 1 0 0 0 0 0 1\n", + "\n" + ] + } + ], + "source": [ + "b0 = jl.Bunch(v)\n", + "jl.track_b(b0, fodo) # b0 is mutated in-place with the result\n", + "print(b0.coords.v)" + ] + }, + { + "cell_type": "markdown", + "id": "1d406465", + "metadata": {}, + "source": [ + "This is the real nonlinear Taylor map, computed from the integrator itself - no matrix or map is stored internally.\n", + "\n", + "The exponent specifies the power of each variable, e.g. the last row in `1: ...` corresponds to $\\delta^2$ - it defines how $x$ depends on $\\delta^2$.\n", + "\n", + "We can also get the linear part (as a matrix):" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "bde7fdc3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/csv": [ + "-2.919262864523494,27.086736617305288,4.881630917557061e-16,1.6002744341408089e-15,0.0,0.5015951889428208\n", + "-0.3091747944888128,2.526163819177583,6.38105687873629e-17,2.0920655675076445e-16,0.0,0.06619240581565584\n", + "-1.0377507506125307e-16,1.4538479106997436e-15,0.23967935861470133,3.72168414902849,0.0,1.715696723543514e-17\n", + "-1.3578512960405904e-17,1.9010918552101528e-16,-0.3092998097880386,-0.6304931732924063,0.0,2.2443320709156127e-18\n", + "0.0381524427531393,-0.5258246442135596,-6.15018194000796e-18,-2.01590582094171e-17,1.0,-0.007398600728519288\n", + "0.0,0.0,0.0,0.0,0.0,1.0\n" + ], + "text/plain": [ + "6×6 Matrix{Float64}:\n", + " -2.91926 27.0867 4.88163e-16 1.60027e-15 0.0 0.501595\n", + " -0.309175 2.52616 6.38106e-17 2.09207e-16 0.0 0.0661924\n", + " -1.03775e-16 1.45385e-15 0.239679 3.72168 0.0 1.7157e-17\n", + " -1.35785e-17 1.90109e-16 -0.3093 -0.630493 0.0 2.24433e-18\n", + " 0.0381524 -0.525825 -6.15018e-18 -2.01591e-17 1.0 -0.0073986\n", + " 0.0 0.0 0.0 0.0 0.0 1.0" + ], + "text/tab-separated-values": [ + "-2.919262864523494\t27.086736617305288\t4.881630917557061e-16\t1.6002744341408089e-15\t0.0\t0.5015951889428208\n", + "-0.3091747944888128\t2.526163819177583\t6.38105687873629e-17\t2.0920655675076445e-16\t0.0\t0.06619240581565584\n", + "-1.0377507506125307e-16\t1.4538479106997436e-15\t0.23967935861470133\t3.72168414902849\t0.0\t1.715696723543514e-17\n", + "-1.3578512960405904e-17\t1.9010918552101528e-16\t-0.3092998097880386\t-0.6304931732924063\t0.0\t2.2443320709156127e-18\n", + "0.0381524427531393\t-0.5258246442135596\t-6.15018194000796e-18\t-2.01590582094171e-17\t1.0\t-0.007398600728519288\n", + "0.0\t0.0\t0.0\t0.0\t0.0\t1.0\n" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We can clean up the output with\n", + "jl.GTPSA.show_eps = 1e-10\n", + "\n", + "# Also print the matrix (linear part)\n", + "jl.GTPSA.jacobian(b0.coords.v)" + ] + }, + { + "cell_type": "markdown", + "id": "b0edbb7e", + "metadata": {}, + "source": [ + "To get the tunes, we need to go to the normal form, where the motion lies on circles in phase space with tunes as functions of solely the radius of the circle (amplitude-dependent rotations). E.g. we seek a nonlinear map $\\vec{a}$ such that $\\vec{r} = \\vec{a}^{-1}\\circ\\vec{m}\\circ\\vec{a}$ where $\\vec{m}$ is the one-turn map. $\\vec{r}$ will then, being in circle world, have the form\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\begin{pmatrix}\n", + " \\bar{q}_1 \\\\ \\bar{p}_1 \\\\ \\vdots \\\\ \\bar{q}_n \\\\ \\bar{p}_n\n", + " \\end{pmatrix}_{t_0+T} = \n", + " \\underbrace{\\begin{pmatrix}\n", + " \\mathsf{R}(\\mu_i(\\vec{J})) & \\mathsf{0} & \\mathsf{0} \\\\\n", + " \\mathsf{0} & \\ddots & \\mathsf{0}\\\\\n", + " \\mathsf{0} & \\mathsf{0} & \\mathsf{R}(\\mu_n(\\vec{J}))\n", + " \\end{pmatrix}}_{\\let\\scriptstyle\\textstyle\\substack{\\vec{r}}}\n", + "\\begin{pmatrix}\n", + " \\bar{q}_1 \\\\ \\bar{p}_1 \\\\ \\vdots \\\\ \\bar{q}_n \\\\ \\bar{p}_n\n", + " \\end{pmatrix}_{t_0},\\ \\ \\mathsf{R}(\\alpha)= \\begin{pmatrix}\n", + " \\cos{\\alpha} && \\sin{\\alpha} \\\\\n", + " -\\sin{\\alpha} && \\cos{\\alpha}\n", + " \\end{pmatrix} \\ .\n", + "\\end{equation}\n", + "$$\n", + "\n", + "where $(\\bar{q}_1,\\bar{p}_1) = (\\sqrt{2J_1}\\cos{\\phi_1},\\sqrt{2J_1}\\sin{\\phi_1})$.\n", + "\n", + "`SciBmad`'s `NonlinearNormalForm.jl` package makes it very easy to compute `a`, with a single function `normal`. We will elevate the tracking map result to a bona-fide `DAMap` (differential algebraic map) type, and then compute `a`:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "07d6365a", + "metadata": {}, + "outputs": [], + "source": [ + "m = jl.DAMap(v=b0.coords.v)\n", + "a = jl.normal(m)" + ] + }, + { + "cell_type": "markdown", + "id": "d2387e9a", + "metadata": {}, + "source": [ + "We now can compute the nonlinear rotation $\\vec{r}$:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "c062c4d2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/csv": [ + "-0.19654952267295533,0.9804938985720597,-2.4225068524357985e-16,-6.31401878407614e-17,0.0,1.3877787807814457e-17\n", + "-0.9804938985720588,-0.19654952267295522,2.465190328815662e-32,0.0,0.0,-1.249000902703301e-16\n", + "-1.1675141397270975e-28,-2.0352611354702105e-28,-0.19540690733885208,0.9807222545472616,0.0,-1.5777218104420236e-30\n", + "1.262177448353619e-29,8.835242138475332e-29,-0.9807222545472617,-0.19540690733885285,0.0,1.34106353887572e-29\n", + "-3.7470027081099033e-16,-1.1145598333150986e-16,-3.967415685437706e-32,4.622231866529366e-33,1.0,-0.013945975579860171\n", + "0.0,0.0,0.0,0.0,0.0,1.0\n" + ], + "text/plain": [ + "6×6 Matrix{Float64}:\n", + " -0.19655 0.980494 -2.42251e-16 -6.31402e-17 0.0 1.38778e-17\n", + " -0.980494 -0.19655 2.46519e-32 0.0 0.0 -1.249e-16\n", + " -1.16751e-28 -2.03526e-28 -0.195407 0.980722 0.0 -1.57772e-30\n", + " 1.26218e-29 8.83524e-29 -0.980722 -0.195407 0.0 1.34106e-29\n", + " -3.747e-16 -1.11456e-16 -3.96742e-32 4.62223e-33 1.0 -0.013946\n", + " 0.0 0.0 0.0 0.0 0.0 1.0" + ], + "text/tab-separated-values": [ + "-0.19654952267295533\t0.9804938985720597\t-2.4225068524357985e-16\t-6.31401878407614e-17\t0.0\t1.3877787807814457e-17\n", + "-0.9804938985720588\t-0.19654952267295522\t2.465190328815662e-32\t0.0\t0.0\t-1.249000902703301e-16\n", + "-1.1675141397270975e-28\t-2.0352611354702105e-28\t-0.19540690733885208\t0.9807222545472616\t0.0\t-1.5777218104420236e-30\n", + "1.262177448353619e-29\t8.835242138475332e-29\t-0.9807222545472617\t-0.19540690733885285\t0.0\t1.34106353887572e-29\n", + "-3.7470027081099033e-16\t-1.1145598333150986e-16\t-3.967415685437706e-32\t4.622231866529366e-33\t1.0\t-0.013945975579860171\n", + "0.0\t0.0\t0.0\t0.0\t0.0\t1.0\n" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ai = jl.inv(a)\n", + "r = ai * m * a\n", + "jl.GTPSA.jacobian(r.v)" + ] + }, + { + "cell_type": "markdown", + "id": "06c464f6", + "metadata": {}, + "source": [ + "It is easiest to view this in the complex phasors basis where the coordinates are $(\\tilde{p}_i,\\tilde{q}_i)=(\\sqrt{J_i}e^{+\\textrm{i}\\phi_i},\\sqrt{J_i}e^{-\\textrm{i}\\phi_i})$. That way, we see explicitly that the monomials $(\\tilde{p}_i\\tilde{q}_i)^n = J_i^n$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb00add2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DAMap{StaticArraysCore.MVector{5, ComplexF64}, StaticArraysCore.MVector{6, ComplexTPS64{Descriptor(NV=6, MO=2)}}, Nothing, Nothing}(ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im], 6-element StaticArraysCore.MVector{6, ComplexTPS64{Descriptor(NV=6, MO=2)}}:\n", + " Index Real Imag Order Exponent\n", + "---------------------------------------------------------------------------------------------\n", + " 1: -1.9654952267295528e-01 -9.8049389857205926e-01 1 1 0 0 0 0 0\n", + " 1: 2.2810225901204735e+00 -4.5725312717125638e-01 2 1 0 0 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 2: -1.9654952267295528e-01 9.8049389857205926e-01 1 0 1 0 0 0 0\n", + " 2: 2.2810225901204735e+00 4.5725312717125638e-01 2 0 1 0 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 3: -1.9540690733885246e-01 -9.8072225454726158e-01 1 0 0 1 0 0 0\n", + " 3: 2.3517700008594504e+00 -4.6858537216776275e-01 2 0 0 1 0 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 4: -1.9540690733885246e-01 9.8072225454726158e-01 1 0 0 0 1 0 0\n", + " 4: 2.3517700008594504e+00 4.6858537216776275e-01 2 0 0 0 1 0 1\n", + "---------------------------------------------------------------------------------------------\n", + " 5: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -1.3945975579860171e-02 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + " 5: -2.3264016160043939e+00 0.0000000000000000e+00 2 1 1 0 0 0 0\n", + " 5: -2.3979979958190234e+00 0.0000000000000000e+00 2 0 0 1 1 0 0\n", + " 5: -2.3202741736933086e-02 0.0000000000000000e+00 2 0 0 0 0 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + ", nothing, nothing)\n" + ] + } + ], + "source": [ + "c = jl.c_map(m)\n", + "ci = jl.inv(c)\n", + "r_phasor = ci * r * c\n", + "print(r_phasor)" + ] + }, + { + "cell_type": "markdown", + "id": "3b6b0502", + "metadata": {}, + "source": [ + "Not only is differentiability necessary to compute and analyze high order Taylor maps, it also allows us to compute exact derivatives of anything we want. This includes the parameters, e.g. the quadrupole strengths. Using `SciBmad`, we can compute the tune $\\nu_x$ as a function of variations in the quadrupole strength, e.g. $\\nu_x=\\nu_x(K_{n1})$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d1ceef5a", + "metadata": {}, + "outputs": [], + "source": [ + "# Now let's get the tune as a function of the quadrupole strength. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2639809d", + "metadata": {}, + "outputs": [ + { + "ename": "LoadError", + "evalue": "UndefVarError: `track` not defined in `Main`\nSuggestion: check for spelling errors or missing imports.", + "output_type": "error", + "traceback": [ + "UndefVarError: `track` not defined in `Main`\nSuggestion: check for spelling errors or missing imports.", + "", + "Stacktrace:", + " [1] top-level scope", + "\u001b[90m @\u001b[39m \u001b[90m\u001b[4mIn[21]:8\u001b[24m\u001b[39m" + ] + } + ], + "source": [ + "# Let's track some particles\n", + "# Initialize distribution with varying initial x\n", + "N_particles = 10\n", + "N_turns = 40\n", + "x_max = 1e-5\n", + "v = zeros(N_particles, 6) # N_particles x 6 array\n", + "v[:,1] = range(0, stop=x_max, length=N_particles)\n", + "res = track(v, fodo; N_turns=N_turns)\n", + "plt = scatter()\n", + "for i in 1:N_particles\n", + " # Plot x and px\n", + " scatter!(plt, res[i,:,1], res[i,:,2])\n", + "end\n", + "display(plt)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "09f496a4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Table with 23 columns and 11 rows:\n", + " s phi_1 beta_1 alpha_1 phi_2 beta_2 alpha_2 ⋯\n", + " ┌───────────────────────────────────────────────────────────────────────\n", + " 1 │ 0.0 0.0 26.0051 -2.34866 0.0 4.96648 0.49489 ⋯\n", + " 2 │ 0.5 0.00301456 26.005 2.34873 0.0162928 4.96648 -0.49489 ⋯\n", + " 3 │ 0.7 0.00426109 25.0756 2.29861 0.0225735 5.17446 -0.545023 ⋯\n", + " 4 │ 1.3 0.00829008 22.4074 2.14826 0.0398629 5.91872 -0.695422 ⋯\n", + " 5 │ 7.3 0.0978414 5.64482 0.644985 0.125237 23.2877 -2.19941 ⋯\n", + " 6 │ 7.9 0.115925 4.96114 0.494475 0.129117 26.0172 -2.3498 ⋯\n", + " 7 │ 8.4 0.132236 4.96114 -0.494463 0.13213 26.0172 2.3498 ⋯\n", + " 8 │ 8.6 0.138523 5.16896 -0.544633 0.133376 25.0873 2.29967 ⋯\n", + " 9 │ 9.2 0.15583 5.91282 -0.695142 0.137403 22.418 2.14927 ⋯\n", + " 10 │ 15.2 0.241265 23.2769 -2.19832 0.226889 5.65058 0.645289 ⋯\n", + " 11 │ 15.8 0.245146 26.0051 -2.34866 0.244954 4.96648 0.49489 ⋯" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Compute Twiss parameters\n", + "t = twiss(fodo)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a1dd2a33", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Plot betas and dispersion\n", + "plot(t.s, t.beta_1, label=\"beta_1\"); plot!(t.s, t.beta_2, label=\"beta_b\")\n", + "xlabel!(\"s [m]\")\n", + "ylabel!(\"Beta Function [m]\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f58214d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6-element Vector{TPS64{Descriptor(NV=6, MO=1)}}:\n", + " Index Coefficient Order Exponent\n", + "--------------------------------------------------------------------\n", + " 1: -2.3170807306711905e+00 1 1 0 0 0 0 0\n", + " 1: 2.5992967947822709e+01 1 0 1 0 0 0 0\n", + " 1: 4.8716319988507722e-01 1 0 0 0 0 0 1\n", + "--------------------------------------------------------------------\n", + " 2: -2.5045883283697512e-01 1 1 0 0 0 0 0\n", + " 2: 2.3780649250768429e+00 1 0 1 0 0 0 0\n", + " 2: 6.4304094327838082e-02 1 0 0 0 0 0 1\n", + "--------------------------------------------------------------------\n", + " 3: 5.2634259299842112e-01 1 0 0 1 0 0 0\n", + " 3: 4.9639790409998383e+00 1 0 0 0 1 0 0\n", + "--------------------------------------------------------------------\n", + " 4: -2.5053800516899360e-01 1 0 0 1 0 0 0\n", + " 4: -4.6294069656172643e-01 1 0 0 0 1 0 0\n", + "--------------------------------------------------------------------\n", + " 5: 2.6983451425953753e-02 1 1 0 0 0 0 0\n", + " 5: -5.1294854434236214e-01 1 0 1 0 0 0 0\n", + " 5: 1.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -7.2169338582354185e-03 1 0 0 0 0 0 1\n", + "--------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 1 0 0 0 0 0 1\n" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Track a particle as a TPSA\n", + "D1 = Descriptor(6, 1) # 6 variables, 3rd order\n", + "GTPSA.show_eps=1e-10 # hide small monomials\n", + "v0 = @vars(D1)\n", + "res = track(v0, fodo) # Mutates b0 to contain the result\n", + "res[1,2,:]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a7801d66", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Descriptor(NV=6, MO=2, NP=1, PO=2)" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Now \n", + "D1_p = Descriptor([1,1,1,1,1,1], 2, [2], 2)\n", + "v0 = @vars(D1_p)\n", + "dk = \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b247195a", + "metadata": {}, + "outputs": [ + { + "ename": "LoadError", + "evalue": "MethodError: no method matching track(::Bunch{Float64, BeamTracking.Coords{Vector{BeamTracking.State.T}, Matrix{TPS64{Descriptor(NV=6, MO=1)}}, Nothing}}, ::Beamline)\nThe function `track` exists, but no method is defined for this combination of argument types.\n\n\u001b[0mClosest candidates are:\n\u001b[0m track(\u001b[91m::Union{AbstractMatrix, AbstractVector}\u001b[39m, ::Beamline; N_turns)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mSciBmad\u001b[39m \u001b[90m~/.julia/dev/SciBmad/src/\u001b[39m\u001b[90m\u001b[4mtrack.jl:1\u001b[24m\u001b[39m\n", + "output_type": "error", + "traceback": [ + "MethodError: no method matching track(::Bunch{Float64, BeamTracking.Coords{Vector{BeamTracking.State.T}, Matrix{TPS64{Descriptor(NV=6, MO=1)}}, Nothing}}, ::Beamline)\nThe function `track` exists, but no method is defined for this combination of argument types.\n\n\u001b[0mClosest candidates are:\n\u001b[0m track(\u001b[91m::Union{AbstractMatrix, AbstractVector}\u001b[39m, ::Beamline; N_turns)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mSciBmad\u001b[39m \u001b[90m~/.julia/dev/SciBmad/src/\u001b[39m\u001b[90m\u001b[4mtrack.jl:1\u001b[24m\u001b[39m\n", + "", + "Stacktrace:", + " [1] top-level scope", + "\u001b[90m @\u001b[39m \u001b[90m\u001b[4mIn[16]:6\u001b[24m\u001b[39m" + ] + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "619c1d03", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DAMap{StaticArraysCore.MVector{5, ComplexF64}, StaticArraysCore.MVector{6, ComplexTPS64{Descriptor(NV=6, MO=3)}}, Nothing, Nothing}(ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im], 6-element StaticArraysCore.MVector{6, ComplexTPS64{Descriptor(NV=6, MO=3)}}:\n", + " Index Real Imag Order Exponent\n", + "---------------------------------------------------------------------------------------------\n", + " 1: 3.0492097202826335e-02 -9.9953500789525795e-01 1 1 0 0 0 0 0\n", + " 1: 1.8150337287104346e+00 5.5369931463216386e-02 2 1 0 0 0 0 1\n", + " 1: -1.1285465004047446e-01 -3.4427758230310170e-03 3 2 1 0 0 0 0\n", + " 1: -7.5632592013723896e-02 -2.3072692093332094e-03 3 1 0 1 1 0 0\n", + " 1: -2.7843055280258771e+00 1.5645348143666986e+00 3 1 0 0 0 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 2: 3.0492097202826335e-02 9.9953500789525795e-01 1 0 1 0 0 0 0\n", + " 2: 1.8150337287104346e+00 -5.5369931463216386e-02 2 0 1 0 0 0 1\n", + " 2: -1.1285465004047446e-01 3.4427758230310170e-03 3 1 2 0 0 0 0\n", + " 2: -7.5632592013723896e-02 2.3072692093332094e-03 3 0 1 1 1 0 0\n", + " 2: -2.7843055280258771e+00 -1.5645348143666986e+00 3 0 1 0 0 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 3: 3.1700948218347319e-02 -9.9949739863696330e-01 1 0 0 1 0 0 0\n", + " 3: 1.8937429327173496e+00 6.0063634713610106e-02 2 0 0 1 0 0 1\n", + " 3: -7.5629746205468348e-02 -2.3987402792574335e-03 3 1 1 1 0 0 0\n", + " 3: -4.6481040216239627e-01 -1.4742340010482361e-02 3 0 0 2 1 0 0\n", + " 3: -2.8594700186253510e+00 1.7051440644545568e+00 3 0 0 1 0 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 4: 3.1700948218347319e-02 9.9949739863696330e-01 1 0 0 0 1 0 0\n", + " 4: 1.8937429327173496e+00 -6.0063634713610106e-02 2 0 0 0 1 0 1\n", + " 4: -7.5629746205468348e-02 2.3987402792574335e-03 3 1 1 0 1 0 0\n", + " 4: -4.6481040216239627e-01 1.4742340010482361e-02 3 0 0 1 2 0 0\n", + " 4: -2.8594700186253510e+00 -1.7051440644545568e+00 3 0 0 0 1 0 2\n", + "---------------------------------------------------------------------------------------------\n", + " 5: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 1 0\n", + " 5: -1.7448592095815476e-02 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + " 5: -1.8158780976890285e+00 0.0000000000000000e+00 2 1 1 0 0 0 0\n", + " 5: -1.8946952091119851e+00 0.0000000000000000e+00 2 0 0 1 1 0 0\n", + " 5: -2.7958561633357793e-02 0.0000000000000000e+00 2 0 0 0 0 0 2\n", + " 5: 5.4706098006026203e+00 0.0000000000000000e+00 3 1 1 0 0 0 1\n", + " 5: 5.6079563228086462e+00 0.0000000000000000e+00 3 0 0 1 1 0 1\n", + " 5: 5.0643189525996354e-03 0.0000000000000000e+00 3 0 0 0 0 0 3\n", + "---------------------------------------------------------------------------------------------\n", + " 6: 1.0000000000000000e+00 0.0000000000000000e+00 1 0 0 0 0 0 1\n", + ", nothing, nothing)" + ] + } + ], + "source": [ + "m = DAMap(v=b0.coords.v) # Create a differential algebraic map from the tracking result\n", + "a = normal(m) # Normalizing map, circle world to regular world\n", + "ai = inv(a) # Regular world to circle world\n", + "c = c_map(m) # Phasors sqrt(J)*exp(+-im*phi) to regular world\n", + "ci = inv(c) # Regular world to phasors\n", + "r = ci ∘ ai ∘ m ∘ a ∘ c # Amplitude dependent rotation\n", + "print(r)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bd8428d7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5.0e-5:5.0e-5:0.001" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Initialize distribution of particles with varying initial x\n", + "N = 20\n", + "x_max=1e-3\n", + "v = zeros(N, 6)\n", + "v[:,1] = x_max/N:x_max/N:x_max" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "878caa8d", + "metadata": {}, + "outputs": [], + "source": [ + "# Structure\n", + "trajectories = " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b6c6757", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "20×6 Matrix{Float64}:\n", + " -2.05972e-5 -8.77e-6 2.09179e-18 9.94561e-19 2.10532e-6 0.0\n", + " -2.91289e-5 -1.24028e-5 2.95824e-18 1.40654e-18 2.9773e-6 0.0\n", + " -3.56754e-5 -1.51904e-5 3.62309e-18 1.72267e-18 3.64637e-6 0.0\n", + " -4.11945e-5 -1.75405e-5 4.18358e-18 1.98918e-18 4.21039e-6 0.0\n", + " -4.60569e-5 -1.96111e-5 4.67739e-18 2.22398e-18 4.7073e-6 0.0\n", + " -5.04528e-5 -2.1483e-5 5.12383e-18 2.43627e-18 5.15652e-6 0.0\n", + " -5.44953e-5 -2.32044e-5 5.53437e-18 2.63148e-18 5.56961e-6 0.0\n", + " -5.82579e-5 -2.48067e-5 5.91649e-18 2.81319e-18 5.9541e-6 0.0\n", + " -6.17919e-5 -2.63116e-5 6.27539e-18 2.98385e-18 6.31521e-6 0.0\n", + " -6.51344e-5 -2.7735e-5 6.61484e-18 3.14527e-18 6.65675e-6 0.0\n", + " -6.83135e-5 -2.90889e-5 6.9377e-18 3.2988e-18 6.98159e-6 0.0\n", + " -7.13512e-5 -3.03825e-5 7.2462e-18 3.4455e-18 7.29197e-6 0.0\n", + " -7.42647e-5 -3.16232e-5 7.54208e-18 3.58621e-18 7.58966e-6 0.0\n", + " -7.70681e-5 -3.28171e-5 7.82679e-18 3.7216e-18 7.87609e-6 0.0\n", + " -7.97731e-5 -3.39691e-5 8.1015e-18 3.85223e-18 8.15247e-6 0.0\n", + " -8.23893e-5 -3.50833e-5 8.36719e-18 3.97858e-18 8.41977e-6 0.0\n", + " -8.4925e-5 -3.61631e-5 8.62471e-18 4.10104e-18 8.67883e-6 0.0\n", + " -8.73871e-5 -3.72117e-5 8.87475e-18 4.21995e-18 8.93038e-6 0.0\n", + " -8.97818e-5 -3.82315e-5 9.11794e-18 4.3356e-18 9.17503e-6 0.0\n", + " -9.21142e-5 -3.92249e-5 9.35481e-18 4.44825e-18 9.41332e-6 0.0" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Now let's look at the phase space\n", + "# Let's look at particles with J = 0:0.\n", + "# In Floquet variables x = sqrt(2J)*cos(phi), px=sqrt(2J)*sin(phi)\n", + "# so we can start a distribution with phi=0 so px=0\n", + "N = 20\n", + "J_max = 20e-9\n", + "J = J_max/(N):J_max/(N):J_max\n", + "x_in_floquet = sqrt.(2 .*J)\n", + "\n", + "# initialize particle distribution\n", + "v_in_floquet = zeros(N, 6)\n", + "v_in_floquet[:,1] = x_in_floquet\n", + "\n", + "v = zeros(N,6)\n", + "for i in 1:N\n", + " v[i,:] = ai.v(v_in_floquet[i,:])\n", + "end\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}