diff --git a/cheetah/bmad.py b/cheetah/bmad.py new file mode 100644 index 00000000..70754084 --- /dev/null +++ b/cheetah/bmad.py @@ -0,0 +1,48 @@ +import os +import re +from pathlib import Path + + +def read_clean_lines(lattice_file_path: Path) -> list[str]: + """ + Recursevely read lines from Bmad lattice files, removing comments and empty lines, + and replacing lines calling external files with the lines of the external file. + + :param lattice_file_path: Path to the root Bmad lattice file. + :return: List of lines from the root Bmad lattice file and all external files. + """ + with open(lattice_file_path) as f: + lines = f.readlines() + + # Remove comments and empty lines + lines = [line.strip() for line in lines] + # Remove comments (i.e. all characters after a '!') + lines = [re.sub(r"!.*", "", line) for line in lines] + # Remove empty lines + lines = [line for line in lines if line] + + # Replace lines calling external files with the lines of the external file + replaced_lines = [] + for i, line in enumerate(lines): + if line.startswith("call, file ="): + external_file_path = Path(line.split("=")[1].strip()) + resolved_external_file_path = Path( + *[ + os.environ[part[1:]] if part.startswith("$") else part + for part in external_file_path.parts + ] + ) + if not resolved_external_file_path.is_absolute(): + resolved_external_file_path = ( + lattice_file_path.parent / resolved_external_file_path + ) + external_file_lines = read_clean_lines(resolved_external_file_path) + replaced_lines += external_file_lines + else: + replaced_lines.append(line) + + # Make lines all lower case (done late because environment variables are case + # sensitive) + replaced_lines = [line.lower() for line in replaced_lines] + + return replaced_lines diff --git a/test_bmad.ipynb b/test_bmad.ipynb new file mode 100644 index 00000000..25c90153 --- /dev/null +++ b/test_bmad.ipynb @@ -0,0 +1,1176 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import cheetah.bmad" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'/Users/jankaiser/Documents/DESY/lcls-lattice'" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "os.environ[\"LCLS_LATTICE\"] = str((Path(\".\").absolute().parent / \"lcls-lattice\"))\n", + "os.environ[\"LCLS_LATTICE\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "PosixPath('$LCLS_LATTICE/bmad/models/cu_hxr/cu_hxr.lat.bmad')" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lattice_file_path = (\n", + " Path(\"$LCLS_LATTICE\") / \"bmad\" / \"models\" / \"cu_hxr\" / \"cu_hxr.lat.bmad\"\n", + ")\n", + "lattice_file_path" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "PosixPath('/Users/jankaiser/Documents/DESY/lcls-lattice/bmad/models/cu_hxr/cu_hxr.lat.bmad')" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "resolved_lattice_file_path = Path(\n", + " *[\n", + " os.environ[part[1:]] if part.startswith(\"$\") else part\n", + " for part in lattice_file_path.parts\n", + " ]\n", + ")\n", + "resolved_lattice_file_path" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "def read_clean_lattice_file(lattice_file_path: Path) -> list[str]:\n", + " with open(lattice_file_path) as f:\n", + " lines = f.readlines()\n", + "\n", + " # Remove comments and empty lines\n", + " lines = [line.strip() for line in lines]\n", + " # Remove comments (i.e. all characters after a '!')\n", + " lines = [re.sub(r\"!.*\", \"\", line) for line in lines]\n", + " # Remove empty lines\n", + " lines = [line for line in lines if line]\n", + "\n", + " # Replace lines calling external files with the lines of the external file\n", + " replaced_lines = []\n", + " for i, line in enumerate(lines):\n", + " if line.startswith(\"call, file =\"):\n", + " external_file_path = Path(line.split(\"=\")[1].strip())\n", + " resolved_external_file_path = Path(\n", + " *[\n", + " os.environ[part[1:]] if part.startswith(\"$\") else part\n", + " for part in external_file_path.parts\n", + " ]\n", + " )\n", + " if not resolved_external_file_path.is_absolute():\n", + " resolved_external_file_path = (\n", + " lattice_file_path.parent / resolved_external_file_path\n", + " )\n", + " external_file_lines = read_clean_lattice_file(resolved_external_file_path)\n", + " replaced_lines += external_file_lines\n", + " else:\n", + " replaced_lines.append(line)\n", + "\n", + " # Make lines all lower case (done late because environment variables are case sensitive)\n", + " replaced_lines = [line.lower() for line in replaced_lines]\n", + "\n", + " return replaced_lines" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['beginning[beta_a] = 5.91253676811640894e+000',\n", + " 'beginning[alpha_a] = 3.55631307633660354e+000',\n", + " 'beginning[beta_b] = 5.91253676811640982e+000',\n", + " 'beginning[alpha_b] = 3.55631307633660398e+000',\n", + " 'beginning[e_tot] = 6e6',\n", + " 'parameter[geometry] = open',\n", + " 'parameter[particle] = electron',\n", + " 'beginning[theta_position] = -35*pi/180',\n", + " 'beginning[z_position] = 3050.512000 - 1032.60052',\n", + " 'beginning[x_position] = 10.44893',\n", + " 'setsp = 0',\n", + " 'setcus = 0',\n", + " 'setal = 0',\n", + " 'setda = 0',\n", + " 'setxleap2 = 0 ',\n", + " 'sethxrss = 0 ',\n", + " 'setsxrss = 0 ',\n", + " 'setcbxfel = 0 ',\n", + " 'setpepx = 0 ',\n", + " 'intgsx = 30.0 ',\n", + " 'intghx = 30.0 ',\n", + " 'cb = 1.0e10/c_light ',\n", + " 'gev2mev = 1000.0 ',\n", + " 'in2m = 0.0254 ',\n", + " 'mc2 = 510.99906e-6 ',\n", + " 'injdeg = -35.0 ',\n", + " 'zoffinj = 0.012100 ',\n", + " 'xoff = -25.610*in2m ',\n", + " 'yoff = 25.570*in2m ',\n", + " 'emitxn = 1.00e-06 ',\n", + " 'emityn = 1.00e-06 ',\n", + " 'bleng = 0.83e-03 ',\n", + " 'esprd = 2.00e-05 ',\n", + " 'e00 = 0.006 ',\n", + " 'e0i = 0.064 ',\n", + " 'ei = 0.135 ',\n", + " 'ebc1 = 0.220 ',\n", + " 'ebc2 = 5.000 ',\n", + " 'ef = 8.000 ',\n", + " 'eu = 8.000 ',\n", + " 'brho00 = cb*e00',\n", + " 'brho0i = cb*e0i',\n", + " 'brhoi = cb*ei',\n", + " 'brho1 = cb*ebc1',\n", + " 'brho2 = cb*ebc2',\n", + " 'brhof = cb*ef',\n", + " 'brhou = cb*eu',\n", + " 'r56htr = 0.0079 ',\n", + " 'r56bc1 = 0.0455 ',\n", + " 'r56bc2 = 0.028 ',\n", + " 'tbetx = 1.410 ',\n", + " 'talfx = -2.613 ',\n", + " 'tbety = 6.706 ',\n", + " 'talfy = 0.506 ',\n", + " 'cbetx = 15.574222415628 ',\n", + " 'calfx = -3.081460679784',\n", + " 'cbety = 0.39093003939',\n", + " 'calfy = 0.551431596242e-2',\n", + " 'bxi = 1.11308102615 ',\n", + " 'axi = -0.068940358788 ',\n", + " 'byi = 1.113021659127 ',\n", + " 'ayi = -0.070294897537 ',\n", + " 'enbegl3 = 5.0',\n", + " 'bxbegl3 = 11.063556098243',\n", + " 'axbegl3 = -0.949687069393',\n", + " 'bybegl3 = 70.645797110388',\n", + " 'aybegl3 = 2.189962742976',\n", + " 'enendl3 = 8.0',\n", + " 'bxendl3 = 33.223271647948',\n", + " 'axendl3 = 1.179788571613',\n", + " 'byendl3 = 62.179034958633',\n", + " 'ayendl3 = -1.656755986913',\n", + " 'mbetxh = 48.911502413792',\n", + " 'malfxh = 3.141736059434',\n", + " 'mbetyh = 92.803659415654',\n", + " 'malfyh = 3.519158552438',\n", + " 'bxedh = 46.225914290403',\n", + " 'axedh = -1.084608326581',\n", + " 'byedh = 46.225914290403',\n", + " 'ayedh = 1.084608326581',\n", + " 'mbetxs = 14.225768169159',\n", + " 'malfxs = -0.494962167072',\n", + " 'mbetys = 41.657375271635',\n", + " 'malfys = 2.281685862975',\n", + " 'enhxrm = 8.0',\n", + " 'bxhxrm = 20.490094388158',\n", + " 'axhxrm = 1.140342746628',\n", + " 'byhxrm = 15.097163649464',\n", + " 'ayhxrm = -0.86968583842',\n", + " 'bet11 = 10.090395936353',\n", + " 'bet12 = 2.470673595371',\n", + " 'bet21 = 43.876719659503',\n", + " 'bet22 = 16.019619746515',\n", + " 'bet31 = 61.868125327071',\n", + " 'bet32 = 36.40742728964',\n", + " 'bet33 = 36.353377790534',\n", + " 'bet34 = 61.956709274457',\n", + " 'mu_l1 = 75/360',\n", + " 'mu_l2 = 55.500/360',\n", + " 'mux_l3 = 30.175/360 ',\n", + " 'muy_l3 = 30.130/360 ',\n", + " 'emitx = emitxn/(e0i/emass)',\n", + " 'emity = emityn/(e0i/emass)',\n", + " 'tgamx = (1+talfx*talfx)/tbetx',\n", + " 'tgamy = (1+talfy*talfy)/tbety',\n", + " 'sig11 = emitx*tbetx',\n", + " 'sig21 = -emitx*talfx',\n", + " 'sig22 = emitx*tgamx',\n", + " 'sig33 = emity*tbety',\n", + " 'sig43 = -emity*talfy',\n", + " 'sig44 = emity*tgamy',\n", + " 'c21 = sig21/sqrt(sig11*sig22)',\n", + " 'c43 = sig43/sqrt(sig33*sig44)',\n", + " 'cgamx = (1+calfx*calfx)/cbetx',\n", + " 'cgamy = (1+calfy*calfy)/cbety',\n", + " 'sig11c = emitx*cbetx',\n", + " 'sig21c = -emitx*calfx',\n", + " 'sig22c = emitx*cgamx',\n", + " 'sig33c = emity*cbety',\n", + " 'sig43c = -emity*calfy',\n", + " 'sig44c = emity*cgamy',\n", + " 'c21c = sig21c/sqrt(sig11c*sig22c)',\n", + " 'c43c = sig43c/sqrt(sig33c*sig44c)',\n", + " 'dbmark80: marker ',\n", + " 'dbmark81: marker ',\n", + " 'dbmark97: marker ',\n", + " 'dbmark82: marker ',\n", + " 'dbmark98: marker ',\n", + " 'dbmark83: marker ',\n", + " 'dbmark28: marker ',\n", + " 'dbmark29: marker ',\n", + " 'lqk = 0.7142 ',\n", + " 'rqk = 1.625*in2m/2',\n", + " 'lqa = 0.32 ',\n", + " 'rqa = 0.016',\n", + " 'lqu = 0.084 ',\n", + " 'rqu = 0.0055',\n", + " 'lqg = 0.0453 ',\n", + " 'rqg = 3.37*in2m/2',\n", + " 'lqx = 0.108 ',\n", + " 'rqx = 0.016',\n", + " 'lqc = 0.108 ',\n", + " 'rqc = 0.043/2',\n", + " 'lqsb = 0.16 ',\n", + " 'rqsb = 0.06',\n", + " 'lqm = 0.1244 ',\n", + " 'rqm = 0.0269',\n", + " 'lqp = 0.43 ',\n", + " 'rqp = 0.05',\n", + " 'lqr = 0.263 ',\n", + " 'rqr = 0.0257',\n", + " 'lqn = 0.542 ',\n", + " 'rqn = 0.025',\n", + " 'lqf = 0.46092 ',\n", + " 'rqf = 0.023/2',\n", + " 'lqd = 0.55 ',\n", + " 'rqd = 0.08255/2',\n", + " 'lqe = 0.1068 ',\n", + " 'rqe = 1.085*in2m/2',\n", + " 'lqs = 0.197 ',\n", + " 'rqs = 1.510*in2m/2',\n", + " 'lqw = 0.248 ',\n", + " 'rqw = 4.625*in2m/2',\n", + " 'lqz = 0.09181 ',\n", + " 'rqz = 1.013*in2m/2',\n", + " 'gbcc = 0.032',\n", + " 'zbcc = 0.35',\n", + " 'fbcc = 0.8436',\n", + " 'zdcc = 0.2',\n", + " 'lsa = 0.1 ',\n", + " 'rsa = 2.13*in2m/2',\n", + " 'lsb = 0.1 ',\n", + " 'rsb = 1.38*in2m/2',\n", + " 'lkik = 1.0601 ',\n", + " 'gkik = 25.4e-3 ',\n", + " 'setsps = 1 ',\n", + " 'setsph = -1 ',\n", + " 'setspd = 0 ',\n", + " 'cuson = 1 ',\n", + " 'cusondc = -1 ',\n", + " 'cusoff = 0 ',\n", + " 'alon = 1 ',\n", + " 'aloff = 0 ',\n", + " 'daon = 1 ',\n", + " 'daoff = 0 ',\n", + " 'sson = 1 ',\n", + " 'ssoff = 0 ',\n", + " 'sbandf = 2856.0 ',\n", + " 'xbandf = 4*sbandf ',\n", + " 'ljaw = 0.06 ',\n", + " 'lcoll = 0.08 ',\n", + " 'lpcpm = 0.076 ',\n", + " 'lpcpmw = 0.08 ',\n", + " 'gbksp = 0.02 ',\n", + " 'lbksp = 1.0 ',\n", + " 'gblsp = 0.0159 ',\n", + " 'lblsp = 1.0 ',\n", + " 'gbsp = 0.0254 ',\n", + " 'lbsp = 1.0 ',\n", + " 'r56sps = 0.0 ',\n", + " 'r56sph = 0.0 ',\n", + " 'lql = 0.28 ',\n", + " 'lrfbub = 0.05 ',\n", + " 'lpctdkik = 0.8128 ',\n", + " 'lplate = 2.5*in2m ',\n", + " 'lspots = 8.0*in2m ',\n", + " 'wooddoor: marker',\n", + " 'abrdas2 = -0.011874293037',\n", + " 'tbrdas2 = 0.371701698805 ',\n", + " 'beggunb: marker',\n", + " 'endgunb: marker',\n", + " 'begl0b: marker',\n", + " 'endl0b: marker',\n", + " 'beghtr: marker',\n", + " 'endhtr: marker',\n", + " 'begdiag0: marker',\n", + " 'enddiag0: marker',\n", + " 'begcol0: marker',\n", + " 'endcol0: marker',\n", + " 'begl1b: marker',\n", + " 'endl1b: marker',\n", + " 'begbc1b: marker',\n", + " 'endbc1b: marker',\n", + " 'begcol1: marker',\n", + " 'endcol1: marker',\n", + " 'begl2b: marker',\n", + " 'endl2b: marker',\n", + " 'begbc2b: marker',\n", + " 'endbc2b: marker',\n", + " 'begemit2: marker',\n", + " 'endemit2: marker',\n", + " 'begl3b: marker',\n", + " 'endl3b: marker',\n", + " 'begext: marker',\n", + " 'endext: marker',\n", + " 'begdog: marker',\n", + " 'enddog: marker',\n", + " 'begbyp: marker',\n", + " 'endbyp: marker',\n", + " 'begsph: marker',\n", + " 'endsph: marker',\n", + " 'begslth: marker',\n", + " 'endslth: marker',\n", + " 'begspd_1: marker',\n", + " 'endspd_1: marker',\n", + " 'begspd_2: marker',\n", + " 'endspd_2: marker',\n", + " 'begspd_3: marker',\n", + " 'endspd_3: marker',\n", + " 'begsltd: marker',\n", + " 'endsltd: marker',\n", + " 'begsps: marker',\n", + " 'endsps: marker',\n", + " 'begslts: marker',\n", + " 'endslts: marker',\n", + " 'begbsys: marker',\n", + " 'endbsys: marker',\n", + " 'begltus: marker',\n", + " 'endltus: marker',\n", + " 'begunds: marker',\n", + " 'endunds: marker',\n", + " 'begdmps_1: marker',\n", + " 'enddmps_1: marker',\n", + " 'begdmps_2: marker',\n", + " 'enddmps_2: marker',\n", + " 'begsfts_1: marker',\n", + " 'endsfts_1: marker',\n", + " 'begsfts_2: marker',\n", + " 'endsfts_2: marker',\n", + " 'begsxtes_1: marker',\n", + " 'endsxtes_1: marker',\n", + " 'begsxtes_2: marker',\n", + " 'endsxtes_2: marker',\n", + " 'begsxtes_3: marker',\n", + " 'endsxtes_3: marker',\n", + " 'begsxtes_4: marker',\n", + " 'endsxtes_4: marker',\n", + " 'beggun: marker',\n", + " 'endgun: marker',\n", + " 'beggspec: marker',\n", + " 'endgspec: marker',\n", + " 'begl0: marker',\n", + " 'endl0: marker',\n", + " 'begdl1_1: marker',\n", + " 'enddl1_1: marker',\n", + " 'begspec: marker',\n", + " 'endspec: marker',\n", + " 'begdl1_2: marker',\n", + " 'enddl1_2: marker',\n", + " 'begl1: marker',\n", + " 'endl1: marker',\n", + " 'begbc1: marker',\n", + " 'endbc1: marker',\n", + " 'begl2: marker',\n", + " 'endl2: marker',\n", + " 'begbc2: marker',\n", + " 'endbc2: marker',\n", + " 'begl3: marker',\n", + " 'endl3: marker',\n", + " 'begclth_0: marker',\n", + " 'endclth_0: marker',\n", + " 'begclth_1: marker',\n", + " 'endclth_1: marker',\n", + " 'begclth_2: marker',\n", + " 'endclth_2: marker',\n", + " 'begbsyh_1: marker',\n", + " 'endbsyh_1: marker',\n", + " 'begbsyh_2: marker',\n", + " 'endbsyh_2: marker',\n", + " 'begltuh: marker',\n", + " 'endltuh: marker',\n", + " 'begundh: marker',\n", + " 'endundh: marker',\n", + " 'begdmph_1: marker',\n", + " 'enddmph_1: marker',\n", + " 'begdmph_2: marker',\n", + " 'enddmph_2: marker',\n", + " 'begsfth_1: marker',\n", + " 'endsfth_1: marker',\n", + " 'begsfth_2: marker',\n", + " 'endsfth_2: marker',\n", + " 'beghxtes_1: marker',\n", + " 'endhxtes_1: marker',\n", + " 'beghxtes_2: marker',\n", + " 'endhxtes_2: marker',\n", + " 'beghxtes_3: marker',\n", + " 'endhxtes_3: marker',\n", + " 'begclts: marker',\n", + " 'endclts: marker',\n", + " 'begbsya_1: marker',\n", + " 'endbsya_1: marker',\n", + " 'begbsya_2: marker',\n", + " 'endbsya_2: marker',\n", + " 'xsp = xoff',\n", + " 'ysp = yoff',\n", + " 'zsp = 2780.276003',\n", + " 'thsp = 0.0',\n", + " 'phsp = 0.0',\n", + " 'pssp = 0.0',\n", + " 'tbxsp = 1.112796938491e2',\n", + " 'tbysp = 60.000000012297',\n", + " 'taxsp = 2.930243793946',\n", + " 'taysp = 0.853023050724',\n", + " 'xsph = 0.0',\n", + " 'ysph = 0.0',\n", + " 'zsph = 3110.961492',\n", + " 'thsph = 0.0',\n", + " 'phsph = 0.0',\n", + " 'pssph = 0.0',\n", + " 'kqsp1h = 0.492324446747',\n", + " 'kqsp2h = -1.001967523398',\n", + " 'kqsp3h = 0.304769059951',\n", + " 'kqsp4h = -0.300033974381',\n", + " 'kqsp5h = 0.179267068866',\n", + " 'kqsp6h = -0.222726806069',\n", + " 'kqsp7h = 0.448434480039',\n", + " 'kqsp8h = kqsp6h',\n", + " 'kqsp9h = kqsp5h',\n", + " 'kqsp10h = kqsp4h',\n", + " 'kqsp11h = kqsp3h',\n", + " 'kqsp12h = -1.001082746242',\n", + " 'kqsp13h = kqsp1h',\n", + " 'qsp1h: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp1h, aperture = rqr',\n", + " 'qsp2h: quadrupole, type = \"1.085q4.31\", l = lqe/2, k1 = kqsp2h, aperture = rqe',\n", + " 'qsp3h: quadrupole, type = \"1.26q12\", l = lqa/2, k1 = kqsp3h, aperture = rqa',\n", + " 'qsp4h: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp4h, aperture = rqr',\n", + " 'qsp5h: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp5h, aperture = rqr',\n", + " 'qsp6h: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp6h, aperture = rqr',\n", + " 'qsp7h: quadrupole, type = \"1.085q4.31\", l = lqe/2, k1 = kqsp7h, aperture = rqe',\n", + " 'qsp8h: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp8h, aperture = rqr',\n", + " 'qsp9h: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp9h, aperture = rqr',\n", + " 'qsp10h: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp10h, aperture = rqr',\n", + " 'qsp11h: quadrupole, type = \"1.26q12\", l = lqa/2, k1 = kqsp11h, aperture = rqa',\n", + " 'qsp12h: quadrupole, type = \"1.085q4.31\", l = lqe/2, k1 = kqsp12h, aperture = rqe',\n", + " 'qsp13h: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp13h, aperture = rqr',\n", + " 'kssp1h = -20.980886636913 ',\n", + " 'kssp2h = 22.597513710817 ',\n", + " 'tssp1h = 15.249352738505 ',\n", + " 'tssp2h = 17.803041269766 ',\n", + " 'ssp1h: pipe, l = 0.05, type =\"@1,1.38s3.00\", descrip = \"deferred sextupole\"',\n", + " 'ssp2h: pipe, l = 0.05, type =\"@1,1.38s3.00\", descrip = \"deferred sextupole\"',\n", + " 'kqsp1 = 0.527387331122 ',\n", + " 'kqsp2 = -0.521830425335 ',\n", + " 'qsp1: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp1, aperture = rqr',\n", + " 'qsp2: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp2, aperture = rqr',\n", + " 'kqsp1s = 0.633592368552',\n", + " 'kqsp2s = -0.558572403531',\n", + " 'kqsp3s = 0.652091326391',\n", + " 'kqsp4s = -0.497963158567',\n", + " 'kqsp5s = 0.184546784571',\n", + " 'kqsp6s = kqsp4s',\n", + " 'kqsp7s = kqsp3s',\n", + " 'kqsp8s = kqsp2s',\n", + " 'kqsp9s = kqsp1s',\n", + " 'qsp1s: quadrupole, type = \"1.26q12\", l = lqa/2, k1 = kqsp1s, aperture = rqa',\n", + " 'qsp2s: quadrupole, type = \"1.26q12\", l = lqa/2, k1 = kqsp2s, aperture = rqa',\n", + " 'qsp3s: quadrupole, type = \"1.26q12\", l = lqa/2, k1 = kqsp3s, aperture = rqa',\n", + " 'qsp4s: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp4s, aperture = rqr',\n", + " 'qsp5s: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp5s, aperture = rqr',\n", + " 'qsp6s: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp6s, aperture = rqr',\n", + " 'qsp7s: quadrupole, type = \"1.26q12\", l = lqa/2, k1 = kqsp7s, aperture = rqa',\n", + " 'qsp8s: quadrupole, type = \"1.26q12\", l = lqa/2, k1 = kqsp8s, aperture = rqa',\n", + " 'qsp9s: quadrupole, type = \"1.26q12\", l = lqa/2, k1 = kqsp9s, aperture = rqa',\n", + " 'kssp1s = 12.701345963181 ',\n", + " 'kssp2s = 12.699237045946 ',\n", + " 'ssp1s: pipe, l = 0.05, type =\"@1,1.38s3.00\", descrip = \"deferred sextupole\"',\n", + " 'ssp2s: pipe, l = 0.05, type =\"@1,1.38s3.00\", descrip = \"deferred sextupole\"',\n", + " 'kqsp1d = -0.258027172416',\n", + " 'kqsp2d = 0.232777714022',\n", + " 'qsp1d: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp1d, aperture = rqr',\n", + " 'qsp2d: quadrupole, type = \"2q10\", l = lqr/2, k1 = kqsp2d, aperture = rqr',\n", + " 'gbkysp = gbksp ',\n", + " 'lbkysp = lbksp ',\n", + " 'setkikh = 0.5*setsp*(setsp-1) ',\n", + " 'abkysph0 = -0.75e-3',\n", + " 'abkysph = abkysph0 *setkikh ',\n", + " 'abkysp1h = asin( sin(abkysph)/3) ',\n", + " 'abkysp12h = asin(2*sin(abkysph)/3) ',\n", + " 'abkysp2h = abkysp12h-abkysp1h ',\n", + " 'abkysp3h = abkysph -abkysp12h ',\n", + " 'lbkysp1h = lbkysp/(1-abkysp1h *abkysp1h /6)',\n", + " 'lbkysp12h = 2*lbkysp/(1-abkysp12h*abkysp12h/6)',\n", + " 'lbkysp13h = 3*lbkysp/(1-abkysph *abkysph /6)',\n", + " 'lbkysp2h = lbkysp12h-lbkysp1h',\n", + " 'lbkysp3h = lbkysp13h-lbkysp12h',\n", + " 'bkysp1ha: sbend, type = \"0.787k35.4\", l = lbkysp1h/2, angle = abkysp1h/2, hgap = gbkysp/2, fint = 0.5, fintx = 0,',\n", + " 'e2 = 0, e1 = 0, ref_tilt = pi/2',\n", + " 'bkysp1hb: sbend, type = \"0.787k35.4\", l = lbkysp1h/2, angle = abkysp1h/2, hgap = gbkysp/2, fint = 0, fintx = 0.5,',\n", + " 'e1 = 0, e2 = abkysp1h, ref_tilt = pi/2',\n", + " 'bkysp2ha: sbend, type = \"0.787k35.4\", l = lbkysp2h/2, angle = abkysp2h/2, hgap = gbkysp/2, fint = 0.5, fintx = 0,',\n", + " 'e2 = 0, e1 = -abkysp1h, ref_tilt = pi/2',\n", + " 'bkysp2hb: sbend, type = \"0.787k35.4\", l = lbkysp2h/2, angle = abkysp2h/2, hgap = gbkysp/2, fint = 0, fintx = 0.5,',\n", + " 'e1 = 0, e2 = abkysp12h, ref_tilt = pi/2',\n", + " 'bkysp3ha: sbend, type = \"0.787k35.4\", l = lbkysp3h/2, angle = abkysp3h/2, hgap = gbkysp/2, fint = 0.5, fintx = 0,',\n", + " 'e2 = 0, e1 = -abkysp12h, ref_tilt = pi/2',\n", + " 'bkysp3hb: sbend, type = \"0.787k35.4\", l = lbkysp3h/2, angle = abkysp3h/2, hgap = gbkysp/2, fint = 0, fintx = 0.5,',\n", + " 'e1 = 0, e2 = abkysph, ref_tilt = pi/2',\n", + " 'lbkysp0h = lbkysp',\n", + " 'lbkysp4h = lbkysp/cos(abkysph)',\n", + " 'bkysp0ha: sbend, type = \"@2,0.787k35.4\", l = lbkysp0h/2, angle = 0, hgap = gbkysp/2, fint = 0.5, fintx = 0, e2 = 0,',\n", + " 'e1 = 0, ref_tilt = pi/2',\n", + " 'bkysp0hb: sbend, type = \"@2,0.787k35.4\", l = lbkysp0h/2, angle = 0, hgap = gbkysp/2, fint = 0, fintx = 0.5, e1 = 0,',\n", + " 'e2 = 0, ref_tilt = pi/2',\n", + " 'bkysp4ha: sbend, type = \"@2,0.787k35.4\", l = lbkysp4h/2, angle = 0, hgap = gbkysp/2, fint = 0.5, fintx = 0, e2 = 0,',\n", + " 'e1 = -abkysph, ref_tilt = pi/2',\n", + " 'bkysp4hb: sbend, type = \"@2,0.787k35.4\", l = lbkysp4h/2, angle = 0, hgap = gbkysp/2, fint = 0, fintx = 0.5, e1 = 0,',\n", + " 'e2 = abkysph, ref_tilt = pi/2',\n", + " 'gbkysp5h = 0.035',\n", + " 'zbkysp5h = 1.0',\n", + " 'lbkysp5h = zbkysp5h/cos(abkysph)',\n", + " 'bkysp5ha: sbend, type = \"@2,1.378k35.4\", l = lbkysp5h/2, angle = 0, hgap = gbkysp5h/2, fint = 0.5, fintx = 0, e2 = 0,',\n", + " 'e1 = -abkysph, ref_tilt = pi/2',\n", + " 'bkysp5hb: sbend, type = \"@2,1.378k35.4\", l = lbkysp5h/2, angle = 0, hgap = gbkysp5h/2, fint = 0, fintx = 0.5, e1 = 0,',\n", + " 'e2 = abkysph, ref_tilt = pi/2',\n", + " 'setkiks = 0.5*setsp*(setsp+1) ',\n", + " 'abkysps0 = -0.75e-3',\n", + " 'abkysps = abkysps0 *setkiks ',\n", + " 'abkysp1s = asin( sin(abkysps)/3) ',\n", + " 'abkysp12s = asin(2*sin(abkysps)/3) ',\n", + " 'abkysp2s = abkysp12s-abkysp1s ',\n", + " 'abkysp3s = abkysps -abkysp12s ',\n", + " 'lbkysp1s = lbkysp/(1-abkysp1s *abkysp1s /6)',\n", + " 'lbkysp12s = 2*lbkysp/(1-abkysp12s*abkysp12s/6)',\n", + " 'lbkysp13s = 3*lbkysp/(1-abkysps *abkysps /6)',\n", + " 'lbkysp2s = lbkysp12s-lbkysp1s',\n", + " 'lbkysp3s = lbkysp13s-lbkysp12s',\n", + " 'bkysp1sa: sbend, type = \"0.787k35.4\", l = lbkysp1s/2, angle = abkysp1s/2, hgap = gbkysp/2, fint = 0.5, fintx = 0,',\n", + " 'e2 = 0, e1 = 0, ref_tilt = pi/2',\n", + " 'bkysp1sb: sbend, type = \"0.787k35.4\", l = lbkysp1s/2, angle = abkysp1s/2, hgap = gbkysp/2, fint = 0, fintx = 0.5,',\n", + " 'e1 = 0, e2 = abkysp1s, ref_tilt = pi/2',\n", + " 'bkysp2sa: sbend, type = \"0.787k35.4\", l = lbkysp2s/2, angle = abkysp2s/2, hgap = gbkysp/2, fint = 0.5, fintx = 0,',\n", + " 'e2 = 0, e1 = -abkysp1s, ref_tilt = pi/2',\n", + " 'bkysp2sb: sbend, type = \"0.787k35.4\", l = lbkysp2s/2, angle = abkysp2s/2, hgap = gbkysp/2, fint = 0, fintx = 0.5,',\n", + " 'e1 = 0, e2 = abkysp12s, ref_tilt = pi/2',\n", + " 'bkysp3sa: sbend, type = \"0.787k35.4\", l = lbkysp3s/2, angle = abkysp3s/2, hgap = gbkysp/2, fint = 0.5, fintx = 0,',\n", + " 'e2 = 0, e1 = -abkysp12s, ref_tilt = pi/2',\n", + " 'bkysp3sb: sbend, type = \"0.787k35.4\", l = lbkysp3s/2, angle = abkysp3s/2, hgap = gbkysp/2, fint = 0, fintx = 0.5,',\n", + " 'e1 = 0, e2 = abkysps, ref_tilt = pi/2',\n", + " 'lbkysp0s = lbkysp',\n", + " 'lbkysp4s = lbkysp/cos(abkysps)',\n", + " 'bkysp0sa: sbend, type = \"@2,0.787k35.4\", l = lbkysp0s/2, angle = 0, hgap = gbkysp/2, fint = 0.5, fintx = 0, e2 = 0,',\n", + " 'e1 = 0, ref_tilt = pi/2',\n", + " 'bkysp0sb: sbend, type = \"@2,0.787k35.4\", l = lbkysp0s/2, angle = 0, hgap = gbkysp/2, fint = 0, fintx = 0.5, e1 = 0,',\n", + " 'e2 = 0, ref_tilt = pi/2',\n", + " 'bkysp4sa: sbend, type = \"@2,0.787k35.4\", l = lbkysp4s/2, angle = 0, hgap = gbkysp/2, fint = 0.5, fintx = 0, e2 = 0,',\n", + " 'e1 = -abkysps, ref_tilt = pi/2',\n", + " 'bkysp4sb: sbend, type = \"@2,0.787k35.4\", l = lbkysp4s/2, angle = 0, hgap = gbkysp/2, fint = 0, fintx = 0.5, e1 = 0,',\n", + " 'e2 = abkysps, ref_tilt = pi/2',\n", + " 'gbkysp5s = 0.035',\n", + " 'zbkysp5s = 1.0',\n", + " 'lbkysp5s = zbkysp5s/cos(abkysps)',\n", + " 'bkysp5sa: sbend, type = \"@2,1.378k35.4\", l = lbkysp5s/2, angle = 0, hgap = gbkysp5s/2, fint = 0.5, fintx = 0, e2 = 0,',\n", + " 'e1 = -abkysps, ref_tilt = pi/2',\n", + " 'bkysp5sb: sbend, type = \"@2,1.378k35.4\", l = lbkysp5s/2, angle = 0, hgap = gbkysp5s/2, fint = 0, fintx = 0.5, e1 = 0,',\n", + " 'e2 = abkysps, ref_tilt = pi/2',\n", + " 'gblxsp = gblsp ',\n", + " 'lblxsp = lblsp ',\n", + " 'ablxsph0 = -0.0055277237035',\n", + " 'ablxsph = ablxsph0 *setkikh',\n", + " 'ablxspha = asin(sin(ablxsph)/2)',\n", + " 'ablxsphb = ablxsph-ablxspha',\n", + " 'ablxsph_2 = ablxsph *ablxsph',\n", + " 'ablxsph_4 = ablxsph_2 *ablxsph_2',\n", + " 'ablxspha_2 = ablxspha *ablxspha',\n", + " 'ablxspha_4 = ablxspha_2*ablxspha_2',\n", + " 'lblxsph = lblxsp /(1-ablxsph_2/6 +ablxsph_4/120 )/cos(abkysph)',\n", + " 'lblxspha = lblxsp/2 /(1-ablxspha_2/6+ablxspha_4/120)/cos(abkysph)',\n", + " 'lblxsphb = lblxsph-lblxspha',\n", + " 'blxspha: sbend, type = \"0.625sd38.98\", l = lblxspha, angle = ablxspha, e1 = 0, e2 = 0, fint = 0.5, fintx = 0,',\n", + " 'hgap = gblxsp/2',\n", + " 'blxsphb: sbend, type = \"0.625sd38.98\", l = lblxsphb, angle = ablxsphb, e1 = 0, e2 = ablxsph, fint = 0, fintx = 0.5,',\n", + " 'hgap = gblxsp/2',\n", + " 'ablxsps0 = 0.011055447407',\n", + " 'ablxsps = ablxsps0 *setkiks',\n", + " 'ablxspsa = asin(sin(ablxsps)/2)',\n", + " 'ablxspsb = ablxsps-ablxspsa',\n", + " 'ablxsps_2 = ablxsps *ablxsps',\n", + " 'ablxsps_4 = ablxsps_2 *ablxsps_2',\n", + " 'ablxspsa_2 = ablxspsa *ablxspsa',\n", + " 'ablxspsa_4 = ablxspsa_2*ablxspsa_2',\n", + " 'lblxsps = lblxsp /(1-ablxsps_2/6 +ablxsps_4/120 )/cos(abkysps)',\n", + " 'lblxspsa = lblxsp/2 /(1-ablxspsa_2/6+ablxspsa_4/120)/cos(abkysps)',\n", + " 'lblxspsb = lblxsps-lblxspsa',\n", + " 'blxspsa: sbend, type = \"0.625sd38.98\", l = lblxspsa, angle = ablxspsa, e1 = 0, e2 = 0, fint = 0.5, fintx = 0,',\n", + " 'hgap = gblxsp/2',\n", + " 'blxspsb: sbend, type = \"0.625sd38.98\", l = lblxspsb, angle = ablxspsb, e1 = 0, e2 = ablxsps, fint = 0, fintx = 0.5,',\n", + " 'hgap = gblxsp/2',\n", + " 'fbsp = 0.4861',\n", + " 'abrsph = 0.650488048269e-2',\n", + " 'lbrsph = lbsp*abrsph/(2*sin(abrsph/2)) ',\n", + " 'tbrsph = 0.555232529864 ',\n", + " 'brsp1ha: sbend, type = \"1.0d38.37\", l = lbrsph/2, angle = abrsph/2, e1 = abrsph/2, e2 = 0, fint = fbsp, fintx = 0,',\n", + " 'hgap = gbsp/2, ref_tilt = tbrsph',\n", + " 'brsp1hb: sbend, type = \"1.0d38.37\", l = lbrsph/2, angle = abrsph/2, e1 = 0, e2 = abrsph/2, fint = 0, fintx = fbsp,',\n", + " 'hgap = gbsp/2, ref_tilt = tbrsph',\n", + " 'brsp2ha: sbend, type = \"1.0d38.37\", l = lbrsph/2, angle = -abrsph/2, e1 = -abrsph/2, e2 = 0, fint = fbsp, fintx = 0,',\n", + " 'hgap = gbsp/2, ref_tilt = tbrsph',\n", + " 'brsp2hb: sbend, type = \"1.0d38.37\", l = lbrsph/2, angle = -abrsph/2, e1 = 0, e2 = -abrsph/2, fint = 0, fintx = fbsp,',\n", + " 'hgap = gbsp/2, ref_tilt = tbrsph',\n", + " 'dabxsph = 0.155464098791e-8',\n", + " 'abxsph = (-ablxsph0+dabxsph) *setkikh',\n", + " 'abxsphh = abxsph/2',\n", + " 'abxsphh_2 = abxsphh *abxsphh',\n", + " 'abxsphh_4 = abxsphh_2 *abxsphh_2',\n", + " 'lbxsph = lbsp/(1-abxsphh_2/6 +abxsphh_4/120) ',\n", + " 'bxsp1ha: sbend, type = \"1.0d38.37\", l = lbxsph/2, angle = abxsph/2, e1 = abxsph/2, e2 = 0, fint = fbsp, fintx = 0,',\n", + " 'hgap = gbsp/2',\n", + " 'bxsp1hb: sbend, type = \"1.0d38.37\", l = lbxsph/2, angle = abxsph/2, e1 = 0, e2 = abxsph/2, fint = 0, fintx = fbsp,',\n", + " 'hgap = gbsp/2',\n", + " 'dabxsps = 0.310901777441e-8',\n", + " 'abxsps = ablxsps0+dabxsps',\n", + " 'lbxsps = lbsp*abxsps/(2*sin(abxsps/2)) ',\n", + " 'bxsp1sa: sbend, type = \"1.0d38.37\", l = lbxsps/2, angle = -abxsps/2, e1 = -abxsps/2, e2 = 0, fint = fbsp, fintx = 0,',\n", + " 'hgap = gbsp/2',\n", + " 'bxsp1sb: sbend, type = \"1.0d38.37\", l = lbxsps/2, angle = -abxsps/2, e1 = 0, e2 = -abxsps/2, fint = 0, fintx = fbsp,',\n", + " 'hgap = gbsp/2',\n", + " 'bxsp2sa: sbend, type = \"1.0d38.37\", l = lbxsps/2, angle = -abxsps/2, e1 = -abxsps/2, e2 = 0, fint = fbsp, fintx = 0,',\n", + " 'hgap = gbsp/2',\n", + " 'bxsp2sb: sbend, type = \"1.0d38.37\", l = lbxsps/2, angle = -abxsps/2, e1 = 0, e2 = -abxsps/2, fint = 0, fintx = fbsp,',\n", + " 'hgap = gbsp/2',\n", + " 'bxsp3sa: sbend, type = \"1.0d38.37\", l = lbxsps/2, angle = abxsps/2, e1 = abxsps/2, e2 = 0, fint = fbsp, fintx = 0,',\n", + " 'hgap = gbsp/2',\n", + " 'bxsp3sb: sbend, type = \"1.0d38.37\", l = lbxsps/2, angle = abxsps/2, e1 = 0, e2 = abxsps/2, fint = 0, fintx = fbsp,',\n", + " 'hgap = gbsp/2',\n", + " 'abyspd = 0.877684127155e-2',\n", + " 'lbyspd = lbsp*abyspd/(2*sin(abyspd/2)) ',\n", + " 'bysp1da: sbend, type = \"1.0d38.37\", l = lbyspd/2, angle = abyspd/2, e1 = abyspd/2, e2 = 0, fint = fbsp, fintx = 0,',\n", + " 'hgap = gbsp/2, ref_tilt = pi/2',\n", + " 'bysp1db: sbend, type = \"1.0d38.37\", l = lbyspd/2, angle = abyspd/2, e1 = 0, e2 = abyspd/2, fint = 0, fintx = fbsp,',\n", + " 'hgap = gbsp/2, ref_tilt = pi/2',\n", + " 'bysp2da: sbend, type = \"1.0d38.37\", l = lbyspd/2, angle = -abyspd/2, e1 = -abyspd/2, e2 = 0, fint = fbsp, fintx = 0,',\n", + " 'hgap = gbsp/2, ref_tilt = pi/2',\n", + " 'bysp2db: sbend, type = \"1.0d38.37\", l = lbyspd/2, angle = -abyspd/2, e1 = 0, e2 = -abyspd/2, fint = 0, fintx = fbsp,',\n", + " 'hgap = gbsp/2, ref_tilt = pi/2',\n", + " 'lbcsp = 0.6 ',\n", + " 'gbcsp = 0.0254 ',\n", + " 'fbcsp = 0.4725 ',\n", + " 'abcsp1h = 0.445436076072e-2',\n", + " 'abcsp2h = -0.370437221909e-2',\n", + " 'lbcsp1h = lbcsp*abcsp1h/(2*sin(abcsp1h/2)) ',\n", + " 'lbcsp2h = lbcsp*abcsp2h/(2*sin(abcsp2h/2)) ',\n", + " 'bysp1ha: sbend, type = \"1.0d22.625\", l = lbcsp1h/2, angle = abcsp1h/2, e1 = abcsp1h/2, e2 = 0, fint = fbcsp, fintx = 0,',\n", + " 'hgap = gbcsp/2, ref_tilt = pi/2',\n", + " 'bysp1hb: sbend, type = \"1.0d22.625\", l = lbcsp1h/2, angle = abcsp1h/2, e2 = abcsp1h/2, e1 = 0, fintx = fbcsp, fint = 0,',\n", + " 'hgap = gbcsp/2, ref_tilt = pi/2',\n", + " 'bysp2ha: sbend, type = \"1.0d22.625\", l = lbcsp2h/2, angle = abcsp2h/2, e1 = abcsp2h/2, e2 = 0, fint = fbcsp, fintx = 0,',\n", + " 'hgap = gbcsp/2, ref_tilt = pi/2',\n", + " 'bysp2hb: sbend, type = \"1.0d22.625\", l = lbcsp2h/2, angle = abcsp2h/2, e2 = abcsp2h/2, e1 = 0, fintx = fbcsp, fint = 0,',\n", + " 'hgap = gbcsp/2, ref_tilt = pi/2',\n", + " 'abcsp1s = 0.315465742092e-2',\n", + " 'abcsp2s = -0.240470325405e-2',\n", + " 'lbcsp1s = lbcsp*abcsp1s/(2*sin(abcsp1s/2)) ',\n", + " 'lbcsp2s = lbcsp*abcsp2s/(2*sin(abcsp2s/2)) ',\n", + " 'bysp1sa: sbend, type = \"1.0d22.625\", l = lbcsp1s/2, angle = abcsp1s/2, e1 = abcsp1s/2, e2 = 0, fint = fbcsp, fintx = 0,',\n", + " 'hgap = gbcsp/2, ref_tilt = pi/2',\n", + " 'bysp1sb: sbend, type = \"1.0d22.625\", l = lbcsp1s/2, angle = abcsp1s/2, e2 = abcsp1s/2, e1 = 0, fintx = fbcsp, fint = 0,',\n", + " 'hgap = gbcsp/2, ref_tilt = pi/2',\n", + " 'bysp2sa: sbend, type = \"1.0d22.625\", l = lbcsp2s/2, angle = abcsp2s/2, e1 = abcsp2s/2, e2 = 0, fint = fbcsp, fintx = 0,',\n", + " 'hgap = gbcsp/2, ref_tilt = pi/2',\n", + " 'bysp2sb: sbend, type = \"1.0d22.625\", l = lbcsp2s/2, angle = abcsp2s/2, e2 = abcsp2s/2, e1 = 0, fintx = fbcsp, fint = 0,',\n", + " 'hgap = gbcsp/2, ref_tilt = pi/2',\n", + " 'bkysp0h: pipe, l = 1.0, type =\"@2,0.787k35.4\", descrip = \"deferred sbend\"',\n", + " 'bkysp1h: sbend, type = \"0.787k35.4\", hgap = gbkysp/2, l = lbkysp1h, angle = abkysp1h, e1 = 0, fint = 0.5, e2 = abkysp1h,',\n", + " 'fintx = 0.5, ref_tilt = pi/2',\n", + " 'bkysp2h: sbend, type = \"0.787k35.4\", hgap = gbkysp/2, l = lbkysp2h, angle = abkysp2h, e1 = -abkysp1h, fint = 0.5,',\n", + " 'e2 = abkysp12h, fintx = 0.5, ref_tilt = pi/2',\n", + " 'bkysp3h: sbend, type = \"0.787k35.4\", hgap = gbkysp/2, l = lbkysp3h, angle = abkysp3h, e1 = -abkysp12h, fint = 0.5,',\n", + " 'e2 = abkysph, fintx = 0.5, ref_tilt = pi/2',\n", + " 'bkysp4h: pipe, l = 1.00000028125007, type =\"@2,0.787k35.4\", descrip = \"deferred sbend\"',\n", + " 'bkysp5h: pipe, l = 1.00000028125007, type =\"@2,1.378k35.4\", descrip = \"deferred sbend\"',\n", + " 'blxsph: sbend, type = \"0.625sd38.98\", hgap = gblxsp/2, l = lblxsph, angle = ablxsph, e1 = 0, fint = 0.5, e2 = ablxsph,',\n", + " 'fintx = 0.5',\n", + " 'bysp1h: sbend, type = \"1.0d22.625\", hgap = gbcsp/2, l = lbcsp1h, angle = abcsp1h, e1 = abcsp1h/2, fint = fbcsp,',\n", + " 'e2 = abcsp1h/2, fintx = fbcsp, ref_tilt = pi/2',\n", + " 'bysp2h: sbend, type = \"1.0d22.625\", hgap = gbcsp/2, l = lbcsp2h, angle = abcsp2h, e1 = abcsp2h/2, fint = fbcsp,',\n", + " 'e2 = abcsp2h/2, fintx = fbcsp, ref_tilt = pi/2',\n", + " 'brsp1h: sbend, type = \"1.0d38.37\", hgap = gbsp/2, l = lbrsph, angle = abrsph, e1 = abrsph/2, fint = fbsp, e2 = abrsph/2,',\n", + " 'fintx = fbsp, ref_tilt = tbrsph',\n", + " 'brsp2h: sbend, type = \"1.0d38.37\", hgap = gbsp/2, l = lbrsph, angle = -abrsph, e1 = -abrsph/2, fint = fbsp,',\n", + " 'e2 = -abrsph/2, fintx = fbsp, ref_tilt = tbrsph',\n", + " 'bxsp1h: sbend, type = \"1.0d38.37\", hgap = gbsp/2, l = lbxsph, angle = abxsph, e1 = abxsph/2, fint = fbsp, e2 = abxsph/2,',\n", + " 'fintx = fbsp',\n", + " 'bkysp0s: pipe, l = 1.0, type =\"@2,0.787k35.4\", descrip = \"deferred sbend\"',\n", + " 'bkysp1s: sbend, type = \"0.787k35.4\", hgap = gbkysp/2, l = lbkysp1s, angle = abkysp1s, e1 = 0, fint = 0.5, e2 = abkysp1s,',\n", + " 'fintx = 0.5, ref_tilt = pi/2',\n", + " 'bkysp2s: sbend, type = \"0.787k35.4\", hgap = gbkysp/2, l = lbkysp2s, angle = abkysp2s, e1 = -abkysp1s, fint = 0.5,',\n", + " 'e2 = abkysp12s, fintx = 0.5, ref_tilt = pi/2',\n", + " 'bkysp3s: sbend, type = \"0.787k35.4\", hgap = gbkysp/2, l = lbkysp3s, angle = abkysp3s, e1 = -abkysp12s, fint = 0.5,',\n", + " 'e2 = abkysps, fintx = 0.5, ref_tilt = pi/2',\n", + " 'bkysp4s: pipe, l = 1.00000028125007, type =\"@2,0.787k35.4\", descrip = \"deferred sbend\"',\n", + " 'bkysp5s: pipe, l = 1.00000028125007, type =\"@2,1.378k35.4\", descrip = \"deferred sbend\"',\n", + " 'blxsps: sbend, type = \"0.625sd38.98\", hgap = gblxsp/2, l = lblxsps, angle = ablxsps, e1 = 0, fint = 0.5, e2 = ablxsps,',\n", + " 'fintx = 0.5',\n", + " 'bysp1s: sbend, type = \"1.0d22.625\", hgap = gbcsp/2, l = lbcsp1s, angle = abcsp1s, e1 = abcsp1s/2, fint = fbcsp,',\n", + " 'e2 = abcsp1s/2, fintx = fbcsp, ref_tilt = pi/2',\n", + " 'bysp2s: sbend, type = \"1.0d22.625\", hgap = gbcsp/2, l = lbcsp2s, angle = abcsp2s, e1 = abcsp2s/2, fint = fbcsp,',\n", + " 'e2 = abcsp2s/2, fintx = fbcsp, ref_tilt = pi/2',\n", + " 'bxsp1s: sbend, type = \"1.0d38.37\", hgap = gbsp/2, l = lbxsps, angle = -abxsps, e1 = -abxsps/2, fint = fbsp,',\n", + " 'e2 = -abxsps/2, fintx = fbsp',\n", + " 'bxsp2s: sbend, type = \"1.0d38.37\", hgap = gbsp/2, l = lbxsps, angle = -abxsps, e1 = -abxsps/2, fint = fbsp,',\n", + " 'e2 = -abxsps/2, fintx = fbsp',\n", + " 'bxsp3s: sbend, type = \"1.0d38.37\", hgap = gbsp/2, l = lbxsps, angle = abxsps, e1 = abxsps/2, fint = fbsp, e2 = abxsps/2,',\n", + " 'fintx = fbsp',\n", + " 'bysp1d: sbend, type = \"1.0d38.37\", hgap = gbsp/2, l = lbyspd, angle = abyspd, e1 = abyspd/2, fint = fbsp, e2 = abyspd/2,',\n", + " 'fintx = fbsp, ref_tilt = pi/2',\n", + " 'bysp2d: sbend, type = \"1.0d38.37\", hgap = gbsp/2, l = lbyspd, angle = -abyspd, e1 = -abyspd/2, fint = fbsp,',\n", + " 'e2 = -abyspd/2, fintx = fbsp, ref_tilt = pi/2',\n", + " 'ldspcor1 = 0.3617',\n", + " 'ldspcor2 = 0.5263',\n", + " 'ldspbpm1 = 0.4471',\n", + " 'ldspbpm2 = 0.5342',\n", + " 'ldspbk = 0.3',\n", + " 'ldspbk0h = ldspbk',\n", + " 'ldspbk1h = ldspbk/cos(abkysp1h)',\n", + " 'ldspbk2h = ldspbk/cos(abkysp12h)',\n", + " 'ldspbk3h = ldspbk/cos(abkysph)',\n", + " 'ldspbk4h = ldspbk/cos(abkysph)',\n", + " 'ldspbk5h = 15.1 /cos(abkysph)',\n", + " 'ldspbk5ha = 2.267/cos(abkysph)',\n", + " 'ldspbk5hb = ldspbk5h-ldspbk5ha',\n", + " 'dspbk0h: drift, l = ldspbk0h',\n", + " 'dspbk1h: drift, l = ldspbk1h',\n", + " 'dspbk2h: drift, l = ldspbk2h',\n", + " 'dspbk3h: drift, l = ldspbk3h',\n", + " 'dspbk4h: drift, l = ldspbk4h',\n", + " 'dspbk5ha: drift, l = ldspbk5ha',\n", + " 'dspbk5hb: drift, l = ldspbk5hb',\n", + " 'dldsp2h = 0.0',\n", + " 'ldsp2h = 43.284 +dldsp2h',\n", + " 'ldsp2hb = 10.0',\n", + " 'ldsp2hc = 0.5285',\n", + " 'ldsp2ha = ldsp2h-ldsp2hb-ldsp2hc-lbcsp1h-lbcsp2h',\n", + " 'dldsp3h = 0.0',\n", + " 'ldsp3h = 4.6611 +dldsp3h',\n", + " 'ldsp3ha = 0.701153024135 ',\n", + " 'ldsp3haa = 0.1443452812 ',\n", + " 'ldsp3hab = ldsp3ha-ldsp3haa-lsb',\n", + " 'ldsp3hb = 0.636709727546 ',\n", + " 'ldsp3hd = 0.1924',\n", + " 'ldsp3hc = ldsp3h-ldsp3ha-ldsp3hb-ldsp3hd',\n", + " 'dldsp4h = 0.012085492416',\n", + " 'ldsp4h = 9.5126 -dldsp2h-dldsp3h+dldsp4h',\n", + " 'ldsp4ha = 0.4',\n", + " 'ldsp4hc = 0.3459992',\n", + " 'ldsp4hb = ldsp4h-ldsp4ha-ldsp4hc',\n", + " 'dldsp5h = 0.0 ',\n", + " 'ldsp5h = 14.474 +(lqn-lqa)/2 +dldsp5h',\n", + " 'ldsp5ha = 1.261892512166 ',\n", + " 'ldsp5hc = 0.799538487834 ',\n", + " 'ldsp5hcb = 0.234535460174 ',\n", + " 'ldsp5hca = ldsp5hc-ldsp5hcb-lsb',\n", + " 'ldsp5hb = ldsp5h-ldsp5ha-ldsp5hc',\n", + " 'dldsp6h = 0.0 ',\n", + " 'ldsp6h = 8.6805 +(lqn-lqa)/2 -dldsp5h+dldsp6h',\n", + " 'ldsp6ha = ldspbpm2 +(lqn-lqa)/2',\n", + " 'ldsp6hc = ldspcor1',\n", + " 'ldsp6hb = ldsp6h-ldsp6ha-ldsp6hc',\n", + " 'dldsp7h = 0.0 ',\n", + " 'ldsp7h = 21.795894248291 -dldsp6h+dldsp7h',\n", + " 'ldsp7ha = ldspbpm1',\n", + " 'ldsp7hc = ldspcor1',\n", + " 'ldsp7hb = ldsp7h-ldsp7ha-ldsp7hc',\n", + " 'ldsp8h = 23.795894248291 -dldsp7h',\n", + " 'ldsp8ha = ldspbpm1',\n", + " 'ldsp8hc = ldspcor1',\n", + " 'ldsp8hb = ldsp8h-ldsp8ha-ldsp8hc',\n", + " 'dldsp9h = 0.0 ',\n", + " 'ldsp9h = 188.409365489746/2-3*lqr-lqa-lqe/2-ldsp5h-ldsp6h-ldsp7h-ldsp8h +dldsp9h',\n", + " 'ldsp9ha = ldspbpm1',\n", + " 'ldsp9hb = 0.5',\n", + " 'ldsp9hc = 5.7942',\n", + " 'ldsp9hd = 10.6452',\n", + " 'ldsp9he = 1.616',\n", + " 'ldsp9hg = 0.1924',\n", + " 'ldsp9hf = ldsp9h-ldsp9ha-ldsp9hb-ldsp9hc-ldsp9hd-ldsp9he-ldsp9hg',\n", + " 'ldsp10h = ldsp9h',\n", + " 'ldsp10ha = 0.4',\n", + " 'ldsp10hb = 17.6279586',\n", + " 'ldsp10hd = ldspcor1',\n", + " 'ldsp10hc = ldsp10h-ldsp10ha-ldsp10hb-ldsp10hd',\n", + " 'ldsp11h = ldsp8h',\n", + " 'ldsp11ha = ldspbpm1',\n", + " 'ldsp11hc = 0.4781',\n", + " 'ldsp11hb = ldsp11h-ldsp11ha-ldsp11hc',\n", + " 'ldsp12h = ldsp7h',\n", + " 'ldsp12ha = 0.4475',\n", + " 'ldsp12hb = 0.644',\n", + " 'ldsp12hd = 0.759',\n", + " 'ldsp12he = 0.3315',\n", + " 'ldsp12hc = ldsp12h-ldsp12ha-ldsp12hb-ldsp12hd-ldsp12he',\n", + " 'ldsp13h = ldsp6h',\n", + " 'ldsp13hb = 0.778',\n", + " 'ldsp13hc = 0.749 +(lqn-lqa)/2',\n", + " 'ldsp13ha = ldsp13h-ldsp13hb-ldsp13hc',\n", + " 'ldsp14h = ldsp5h',\n", + " 'ldsp14ha = 13.863119 +(lqn-lqa)/2',\n", + " 'ldsp14hb = ldsp14h-ldsp14ha',\n", + " 'ldsp15h = ldsp4h',\n", + " 'ldsp15ha = 0.5',\n", + " 'ldsp15hb = 0.5',\n", + " 'ldsp15hd = 0.1924',\n", + " 'ldsp15hc = ldsp15h-ldsp15ha-ldsp15hb-ldsp15hd',\n", + " 'ldsp16h = ldsp3h',\n", + " 'ldsp16ha = 0.4',\n", + " 'ldsp16hc = ldspcor1',\n", + " 'ldsp16hb = ldsp16h-ldsp16ha-ldsp16hc',\n", + " 'dldsp17h = -0.801500183647e-4',\n", + " 'ldsp17h = ldsp2h +dldsp17h +lblxsph/2-lbxsph/2',\n", + " 'ldsp17ha = ldspbpm1',\n", + " 'ldsp17hb = ldsp17h-ldsp17ha',\n", + " 'dsp2ha: drift, l = ldsp2ha',\n", + " 'dsp2hb: drift, l = ldsp2hb',\n", + " 'dsp2hc: drift, l = ldsp2hc',\n", + " 'dsp3ha: drift, l = ldsp3ha',\n", + " 'dsp3haa: drift, l = ldsp3haa',\n", + " 'dsp3hab: drift, l = ldsp3hab',\n", + " 'dsp3hb: drift, l = ldsp3hb',\n", + " 'dsp3hc: drift, l = ldsp3hc',\n", + " 'dsp3hd: drift, l = ldsp3hd',\n", + " 'dsp4ha: drift, l = ldsp4ha',\n", + " 'dsp4hb: drift, l = ldsp4hb',\n", + " 'dsp4hc: drift, l = ldsp4hc',\n", + " 'dsp5h: drift, l = ldsp5h',\n", + " 'dsp5ha: drift, l = ldsp5ha',\n", + " 'dsp5hb: drift, l = ldsp5hb',\n", + " 'dsp5hc: drift, l = ldsp5hc',\n", + " 'dsp5hca: drift, l = ldsp5hca',\n", + " 'dsp5hcb: drift, l = ldsp5hcb',\n", + " 'dsp6ha: drift, l = ldsp6ha',\n", + " 'dsp6hb: drift, l = ldsp6hb',\n", + " 'dsp6hc: drift, l = ldsp6hc',\n", + " 'dsp7ha: drift, l = ldsp7ha',\n", + " 'dsp7hb: drift, l = ldsp7hb',\n", + " 'dsp7hc: drift, l = ldsp7hc',\n", + " 'dsp8ha: drift, l = ldsp8ha',\n", + " 'dsp8hb: drift, l = ldsp8hb',\n", + " 'dsp8hc: drift, l = ldsp8hc',\n", + " 'dsp9ha: drift, l = ldsp9ha',\n", + " 'dsp9hb: drift, l = ldsp9hb',\n", + " 'dsp9hc: drift, l = ldsp9hc',\n", + " 'dsp9hd: drift, l = ldsp9hd',\n", + " 'dsp9he: drift, l = ldsp9he',\n", + " 'dsp9hf: drift, l = ldsp9hf',\n", + " 'dsp9hg: drift, l = ldsp9hg',\n", + " 'dsp10ha: drift, l = ldsp10ha',\n", + " 'dsp10hb: drift, l = ldsp10hb',\n", + " 'dsp10hc: drift, l = ldsp10hc',\n", + " 'dsp10hd: drift, l = ldsp10hd',\n", + " 'dsp11ha: drift, l = ldsp11ha',\n", + " 'dsp11hb: drift, l = ldsp11hb',\n", + " 'dsp11hc: drift, l = ldsp11hc',\n", + " 'dsp12ha: drift, l = ldsp12ha',\n", + " 'dsp12hb: drift, l = ldsp12hb',\n", + " 'dsp12hc: drift, l = ldsp12hc',\n", + " 'dsp12hc1: drift, l = 9.035399208502',\n", + " 'dsp12hc2: drift, l = 0.30541',\n", + " 'dsp12hc3: drift, l = dsp12hc[l]-dsp12hc1[l]-dsp12hc2[l]',\n", + " 'dsp12hd: drift, l = ldsp12hd',\n", + " 'dsp12he: drift, l = ldsp12he',\n", + " 'dsp13ha: drift, l = ldsp13ha',\n", + " 'dsp13hb: drift, l = ldsp13hb',\n", + " 'dsp13hc: drift, l = ldsp13hc',\n", + " 'dsp14ha: drift, l = ldsp14ha',\n", + " 'dsp14hb: drift, l = ldsp14hb',\n", + " 'dsp15h: drift, l = ldsp15h',\n", + " 'dsp15ha: drift, l = ldsp15ha',\n", + " 'dsp15hb: drift, l = ldsp15hb',\n", + " 'dsp15hc: drift, l = ldsp15hc',\n", + " 'dsp15hd: drift, l = ldsp15hd',\n", + " 'dsp16ha: drift, l = ldsp16ha',\n", + " 'dsp16hb: drift, l = ldsp16hb',\n", + " 'dsp16hc: drift, l = ldsp16hc',\n", + " 'dsp17ha: drift, l = ldsp17ha',\n", + " 'dsp17hb: drift, l = ldsp17hb',\n", + " 'ldspq1 = 45.126',\n", + " 'ldspq1a = 23.0',\n", + " 'ldspq1c = ldspcor1',\n", + " 'ldspq1b = ldspq1-ldspq1a-ldspq1c',\n", + " 'dldspq2 = 0.0',\n", + " 'ldspq2 = 1.8 +dldspq2',\n", + " 'ldspq2a = 0.5913',\n", + " 'ldspq2c = 0.4781',\n", + " 'ldspq2b = ldspq2-ldspq2a-ldspq2c',\n", + " 'ldspq3 = 16.124 -dldspq2',\n", + " 'ldspq3a = 0.4285',\n", + " 'ldspq3b = ldspq3-ldspq3a',\n", + " 'dspq1a: drift, l = ldspq1a',\n", + " 'dspq1b: drift, l = ldspq1b',\n", + " 'dspq1c: drift, l = ldspq1c',\n", + " 'dspq2a: drift, l = ldspq2a',\n", + " 'dspq2b: drift, l = ldspq2b',\n", + " 'dspq2c: drift, l = ldspq2c',\n", + " 'dspq3a: drift, l = ldspq3a',\n", + " 'dspq3b: drift, l = ldspq3b',\n", + " 'ldspbk0s = ldspbk',\n", + " 'ldspbk1s = ldspbk/cos(abkysp1s)',\n", + " 'ldspbk2s = ldspbk/cos(abkysp12s)',\n", + " 'ldspbk3s = ldspbk/cos(abkysps)',\n", + " 'ldspbk4s = ldspbk/cos(abkysps)',\n", + " 'ldspbk5s = 15.1 /cos(abkysps)',\n", + " 'ldspbk5sa = 2.267/cos(abkysps)',\n", + " 'ldspbk5sb = ldspbk5s-ldspbk5sa',\n", + " 'dspbk0s: drift, l = ldspbk0s',\n", + " 'dspbk1s: drift, l = ldspbk1s',\n", + " 'dspbk2s: drift, l = ldspbk2s',\n", + " 'dspbk3s: drift, l = ldspbk3s',\n", + " 'dspbk4s: drift, l = ldspbk4s',\n", + " 'dspbk5sa: drift, l = ldspbk5sa',\n", + " 'dspbk5sb: drift, l = ldspbk5sb',\n", + " 'dldsp2s = 0.0',\n", + " 'dldsp2sa = -0.781886051378e-6',\n", + " 'ldsp2s = 32.6265 +(lqn-lqa)/2 +dldsp2s +dldsp2sa',\n", + " 'ldsp2sb = 11.8',\n", + " 'ldsp2sc = 0.6676 +(lqn-lqa)/2',\n", + " 'ldsp2sa = ldsp2s-ldsp2sb-ldsp2sc-lbcsp1s-lbcsp2s',\n", + " 'dldsp3s = 0.0',\n", + " 'ldsp3s = 1.828 +(lqn-lqa) +dldsp3s',\n", + " 'ldsp3sa = 0.7912067845 ',\n", + " 'ldsp3saa = 0.234475817809 ',\n", + " 'ldsp3sab = ldsp3sa-ldsp3saa-lsb',\n", + " 'ldsp3sb = 0.600136674875 ',\n", + " 'ldsp3sc = ldsp3s-ldsp3sa-ldsp3sb',\n", + " 'ldsp4s = 8.689 +(lqn-lqa)/2 -dldsp2s -dldsp3s',\n", + " 'ldsp4sa = ldspbpm2 +(lqn-lqa)/2',\n", + " 'ldsp4sb = 0.6445',\n", + " 'ldsp4sd = 0.3442954',\n", + " 'ldsp4sc = ldsp4s-ldsp4sa-ldsp4sb-ldsp4sd',\n", + " 'dldsp5s = 0.0',\n", + " 'ldsp5s = 6.512 +(lqn-lqa)/2 +dldsp5s',\n", + " 'ldsp5sb = ldspcor2 +(lqn-lqa)/2',\n", + " 'ldsp5sa = ldsp5s-ldsp5sb',\n", + " 'dldsp6s = 0.0',\n", + " 'ldsp6s = 2.5925 +(lqn-lqa)/2 +dldsp6s',\n", + " 'ldsp6sa = ldspbpm2 +(lqn-lqa)/2',\n", + " 'ldsp6sc = ldspcor1+10*in2m ',\n", + " 'ldsp6sb = ldsp6s-ldsp6sa-ldsp6sc',\n", + " 'ldsp7s = 56.746/2-lqa-1.5*lqr-ldsp5s-ldsp6s',\n", + " 'ldsp7sa = ldspbpm1',\n", + " 'ldsp7sb = 1.2814',\n", + " 'ldsp7sd = ldspcor1',\n", + " 'ldsp7sc = ldsp7s-ldsp7sa-ldsp7sb-ldsp7sd',\n", + " 'ldsp8s = ldsp7s',\n", + " 'ldsp8sa = ldspbpm1',\n", + " 'ldsp8sb = 1.9614',\n", + " 'ldsp8sc = 7.810257',\n", + " 'ldsp8se = ldspcor1',\n", + " 'ldsp8sd = ldsp8s-ldsp8sa-ldsp8sb-ldsp8sc-ldsp8se',\n", + " 'ldsp9s = ldsp6s',\n", + " 'ldsp9sa = ldspbpm1',\n", + " 'ldsp9sc = ldspcor2 +(lqn-lqa)/2',\n", + " 'ldsp9sb = ldsp9s-ldsp9sa-ldsp9sc',\n", + " 'ldsp10s = ldsp5s',\n", + " 'ldsp10sa = ldspbpm2 +(lqn-lqa)/2',\n", + " 'ldsp10sb = ldsp10s-ldsp10sa',\n", + " 'ldsp11s = ldsp4s',\n", + " 'ldsp11sa = 0.5',\n", + " 'ldsp11sb = 0.5',\n", + " 'ldsp11sc = 0.5',\n", + " 'ldsp11se = ldspcor2 +(lqn-lqa)/2',\n", + " 'ldsp11sd = ldsp11s-ldsp11sa-ldsp11sb-ldsp11sc-ldsp11se',\n", + " 'ldsp12s = ldsp3s',\n", + " 'ldsp12sa = ldspbpm2 +(lqn-lqa)/2',\n", + " 'ldsp12sc = 0.73889094850 ',\n", + " 'ldsp12sca = 0.404427770474 ',\n", + " 'ldsp12scb = ldsp12sc-ldsp12sca-lsb',\n", + " 'ldsp12sb = ldsp12s-ldsp12sa-ldsp12sc',\n", + " 'dldsp13s = -0.406195675138e-4',\n", + " 'ldsp13s = ldsp2s +dldsp13s +lblxsps/2-lbxsps/2',\n", + " 'ldsp13sa = ldspbpm2 +(lqn-lqa)/2',\n", + " 'ldsp13sb = ldsp13s-ldsp13sa',\n", + " 'dsp2sa: drift, l = ldsp2sa',\n", + " 'dsp2sb: drift, l = ldsp2sb',\n", + " 'dsp2sc: drift, l = ldsp2sc',\n", + " 'dsp3sa: drift, l = ldsp3sa',\n", + " 'dsp3saa: drift, l = ldsp3saa',\n", + " 'dsp3sab: drift, l = ldsp3sab',\n", + " 'dsp3sb: drift, l = ldsp3sb',\n", + " 'dsp3sc: drift, l = ldsp3sc',\n", + " 'dsp4sa: drift, l = ldsp4sa',\n", + " 'dsp4sb: drift, l = ldsp4sb',\n", + " 'dsp4sc: drift, l = ldsp4sc',\n", + " 'dsp4sd: drift, l = ldsp4sd',\n", + " 'dsp5sa: drift, l = ldsp5sa',\n", + " 'dsp5sb: drift, l = ldsp5sb',\n", + " 'dsp6sa: drift, l = ldsp6sa',\n", + " 'dsp6sb: drift, l = ldsp6sb',\n", + " 'dsp6sc: drift, l = ldsp6sc',\n", + " 'dsp7sa: drift, l = ldsp7sa',\n", + " 'dsp7sb: drift, l = ldsp7sb',\n", + " 'dsp7sc: drift, l = ldsp7sc',\n", + " 'dsp7sd: drift, l = ldsp7sd',\n", + " 'dsp8sa: drift, l = ldsp8sa',\n", + " 'dsp8sb: drift, l = ldsp8sb',\n", + " 'dsp8sc: drift, l = ldsp8sc',\n", + " 'dsp8sd: drift, l = ldsp8sd',\n", + " 'dsp8se: drift, l = ldsp8se',\n", + " 'dsp9sa: drift, l = ldsp9sa',\n", + " 'dsp9sb: drift, l = ldsp9sb',\n", + " 'dsp9sc: drift, l = ldsp9sc',\n", + " 'dsp10sa: drift, l = ldsp10sa',\n", + " 'dsp10sb: drift, l = ldsp10sb',\n", + " 'dsp11sa: drift, l = ldsp11sa',\n", + " 'dsp11sb: drift, l = ldsp11sb',\n", + " 'dsp11sc: drift, l = ldsp11sc',\n", + " 'dsp11sd: drift, l = ldsp11sd',\n", + " 'dsp11se: drift, l = ldsp11se',\n", + " 'dsp12sa: drift, l = ldsp12sa',\n", + " 'dsp12sb: drift, l = ldsp12sb',\n", + " 'dsp12sc: drift, l = ldsp12sc',\n", + " 'dsp12sca: drift, l = ldsp12sca',\n", + " 'dsp12scb: drift, l = ldsp12scb',\n", + " 'dsp13sa: drift, l = ldsp13sa',\n", + " 'dsp13sb: drift, l = ldsp13sb',\n", + " 'dsp13sb1: drift, l = 9.337992506693',\n", + " 'dsp13sb2: drift, l = 0.30541',\n", + " 'dsp13sb3: drift, l = dsp13sb[l]-dsp13sb1[l]-dsp13sb2[l]',\n", + " 'ldsp2da2 = 2.0',\n", + " 'ldsp2da1 = 23.0-4.457-ldsp2da2 ',\n", + " 'ldsp2db = 1.657',\n", + " 'ldsp2dc1 = 27.25 +3.685 ',\n", + " 'ldsp2dd = ldspcor1+18*in2m ',\n", + " 'dldsp3d = 0.0',\n", + " 'ldsp3d = 3.317 +dldsp3d',\n", + " 'ldsp3da = ldspbpm1',\n", + " 'ldsp3db = 0.6234',\n", + " 'ldsp3dd = 0.4781+0.3048 ',\n", + " 'ldsp3dc = ldsp3d-ldsp3da-ldsp3db-ldsp3dd',\n", + " 'ldsp4d = 4.5085 -dldsp3d',\n", + " 'ldsp4da = 0.4285',\n", + " 'ldsp4db = ldsp4d-ldsp4da',\n", + " 'ldsp2dc2 = 76.149-ldsp2da1-ldsp2da2-ldsp2db-ldsp2dc1-ldsp2dd-ldsp3d-ldsp4d',\n", + " 'ldsp5d = 73.0 ',\n", + " 'ldsp5da = 6.2732486',\n", + " 'ldsp5db = 45.575+1.0-ldsp5da-lbyspd/2',\n", + " 'ldsp5dd = 0.2298134+0.609623481 ',\n", + " 'ldsp5dc = ldsp5d-ldsp5da-ldsp5db-ldsp5dd',\n", + " 'dldsp6d = 0.0 ',\n", + " 'ldsp6d = 143.648999999997-0.4 +18.115253 -0.761425 +dldsp6d',\n", + " 'ldsp6da = 0.5',\n", + " 'ldsp6db = 0.5',\n", + " 'ldsp6dc = 1.0',\n", + " 'ldsp6dd = 0.3048',\n", + " 'ldsp6de = 1.1952',\n", + " 'ldsp6dg = 0.5',\n", + " 'ldsp6dh = 0.5',\n", + " 'ldsp6di = 0.5',\n", + " 'ldsp6dj = 37.0 +18.0 -0.761425',\n", + " 'ldsp6df = ldsp6d-ldsp6da-ldsp6db-ldsp6dc-ldsp6dd-ldsp6de-ldsp6dg-ldsp6dh -ldsp6di-ldsp6dj',\n", + " 'ldsp6dfa = 4.287828',\n", + " 'ldsp6dfc = 0.5',\n", + " 'ldsp6dfd = 1.0',\n", + " 'ldsp6dfb = ldsp6df-ldsp6dfa-ldsp6dfc-ldsp6dfd',\n", + " 'ldsp7d = 20.0818610101+0.4+0.803391932471 -18.115253 +0.761425',\n", + " 'ldsp7db = 1.5',\n", + " 'ldsp7da = ldsp7d-ldsp7db',\n", + " 'ldsp7daa = 0.5-3.0*in2m',\n", + " 'ldsp7dab = ldsp7da-ldsp7daa',\n", + " 'dsp2da1: drift, l = ldsp2da1',\n", + " 'dsp2da2: drift, l = ldsp2da2',\n", + " 'dsp2db: drift, l = ldsp2db',\n", + " ...]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lines = read_clean_lattice_file(resolved_lattice_file_path)\n", + "lines" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "cheetah-dev", + "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.9.16" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +}