1 | function varargout = lat_nano_176_234_122BPM_QSD |
---|
2 | % betax = 5 m dans les sections droites longues |
---|
3 | % solamor2 - soleil lattice w/o ID |
---|
4 | % Lattice definition file |
---|
5 | % Lattice for SOLEIL: perfect lattice no magnetic errors |
---|
6 | |
---|
7 | % Compiled by Laurent Nadolski and Amor Nadji |
---|
8 | % 09/01/02, ALS |
---|
9 | % mai 2006 : mis a jour vraies cotes BPM, correcteurs, dipole (coins, |
---|
10 | % chamd de fuite et gradient) |
---|
11 | % A. Nadji et P. Brunelle |
---|
12 | % Controlroom : set linearpass for quad (closed orbit) |
---|
13 | % No cavity; No Radiation PassMethod |
---|
14 | % April 20th 2007, Laurent S. nadolski |
---|
15 | % BPM downstream injection section had wrong location by |
---|
16 | % 30 mm, 2 FCOR in injection straight section was not at their proper |
---|
17 | % location |
---|
18 | % November 24th 2007, Laurent S. Nadolski |
---|
19 | % Bpms 5 on the wrong side of sextupole in cell 4, 8, 12 and 16 |
---|
20 | % December 7th, 2007, Laurent S. Nadolski |
---|
21 | % Added KEM V & H, K1 & K2 markers modelled as thin element |
---|
22 | % October 1, 2008 |
---|
23 | % Lattice with tunes 18.2020 and 10.3170 |
---|
24 | % Octobre 27, 2008 |
---|
25 | % Lattice with tunes 18.2020 and 10.3170 |
---|
26 | % Lattice with chromaticities 2.0 and 2.0 |
---|
27 | % March 4, 2009 |
---|
28 | % FHCOR and FVCOR [1 1] steerer moved 2180 mm upstream, |
---|
29 | % closed to entrance of vertical kicker |
---|
30 | % March 2009 - New quadrupole model from MAT with intermediate length |
---|
31 | % June 2009 - magnetcoefficient with index June 9 was changed |
---|
32 | % for sextupoles calibration |
---|
33 | % for quadrupole Just all ranges for quad variation with fit are present |
---|
34 | % July 2009 - Add PX2 Chicane |
---|
35 | % Novembre 2010 - S11 added, QT0 removed |
---|
36 | % 18 April 2011 - Tunes update 0.2017, 0.3169 moved 0.1990 0.3169 |
---|
37 | % 29 Mai 2011 - Add Scrapers + straight sections |
---|
38 | % July 2011 - Add PX2 as rbend, Nanoscopium, new circumference 354.09702 m |
---|
39 | % (200 um larger) |
---|
40 | |
---|
41 | global FAMLIST THERING GLOBVAL |
---|
42 | |
---|
43 | GLOBVAL.E0 = 2.7391e9; % Ring energy |
---|
44 | GLOBVAL.LatticeFile = mfilename; |
---|
45 | FAMLIST = cell(0); |
---|
46 | |
---|
47 | disp(['** Loading SOLEIL magnet lattice ', mfilename]); |
---|
48 | |
---|
49 | L0 = 3.540970204203009e+02;% design length [m] |
---|
50 | C0 = 2.99792458e8; % speed of light [m/s] |
---|
51 | HarmNumber = 416; |
---|
52 | |
---|
53 | %% RF Cavity |
---|
54 | % NAME L U[V] f[Hz] h method |
---|
55 | CAV = rfcavity('RF' , 0.0 , 4.0e+6 , HarmNumber*C0/L0, HarmNumber ,'CavityPass'); |
---|
56 | |
---|
57 | %% Marker and apertures |
---|
58 | SECT1 = marker('SECT1', 'IdentityPass'); |
---|
59 | SECT2 = marker('SECT2', 'IdentityPass'); |
---|
60 | SECT3 = marker('SECT3', 'IdentityPass'); |
---|
61 | SECT4 = marker('SECT4', 'IdentityPass'); |
---|
62 | DEBUT = marker('DEBUT', 'IdentityPass'); |
---|
63 | FIN = marker('FIN', 'IdentityPass'); |
---|
64 | |
---|
65 | %% SCRAPER |
---|
66 | HSCRAP = marker('HSCRAP', 'IdentityPass'); |
---|
67 | VSCRAP = marker('VSCRAP', 'IdentityPass'); |
---|
68 | |
---|
69 | %INJ = aperture('INJ',[-0.035 0.035 -0.0125 0.0125]*100,'AperturePass'); |
---|
70 | |
---|
71 | %% Elements in Injection section |
---|
72 | PtINJ = marker('PtINJ', 'IdentityPass'); |
---|
73 | K1 = corrector('K1',0.0,[0 0],'CorrectorPass'); |
---|
74 | K2 = corrector('K2',0.0,[0 0],'CorrectorPass'); |
---|
75 | K3 = corrector('K3',0.0,[0 0],'CorrectorPass'); |
---|
76 | K4 = corrector('K4',0.0,[0 0],'CorrectorPass'); |
---|
77 | |
---|
78 | %% BPM |
---|
79 | BPM = marker('BPM', 'IdentityPass'); |
---|
80 | |
---|
81 | %% QUADRUPOLES (compensation de l'effet des defauts de focalisation des |
---|
82 | LQC = 0.180100E+00*2 ; |
---|
83 | LQL = 0.248100E+00*2 ; |
---|
84 | |
---|
85 | QPassMethod = 'StrMPoleSymplectic4Pass'; |
---|
86 | |
---|
87 | Q1 = quadrupole('Q1' , LQC, -0.1163982E+01, QPassMethod); |
---|
88 | Q2 = quadrupole('Q2' , LQL, 0.1684902E+01, QPassMethod); |
---|
89 | Q3 = quadrupole('Q3' , LQC, -0.6879196E+00, QPassMethod); |
---|
90 | Q4 = quadrupole('Q4' , LQC, -0.1210454E+01, QPassMethod); |
---|
91 | Q5 = quadrupole('Q5' , LQC, 0.1699787E+01, QPassMethod); |
---|
92 | Q6 = quadrupole('Q6' , LQC, -0.1172340E+01, QPassMethod); |
---|
93 | Q7 = quadrupole('Q7' , LQL, 0.2016438E+01, QPassMethod); |
---|
94 | Q8 = quadrupole('Q8' , LQC, -0.1324658E+01, QPassMethod); |
---|
95 | Q9 = quadrupole('Q9' , LQC, -0.1375764E+01, QPassMethod); |
---|
96 | Q10 = quadrupole('Q10', LQC, 0.1734734E+01, QPassMethod); |
---|
97 | Q11 = quadrupole('Q11', LQC, -0.1693858E+01, QPassMethod); |
---|
98 | Q12 = quadrupole('Q12', LQL, 0.1694249E+01, QPassMethod); |
---|
99 | QSD = quadrupole('QSD', 1e-12, 0.0E+01, QPassMethod); |
---|
100 | |
---|
101 | %% SEXTUPOLES CHROMATICITES NULLES dans TracyII |
---|
102 | %avec defauts de focalisation des dipoles |
---|
103 | %P. Brunelle 02/05/06 |
---|
104 | F = 1e8; |
---|
105 | Finv = 1/F; |
---|
106 | SPassMethod = 'StrMPoleSymplectic4Pass'; |
---|
107 | |
---|
108 | S1 = sextupole('S1' , Finv, 0.300*5*F, SPassMethod); |
---|
109 | S2 = sextupole('S2' , Finv, -0.715*5*F, SPassMethod); |
---|
110 | S3 = sextupole('S3' , Finv, -0.338*5*F, SPassMethod); |
---|
111 | S4 = sextupole('S4' , Finv, 0.697*5*F, SPassMethod); |
---|
112 | S5 = sextupole('S5' , Finv, -0.672*5*F, SPassMethod); |
---|
113 | S6 = sextupole('S6' , Finv, 0.667*5*F, SPassMethod); |
---|
114 | S7 = sextupole('S7' , Finv, -0.992*5*F, SPassMethod); |
---|
115 | S8 = sextupole('S8' , Finv, 0.778*5*F, SPassMethod); |
---|
116 | S9 = sextupole('S9' , Finv, -0.791*5*F, SPassMethod); |
---|
117 | S10 = sextupole('S10', Finv, 0.468*5*F, SPassMethod); |
---|
118 | S11 = sextupole('S11', Finv, 0.300*5*F, SPassMethod); |
---|
119 | S12 = sextupole('S12', Finv, 1.000E-10*F, SPassMethod); % to be drawn by drawlattice |
---|
120 | |
---|
121 | %% Skew quadrupoles |
---|
122 | SQPassMethod = SPassMethod; |
---|
123 | QT = skewquad('SkewQuad', 1e-8, 0.0, SQPassMethod); |
---|
124 | QTPX2 = skewquad('QTPX2', 1e-10, 0.0, SPassMethod); % PX2 |
---|
125 | |
---|
126 | %% Slow feedback correctors |
---|
127 | COR = corrector('COR',0.0,[0 0],'CorrectorPass'); |
---|
128 | |
---|
129 | %% Machine study kickers |
---|
130 | KEMH = corrector('KEMH',0.0,[0 0],'CorrectorPass'); |
---|
131 | KEMV = corrector('KEMV',0.0,[0 0],'CorrectorPass'); |
---|
132 | |
---|
133 | %% PX2C H-correctors |
---|
134 | % Tuners |
---|
135 | PX2 = corrector('PX2C',0.0,[0 0],'CorrectorPass'); |
---|
136 | % Main magnets |
---|
137 | CHIPX2D1 = rbend2('PX2', 0.026, -2.25e-3, 0.00e-3, -2.25e-3, 0,0,'BndMPoleSymplectic4Pass'); |
---|
138 | CHIPX2D2 = rbend2('PX2', 0.052, 4.50e-3, -2.25e-3, 2.25e-3, 0,0,'BndMPoleSymplectic4Pass'); |
---|
139 | CHIPX2D3 = rbend2('PX2', 0.026, -2.25e-3, 2.25e-3, 0.00e-3, 0,0,'BndMPoleSymplectic4Pass'); |
---|
140 | PX2C= [QTPX2 PX2]; |
---|
141 | |
---|
142 | %% NANOC magnets for nanoscopium |
---|
143 | % Tuners |
---|
144 | CHINANO = corrector('NANOC',0.0,[0 0],'CorrectorPass'); % tuning magnet |
---|
145 | % Main magnets |
---|
146 | CHINANOD1 = rbend2('NANO', 0.069, -0.50e-3, 0.00e-3, -0.50e-3, 0,0,'BndMPoleSymplectic4Pass'); |
---|
147 | CHINANOD2 = rbend2('NANO', 0.069, -5.38e-3, -0.50e-3, -5.88e-3, 0,0,'BndMPoleSymplectic4Pass'); |
---|
148 | CHINANOD3 = rbend2('NANO', 0.138, 11.88e-3, -5.88e-3, +6.00e-3, 0,0,'BndMPoleSymplectic4Pass'); |
---|
149 | CHINANOD4 = rbend2('NANO', 0.069, -6.00e-3, 6.00e-3, 0.00e-3, 0,0,'BndMPoleSymplectic4Pass'); |
---|
150 | |
---|
151 | %% HU640 |
---|
152 | HCMHU640 = corrector('HCMHU640',0.0,[0 0],'CorrectorPass'); |
---|
153 | VCMHU640 = corrector('VCMHU640',0.0,[0 0],'CorrectorPass'); |
---|
154 | |
---|
155 | %% Fast feedback correctors |
---|
156 | FCOR = corrector('FCOR',0.0,[0 0],'CorrectorPass'); |
---|
157 | |
---|
158 | %% Feedforward correctors |
---|
159 | FFWDCOR = corrector('FFWDCOR',0.0,[0 0],'CorrectorPass'); |
---|
160 | |
---|
161 | %% Slow correctors in sextupole magnets |
---|
162 | SX1 = [S1 COR QT]; |
---|
163 | SX2 = [S2 COR QT]; |
---|
164 | SX3 = [S3 COR QT]; |
---|
165 | SX4 = [S4 COR QT]; |
---|
166 | SX5 = [S5 COR QT]; |
---|
167 | SX6 = [S6 COR QT]; |
---|
168 | SX7 = [S7 COR QT]; |
---|
169 | SX8 = [S8 COR QT]; |
---|
170 | SX9 = [S9 COR QT]; |
---|
171 | SX10 = [S10 COR QT]; |
---|
172 | SX11 = [S11 COR QT]; |
---|
173 | SX12 = [S12 COR QT]; |
---|
174 | |
---|
175 | |
---|
176 | %% DIPOLES |
---|
177 | % {** 1.3815 factor to fit with BETA ??? strange **} |
---|
178 | %theta = 2*pi/32; |
---|
179 | %fullgap = 0.105*0.724*2/6*1.3815*0.; |
---|
180 | % BEND = rbend2('BEND', L, theta, theta/2, theta/2, 0.0, ... |
---|
181 | % fullgap,'BendLinearFringeTiltPass'); |
---|
182 | theta = 2*pi/32; |
---|
183 | %theta2 = theta/2; |
---|
184 | thetae = theta/2 - 0.6e-3; |
---|
185 | thetas = theta/2 + 0.9e-3; |
---|
186 | K = 0.00204; |
---|
187 | fullgap = 0.037*0.724*2; |
---|
188 | %BEND = rbend2('BEND', 1.05243, theta, thetae, thetas, K,fullgap,'BendLinearPass'); |
---|
189 | BEND = rbend2('BEND', 1.05243, theta, thetae, thetas, K,fullgap,'BndMPoleSymplectic4Pass'); |
---|
190 | |
---|
191 | %% IDS |
---|
192 | % file='/Users/nadolski/Documents/Travail/codes/tracy/maille/soleil/w50/kick_w50_g55_p60.txt'; % made with RADIA |
---|
193 | % nslice=10; |
---|
194 | % [SWSV50 SWSV50Length] = idtable('SWSV50', nslice,file, (GLOBVAL.E0)/1e9,'IdTablePass'); |
---|
195 | % |
---|
196 | % SDWSV50 = drift('SDWSV50', 3.141452-SWSV50Length/2, 'DriftPass'); |
---|
197 | |
---|
198 | |
---|
199 | %% DRIFT SPACES |
---|
200 | |
---|
201 | SD1a = drift('SD1a', 1.4125, 'DriftPass'); |
---|
202 | SD1b = drift('SD1b', 0.7575, 'DriftPass'); |
---|
203 | SD2 = drift('SD2', 0.369900, 'DriftPass'); |
---|
204 | SD3 = drift('SD3', 0.181900, 'DriftPass'); |
---|
205 | SD5 = drift('SD5', 0.179900, 'DriftPass'); |
---|
206 | SD6 = drift('SD6', 0.79000, 'DriftPass'); |
---|
207 | SD7 = drift('SD7', 0.419900, 'DriftPass'); |
---|
208 | SD8 = drift('SD8', 0.1799000, 'DriftPass'); |
---|
209 | SD12= drift('SD12', 0.44990, 'DriftPass'); |
---|
210 | SD12u= drift('SD12', 0.2, 'DriftPass'); % upstream V V-scraper % TO BE UPDATED |
---|
211 | SD12d= drift('SD12', 0.44990-0.2, 'DriftPass'); % downstream H-scraper |
---|
212 | SD1d = drift('SD1d', 0.5170, 'DriftPass'); |
---|
213 | SD14a = drift('SD14a', 0.38500000, 'DriftPass'); |
---|
214 | SD9a = drift('SD9a', 0.204200 , 'DriftPass'); |
---|
215 | SD10a = drift('SD10a', 0.172300 , 'DriftPass'); |
---|
216 | SDAC1 = drift('SDAC1', 1.48428 , 'DriftPass'); |
---|
217 | SD13a= drift('SD13a', 3.141452 , 'DriftPass'); |
---|
218 | SD1e = drift('SD1e', 5.6589, 'DriftPass'); |
---|
219 | SD1c1 = drift('SD1c1', 0.8410, 'DriftPass'); % K3 - FCOR |
---|
220 | SD1c2 = drift('SD1c2', 0.601, 'DriftPass'); % FCOR KEMH |
---|
221 | SD1c3u= drift('SD1c3u', 0.683, 'DriftPass'); % KEMH - VSCRAPER |
---|
222 | SD1c3d= drift('SD1c3u', 1.560-0.683, 'DriftPass'); % VSCRAPER - K4 |
---|
223 | SD91 = drift('SD91', 0.251240, 'DriftPass'); |
---|
224 | SD41 = drift('SD41', 0.2521, 'DriftPass'); |
---|
225 | SD42 = drift('SD42', 0.205, 'DriftPass'); |
---|
226 | SD92 = drift('SD92', 0.204300, 'DriftPass'); |
---|
227 | SD93 = drift('SD93', 0.251300 , 'DriftPass'); |
---|
228 | SD43 = drift('SD43', 0.2051 , 'DriftPass'); |
---|
229 | SD141 = drift('SD141', 0.431900, 'DriftPass'); |
---|
230 | SDB1 = drift('SDB1', 0.29100, 'DriftPass'); |
---|
231 | SDB2 = drift('SDB2', 0.16680000, 'DriftPass'); |
---|
232 | SDB3 = drift('SDB3', 0.252, 'DriftPass'); |
---|
233 | SDB4 = drift('SDB4', 0.2776 ,'DriftPass'); |
---|
234 | SDB5 = drift('SDB5', 0.205 ,'DriftPass'); |
---|
235 | SDB6 = drift('SDB6', 0.119800 ,'DriftPass'); |
---|
236 | SDB7 = drift('SDB7', 0.166900 , 'DriftPass'); |
---|
237 | SDB8 = drift('SDB8', 0.252 , 'DriftPass'); |
---|
238 | SDB9 = drift('SDB9', 0.119800 ,'DriftPass'); |
---|
239 | SDB10= drift('SDB10',0.166900 , 'DriftPass'); |
---|
240 | SDB11= drift('SDB11',0.2519, 'DriftPass'); |
---|
241 | SDB12= drift('SDB12',0.2049, 'DriftPass'); |
---|
242 | SDB13= drift('SDB13',0.119800, 'DriftPass'); |
---|
243 | SDB14= drift('SDB14',0.1668000, 'DriftPass'); |
---|
244 | SDB15= drift('SDB15',0.252 , 'DriftPass'); |
---|
245 | SDB17= drift('SDB17',0.205 , 'DriftPass'); |
---|
246 | SDB18= drift('SDB18',0.1199000 , 'DriftPass'); |
---|
247 | SDC1 = drift('SDC1' , 0.241900 , 'DriftPass'); |
---|
248 | SDC2 = drift('SDC2' , 0.079 , 'DriftPass'); |
---|
249 | SDC3 = drift('SDC3' , 0.07845, 'DriftPass'); |
---|
250 | SDC4 = drift('SDC4' , 0.3358, 'DriftPass'); |
---|
251 | SDC5 = drift('SDC5' , 0.0846, 'DriftPass'); |
---|
252 | SDC6 = drift('SDC6' , 0.079, 'DriftPass'); |
---|
253 | SDC7 = drift('SDC7' , 0.342 , 'DriftPass'); |
---|
254 | SDC8 = drift('SDC8' , 0.241900 , 'DriftPass'); |
---|
255 | SDC9 = drift('SDC9' , 0.079 , 'DriftPass'); |
---|
256 | DRFT10= drift('DRFT10',0.07845, 'DriftPass'); |
---|
257 | DRFT11= drift('DRFT11',0.2419000 , 'DriftPass'); |
---|
258 | DRFT12= drift('DRFT12',0.3358 , 'DriftPass'); |
---|
259 | DRFT13= drift('DRFT13',0.0846 , 'DriftPass'); |
---|
260 | DRFT14= drift('DRFT14',0.0788 , 'DriftPass'); |
---|
261 | DRFT15= drift('DRFT15',0.3422 , 'DriftPass'); |
---|
262 | DRFT16= drift('DRFT16',0.241900 , 'DriftPass'); |
---|
263 | DRFT17= drift('DRFT17',0.079 , 'DriftPass'); |
---|
264 | DRFT18= drift('DRFT18',0.07845, 'DriftPass'); |
---|
265 | DRFT19= drift('DRFT19',0.24190 , 'DriftPass'); |
---|
266 | SDC20= drift('SDC20',0.241900 , 'DriftPass'); |
---|
267 | SDC21= drift('SDC21',0.079 , 'DriftPass'); |
---|
268 | SDC22= drift('SDC22',0.29090 , 'DriftPass'); |
---|
269 | SDC24= drift('SDC24',1.379 , 'DriftPass'); |
---|
270 | %SDC23a= drift('SDC23a',0.632 , 'DriftPass'); % BPM - K1 |
---|
271 | SDC23b= drift('SDC23b',1.983 , 'DriftPass'); % K1 - KEMV |
---|
272 | SDC23c= drift('SDC23c',1.019 , 'DriftPass'); % KEMV - K2 |
---|
273 | SDC23d= drift('SDC23d',0.676 , 'DriftPass'); % K2 - FCOR |
---|
274 | SDC23e= drift('SDC23a',0.147 , 'DriftPass'); % BPM - FCOR [1 1] |
---|
275 | SDC23f= drift('SDC23a',0.485 , 'DriftPass'); % FCOR [1 1] next SD |
---|
276 | |
---|
277 | % HU640 straight section |
---|
278 | SDHU640a = drift('SDHU640a', 1.7394, 'DriftPass'); |
---|
279 | SDHU640b = drift('SDHU640b', 0.6400, 'DriftPass'); |
---|
280 | SDHU640c = drift('SDHU640c', 3.2795, 'DriftPass'); |
---|
281 | SDHU640d = drift('SDHU640d', 3.1195, 'DriftPass'); |
---|
282 | SDHU640e = drift('SDHU640e', 0.6400, 'DriftPass'); |
---|
283 | SDHU640f = drift('SDHU640f', 1.8994, 'DriftPass'); |
---|
284 | |
---|
285 | % PX2 straights |
---|
286 | SDPX2a= drift('SDPX2a', 0.363902-FAMLIST{CHIPX2D1}.ElemData.Length/2, 'DriftPass'); % BPM - CHI.1 |
---|
287 | SDPX2b= drift('SDPX2b', 2.857550-FAMLIST{CHIPX2D1}.ElemData.Length/2-FAMLIST{CHIPX2D2}.ElemData.Length/2, 'DriftPass'); % CHI.1 - CHI.2 |
---|
288 | SDPX2c= drift('SDPX2c', 0.203902-FAMLIST{CHIPX2D1}.ElemData.Length/2, 'DriftPass'); % CHI.3 - BPM |
---|
289 | |
---|
290 | % Nanoscopium straigths (upstream) |
---|
291 | SDNANO1 = drift('SDNANO1', 0.4501-FAMLIST{CHINANOD1}.ElemData.Length/2, 'DriftPass'); % BPM - CHI.1 |
---|
292 | SDNANO2 = drift('SDNANO2', 0.5529-FAMLIST{CHINANOD1}.ElemData.Length/2, 'DriftPass'); % CHI.1 - FFWDCOR |
---|
293 | SDNANO3 = drift('SDNANO3', 2.5630, 'DriftPass'); % FFWDCOR - FFWDCOR |
---|
294 | SDNANO4 = drift('SDNANO4', 0.4330-FAMLIST{CHINANOD2}.ElemData.Length/2, 'DriftPass'); % FFWDCOR - CHI.2 |
---|
295 | SDNANO5 = drift('SDNANO5', 0.2683-FAMLIST{CHINANOD2}.ElemData.Length/2, 'DriftPass'); % CHI.2 - BPM |
---|
296 | SDNANO6 = drift('SDNANO6', 0.0780, 'DriftPass'); % BPM - FCOR |
---|
297 | SDNANO6a= drift('SDNANO6a', 0.5017-0.0780-FAMLIST{Q11}.ElemData.Length/2, 'DriftPass'); % BPM - Q11.1 |
---|
298 | SDNANO7 = drift('SDNANO7', 0.4100-FAMLIST{Q11}.ElemData.Length/2-FAMLIST{S12}.ElemData.Length/2, 'DriftPass'); % Q11.1 - S12 |
---|
299 | SDNANO8 = drift('SDNANO8', 0.4800-FAMLIST{Q12}.ElemData.Length/2-FAMLIST{S12}.ElemData.Length/2, 'DriftPass'); % S12 - Q11 |
---|
300 | % Nanoscopium straigths (downstream) |
---|
301 | SDNANO9 = drift('SDNANO9', 0.4628-0.0780-FAMLIST{Q11}.ElemData.Length/2, 'DriftPass'); % Q11.2 - FOFB |
---|
302 | SDNANO10= drift('SDNANO10', 0.3072-FAMLIST{CHINANOD3}.ElemData.Length/2, 'DriftPass'); % BPM - CHI.3 |
---|
303 | SDNANO11= drift('SDNANO11', 0.4330-FAMLIST{CHINANOD3}.ElemData.Length/2, 'DriftPass'); % FFWDCOR - FFWDCOR |
---|
304 | |
---|
305 | |
---|
306 | %% STRAIGHT SECTIONS (between BPMs) |
---|
307 | % 4 long straight sections (12 m, available part 10.50 m) |
---|
308 | |
---|
309 | %SDL01 (injection) is split in upstream and downstrem parts |
---|
310 | SDL01u = [SDC23e FCOR SDC23f K1 SDC23b KEMV SDC23c K2 SDC23d SDC24]; |
---|
311 | SDL01d = [QSD SD1a PtINJ SD1b K3 SD1c1 FCOR SD1c2 KEMH SD1c3u VSCRAP SD1c3d K4 SD1d]; |
---|
312 | % SDL05 HU640 straight section |
---|
313 | HU640upstream = [SDHU640a VCMHU640 SDHU640b HCMHU640 SDHU640c]; |
---|
314 | HU640downstream = [SDHU640d HCMHU640 SDHU640e VCMHU640 SDHU640f]; |
---|
315 | SDL05 = [HU640upstream QSD HU640downstream]; % DESIRS HU640 |
---|
316 | SDL09 = [SD1e QSD SD1e]; |
---|
317 | % TOMOGRAPHY U18 CRYO + NANOSCOPIUM U20 |
---|
318 | SDL13u = [SDNANO1 CHINANO CHINANOD1 SDNANO2 FFWDCOR SDNANO3 FFWDCOR SDNANO4 CHINANOD2 CHINANO SDNANO5 ... |
---|
319 | BPM SDNANO6 FCOR SDNANO6a Q11 SDNANO7 SX12 SDNANO8]; |
---|
320 | SDL13d = [SDNANO8 SX12 SDNANO7 Q11 SDNANO9 FCOR SDNANO6 BPM ... |
---|
321 | SDNANO10 CHINANO CHINANOD3 SDNANO11 FFWDCOR SDNANO3 FFWDCOR SDNANO2 CHINANOD4 CHINANO SDNANO1]; |
---|
322 | SDL13 = [SDL13u Q12 QSD SDL13d]; |
---|
323 | %SDL13 = [SD1e SD1e]; % NANOSCOPIUM U20 + TOMOGRAPHY U18 CRYO |
---|
324 | |
---|
325 | % 12 medium straigt sections (7 m, available part for IDs 5.46 m) |
---|
326 | SDM02 = [SD13a QSD CAV SD13a]; % CRYOMODULE #2 |
---|
327 | SDM03 = [SD13a QSD SD13a]; % CRYOMUDULE #1 not put in the model for simplicity |
---|
328 | SDM04 = [SD13a QSD SD13a]; % PLEIADES HU256 + HU80 |
---|
329 | SDM06 = [SD13a QSD SD13a]; % PUMA future Wiggler |
---|
330 | %SDM06 = [SDWSV50 SWSV50 SDWSV50]; % PUMA future Wiggler |
---|
331 | SDM07 = [SD13a QSD SD13a]; % DEIMOS HU52+EMPHU65 |
---|
332 | SDM08 = [SD13a QSD SD13a]; % TEMPO HU80+HU44 |
---|
333 | SDM10 = [SD13a QSD SD13a]; % HERMES HU64+HU42 |
---|
334 | SDM11 = [SDPX2a PX2C CHIPX2D1 SDPX2b PX2C QSD CHIPX2D2 SDPX2b CHIPX2D3 PX2C SDPX2c]; % PX2 U24 |
---|
335 | SDM12 = [SD13a QSD SD13a]; % ANTARES HU256 + HU60 |
---|
336 | SDM14 = [SD13a QSD SD13a]; % SEXTANTS (ex microFocus) HU44 + HU80 |
---|
337 | SDM15 = [SD13a QSD SD13a]; % CASSIOPEE HU256 + HU80 |
---|
338 | SDM16 = [SD13a QSD SD13a]; % LUCIA HU52 |
---|
339 | |
---|
340 | % 8 short straigt sections (3.6 m, available part for IDs 2.8 m) |
---|
341 | SDC02 = [SDAC1 QSD SDAC1];% LIGNE ALPHA |
---|
342 | SDC03 = [SDAC1 QSD SDAC1];% PSICHE WSV50 |
---|
343 | SDC06 = [SDAC1 QSD SDAC1];% CRISTAL U20 |
---|
344 | SDC07 = [SDAC1 QSD SDAC1];% GALAXIES U20 |
---|
345 | SDC10 = [SDAC1 QSD SDAC1];% PX1 U20 |
---|
346 | SDC11 = [SDAC1 QSD SDAC1];% SWING U20 |
---|
347 | SDC14 = [SDAC1 QSD SDAC1];% SIXS U20 |
---|
348 | SDC15 = [SDAC1 QSD SDAC1];% SIRIUS HU34 |
---|
349 | |
---|
350 | |
---|
351 | %% Lattice |
---|
352 | % Superperiods |
---|
353 | |
---|
354 | % SUPERPERIOD #1 |
---|
355 | SUP1 = [... |
---|
356 | BPM SDB1 Q1 SD2 SX1 SD3 Q2 ... |
---|
357 | SDB2 BPM SD14a Q3 SD5 SX2 SD6 ... |
---|
358 | BEND SD7 Q4 SD8 SX3 ... |
---|
359 | SDB3 BPM SD9a Q5 SD12u HSCRAP SD12d SX4 ... |
---|
360 | SDB4 BPM SD10a Q5 SD91 ... |
---|
361 | BPM SDB5 SX3 SD8 Q4 SD7 BEND ... |
---|
362 | SD7 Q6 SD5 SX5 SD41 ... |
---|
363 | BPM SDB6 Q7 SD3 SX6 SD2 Q8 ... |
---|
364 | SDC1 FCOR SDC2 BPM SDM02 BPM ... |
---|
365 | SDC3 FCOR SDC1 ... |
---|
366 | Q8 SD2 SX8 SD3 Q7 SDB7 ... |
---|
367 | BPM SD42 SX7 SD5 Q6 SD7 ... |
---|
368 | BEND SD7 Q9 SD8 SX9 SDB8 ... |
---|
369 | BPM SD9a Q10 SD8 SX10 SDC4 ... |
---|
370 | FCOR SDC5 BPM SDC02 ... |
---|
371 | BPM SDC6 FCOR SDC7 SX10 SD8 Q10 SD91 ... |
---|
372 | BPM SD42 SX9 SD8 Q9 SD7 ... |
---|
373 | BEND SD7 Q6 SD5 SX7 SD41 ... |
---|
374 | BPM SDB9 Q7 SD3 SX8 SD2 Q8 SDC8 ... |
---|
375 | FCOR SDC9 BPM SDM03 ... |
---|
376 | BPM DRFT10 FCOR DRFT11 Q8 SD2 SX8 SD3 Q7 ... |
---|
377 | SDB10 BPM SD42 SX7 SD5 Q6 SD7 ... |
---|
378 | BEND SD7 Q9 SD8 SX9 SDB11 ... |
---|
379 | BPM SD92 Q10 SD8 SX10 DRFT12 ... |
---|
380 | FCOR DRFT13 BPM SDC03 ... |
---|
381 | BPM DRFT14 FCOR DRFT15 SX10 SD8 Q10 SD93 ... |
---|
382 | BPM SDB12 SX9 SD8 Q9 SD7 ... |
---|
383 | BEND SD7 Q6 SD5 SX7 SD41 ... |
---|
384 | BPM SDB13 Q7 SD3 SX8 SD2 Q8 DRFT16 ... |
---|
385 | FCOR DRFT17 BPM SDM04 ... |
---|
386 | BPM DRFT18 FCOR DRFT19 Q8 SD2 SX6 SD3 Q7 ... |
---|
387 | SDB14 BPM SD43 SX5 SD5 Q6 SD7 ... |
---|
388 | BEND SD7 Q4 SD8 SX3 SDB15 ... |
---|
389 | BPM SD9a Q5 SD12 ... |
---|
390 | SX4 SDB4 BPM SD10a Q5 SD93 ... |
---|
391 | BPM SDB17 SX3 SD8 Q4 SD7 ... |
---|
392 | BEND SD6 SX2 SD5 Q3 SD141 ... |
---|
393 | BPM SDB18 Q2 SD3 SX1 SD2 Q1 ... |
---|
394 | SDC20 FCOR SDC21 BPM]; |
---|
395 | |
---|
396 | % SUPERPERIOD #2 |
---|
397 | SUP2 = [ ... |
---|
398 | BPM SDC2 FCOR SDC1 ... |
---|
399 | Q1 SD2 SX1 SD3 Q2 ... |
---|
400 | SDB7 BPM SD14a Q3 SD5 SX2 SD6 ... |
---|
401 | BEND SD7 Q4 SD8 SX3 ... |
---|
402 | SDB3 BPM SD9a Q5 SD12 SX4 ... |
---|
403 | SDB4 BPM SD10a Q5 SD93 ... |
---|
404 | BPM SDB5 SX3 SD8 Q4 SD7 BEND ... |
---|
405 | SD7 Q6 SD5 SX5 SD41 ... |
---|
406 | BPM SDB6 Q7 SD3 SX6 SD2 Q8 ... |
---|
407 | SDC1 FCOR SDC2 BPM SDM06 BPM ... |
---|
408 | SDC2 FCOR SDC1 ... |
---|
409 | Q8 SD2 SX8 SD3 Q7 SDB7 ... |
---|
410 | BPM SDB5 SX7 SD5 Q6 SD7 ... |
---|
411 | BEND SD7 Q9 SD8 SX9 SDB3 ... |
---|
412 | BPM SD9a Q10 SD8 SX10 SDC4 ... |
---|
413 | FCOR SDC5 BPM SDC06 ... |
---|
414 | BPM DRFT14 FCOR DRFT15 SX10 SD8 Q10 SD93 ... |
---|
415 | BPM SDB12 SX9 SD8 Q9 SD7 ... |
---|
416 | BEND SD7 Q6 SD5 SX7 SD41 ... |
---|
417 | BPM SDB6 Q7 SD3 SX8 SD2 Q8 SDC1 ... |
---|
418 | FCOR SDC2 BPM SDM07 ... |
---|
419 | BPM SDC2 FCOR SDC1 Q8 SD2 SX8 SD3 Q7 ... |
---|
420 | SDB7 BPM SDB5 SX7 SD5 Q6 SD7 ... |
---|
421 | BEND SD7 Q9 SD8 SX9 SDB3 ... |
---|
422 | BPM SD9a Q10 SD8 SX10 SDC4 ... |
---|
423 | FCOR SDC5 BPM SDC07 ... |
---|
424 | BPM DRFT14 FCOR DRFT15 SX10 SD8 Q10 SD93 ... |
---|
425 | BPM SDB12 SX9 SD8 Q9 SD7 ... |
---|
426 | BEND SD7 Q6 SD5 SX7 SD41 ... |
---|
427 | BPM SDB6 Q7 SD3 SX8 SD2 Q8 SDC1 ... |
---|
428 | FCOR SDC2 BPM SDM08 ... |
---|
429 | BPM SDC2 FCOR SDC1 Q8 SD2 SX6 SD3 Q7 ... |
---|
430 | SDB7 BPM SD42 SX5 SD5 Q6 SD7 ... |
---|
431 | BEND SD7 Q4 SD8 SX3 SDB3 ... |
---|
432 | BPM SD9a Q5 SD12 ... |
---|
433 | SX4 SDB4 BPM SD10a Q5 SD93 ... |
---|
434 | BPM SD42 SX3 SD8 Q4 SD7 ... |
---|
435 | BEND SD6 SX2 SD5 Q3 SD141 ... |
---|
436 | BPM SDB18 Q2 SD3 SX1 SD2 Q1 ... |
---|
437 | SDC1 FCOR SDC2 BPM]; |
---|
438 | |
---|
439 | % SUPERPERIOD #3 |
---|
440 | SUP3 = [ ... |
---|
441 | BPM SDC2 FCOR SDC1 ... |
---|
442 | Q1 SD2 SX1 SD3 Q2 ... |
---|
443 | SDB7 BPM SD14a Q3 SD5 SX2 SD6 ... |
---|
444 | BEND SD7 Q4 SD8 SX3 ... |
---|
445 | SDB3 BPM SD9a Q5 SD12 SX4 ... |
---|
446 | SDB4 BPM SD10a Q5 SD93 ... |
---|
447 | BPM SDB5 SX3 SD8 Q4 SD7 BEND ... |
---|
448 | SD7 Q6 SD5 SX5 SD41 ... |
---|
449 | BPM SDB6 Q7 SD3 SX6 SD2 Q8 ... |
---|
450 | SDC1 FCOR SDC2 BPM SDM10 BPM ... |
---|
451 | SDC2 FCOR SDC1 ... |
---|
452 | Q8 SD2 SX8 SD3 Q7 SDB7 ... |
---|
453 | BPM SDB5 SX7 SD5 Q6 SD7 ... |
---|
454 | BEND SD7 Q9 SD8 SX9 SDB3 ... |
---|
455 | BPM SD9a Q10 SD8 SX10 SDC4 ... |
---|
456 | FCOR SDC5 BPM SDC10 ... |
---|
457 | BPM DRFT14 FCOR DRFT15 SX10 SD8 Q10 SD93 ... |
---|
458 | BPM SDB12 SX9 SD8 Q9 SD7 ... |
---|
459 | BEND SD7 Q6 SD5 SX7 SD41 ... |
---|
460 | BPM SDB6 Q7 SD3 SX8 SD2 Q8 SDC1 ... |
---|
461 | FCOR SDC2 BPM SDM11 ... |
---|
462 | BPM SDC2 FCOR SDC1 Q8 SD2 SX8 SD3 Q7 ... |
---|
463 | SDB7 BPM SDB5 SX7 SD5 Q6 SD7 ... |
---|
464 | BEND SD7 Q9 SD8 SX9 SDB3 ... |
---|
465 | BPM SD9a Q10 SD8 SX10 SDC4 ... |
---|
466 | FCOR SDC5 BPM SDC11 ... |
---|
467 | BPM DRFT14 FCOR DRFT15 SX10 SD8 Q10 SD93 ... |
---|
468 | BPM SDB12 SX9 SD8 Q9 SD7 ... |
---|
469 | BEND SD7 Q6 SD5 SX7 SD41 ... |
---|
470 | BPM SDB6 Q7 SD3 SX8 SD2 Q8 SDC1 ... |
---|
471 | FCOR SDC2 BPM SDM12 ... |
---|
472 | BPM SDC2 FCOR SDC1 Q8 SD2 SX6 SD3 Q7 ... |
---|
473 | SDB7 BPM SD42 SX5 SD5 Q6 SD7 ... |
---|
474 | BEND SD7 Q4 SD8 SX3 SDB3 ... |
---|
475 | BPM SD9a Q5 SD12 ... |
---|
476 | SX4 SDB4 BPM SD10a Q5 SD93 ... |
---|
477 | BPM SD42 SX3 SD8 Q4 SD7 ... |
---|
478 | BEND SD6 SX2 SD5 Q3 SD141 ... |
---|
479 | BPM SDB18 Q2 SD3 SX11 SD2 Q1 ... |
---|
480 | SDC1 FCOR SDC2 BPM]; |
---|
481 | |
---|
482 | % SUPERPERIOD #4 |
---|
483 | SUP4 = [ ... |
---|
484 | BPM SDC2 FCOR SDC1 ... |
---|
485 | Q1 SD2 SX11 SD3 Q2 ... |
---|
486 | SDB7 BPM SD14a Q3 SD5 SX2 SD6 ... |
---|
487 | BEND SD7 Q4 SD8 SX3 ... |
---|
488 | SDB3 BPM SD9a Q5 SD12 SX4 ... |
---|
489 | SDB4 BPM SD10a Q5 SD93 ... |
---|
490 | BPM SDB5 SX3 SD8 Q4 SD7 BEND ... |
---|
491 | SD7 Q6 SD5 SX5 SD41 ... |
---|
492 | BPM SDB6 Q7 SD3 SX6 SD2 Q8 ... |
---|
493 | SDC1 FCOR SDC2 BPM SDM14 BPM ... |
---|
494 | SDC2 FCOR SDC1 ... |
---|
495 | Q8 SD2 SX8 SD3 Q7 SDB7 ... |
---|
496 | BPM SDB5 SX7 SD5 Q6 SD7 ... |
---|
497 | BEND SD7 Q9 SD8 SX9 SDB3 ... |
---|
498 | BPM SD9a Q10 SD8 SX10 SDC4 ... |
---|
499 | FCOR SDC5 BPM SDC14 ... |
---|
500 | BPM DRFT14 FCOR DRFT15 SX10 SD8 Q10 SD93 ... |
---|
501 | BPM SDB12 SX9 SD8 Q9 SD7 ... |
---|
502 | BEND SD7 Q6 SD5 SX7 SD41 ... |
---|
503 | BPM SDB6 Q7 SD3 SX8 SD2 Q8 SDC1 ... |
---|
504 | FCOR SDC2 BPM SDM15 ... |
---|
505 | BPM SDC2 FCOR SDC1 Q8 SD2 SX8 SD3 Q7 ... |
---|
506 | SDB7 BPM SDB5 SX7 SD5 Q6 SD7 ... |
---|
507 | BEND SD7 Q9 SD8 SX9 SDB3 ... |
---|
508 | BPM SD9a Q10 SD8 SX10 SDC4 ... |
---|
509 | FCOR SDC5 BPM SDC15 ... |
---|
510 | BPM DRFT14 FCOR DRFT15 SX10 SD8 Q10 SD93 ... |
---|
511 | BPM SDB12 SX9 SD8 Q9 SD7 ... |
---|
512 | BEND SD7 Q6 SD5 SX7 SD41 ... |
---|
513 | BPM SDB6 Q7 SD3 SX8 SD2 Q8 SDC1 ... |
---|
514 | FCOR SDC2 BPM SDM16 ... |
---|
515 | BPM SDC2 FCOR SDC1 Q8 SD2 SX6 SD3 Q7 ... |
---|
516 | SDB7 BPM SD42 SX5 SD5 Q6 SD7 ... |
---|
517 | BEND SD7 Q4 SD8 SX3 SDB3 ... |
---|
518 | BPM SD9a Q5 SD12 ... |
---|
519 | SX4 SDB4 BPM SD10a Q5 SD93 ... |
---|
520 | BPM SD42 SX3 SD8 Q4 SD7 ... |
---|
521 | BEND SD6 SX2 SD5 Q3 SD141 ... |
---|
522 | BPM SDB18 Q2 SD3 SX1 SD2 Q1 ... |
---|
523 | SDC22 BPM]; |
---|
524 | |
---|
525 | %THE STORAGE RING |
---|
526 | ELIST = [... |
---|
527 | DEBUT ... |
---|
528 | SECT1 SDL01d SUP1 ... |
---|
529 | SECT2 SDL05 SUP2 ... |
---|
530 | SECT3 SDL09 SUP3 ... |
---|
531 | SECT4 SDL13 SUP4 SDL01u ... |
---|
532 | FIN]; |
---|
533 | |
---|
534 | buildlat(ELIST); |
---|
535 | |
---|
536 | % Set all magnets to same energy |
---|
537 | THERING = setcellstruct(THERING,'Energy',1:length(THERING),GLOBVAL.E0); |
---|
538 | |
---|
539 | ATIndexList = atindex; |
---|
540 | |
---|
541 | % set nanoscopium triplets upstream and downstream of SDL13 |
---|
542 | THERING = setNanoscopium(THERING,ATIndexList); |
---|
543 | |
---|
544 | % set PX2 tuner chicane |
---|
545 | %THERING{ATIndexList.PX2C(1)}.KickAngle(1) = -2.25e-3; % rad |
---|
546 | %THERING{ATIndexList.PX2C(2)}.KickAngle(1) = 2*2.25e-3; % rad |
---|
547 | %THERING{ATIndexList.PX2C(3)}.KickAngle(1) = -2.25e-3; % rad |
---|
548 | |
---|
549 | %% set NANOSCOPIUM tuner magnets |
---|
550 | THERING{ATIndexList.NANOC(1)}.KickAngle(1) = -5.00e-6*0; % rad |
---|
551 | THERING{ATIndexList.NANOC(2)}.KickAngle(1) = 2.25e-6*0; % rad |
---|
552 | THERING{ATIndexList.NANOC(3)}.KickAngle(1) = -1.25e-6*0; % rad |
---|
553 | THERING{ATIndexList.NANOC(4)}.KickAngle(1) = -2.25e-6*0; % rad |
---|
554 | |
---|
555 | evalin('caller','global THERING FAMLIST GLOBVAL'); |
---|
556 | atsummary; |
---|
557 | |
---|
558 | |
---|
559 | if nargout |
---|
560 | varargout{1} = THERING; |
---|
561 | end |
---|
562 | |
---|
563 | function THERING= setNanoscopium(THERING,ATIndexList) |
---|
564 | |
---|
565 | QP1N = -0.1272138E+01; |
---|
566 | QP2N = 0.1860390E+01; |
---|
567 | QP3N = -0.1142906E+01; |
---|
568 | THERING = setquad(THERING, ATIndexList.Q1(6), QP1N); |
---|
569 | THERING = setquad(THERING, ATIndexList.Q1(7), QP1N); |
---|
570 | THERING = setquad(THERING, ATIndexList.Q2(6), QP2N); |
---|
571 | THERING = setquad(THERING, ATIndexList.Q2(7), QP2N); |
---|
572 | THERING = setquad(THERING, ATIndexList.Q3(6), QP3N); |
---|
573 | THERING = setquad(THERING, ATIndexList.Q3(7), QP3N); |
---|
574 | |
---|
575 | function THERING = setquad(THERING, Idx, K) |
---|
576 | |
---|
577 | THERING{Idx}.K = K; |
---|
578 | THERING{Idx}.PolynomB(2) = K; |
---|
579 | fprintf('%s %03d %+f %+f\n', THERING{Idx}.FamName, Idx, THERING{Idx}.K, THERING{Idx}.PolynomB(2)); |
---|