1 | <html xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd"> |
---|
2 | <head> |
---|
3 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
---|
4 | |
---|
5 | <!-- |
---|
6 | This HTML is auto-generated from an M-file. |
---|
7 | To make changes, update the M-file and republish this document. |
---|
8 | --> |
---|
9 | <title>solamor2lin</title> |
---|
10 | <meta name="generator" content="MATLAB 7.0.0.14092 (R14) Prerelease"> |
---|
11 | <meta name="date" content="2004-06-13"> |
---|
12 | <meta name="m-file" content="solamor2lin"> |
---|
13 | <meta name="title" content=""> |
---|
14 | <meta name="description" content=""><style> |
---|
15 | body { |
---|
16 | background-color: white; |
---|
17 | } |
---|
18 | h1 { |
---|
19 | color: #990000; |
---|
20 | font-size: x-large; |
---|
21 | } |
---|
22 | h2 { |
---|
23 | color: #990000; |
---|
24 | font-size: medium; |
---|
25 | } |
---|
26 | p.footer { |
---|
27 | text-align: right; |
---|
28 | font-size: xx-small; |
---|
29 | font-weight: lighter; |
---|
30 | font-style: italic; |
---|
31 | color: gray; |
---|
32 | } |
---|
33 | |
---|
34 | pre.codeinput { |
---|
35 | margin-left: 30px; |
---|
36 | } |
---|
37 | |
---|
38 | span.keyword {color: #0000FF} |
---|
39 | span.comment {color: #228B22} |
---|
40 | span.string {color: #A020F0} |
---|
41 | span.untermstring {color: #B20000} |
---|
42 | span.syscmd {color: #B28C00} |
---|
43 | |
---|
44 | pre.showbuttons { |
---|
45 | margin-left: 30px; |
---|
46 | border: solid black 2px; |
---|
47 | padding: 4px; |
---|
48 | background: #EBEFF3; |
---|
49 | } |
---|
50 | |
---|
51 | pre.codeoutput { |
---|
52 | color: gray; |
---|
53 | font-style: italic; |
---|
54 | } |
---|
55 | pre.error { |
---|
56 | color: red; |
---|
57 | } |
---|
58 | </style></head> |
---|
59 | <body> |
---|
60 | <h2>Contents</h2> |
---|
61 | <ul> |
---|
62 | <li><a href="#2">Cavity</a></li> |
---|
63 | <li><a href="#3">Marker and apertures</a></li> |
---|
64 | <li><a href="#4">Superperiods</a></li> |
---|
65 | <li><a href="#5">compute total length and RF frequency</a></li> |
---|
66 | <li><a href="#6">Compute initial tunes before loading errors</a></li> |
---|
67 | </ul><pre class="codeinput"><span class="keyword">function</span> soleilamor2lin |
---|
68 | <span class="comment">%solamor2 - soleil lattice w/o ID</span> |
---|
69 | <span class="comment">% Lattice definition file</span> |
---|
70 | <span class="comment">% Lattice for SOLEIL: perfect lattice no magnetic errors</span> |
---|
71 | <span class="comment">% Compiled by Laurent Nadolski and Amor Nadji</span> |
---|
72 | <span class="comment">% 09/01/02, ALS</span> |
---|
73 | <span class="comment">% Controlroom : set linearpass for quad (closed orbit)</span> |
---|
74 | |
---|
75 | <span class="keyword">global</span> FAMLIST THERING GLOBVAL |
---|
76 | |
---|
77 | GLOBVAL.E0 = 2.75e9; <span class="comment">% Ring energy</span> |
---|
78 | GLOBVAL.LatticeFile = mfilename; |
---|
79 | FAMLIST = cell(0); |
---|
80 | |
---|
81 | disp([<span class="string">'** Loading SOLEIL magnet lattice '</span>, mfilename]); |
---|
82 | |
---|
83 | L0 = 354.0967211999983; <span class="comment">% design length [m]</span> |
---|
84 | C0 = 2.99792458e8; <span class="comment">% speed of light [m/s]</span> |
---|
85 | HarmNumber = 416; |
---|
86 | </pre><pre class="codeoutput">Error: Function definitions are not permitted at the prompt or in scripts.</pre><h2>Cavity<a name="2"></a></h2><pre> NAME L U[V] f[Hz] h method</pre><pre class="codeinput">CAV = rfcavity(<span class="string">'RF'</span> , 0 , 4.0e+6 , HarmNumber*C0/L0, <span class="keyword">...</span> |
---|
87 | HarmNumber ,<span class="string">'ThinCavityPass'</span>); |
---|
88 | </pre><h2>Marker and apertures<a name="3"></a></h2><pre class="codeinput"> SECT1 = marker(<span class="string">'SECT1'</span>, <span class="string">'IdentityPass'</span>); |
---|
89 | SECT2 = marker(<span class="string">'SECT2'</span>, <span class="string">'IdentityPass'</span>); |
---|
90 | SECT3 = marker(<span class="string">'SECT3'</span>, <span class="string">'IdentityPass'</span>); |
---|
91 | SECT4 = marker(<span class="string">'SECT4'</span>, <span class="string">'IdentityPass'</span>); |
---|
92 | DEBUT = marker(<span class="string">'DEBUT'</span>, <span class="string">'IdentityPass'</span>); |
---|
93 | FIN = marker(<span class="string">'FIN'</span>, <span class="string">'IdentityPass'</span>); |
---|
94 | |
---|
95 | INJ = aperture(<span class="string">'INJ'</span>,[-0.035 0.035 -0.0125 0.0125],<span class="string">'AperturePass'</span>); |
---|
96 | |
---|
97 | <span class="comment">% BPM</span> |
---|
98 | BPM = marker(<span class="string">'BPM'</span>, <span class="string">'IdentityPass'</span>); |
---|
99 | |
---|
100 | <span class="comment">% DRIFT SPACES</span> |
---|
101 | SD13= drift(<span class="string">'SD13'</span>, 3.48255, <span class="string">'DriftPass'</span>); |
---|
102 | SD1 = drift(<span class="string">'SD1'</span>, 6.00000, <span class="string">'DriftPass'</span>); |
---|
103 | SD2 = drift(<span class="string">'SD2'</span>, 0.39000, <span class="string">'DriftPass'</span>); |
---|
104 | SD3 = drift(<span class="string">'SD3'</span>, 0.20000, <span class="string">'DriftPass'</span>); |
---|
105 | SD4 = drift(<span class="string">'SD4'</span>, 0.39000, <span class="string">'DriftPass'</span>); |
---|
106 | SD14= drift(<span class="string">'SD14'</span>, 0.59000, <span class="string">'DriftPass'</span>); |
---|
107 | SD5 = drift(<span class="string">'SD5'</span>, 0.20000, <span class="string">'DriftPass'</span>); |
---|
108 | SD6 = drift(<span class="string">'SD6'</span>, 0.79000, <span class="string">'DriftPass'</span>); |
---|
109 | SD7 = drift(<span class="string">'SD7'</span>, 0.44000, <span class="string">'DriftPass'</span>); |
---|
110 | SD8 = drift(<span class="string">'SD8'</span>, 0.20000, <span class="string">'DriftPass'</span>); |
---|
111 | SD9 = drift(<span class="string">'SD9'</span>, 0.47634, <span class="string">'DriftPass'</span>); |
---|
112 | SD10= drift(<span class="string">'SD10'</span>, 0.47000, <span class="string">'DriftPass'</span>); |
---|
113 | SD12= drift(<span class="string">'SD12'</span>, 0.47000, <span class="string">'DriftPass'</span>); |
---|
114 | SDAC= drift(<span class="string">'SDAC'</span>, 1.90468, <span class="string">'DriftPass'</span>); |
---|
115 | |
---|
116 | <span class="comment">% QUADRUPOLES</span> |
---|
117 | Q1 = quadrupole(<span class="string">'Q1'</span> , 0.32, -1.18610 , <span class="string">'QuadLinearPass'</span>); |
---|
118 | Q2 = quadrupole(<span class="string">'Q2'</span> , 0.46, 1.71132 , <span class="string">'QuadLinearPass'</span>); |
---|
119 | Q3 = quadrupole(<span class="string">'Q3'</span> , 0.32, -0.71729 , <span class="string">'QuadLinearPass'</span>); |
---|
120 | Q4 = quadrupole(<span class="string">'Q4'</span> , 0.32, -1.39423 , <span class="string">'QuadLinearPass'</span>); |
---|
121 | Q5 = quadrupole(<span class="string">'Q5'</span> , 0.32, 1.89119 , <span class="string">'QuadLinearPass'</span>); |
---|
122 | Q6 = quadrupole(<span class="string">'Q6'</span> , 0.32, -1.11831 , <span class="string">'QuadLinearPass'</span>); |
---|
123 | Q7 = quadrupole(<span class="string">'Q7'</span> , 0.46, 2.21705 , <span class="string">'QuadLinearPass'</span>); |
---|
124 | Q8 = quadrupole(<span class="string">'Q8'</span> , 0.32, -1.70205 , <span class="string">'QuadLinearPass'</span>); |
---|
125 | Q9 = quadrupole(<span class="string">'Q9'</span> , 0.32, -1.68903 , <span class="string">'QuadLinearPass'</span>); |
---|
126 | Q10 = quadrupole(<span class="string">'Q10'</span>, 0.32, 1.96186 , <span class="string">'QuadLinearPass'</span>); |
---|
127 | |
---|
128 | |
---|
129 | <span class="comment">% SEXTUPOLES for xix=0.4 and xi_y=1.4</span> |
---|
130 | F = 1e8; |
---|
131 | Finv = 1/F; |
---|
132 | |
---|
133 | S1 = sextupole(<span class="string">'S1'</span> , Finv, 1.71919*F, <span class="string">'StrMPoleSymplectic4Pass'</span>); |
---|
134 | S2 = sextupole(<span class="string">'S2'</span> , Finv, -4.10456*F, <span class="string">'StrMPoleSymplectic4Pass'</span>); |
---|
135 | S3 = sextupole(<span class="string">'S3'</span> , Finv, -2.16938*F, <span class="string">'StrMPoleSymplectic4Pass'</span>); |
---|
136 | S4 = sextupole(<span class="string">'S4'</span> , Finv, 3.60465*F, <span class="string">'StrMPoleSymplectic4Pass'</span>); |
---|
137 | S5 = sextupole(<span class="string">'S5'</span> , Finv, -3.69821*F, <span class="string">'StrMPoleSymplectic4Pass'</span>); |
---|
138 | S6 = sextupole(<span class="string">'S6'</span> , Finv, 3.24667*F, <span class="string">'StrMPoleSymplectic4Pass'</span>); |
---|
139 | S7 = sextupole(<span class="string">'S7'</span> , Finv, -5.00352*F, <span class="string">'StrMPoleSymplectic4Pass'</span>); |
---|
140 | S8 = sextupole(<span class="string">'S8'</span> , Finv, 4.19372*F, <span class="string">'StrMPoleSymplectic4Pass'</span>); |
---|
141 | S9 = sextupole(<span class="string">'S9'</span> , Finv, -2.97623*F, <span class="string">'StrMPoleSymplectic4Pass'</span>); |
---|
142 | S10 = sextupole(<span class="string">'S10'</span>, Finv, 1.86108*F, <span class="string">'StrMPoleSymplectic4Pass'</span>); |
---|
143 | |
---|
144 | |
---|
145 | <span class="comment">% Slow feedback correctors</span> |
---|
146 | <span class="comment">% HCOR = corrector('HCOR',0.0,[0 0],'CorrectorPass');</span> |
---|
147 | <span class="comment">% VCOR = corrector('VCOR',0.0,[0 0],'CorrectorPass');</span> |
---|
148 | <span class="comment">% COR = [HCOR VCOR];</span> |
---|
149 | COR = corrector(<span class="string">'COR'</span>,0.0,[0 0],<span class="string">'CorrectorPass'</span>); |
---|
150 | |
---|
151 | <span class="comment">% Fast feedback correctors</span> |
---|
152 | <span class="comment">% FHCOR = corrector('FHCOR',0.0,[0 0],'CorrectorPass');</span> |
---|
153 | <span class="comment">% FVCOR = corrector('FVCOR',0.0,[0 0],'CorrectorPass');</span> |
---|
154 | <span class="comment">% FCOR = [FHCOR,FVCOR];</span> |
---|
155 | FCOR = corrector(<span class="string">'FCOR'</span>,0.0,[0 0],<span class="string">'CorrectorPass'</span>); |
---|
156 | |
---|
157 | |
---|
158 | SX1 = [S1 COR]; |
---|
159 | SX2 = [S2 COR]; |
---|
160 | SX3 = [S3 COR]; |
---|
161 | SX4 = [S4 COR]; |
---|
162 | SX5 = [S5 COR]; |
---|
163 | SX6 = [S6 COR]; |
---|
164 | SX7 = [S7 COR]; |
---|
165 | SX8 = [S8 COR]; |
---|
166 | SX9 = [S9 COR]; |
---|
167 | SX10 = [S10 COR]; |
---|
168 | |
---|
169 | <span class="comment">% DIPOLES</span> |
---|
170 | BEND = rbend(<span class="string">'BEND'</span> , 1.05243, <span class="keyword">...</span> |
---|
171 | 0.19635, 0.098175, 0.098175, 0.0,<span class="string">'BendLinearPass'</span>); |
---|
172 | |
---|
173 | <span class="comment">% Begin Lattice</span> |
---|
174 | </pre><h2>Superperiods<a name="4"></a></h2><pre class="codeinput">SUP = [ <span class="keyword">...</span> |
---|
175 | SD1 FCOR BPM Q1 SD2 SX1 SD3 Q2 <span class="keyword">...</span> |
---|
176 | BPM SD14 Q3 SD5 SX2 SD6 BEND SD7 Q4 <span class="keyword">...</span> |
---|
177 | SD8 SX3 BPM SD9 Q5 SD12 SX4 BPM <span class="keyword">...</span> |
---|
178 | SD10 Q5 SD9 BPM SX3 SD8 Q4 SD7 BEND SD7 <span class="keyword">...</span> |
---|
179 | Q6 SD5 SX5 SD4 BPM Q7 SD3 SX6 <span class="keyword">...</span> |
---|
180 | SD2 Q8 BPM FCOR SD13 SD13 FCOR BPM <span class="keyword">...</span> |
---|
181 | Q8 SD2 SX8 SD3 Q7 BPM SD4 SX7 <span class="keyword">...</span> |
---|
182 | SD5 Q6 SD7 BEND SD7 Q9 SD8 SX9 BPM <span class="keyword">...</span> |
---|
183 | SD9 Q10 SD8 SX10 BPM FCOR SDAC SDAC <span class="keyword">...</span> |
---|
184 | FCOR BPM SX10 SD8 Q10 SD9 BPM SX9 <span class="keyword">...</span> |
---|
185 | SD8 Q9 SD7 BEND SD7 Q6 SD5 SX7 <span class="keyword">...</span> |
---|
186 | SD4 BPM Q7 SD3 SX8 SD2 Q8 BPM FCOR<span class="keyword">...</span> |
---|
187 | SD13 SD13 FCOR BPM Q8 SD2 SX8 <span class="keyword">...</span> |
---|
188 | SD3 Q7 BPM SD4 SX7 SD5 Q6 SD7 BEND<span class="keyword">...</span> |
---|
189 | SD7 Q9 SD8 SX9 BPM SD9 Q10 SD8 SX10 <span class="keyword">...</span> |
---|
190 | BPM FCOR SDAC SDAC FCOR BPM SX10 <span class="keyword">...</span> |
---|
191 | SD8 Q10 SD9 BPM SX9 SD8 Q9 SD7 <span class="keyword">...</span> |
---|
192 | BEND SD7 Q6 SD5 SX7 SD4 BPM Q7 SD3 <span class="keyword">...</span> |
---|
193 | SX8 SD2 Q8 BPM FCOR SD13 SD13 FCOR<span class="keyword">...</span> |
---|
194 | BPM Q8 SD2 SX6 SD3 Q7 BPM SD4 <span class="keyword">...</span> |
---|
195 | SX5 SD5 Q6 SD7 BEND SD7 Q4 SD8 SX3 <span class="keyword">...</span> |
---|
196 | BPM SD9 Q5 SD10 BPM SX4 SD12 Q5 <span class="keyword">...</span> |
---|
197 | SD9 BPM SX3 SD8 Q4 SD7 BEND SD6 SX2 <span class="keyword">...</span> |
---|
198 | SD5 Q3 SD14 BPM Q2 SD3 SX1 SD2 Q1 <span class="keyword">...</span> |
---|
199 | BPM FCOR SD1 ]; |
---|
200 | |
---|
201 | |
---|
202 | <span class="comment">% ELIST = [DEBUT INJ SECT1 SUP SECT2 SUP SECT3 SUP SECT4 SUP CAV FIN];</span> |
---|
203 | ELIST = [DEBUT INJ SECT1 SUP SECT2 SUP SECT3 SUP SECT4 SUP FIN]; |
---|
204 | |
---|
205 | buildlat(ELIST); |
---|
206 | </pre><h2>compute total length and RF frequency<a name="5"></a></h2><pre class="codeinput">L0_tot=0; |
---|
207 | <span class="keyword">for</span> i=1:length(THERING) |
---|
208 | L0_tot=L0_tot+THERING{i}.Length; |
---|
209 | <span class="keyword">end</span> |
---|
210 | |
---|
211 | fprintf(<span class="string">'\nL0_tot=%f m (should be %f m) \nf_RF=%f Hz \n\n'</span>, L0_tot, <span class="keyword">...</span> |
---|
212 | L0,HarmNumber*C0/L0_tot) |
---|
213 | </pre><h2>Compute initial tunes before loading errors<a name="6"></a></h2><pre class="codeinput">[InitialTunes, InitialChro] = tunechrom(THERING,0,[18.25, 10.2],<span class="string">'chrom'</span>,<span class="string">'coupling'</span>); |
---|
214 | |
---|
215 | <span class="comment">% fprintf('A bit false since radiation and cavity on\n');</span> |
---|
216 | fprintf(<span class="string">'Tunes before loading lattice errors: nu_x=%g, nu_z=%g\n'</span>, <span class="keyword">...</span> |
---|
217 | InitialTunes(1),InitialTunes(2)); |
---|
218 | fprintf(<span class="string">'Chroma before loading lattice errors: xi_x=%g, xi_z=%g\n'</span>, <span class="keyword">...</span> |
---|
219 | InitialChro(1),InitialChro(2)); |
---|
220 | |
---|
221 | evalin(<span class="string">'caller'</span>,<span class="string">'global THERING FAMLIST GLOBVAL'</span>); |
---|
222 | disp(<span class="string">'** Finished loading lattice in Accelerator Toolbox'</span>); |
---|
223 | </pre><p class="footer"><br></p> |
---|
224 | <!-- |
---|
225 | ##### SOURCE BEGIN ##### |
---|
226 | function soleilamor2lin |
---|
227 | %solamor2 - soleil lattice w/o ID |
---|
228 | % Lattice definition file |
---|
229 | % Lattice for SOLEIL: perfect lattice no magnetic errors |
---|
230 | % Compiled by Laurent Nadolski and Amor Nadji |
---|
231 | % 09/01/02, ALS |
---|
232 | % Controlroom : set linearpass for quad (closed orbit) |
---|
233 | |
---|
234 | global FAMLIST THERING GLOBVAL |
---|
235 | |
---|
236 | GLOBVAL.E0 = 2.75e9; % Ring energy |
---|
237 | GLOBVAL.LatticeFile = mfilename; |
---|
238 | FAMLIST = cell(0); |
---|
239 | |
---|
240 | disp(['** Loading SOLEIL magnet lattice ', mfilename]); |
---|
241 | |
---|
242 | L0 = 354.0967211999983; % design length [m] |
---|
243 | C0 = 2.99792458e8; % speed of light [m/s] |
---|
244 | HarmNumber = 416; |
---|
245 | |
---|
246 | %% Cavity |
---|
247 | % NAME L U[V] f[Hz] h method |
---|
248 | CAV = rfcavity('RF' , 0 , 4.0e+6 , HarmNumber*C0/L0, ... |
---|
249 | HarmNumber ,'ThinCavityPass'); |
---|
250 | |
---|
251 | %% Marker and apertures |
---|
252 | SECT1 = marker('SECT1', 'IdentityPass'); |
---|
253 | SECT2 = marker('SECT2', 'IdentityPass'); |
---|
254 | SECT3 = marker('SECT3', 'IdentityPass'); |
---|
255 | SECT4 = marker('SECT4', 'IdentityPass'); |
---|
256 | DEBUT = marker('DEBUT', 'IdentityPass'); |
---|
257 | FIN = marker('FIN', 'IdentityPass'); |
---|
258 | |
---|
259 | INJ = aperture('INJ',[-0.035 0.035 -0.0125 0.0125],'AperturePass'); |
---|
260 | |
---|
261 | % BPM |
---|
262 | BPM = marker('BPM', 'IdentityPass'); |
---|
263 | |
---|
264 | % DRIFT SPACES |
---|
265 | SD13= drift('SD13', 3.48255, 'DriftPass'); |
---|
266 | SD1 = drift('SD1', 6.00000, 'DriftPass'); |
---|
267 | SD2 = drift('SD2', 0.39000, 'DriftPass'); |
---|
268 | SD3 = drift('SD3', 0.20000, 'DriftPass'); |
---|
269 | SD4 = drift('SD4', 0.39000, 'DriftPass'); |
---|
270 | SD14= drift('SD14', 0.59000, 'DriftPass'); |
---|
271 | SD5 = drift('SD5', 0.20000, 'DriftPass'); |
---|
272 | SD6 = drift('SD6', 0.79000, 'DriftPass'); |
---|
273 | SD7 = drift('SD7', 0.44000, 'DriftPass'); |
---|
274 | SD8 = drift('SD8', 0.20000, 'DriftPass'); |
---|
275 | SD9 = drift('SD9', 0.47634, 'DriftPass'); |
---|
276 | SD10= drift('SD10', 0.47000, 'DriftPass'); |
---|
277 | SD12= drift('SD12', 0.47000, 'DriftPass'); |
---|
278 | SDAC= drift('SDAC', 1.90468, 'DriftPass'); |
---|
279 | |
---|
280 | % QUADRUPOLES |
---|
281 | Q1 = quadrupole('Q1' , 0.32, -1.18610 , 'QuadLinearPass'); |
---|
282 | Q2 = quadrupole('Q2' , 0.46, 1.71132 , 'QuadLinearPass'); |
---|
283 | Q3 = quadrupole('Q3' , 0.32, -0.71729 , 'QuadLinearPass'); |
---|
284 | Q4 = quadrupole('Q4' , 0.32, -1.39423 , 'QuadLinearPass'); |
---|
285 | Q5 = quadrupole('Q5' , 0.32, 1.89119 , 'QuadLinearPass'); |
---|
286 | Q6 = quadrupole('Q6' , 0.32, -1.11831 , 'QuadLinearPass'); |
---|
287 | Q7 = quadrupole('Q7' , 0.46, 2.21705 , 'QuadLinearPass'); |
---|
288 | Q8 = quadrupole('Q8' , 0.32, -1.70205 , 'QuadLinearPass'); |
---|
289 | Q9 = quadrupole('Q9' , 0.32, -1.68903 , 'QuadLinearPass'); |
---|
290 | Q10 = quadrupole('Q10', 0.32, 1.96186 , 'QuadLinearPass'); |
---|
291 | |
---|
292 | |
---|
293 | % SEXTUPOLES for xix=0.4 and xi_y=1.4 |
---|
294 | F = 1e8; |
---|
295 | Finv = 1/F; |
---|
296 | |
---|
297 | S1 = sextupole('S1' , Finv, 1.71919*F, 'StrMPoleSymplectic4Pass'); |
---|
298 | S2 = sextupole('S2' , Finv, -4.10456*F, 'StrMPoleSymplectic4Pass'); |
---|
299 | S3 = sextupole('S3' , Finv, -2.16938*F, 'StrMPoleSymplectic4Pass'); |
---|
300 | S4 = sextupole('S4' , Finv, 3.60465*F, 'StrMPoleSymplectic4Pass'); |
---|
301 | S5 = sextupole('S5' , Finv, -3.69821*F, 'StrMPoleSymplectic4Pass'); |
---|
302 | S6 = sextupole('S6' , Finv, 3.24667*F, 'StrMPoleSymplectic4Pass'); |
---|
303 | S7 = sextupole('S7' , Finv, -5.00352*F, 'StrMPoleSymplectic4Pass'); |
---|
304 | S8 = sextupole('S8' , Finv, 4.19372*F, 'StrMPoleSymplectic4Pass'); |
---|
305 | S9 = sextupole('S9' , Finv, -2.97623*F, 'StrMPoleSymplectic4Pass'); |
---|
306 | S10 = sextupole('S10', Finv, 1.86108*F, 'StrMPoleSymplectic4Pass'); |
---|
307 | |
---|
308 | |
---|
309 | % Slow feedback correctors |
---|
310 | % HCOR = corrector('HCOR',0.0,[0 0],'CorrectorPass'); |
---|
311 | % VCOR = corrector('VCOR',0.0,[0 0],'CorrectorPass'); |
---|
312 | % COR = [HCOR VCOR]; |
---|
313 | COR = corrector('COR',0.0,[0 0],'CorrectorPass'); |
---|
314 | |
---|
315 | % Fast feedback correctors |
---|
316 | % FHCOR = corrector('FHCOR',0.0,[0 0],'CorrectorPass'); |
---|
317 | % FVCOR = corrector('FVCOR',0.0,[0 0],'CorrectorPass'); |
---|
318 | % FCOR = [FHCOR,FVCOR]; |
---|
319 | FCOR = corrector('FCOR',0.0,[0 0],'CorrectorPass'); |
---|
320 | |
---|
321 | |
---|
322 | SX1 = [S1 COR]; |
---|
323 | SX2 = [S2 COR]; |
---|
324 | SX3 = [S3 COR]; |
---|
325 | SX4 = [S4 COR]; |
---|
326 | SX5 = [S5 COR]; |
---|
327 | SX6 = [S6 COR]; |
---|
328 | SX7 = [S7 COR]; |
---|
329 | SX8 = [S8 COR]; |
---|
330 | SX9 = [S9 COR]; |
---|
331 | SX10 = [S10 COR]; |
---|
332 | |
---|
333 | % DIPOLES |
---|
334 | BEND = rbend('BEND' , 1.05243, ... |
---|
335 | 0.19635, 0.098175, 0.098175, 0.0,'BendLinearPass'); |
---|
336 | |
---|
337 | % Begin Lattice |
---|
338 | |
---|
339 | %% Superperiods |
---|
340 | |
---|
341 | SUP = [ ... |
---|
342 | SD1 FCOR BPM Q1 SD2 SX1 SD3 Q2 ... |
---|
343 | BPM SD14 Q3 SD5 SX2 SD6 BEND SD7 Q4 ... |
---|
344 | SD8 SX3 BPM SD9 Q5 SD12 SX4 BPM ... |
---|
345 | SD10 Q5 SD9 BPM SX3 SD8 Q4 SD7 BEND SD7 ... |
---|
346 | Q6 SD5 SX5 SD4 BPM Q7 SD3 SX6 ... |
---|
347 | SD2 Q8 BPM FCOR SD13 SD13 FCOR BPM ... |
---|
348 | Q8 SD2 SX8 SD3 Q7 BPM SD4 SX7 ... |
---|
349 | SD5 Q6 SD7 BEND SD7 Q9 SD8 SX9 BPM ... |
---|
350 | SD9 Q10 SD8 SX10 BPM FCOR SDAC SDAC ... |
---|
351 | FCOR BPM SX10 SD8 Q10 SD9 BPM SX9 ... |
---|
352 | SD8 Q9 SD7 BEND SD7 Q6 SD5 SX7 ... |
---|
353 | SD4 BPM Q7 SD3 SX8 SD2 Q8 BPM FCOR... |
---|
354 | SD13 SD13 FCOR BPM Q8 SD2 SX8 ... |
---|
355 | SD3 Q7 BPM SD4 SX7 SD5 Q6 SD7 BEND... |
---|
356 | SD7 Q9 SD8 SX9 BPM SD9 Q10 SD8 SX10 ... |
---|
357 | BPM FCOR SDAC SDAC FCOR BPM SX10 ... |
---|
358 | SD8 Q10 SD9 BPM SX9 SD8 Q9 SD7 ... |
---|
359 | BEND SD7 Q6 SD5 SX7 SD4 BPM Q7 SD3 ... |
---|
360 | SX8 SD2 Q8 BPM FCOR SD13 SD13 FCOR... |
---|
361 | BPM Q8 SD2 SX6 SD3 Q7 BPM SD4 ... |
---|
362 | SX5 SD5 Q6 SD7 BEND SD7 Q4 SD8 SX3 ... |
---|
363 | BPM SD9 Q5 SD10 BPM SX4 SD12 Q5 ... |
---|
364 | SD9 BPM SX3 SD8 Q4 SD7 BEND SD6 SX2 ... |
---|
365 | SD5 Q3 SD14 BPM Q2 SD3 SX1 SD2 Q1 ... |
---|
366 | BPM FCOR SD1 ]; |
---|
367 | |
---|
368 | |
---|
369 | % ELIST = [DEBUT INJ SECT1 SUP SECT2 SUP SECT3 SUP SECT4 SUP CAV FIN]; |
---|
370 | ELIST = [DEBUT INJ SECT1 SUP SECT2 SUP SECT3 SUP SECT4 SUP FIN]; |
---|
371 | |
---|
372 | buildlat(ELIST); |
---|
373 | |
---|
374 | %% compute total length and RF frequency |
---|
375 | |
---|
376 | L0_tot=0; |
---|
377 | for i=1:length(THERING) |
---|
378 | L0_tot=L0_tot+THERING{i}.Length; |
---|
379 | end |
---|
380 | |
---|
381 | fprintf('\nL0_tot=%f m (should be %f m) \nf_RF=%f Hz \n\n', L0_tot, ... |
---|
382 | L0,HarmNumber*C0/L0_tot) |
---|
383 | |
---|
384 | %% Compute initial tunes before loading errors |
---|
385 | [InitialTunes, InitialChro] = tunechrom(THERING,0,[18.25, 10.2],'chrom','coupling'); |
---|
386 | |
---|
387 | % fprintf('A bit false since radiation and cavity on\n'); |
---|
388 | fprintf('Tunes before loading lattice errors: nu_x=%g, nu_z=%g\n', ... |
---|
389 | InitialTunes(1),InitialTunes(2)); |
---|
390 | fprintf('Chroma before loading lattice errors: xi_x=%g, xi_z=%g\n', ... |
---|
391 | InitialChro(1),InitialChro(2)); |
---|
392 | |
---|
393 | evalin('caller','global THERING FAMLIST GLOBVAL'); |
---|
394 | disp('** Finished loading lattice in Accelerator Toolbox'); |
---|
395 | |
---|
396 | ##### SOURCE END ##### |
---|
397 | --> |
---|
398 | </body> |
---|
399 | </html> |
---|