1 | function solamor2linb |
---|
2 | %solamor2 - soleil lattice w/o ID |
---|
3 | % Lattice definition file |
---|
4 | % Lattice for SOLEIL: perfect lattice no magnetic errors |
---|
5 | % Compiled by Laurent Nadolski and Amor Nadji |
---|
6 | % 09/01/02, ALS |
---|
7 | % Controlroom : set linearpass for quad (closed orbit) |
---|
8 | % No cavity; No Radiation PassMethod |
---|
9 | |
---|
10 | global FAMLIST THERING GLOBVAL |
---|
11 | |
---|
12 | GLOBVAL.E0 = 2.75e9; % Ring energy |
---|
13 | GLOBVAL.LatticeFile = mfilename; |
---|
14 | FAMLIST = cell(0); |
---|
15 | |
---|
16 | disp(['** Loading SOLEIL magnet lattice ', mfilename]); |
---|
17 | |
---|
18 | L0 = 354.0967211999983; % design length [m] |
---|
19 | C0 = 2.99792458e8; % speed of light [m/s] |
---|
20 | HarmNumber = 416; |
---|
21 | |
---|
22 | %% Cavity |
---|
23 | % NAME L U[V] f[Hz] h method |
---|
24 | CAV = rfcavity('RF' , 0 , 4.0e+6 , HarmNumber*C0/L0, ... |
---|
25 | HarmNumber ,'CavityPass'); |
---|
26 | |
---|
27 | %% Marker and apertures |
---|
28 | SECT1 = marker('SECT1', 'IdentityPass'); |
---|
29 | SECT2 = marker('SECT2', 'IdentityPass'); |
---|
30 | SECT3 = marker('SECT3', 'IdentityPass'); |
---|
31 | SECT4 = marker('SECT4', 'IdentityPass'); |
---|
32 | DEBUT = marker('DEBUT', 'IdentityPass'); |
---|
33 | FIN = marker('FIN', 'IdentityPass'); |
---|
34 | |
---|
35 | INJ = aperture('INJ',[-0.035 0.035 -0.0125 0.0125],'AperturePass'); |
---|
36 | |
---|
37 | %% Injection section |
---|
38 | PtINJ = marker('PtINJ', 'IdentityPass'); |
---|
39 | K3 = marker('K3', 'IdentityPass'); |
---|
40 | K4 = marker('K4', 'IdentityPass'); |
---|
41 | |
---|
42 | %% BPM |
---|
43 | BPM = marker('BPM', 'IdentityPass'); |
---|
44 | |
---|
45 | %% DRIFT SPACES |
---|
46 | dc=0.035/2; |
---|
47 | dl=0.030/2; |
---|
48 | SD13= drift('SD13', 3.48255-dc, 'DriftPass'); |
---|
49 | SD1 = drift('SD1', 6.00000-dc, 'DriftPass'); |
---|
50 | SD1a = drift('SD1a', 1.4125, 'DriftPass'); |
---|
51 | SD1b = drift('SD1b', 0.7575, 'DriftPass'); |
---|
52 | SD1c = drift('SD1c', 3.002, 'DriftPass'); |
---|
53 | SD1d = drift('SD1d', 0.828, 'DriftPass'); |
---|
54 | SD2 = drift('SD2', 0.39000-dc, 'DriftPass'); |
---|
55 | SD3 = drift('SD3', 0.20000-dl, 'DriftPass'); |
---|
56 | SD4 = drift('SD4', 0.39000-dl, 'DriftPass'); |
---|
57 | SD14= drift('SD14', 0.59000-dl-dc, 'DriftPass'); |
---|
58 | SD5 = drift('SD5', 0.20000-dc, 'DriftPass'); |
---|
59 | SD6 = drift('SD6', 0.79000, 'DriftPass'); |
---|
60 | SD7 = drift('SD7', 0.44000-dc, 'DriftPass'); |
---|
61 | SD8 = drift('SD8', 0.20000-dc, 'DriftPass'); |
---|
62 | SD9 = drift('SD9', 0.47634-dc, 'DriftPass'); |
---|
63 | SD10= drift('SD10', 0.47000-dc, 'DriftPass'); |
---|
64 | SD12= drift('SD12', 0.47000-dc, 'DriftPass'); |
---|
65 | SDAC= drift('SDAC', 1.90468, 'DriftPass'); |
---|
66 | |
---|
67 | %% QUADRUPOLES (compensation de l'effet des défauts de focalisation des |
---|
68 | %% dipoles P. Brunelle 02/05/06) |
---|
69 | Q1 = quadrupole('Q1' , 0.32+2*dc, -1.193917 , 'QuadLinearPass'); |
---|
70 | Q2 = quadrupole('Q2' , 0.46+2*dl, 1.712124 , 'QuadLinearPass'); |
---|
71 | Q3 = quadrupole('Q3' , 0.32+2*dc, -0.7195554 , 'QuadLinearPass'); |
---|
72 | Q4 = quadrupole('Q4' , 0.32+2*dc, -1.404293 , 'QuadLinearPass'); |
---|
73 | Q5 = quadrupole('Q5' , 0.32+2*dc, 1.895744 , 'QuadLinearPass'); |
---|
74 | Q6 = quadrupole('Q6' , 0.32+2*dc, -1.117271 , 'QuadLinearPass'); |
---|
75 | Q7 = quadrupole('Q7' , 0.46+2*dl, 2.223070 , 'QuadLinearPass'); |
---|
76 | Q8 = quadrupole('Q8' , 0.32+2*dc, -1.724227 , 'QuadLinearPass'); |
---|
77 | Q9 = quadrupole('Q9' , 0.32+2*dc, -1.689030 , 'QuadLinearPass'); |
---|
78 | Q10 = quadrupole('Q10', 0.32+2*dc, 1.963458 , 'QuadLinearPass'); |
---|
79 | |
---|
80 | |
---|
81 | %% SEXTUPOLES chromaticités nulles dans TracyII |
---|
82 | %avec défauts de focalisation des dipôles |
---|
83 | %P. Brunelle 02/05/06 |
---|
84 | F = 1e8; |
---|
85 | Finv = 1/F; |
---|
86 | |
---|
87 | S1 = sextupole('S1' , Finv, 1.71919*F, 'StrMPoleSymplectic4Pass'); |
---|
88 | S2 = sextupole('S2' , Finv, -4.10456*F, 'StrMPoleSymplectic4Pass'); |
---|
89 | S3 = sextupole('S3' , Finv, -2.16938*F, 'StrMPoleSymplectic4Pass'); |
---|
90 | S4 = sextupole('S4' , Finv, 3.60465*F, 'StrMPoleSymplectic4Pass'); |
---|
91 | S5 = sextupole('S5' , Finv, -3.69821*F, 'StrMPoleSymplectic4Pass'); |
---|
92 | S6 = sextupole('S6' , Finv, 3.24667*F, 'StrMPoleSymplectic4Pass'); |
---|
93 | S7 = sextupole('S7' , Finv, -5.00352*F, 'StrMPoleSymplectic4Pass'); |
---|
94 | S8 = sextupole('S8' , Finv, 4.19372*F, 'StrMPoleSymplectic4Pass'); |
---|
95 | S9 = sextupole('S9' , Finv, -3.152295*F, 'StrMPoleSymplectic4Pass'); |
---|
96 | S10 = sextupole('S10', Finv, 1.936432*F, 'StrMPoleSymplectic4Pass'); |
---|
97 | |
---|
98 | %% QT (P. Brunelle 27/04/06) |
---|
99 | QT = marker('QT', 'IdentityPass'); |
---|
100 | |
---|
101 | %% Slow feedback correctors |
---|
102 | % HCOR = corrector('HCOR',0.0,[0 0],'CorrectorPass'); |
---|
103 | % VCOR = corrector('VCOR',0.0,[0 0],'CorrectorPass'); |
---|
104 | % COR = [HCOR VCOR]; |
---|
105 | COR = corrector('COR',0.0,[0 0],'CorrectorPass'); |
---|
106 | |
---|
107 | %% Fast feedback correctors |
---|
108 | % FHCOR = corrector('FHCOR',0.0,[0 0],'CorrectorPass'); |
---|
109 | % FVCOR = corrector('FVCOR',0.0,[0 0],'CorrectorPass'); |
---|
110 | % FCOR = [FHCOR,FVCOR]; |
---|
111 | FCOR = corrector('FCOR',0.0,[0 0],'CorrectorPass'); |
---|
112 | |
---|
113 | |
---|
114 | SX1 = [S1 COR QT]; |
---|
115 | SX2 = [S2 COR QT]; |
---|
116 | SX3 = [S3 COR QT]; |
---|
117 | SX4 = [S4 COR QT]; |
---|
118 | SX5 = [S5 COR QT]; |
---|
119 | SX6 = [S6 COR QT]; |
---|
120 | SX7 = [S7 COR QT]; |
---|
121 | SX8 = [S8 COR QT]; |
---|
122 | SX9 = [S9 COR QT]; |
---|
123 | SX10 = [S10 COR QT]; |
---|
124 | |
---|
125 | %% DIPOLES |
---|
126 | %BEND = rbend('BEND' , 1.05243, ... |
---|
127 | % 0.19635, 0.098175, 0.098175, 0.0,'BendLinearPass'); |
---|
128 | |
---|
129 | %% DIPOLES |
---|
130 | % {** 1.3815 factor to fit with BETA ??? strange **} |
---|
131 | %theta = 2*pi/32; |
---|
132 | %fullgap = 0.105*0.724*2/6*1.3815*0.; |
---|
133 | % BEND = rbend2('BEND', L, theta, theta/2, theta/2, 0.0, ... |
---|
134 | % fullgap,'BendLinearFringeTiltPass'); |
---|
135 | theta = 2*pi/32; |
---|
136 | theta2 = 2*pi/32/2; |
---|
137 | thetae = 2*pi/32/2-0.6e-3*1; |
---|
138 | thetas = 2*pi/32/2+0.9e-3*1; |
---|
139 | K = 0.00204*1; |
---|
140 | fullgap = 0.037*0.724*2*1; |
---|
141 | BEND = rbend2('BEND', 1.05243, theta, thetae, thetas, K,fullgap,'BendLinearPass'); |
---|
142 | |
---|
143 | |
---|
144 | %% Lattice |
---|
145 | % Superperiods |
---|
146 | |
---|
147 | SUP1 = [... |
---|
148 | SD1a PtINJ SD1b K3 SD1c K4 SD1d ... |
---|
149 | BPM FCOR Q1 SD2 SX1 SD3 Q2 ... |
---|
150 | BPM SD14 Q3 SD5 SX2 SD6 BEND SD7 Q4 ... |
---|
151 | SD8 SX3 BPM SD9 Q5 SD12 SX4 BPM ... |
---|
152 | SD10 Q5 SD9 BPM SX3 SD8 Q4 SD7 BEND SD7 ... |
---|
153 | Q6 SD5 SX5 SD4 BPM Q7 SD3 SX6 ... |
---|
154 | SD2 Q8 FCOR BPM SD13 SD13 BPM FCOR ... |
---|
155 | Q8 SD2 SX8 SD3 Q7 BPM SD4 SX7 ... |
---|
156 | SD5 Q6 SD7 BEND SD7 Q9 SD8 SX9 BPM ... |
---|
157 | SD9 Q10 SD8 SX10 FCOR BPM SDAC SDAC ... |
---|
158 | BPM FCOR SX10 SD8 Q10 SD9 BPM SX9 ... |
---|
159 | SD8 Q9 SD7 BEND SD7 Q6 SD5 SX7 ... |
---|
160 | SD4 BPM Q7 SD3 SX8 SD2 Q8 FCOR BPM ... |
---|
161 | SD13 SD13 BPM FCOR Q8 SD2 SX8 ... |
---|
162 | SD3 Q7 BPM SD4 SX7 SD5 Q6 SD7 BEND... |
---|
163 | SD7 Q9 SD8 SX9 BPM SD9 Q10 SD8 SX10 ... |
---|
164 | FCOR BPM SDAC SDAC BPM FCOR SX10 ... |
---|
165 | SD8 Q10 SD9 BPM SX9 SD8 Q9 SD7 ... |
---|
166 | BEND SD7 Q6 SD5 SX7 SD4 BPM Q7 SD3 ... |
---|
167 | SX8 SD2 Q8 FCOR BPM SD13 SD13 BPM ... |
---|
168 | FCOR Q8 SD2 SX6 SD3 Q7 BPM SD4 ... |
---|
169 | SX5 SD5 Q6 SD7 BEND SD7 Q4 SD8 SX3 ... |
---|
170 | BPM SD9 Q5 SD10 BPM SX4 SD12 Q5 ... |
---|
171 | SD9 BPM SX3 SD8 Q4 SD7 BEND SD6 SX2 ... |
---|
172 | SD5 Q3 SD14 BPM Q2 SD3 SX1 SD2 Q1 ... |
---|
173 | FCOR BPM SD1 ]; |
---|
174 | |
---|
175 | SUP2 = [ ... |
---|
176 | SD1 BPM FCOR Q1 SD2 SX1 SD3 Q2 ... |
---|
177 | BPM SD14 Q3 SD5 SX2 SD6 BEND SD7 Q4 ... |
---|
178 | SD8 SX3 BPM SD9 Q5 SD12 SX4 BPM ... |
---|
179 | SD10 Q5 SD9 BPM SX3 SD8 Q4 SD7 BEND SD7 ... |
---|
180 | Q6 SD5 SX5 SD4 BPM Q7 SD3 SX6 ... |
---|
181 | SD2 Q8 FCOR BPM SD13 SD13 BPM FCOR ... |
---|
182 | Q8 SD2 SX8 SD3 Q7 BPM SD4 SX7 ... |
---|
183 | SD5 Q6 SD7 BEND SD7 Q9 SD8 SX9 BPM ... |
---|
184 | SD9 Q10 SD8 SX10 FCOR BPM SDAC SDAC ... |
---|
185 | BPM FCOR SX10 SD8 Q10 SD9 BPM SX9 ... |
---|
186 | SD8 Q9 SD7 BEND SD7 Q6 SD5 SX7 ... |
---|
187 | SD4 BPM Q7 SD3 SX8 SD2 Q8 FCOR BPM ... |
---|
188 | SD13 SD13 BPM FCOR Q8 SD2 SX8 ... |
---|
189 | SD3 Q7 BPM SD4 SX7 SD5 Q6 SD7 BEND... |
---|
190 | SD7 Q9 SD8 SX9 BPM SD9 Q10 SD8 SX10 ... |
---|
191 | FCOR BPM SDAC SDAC BPM FCOR SX10 ... |
---|
192 | SD8 Q10 SD9 BPM SX9 SD8 Q9 SD7 ... |
---|
193 | BEND SD7 Q6 SD5 SX7 SD4 BPM Q7 SD3 ... |
---|
194 | SX8 SD2 Q8 FCOR BPM SD13 SD13 BPM ... |
---|
195 | FCOR Q8 SD2 SX6 SD3 Q7 BPM SD4 ... |
---|
196 | SX5 SD5 Q6 SD7 BEND SD7 Q4 SD8 SX3 ... |
---|
197 | BPM SD9 Q5 SD10 BPM SX4 SD12 Q5 ... |
---|
198 | SD9 BPM SX3 SD8 Q4 SD7 BEND SD6 SX2 ... |
---|
199 | SD5 Q3 SD14 BPM Q2 SD3 SX1 SD2 Q1 ... |
---|
200 | FCOR BPM SD1 ]; |
---|
201 | |
---|
202 | SUP3 = [ ... |
---|
203 | SD1 BPM FCOR Q1 SD2 SX1 SD3 Q2 ... |
---|
204 | BPM SD14 Q3 SD5 SX2 SD6 BEND SD7 Q4 ... |
---|
205 | SD8 SX3 BPM SD9 Q5 SD12 SX4 BPM ... |
---|
206 | SD10 Q5 SD9 BPM SX3 SD8 Q4 SD7 BEND SD7 ... |
---|
207 | Q6 SD5 SX5 SD4 BPM Q7 SD3 SX6 ... |
---|
208 | SD2 Q8 FCOR BPM SD13 SD13 BPM FCOR ... |
---|
209 | Q8 SD2 SX8 SD3 Q7 BPM SD4 SX7 ... |
---|
210 | SD5 Q6 SD7 BEND SD7 Q9 SD8 SX9 BPM ... |
---|
211 | SD9 Q10 SD8 SX10 FCOR BPM SDAC SDAC ... |
---|
212 | BPM FCOR SX10 SD8 Q10 SD9 BPM SX9 ... |
---|
213 | SD8 Q9 SD7 BEND SD7 Q6 SD5 SX7 ... |
---|
214 | SD4 BPM Q7 SD3 SX8 SD2 Q8 FCOR BPM ... |
---|
215 | SD13 SD13 BPM FCOR Q8 SD2 SX8 ... |
---|
216 | SD3 Q7 BPM SD4 SX7 SD5 Q6 SD7 BEND... |
---|
217 | SD7 Q9 SD8 SX9 BPM SD9 Q10 SD8 SX10 ... |
---|
218 | FCOR BPM SDAC SDAC BPM FCOR SX10 ... |
---|
219 | SD8 Q10 SD9 BPM SX9 SD8 Q9 SD7 ... |
---|
220 | BEND SD7 Q6 SD5 SX7 SD4 BPM Q7 SD3 ... |
---|
221 | SX8 SD2 Q8 FCOR BPM SD13 SD13 BPM ... |
---|
222 | FCOR Q8 SD2 SX6 SD3 Q7 BPM SD4 ... |
---|
223 | SX5 SD5 Q6 SD7 BEND SD7 Q4 SD8 SX3 ... |
---|
224 | BPM SD9 Q5 SD10 BPM SX4 SD12 Q5 ... |
---|
225 | SD9 BPM SX3 SD8 Q4 SD7 BEND SD6 SX2 ... |
---|
226 | SD5 Q3 SD14 BPM Q2 SD3 SX1 SD2 Q1 ... |
---|
227 | FCOR BPM SD1 ]; |
---|
228 | |
---|
229 | SUP4 = [ ... |
---|
230 | SD1 BPM FCOR Q1 SD2 SX1 SD3 Q2 ... |
---|
231 | BPM SD14 Q3 SD5 SX2 SD6 BEND SD7 Q4 ... |
---|
232 | SD8 SX3 BPM SD9 Q5 SD12 SX4 BPM ... |
---|
233 | SD10 Q5 SD9 BPM SX3 SD8 Q4 SD7 BEND SD7 ... |
---|
234 | Q6 SD5 SX5 SD4 BPM Q7 SD3 SX6 ... |
---|
235 | SD2 Q8 FCOR BPM SD13 SD13 BPM FCOR ... |
---|
236 | Q8 SD2 SX8 SD3 Q7 BPM SD4 SX7 ... |
---|
237 | SD5 Q6 SD7 BEND SD7 Q9 SD8 SX9 BPM ... |
---|
238 | SD9 Q10 SD8 SX10 FCOR BPM SDAC SDAC ... |
---|
239 | BPM FCOR SX10 SD8 Q10 SD9 BPM SX9 ... |
---|
240 | SD8 Q9 SD7 BEND SD7 Q6 SD5 SX7 ... |
---|
241 | SD4 BPM Q7 SD3 SX8 SD2 Q8 FCOR BPM ... |
---|
242 | SD13 SD13 BPM FCOR Q8 SD2 SX8 ... |
---|
243 | SD3 Q7 BPM SD4 SX7 SD5 Q6 SD7 BEND... |
---|
244 | SD7 Q9 SD8 SX9 BPM SD9 Q10 SD8 SX10 ... |
---|
245 | FCOR BPM SDAC SDAC BPM FCOR SX10 ... |
---|
246 | SD8 Q10 SD9 BPM SX9 SD8 Q9 SD7 ... |
---|
247 | BEND SD7 Q6 SD5 SX7 SD4 BPM Q7 SD3 ... |
---|
248 | SX8 SD2 Q8 FCOR BPM SD13 SD13 BPM ... |
---|
249 | FCOR Q8 SD2 SX6 SD3 Q7 BPM SD4 ... |
---|
250 | SX5 SD5 Q6 SD7 BEND SD7 Q4 SD8 SX3 ... |
---|
251 | BPM SD9 Q5 SD10 BPM SX4 SD12 Q5 ... |
---|
252 | SD9 BPM SX3 SD8 Q4 SD7 BEND SD6 SX2 ... |
---|
253 | SD5 Q3 SD14 BPM Q2 SD3 SX1 SD2 Q1 ... |
---|
254 | FCOR BPM SD1 ]; |
---|
255 | |
---|
256 | |
---|
257 | ELIST = [DEBUT INJ SECT1 SUP1 SECT2 SUP2 SECT3 SUP3 SECT4 SUP4 CAV FIN]; |
---|
258 | %ELIST = [DEBUT INJ SECT1 SUP1 SECT2 SUP2 SECT3 SUP3 SECT4 SUP4 FIN]; |
---|
259 | |
---|
260 | buildlat(ELIST); |
---|
261 | |
---|
262 | % Set all magnets to same energy |
---|
263 | THERING = setcellstruct(THERING,'Energy',1:length(THERING),GLOBVAL.E0); |
---|
264 | |
---|
265 | evalin('caller','global THERING FAMLIST GLOBVAL'); |
---|
266 | |
---|
267 | atsummary; |
---|
268 | |
---|
269 | if nargout |
---|
270 | varargout{1} = THERING; |
---|
271 | end |
---|