%% elsa.tex
%% Copyright 2015 J. Schmidt
%% tikz-palattice LaTeX package
% 
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
% 
% This work has the LPPL maintenance status `maintained'.
% 
% The Current Maintainer of this work is J. Schmidt.
% 
% This work consists of the files tikz-palattice.sty and tikz-palattice_documentation.tex
% and the 5 example files example1_linear.tex, example2_circular.tex,
% example3_coordinates.tex, example4_labels.tex and elsa.tex


\documentclass[tikz]{standalone}
%\usepackage[ngerman]{babel}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{iflang}
\usepackage{tikz-palattice}

\sisetup{range-units=single, range-phrase=\,-\,, detect-weight=true, detect-family=true}
\addto\extrasngerman{\sisetup{locale = DE}}
\addto\extrasenglish{\sisetup{locale = US}}

\def\scale{0.5}

\tikzset{biggestlabel/.style={font=\bfseries\Huge,scale=2.5, align=center}}
\tikzset{biglabel/.style={font=\bfseries\Huge,scale=2, align=center}}
\tikzset{mediumlabel/.style={font=\huge,scale=2, align=center}}
\tikzset{smalllabel/.style={font=\Large,scale=2.2, align=center}}



% ---------------------------------------------------------------------
% The lattice data given in this file is designated for drawing a map
% and should not be used for any calculations or simulation!
% ---------------------------------------------------------------------

\begin{document}
\begin{lattice}[\scale]
\def\quadl{0.2}
\setelementcolor{dipole}{blue!55!cyan!90}[blue!55!cyan!90]
\setelementcolor{solenoid}{cyan}
\setlinecolor{drift}{red!70!black}
\def\photonbeam{black}
% "switch labels off":
%\setlabelcolor{white}

\drawrule{(58,-7)}[5][3][0.3]
\setangle{180}
\start{(0,0)}

%-----------------------------------
%LINAC2
%-----------------------------------
\turnlabels
\source{}{1}
\savecoordinate{PolQ}[center]
\drift{2.5}
\drift{0.5} % wand
\source{}{0.2}
\drift{0.8}
\savecoordinate{L2label}
\cavity{}{3.85}
\drift{0.35}
\quadrupole{Q1}{\quadl}
\drift{0.5}
\quadrupole{Q2}{\quadl}
\drift{0.35}
\quadrupole{Q3}{\quadl}
\drift{0.3}
\dipole{M90}{0.5}{-90}
\drift{0.3}
\quadrupole{Q4}{\quadl}
\drift{0.75}
\quadrupole{Q5}{\quadl}
\drift{1.9}
\quadrupole{Q6}{\quadl}
\drift{3.55}
\quadrupole{Q7}{\quadl}
\drift{2.1}
\corrector{KD}{\quadl}
\drift{2.1}
\dipole{}{0.4}{0}[r][0.3] % M3
\savecoordinate{M3}[center]
\drift{0.4}
\quadrupole{Q8}{\quadl}
\drift{3}
\savecoordinate{BoosterInj}

%title
\node[mediumlabel, anchor=north, yshift=-1cm] at (L2label)
{LINAC 2\\{\Large \SI{26}{\MeV}}};
\node[smalllabel, anchor=west, xshift=4mm] at (PolQ)
{\IfLanguageName{ngerman}{Quelle}{Source of} pol.
  $e^-$};


%-----------------------------------
%LINAC1
%lattice backwards to set start at M3
%-----------------------------------
\goto{M3}
\setangle{-180}
\drift{0.44}
\quadrupole{Q7}{\quadl}
\drift{0.2}
\quadrupole{Q6}{\quadl}
\drift{0.35}
\dipole{M2}{0.3}{45}
\drift{1.1}
\dipole{M1}{0.3}{45}
\savecoordinate{M1}[center]
\turnlabels
\drift{0.58}
\quadrupole{Q5}{\quadl}
\drift{0.36}
\quadrupole{Q4}{\quadl}
\drift{0.58}
\quadrupole{Q3}{\quadl}
\drift{0.38}
\cavity{}{0.67}[0.3] %EKS
\drift{0.1}
\dipole{EKS}{0.2}{0}
\rotate{60}
\drift{0.15}
\rotate{-60}
\dipole{}{0.2}{0}
\rotate{-60}
\drift{0.15}
\rotate{60}
\dipole{}{0.2}{0}
\drift{0.07}
\quadrupole{Q2}{\quadl}
\drift{0.13}
\quadrupole{Q1}{\quadl}
\drift{0.16}
\savecoordinate{L1label}
\cavity{}{2.73}
\drift{0.35}
\dipole{}{0.35}{0}
\drift{0.17}
\drift{1.3}
\rotate{180}
\source{}{0.5}

%title
\node[mediumlabel, xshift=-1cm, anchor=east] at (L1label)
{LINAC 1\\{\Large \SI{20}{\MeV}}};


%-----------------------------
%LINAC1-Bestrahlungsplatz
%-----------------------------
\goto{M1}
\setangle{90}
\turnlabels
\drift{0.25}
\drift{0.37}
\quadrupole{QT1}{\quadl}
\drift{0.2}
\quadrupole{QT2}{\quadl}
\drift{0.45}
\turnlabels
\savecoordinate{bestrahlung}
\beamdump{}{0.5}
%title
\node[smalllabel, yshift=5mm, anchor=east, text width=3cm] at (bestrahlung)
{\IfLanguageName{ngerman}{Bestrahlungs\-platz}{irradiation area}};


%-----------------------------
%Booster
%-----------------------------
\begin{scope}
\setelementcolor{dipole}{green!55!black}[green!55!black]
\goto{BoosterInj}
%\marker{Start}[0.5]
\setlabeldistance{0.5}
\kicker{INJSEPT}{0.88}
\savecoordinate{links}
\drift{0.44725}
\dipole{M1}{4.0056}{-30}[s][0.6]
\drift{1.7945}
\dipole{M2}{4.0056}{-30}[s][0.6]
\drift{0.35975}
\kicker{B1}{0.3875}
\drift{0.3}
\kicker{K1}{0.3875}
\drift{0.35975}
\dipole{M3}{4.0056}{-30}[s][0.6]
\drift{0.35975}
\kicker{B2}{0.3875}
\drift{0.3}
\kicker{S1}{0.3875}
\drift{0.35975}
\dipole{M4}{4.0056}{-30}[s][0.6]
\drift{0.4295}
\corrector{VC1}{0.13}
\drift{0.245}
\kicker{S2}{0.63}
\drift{0.36}
\dipole{M5}{4.0056}{-30}[s][0.6]
\drift{0.34225}
\kicker{S3}{1.08}
\savecoordinate{Booster_extract}[center]
\drift{0.37225}
\dipole{M6}{4.0056}{-30}[s][0.6]
\drift{0.38725}
\corrector{VC2}{0.13}
\drift{0.315}
\kicker{B3}{0.6}
\savecoordinate{rechts}
\drift{0.36225}
\dipole{M7}{4.0056}{-30}[s][0.6]
\drift{0.49225}
\corrector{VC3}{0.13}
\drift{0.295}
\kicker{K2}{0.45}
\drift{0.42725}
\dipole{M8}{4.0056}{-30}[s][0.6]
\drift{0.86225}
\kicker{K3}{0.45}
\drift{0.48225}
\dipole{M9}{4.0056}{-30}[s][0.6]
\drift{0.44725}
\cavity{DORIS}{0.9}
\drift{0.44725}
\dipole{M10}{4.0056}{-30}[s][0.6]
\drift{1.7945}
\dipole{M11}{4.0056}{-30}[s][0.6]
\drift{1.7945}
\dipole{M12}{4.0056}{-30}[s][0.6]
\drift{0.46725}
\end{scope}

%title
\path (links) -- (rechts) node[midway,biggestlabel, text width=6cm] {Booster-
  Synchrotron\\{\SIrange{0.5}{1.2}{\GeV}}}; %\\{\it\SI{120}{\GeV\per\s}}



%-----------------------------
% Transferkanal Booster->ELSA
%-----------------------------
\goto{Booster_extract}
\setangle{-47}
\drift{2}
\turnlabels
\corrector{KV1}{0.25}
\drift{0.16}
\quadrupole{QA}{0.48}
\drift{0.16}
\corrector{KV2}{0.25}
\turnlabels
\drift{1.4}
\corrector{KV3}{0.25}
\drift{0.16}
\quadrupole{QB}{0.48}
\drift{3.67}
\quadrupole{QC}{0.48}
\drift{0.16}
\corrector{}{0.25}
\drift{1.9}
\savecoordinate{ELSA_inject}



%-----------------------------
% Stretcherring
%-----------------------------
\goto{ELSA_inject}
\setangle{-55}
\setlabeldistance{0.5}
\turnlabels

% "end" put at beginning to start at injection
\quadrupole{QD31}{0.4997}
\drift{0.30115}
\dipole{M31}{2.875}{15}
\drift{0.307}
\corrector{KV31}{0.1}
\drift{1.05465}
\quadrupole{QF32}{0.4997}
\drift{0.13665}
\sextupole{SX32}{0.287}
\drift{0.2069}
\quadrupole{LQ32}{0.45}[0.2]
\drift{0.5031}
\corrector{KV32}{0.1}
\drift{0.41025}
\quadrupole{SQ32}{0.45}
\drift{1.382}
\quadrupole{TJQ32}{0.5515}[0.2]
\drift{0.12625}

% usual start
%\marker{start}[0.5]
\drift{0.03415}
\quadrupole{QD1}{0.4997}
\drift{0.19515}
\corrector{KV01}{0.1}
\drift{1.79875}
\quadrupole{SQ1}{0.45}[0.2]
\drift{1.01375}
\quadrupole{LQ1}{0.45}[0.2]
\drift{0.2065}
\sextupole{SX1}{0.287}
\drift{0.13665}
\quadrupole{QF2}{0.4997}
\drift{1.05365}
\corrector{KV02}{0.1}
\drift{0.3077}
\dipole{M2}{2.875}{15}
\drift{0.30145}
\quadrupole{QD3}{0.4997}
\drift{0.13665}
\sextupole{SD3}{0.287}
\drift{0.4305}
\corrector{KV03}{0.1}
\drift{1.84183}
\drift{1.84183}

\rotatelabels{60}[west]
\quadrupole{QF4}{0.4997}
\drift{0.13665}
\sextupole{SF4}{0.287}
\drift{0.214}
\corrector{KV04}{0.1}
\drift{0.7237}
\rotatelabels{0}

\dipole{M4}{2.875}{15}
\drift{0.30145}

\rotatelabels{77}[west]
\quadrupole{QD5}{0.4997}
\drift{0.09715}
\corrector{KV05}{0.1}
\rotatelabels{0}

\drift{1.2642}
\dipole{M5}{2.875}{15}
\drift{0.30145}
\quadrupole{QF6}{0.4997}
\drift{0.94465}
\corrector{KV06}{0.1}
\drift{0.4167}
\dipole{M6}{2.875}{15}
\drift{0.30145}

\rotatelabels{-72}[east]
\quadrupole{QD7}{0.4997}
\drift{0.41215}
\kicker{MSE23}{0.90027}
\savecoordinate{ELSA_extract_neu}
\drift{0.04893}
\rotatelabels{0}

% deleted due to "neue Extraktion"
%\drift{0.19415}
%\corrector{KV07}{0.1} 
%\drift{1.1672}

\dipole{M7}{2.875}{15}
\savecoordinate{sylibeamline}[center]
\drift{0.30145}
\quadrupole{QF8}{0.4997}
\drift{1.02365}
\corrector{KV08}{0.1}
\drift{0.3377}
\dipole{M8}{2.875}{15}
\drift{0.30145}
\quadrupole{QD9}{0.4997}
\drift{0.30135}
\dipole{M9}{2.875}{15}
\drift{0.3208}
\corrector{KV09}{0.1}
\drift{1.04065}
\quadrupole{QF10}{0.4997}
\drift{0.30135}
\dipole{M10}{2.875}{15}
\drift{0.7203}
\corrector{KV10}{0.1}
\drift{0.2175}
\sextupole{SD10}{0.287}
\drift{0.13665}
\quadrupole{QD11}{0.4997}
\drift{0.30135}
\dipole{M11}{2.875}{15}
\drift{0.7208}
\corrector{KV11}{0.1}
\drift{0.217}
\sextupole{SF11}{0.287}
\drift{0.13665}
\quadrupole{QF12}{0.4997}
\drift{0.30135}
\dipole{M12}{2.875}{15}
\drift{1.1743}
\corrector{KV12}{0.1}
\drift{0.18715}
\quadrupole{QD13}{0.4997}
\drift{0.30135}
\dipole{M13}{2.875}{15}
\drift{0.7398}
\corrector{KV13}{0.1}
\drift{0.62165}
\quadrupole{QF14}{0.4997}
\savecoordinate{rechts}
\drift{1.86133}
\drift{1.86133}
\corrector{KV14}{0.1}
\drift{0.81515}
\quadrupole{QD15}{0.4997}
\drift{0.30135}
\dipole{M15}{2.875}{15}
\drift{0.9368}
\corrector{KV15}{0.1}
\drift{0.42465}
\quadrupole{QF16}{0.4997}
\drift{0.13665}
\sextupole{SX16}{0.287}
\drift{0.2065}
\quadrupole{LQ16}{0.45}[0.2]
\drift{0.3075}
\cavity{PETRA1}{1.6}
\drift{0.93725}
\quadrupole{TJQD16}{0.5515}[0.2]
\drift{0.1614}
\quadrupole{QD17}{0.4997}
\drift{0.10615}
\corrector{KV17}{0.1}
\drift{0.244}
\cavity{PETRA2}{1.6}
\drift{1.43175}
\drift{0.07575}
\quadrupole{LQ17}{0.45}[0.2]
\drift{0.2065}
\sextupole{SX17}{0.287}
\drift{0.13665}
\quadrupole{QF18}{0.4997}
\drift{0.41665}
\corrector{KV18}{0.1}
\drift{0.9447}
\dipole{M18}{2.875}{15}
\drift{0.30145}

%labels rotated (anchor automatic)
\rotatelabels{61}[east]
\quadrupole{QD19}{0.4997}
\drift{0.13665}
\sextupole{SD19}{0.287}
\drift{0.1965}
\corrector{KV19}{0.1}
\drift{1.747}
\drift{1.747}
\sextupole{SF19}{0.287}
\drift{0.13665}
\quadrupole{QF20}{0.4997}
\drift{0.22565}
\corrector{KV20}{0.1}
\rotatelabels{0}

\drift{1.1357}
\dipole{M20}{2.875}{15}
\drift{0.30145}

\rotatelabels{76}[east]
\quadrupole{QD21}{0.4997}
\drift{0.21015}
\corrector{KV21}{0.1}
\rotatelabels{0}

\drift{1.151}
\dipole{M21}{2.875}{15}
\drift{0.30165}
\quadrupole{QF22}{0.4997}
\drift{0.99865}
\corrector{KV22}{0.1}
\drift{0.363}
\dipole{M22}{2.875}{15}
\drift{0.30115}
\quadrupole{QD23}{0.4997}

\drift{0.21}
\kicker{MSE23}{0.9}
\savecoordinate{ELSA_extract}
\drift{0.3}

\dipole{M23}{2.875}{15}
\drift{0.30165}
\quadrupole{QF24}{0.4997}
\drift{0.99265}
\corrector{KV24}{0.1}
\drift{0.369}
\dipole{M24}{2.875}{15}
\drift{0.30115}
\quadrupole{QD25}{0.4997}
\savecoordinate{compton}[center]
\drift{0.30115}
\dipole{M25}{2.875}{15}
\drift{0.716}
\corrector{KV25}{0.1}
\drift{0.64565}
\quadrupole{QF26}{0.4997}
\drift{0.30165}
\dipole{M26}{2.875}{15}
\drift{0.723}
\corrector{KV26}{0.1}
\drift{0.214}
\sextupole{SD26}{0.287}
\drift{0.13715}
\quadrupole{QD27}{0.4997}
\drift{0.30115}
\dipole{M27}{2.875}{15}
\drift{0.728}
\corrector{KV27}{0.1}
\drift{0.21}
\sextupole{SF27}{0.287}
\drift{0.13665}
\quadrupole{QF28}{0.4997}
\drift{0.30165}
\dipole{M28}{2.875}{15}
\drift{1.168}
\corrector{KV28}{0.1}
\drift{0.19315}
\quadrupole{QD29}{0.4997}
\drift{0.30115}
\dipole{M29}{2.875}{15}
\savecoordinate{links}
\drift{0.318}
\corrector{KV29}{0.1}
\drift{1.04365}
\quadrupole{QF30}{0.4997}
\drift{1.56882}
\drift{1.56882}
\corrector{KV30}{0.1}
\drift{1.0}
\drift{0.40015}
\resetlabeldistance

%title - aligned between M29 and QF14 via \savecoordinate
\draw[draw=none] (links) -- (rechts) node[midway, biggestlabel]
{ELSA Stretcherring\\{\SIrange{0.5}{3.2}{\GeV}}}; %\\{\it\SI{6}{\GeV\per\s}}


%-----------------------
% Compton-Polarimeter
%-----------------------
\begin{scope}
  \setlinecolor{drift}{\photonbeam}
  \goto{compton}
  \drift{13.7}
  \savecoordinate{comptonlabel}
  \beamdump{}{1.6}[0.7]
  \goto{compton}
  \rotate{180}
  \drift{3.9}
  \beamdump{}{0.25}[0.25]
\end{scope}
%title
\node[smalllabel, anchor=east, text width=4cm] at (comptonlabel)
{Compton-\\{Polarimeter}};

%------------------------------
% Syli-Beamline (Streak-Kamera)
%------------------------------
\begin{scope}
  \setlinecolor{drift}{\photonbeam}
  \goto{sylibeamline}
  \rotate{-11.5}
  \drift{12.5}
  \savecoordinate{sylilabel}
  \beamdump{}{1.25}[0.5]
\end{scope}
% title
\node[smalllabel, anchor=west, yshift=1cm, text width=4cm] at (sylilabel)
{\IfLanguageName{ngerman}{Synchrotronlicht}{synchrotron light}\\\IfLanguageName{ngerman}{Diagnoseplatz}{diagnostic area}};


%-----------------------
%Extraktion + CB
%-----------------------
\goto{ELSA_extract}
\turnlabels
\rotate{-8}
\drift{0.2}
%----
%\dipole{M23}{0.9}{1.60428}
\drift{0.9}
\rotate{1.60428}
%----
\drift{1.08}
\rotatelabels{90}[west]
\corrector{SSV1}{0.34}
\drift{0.1}
\corrector{SSH1}{0.34}
\drift{0.36}
\quadrupole{QF1}{0.4749}
\drift{0.39}
\solenoid{}{2}
\drift{0.38}
\quadrupole{QD1}{0.4749}
\drift{0.25}
\corrector{SSH2}{0.34}
\drift{0.1}
\corrector{SSV2}{0.34}
\drift{0.6}
\rotatelabels{0}
\turnlabels
\dipole{MB1}{1.08}{10.7716}[r][0.6]
\savecoordinate{MB1}[center]
\drift{0.41}                                                               
\quadrupole{QN1}{0.3}[0.2]
\drift{0.93}                                                               
\quadrupole{QN2}{0.3}[0.2]                                                      
\drift{0.33}
\dipole{MB3}{1.08012}{2.92208}[r][0.6]
\drift{0.42}
\corrector{SSH3}{0.34}
\drift{1.61}
\quadrupole{QF2}{0.4749}
\drift{2.218}
\rotatelabels{0}[west]
\corrector{SSV3}{0.2}
\rotatelabels{0}
\drift{0.242}
\quadrupole{QD2}{0.4749}
\drift{1.6515}
\savecoordinate{CBphotons}
\begin{labeldistance}{1}
  \dipole{Tagger}{1.26}{8.99544}[r][1.2]
  \drift{1.34}
  \dipole{M5}{1.26}{6.1994}[r][1.2]
\end{labeldistance}
\drift{5.7}
\savecoordinate{CBlabel}
\drift{5.7}
\beamdump{}{1}[1]

%Photon-Beamline
\goto{CBphotons}
\begin{scope}
\setlinecolor{drift}{\photonbeam}
\drift{16}
\beamdump{\IfLanguageName{ngerman}{Photonenkamera}{photon camera}}{0.4}[0.2]
\end{scope}

%title
\node[mediumlabel, anchor=east, yshift=1.5cm] at (CBlabel) {Crystal Barrel};
\node[biglabel, yshift=3.8cm,xshift=-3cm, text width=7cm] at (CBlabel)
{\IfLanguageName{ngerman}{Hadronenphysik- Experimente}{hadron physics experiments}};


%-------------------
%BGO-OD
%-------------------
  \goto{MB1}
  \rotate{-10.8-11}
  \turnlabels
  \drift{1.03}                                                               
  \dipole{MB2}{1.08166}{-11}[r][0.6]
  \drift{1.06}                                                               
  \quadrupole{QF2}{0.45}                                                     
  \drift{1.32}             
  \rotatelabels{90}[west]                                                  
  \corrector{SSH3}{0.34}                                                        
  \drift{0.1}                                                                
  \corrector{SSV3}{0.34}
  \rotatelabels{0}                                                        
  \drift{1.76}                                                               
  \quadrupole{QD2}{0.45} 
  \drift{0.95}
  \begin{scope}
    \setlabeldistance{0.7}
    \dipole{Tagger}{1.34}{0}[r][1]
  \end{scope}

  % photon beamline
  \begin{scope}
  \setlinecolor{drift}{\photonbeam}
  \drift{6.95}
  \dipole{}{1.61}{0}[r][3.64] %spektrometer
  \savecoordinate{BGOlabel}
  \drift{3.13}
  \beamdump{\IfLanguageName{ngerman}{Photonenkamera}{photon camera}}{0.4}[0.2]
  \end{scope}

  % title
  \node[mediumlabel, anchor=east, yshift=-0.7cm, xshift=-0.3cm] at (BGOlabel) {BGO-OD};


%-----------------------------
%neue externe Strahlführung
%-----------------------------
\goto{ELSA_extract_neu}
\rotate{-4}
\drift{1.578}
\drift{1.578}
\quadrupole{QF1}{0.5}[0.3]
\drift{2.06505}
\drift{2.06505}
\drift{2.06505}
\quadrupole{QD1}{0.4997}[0.3]
\drift{0.89515}
\begin{labeldistance}{1.2}
  \dipole{MB}{1.50274}{-12}[r][2]
\end{labeldistance}
\drift{0.89415}
\quadrupole{QF2}{0.4997}[0.3]
\drift{2.1063}
\quadrupole{QD2}{0.4997}[0.3]
\drift{2.77607}
\savecoordinate{NEWSFlabel}
\drift{2.77607}
\beamdump{}{0.4}
  %title
  \node[smalllabel, anchor=north, yshift=-5mm, text width=4.5cm] at (NEWSFlabel)
  {\IfLanguageName{ngerman}{Messplatz für}{area
      for}\\\IfLanguageName{ngerman}{Detektortests}{detector
      tests}\\\IfLanguageName{ngerman}{(im Aufbau)}{(under construction)}};

%---------------------------
% legend shows all element types occuring before this commmand
\legend{(67,46)}[2]
\end{lattice}
\end{document}
