1 | function boosterreal |
---|
2 | % Booster soleil lattice w/o ID |
---|
3 | % Lattice definition file, include BPM and steerer at right location (Alex) |
---|
4 | % Perfect lattice no magnetic errors |
---|
5 | % Controlroom : set linearpass for quad (closed orbit) |
---|
6 | |
---|
7 | % Fevrier 2006 |
---|
8 | % A. Loulergue |
---|
9 | |
---|
10 | global FAMLIST THERING GLOBVAL |
---|
11 | |
---|
12 | %GLOBVAL.E0 = 2.75e9; % Ring energy |
---|
13 | GLOBVAL.E0 = 0.1085e9; % Ring energy |
---|
14 | % GLOBVAL.E0 = 0.100e9; % Ring energy |
---|
15 | |
---|
16 | GLOBVAL.LatticeFile = mfilename; |
---|
17 | FAMLIST = cell(0); |
---|
18 | |
---|
19 | disp(['** Loading SOLEIL booster magnet lattice ', mfilename]); |
---|
20 | |
---|
21 | L0 = 156.6202003; % design length [m] |
---|
22 | C0 = 2.99792458e8; % speed of light [m/s] |
---|
23 | HarmNumber = 184; |
---|
24 | |
---|
25 | %% Cavity |
---|
26 | % NAME L U[V] f[Hz] h method |
---|
27 | CAV = rfcavity('RF' , 0 , 0.844e+6 , HarmNumber*C0/L0, ... |
---|
28 | HarmNumber ,'CavityPass'); |
---|
29 | CAV = rfcavity('RF' , 0 , 0.200e+6 , HarmNumber*C0/L0, ... |
---|
30 | HarmNumber ,'CavityPass'); |
---|
31 | % CAV = rfcavity('RF' , 0 , 0.204e+6 , HarmNumber*C0/L0, ... |
---|
32 | % HarmNumber ,'ThinCavityPass'); |
---|
33 | |
---|
34 | %% Marker and apertures |
---|
35 | SECT1 = marker('SECT1', 'IdentityPass'); |
---|
36 | SECT2 = marker('SECT2', 'IdentityPass'); |
---|
37 | DEBUT = marker('DEBUT', 'IdentityPass'); |
---|
38 | FIN = marker('FIN', 'IdentityPass'); |
---|
39 | |
---|
40 | INJ = aperture('INJ',[-0.035 0.035 -0.125 0.125],'AperturePass'); |
---|
41 | |
---|
42 | % BPM |
---|
43 | BPM = marker('BPM', 'IdentityPass'); |
---|
44 | |
---|
45 | % DRIFT SPACES |
---|
46 | SD1 = drift('SD1', 3.15955 , 'DriftPass'); |
---|
47 | SD2 = drift('SD2',.408000 , 'DriftPass'); |
---|
48 | SD3 = drift('SD3',.591550 , 'DriftPass'); |
---|
49 | |
---|
50 | SDBP= drift('SDPB',.150000 , 'DriftPass');% Distance qpole BPM |
---|
51 | SDCO= drift('SDCO',.220000 , 'DriftPass');% Distance BPM corr |
---|
52 | SD31= drift('SD31',.221550 , 'DriftPass'); % tient compte BPM et CORR |
---|
53 | SD11= drift('SD11', 2.41955 , 'DriftPass');% tient compte 1 CORR |
---|
54 | |
---|
55 | |
---|
56 | % QUADRUPOLES |
---|
57 | QPD = quadrupole('QPD' , 0.40,-0.9382000E+00 , 'QuadLinearPass'); |
---|
58 | QPF = quadrupole('QPF' , 0.40, 0.1178000E+01 , 'QuadLinearPass'); |
---|
59 | |
---|
60 | % SEXTUPOLES for xix=0.4 and xi_y=1.4 |
---|
61 | F = 1e8; |
---|
62 | Finv = 1/F; |
---|
63 | % SXF = 0.383 SXD = -0.525 for correcting natural chromaticities (Alex) |
---|
64 | % do not take in account 1. Eddy current when ramping the energy |
---|
65 | % 2. remnant sextupole field at injection field |
---|
66 | % 3. sextupole from geometry of dipole |
---|
67 | |
---|
68 | SXF = sextupole('SXF' , Finv, 0.383*F, 'StrMPoleSymplectic4Pass'); |
---|
69 | SXD = sextupole('SXD' , Finv, -0.525*F, 'StrMPoleSymplectic4Pass'); |
---|
70 | |
---|
71 | % Slow feedback correctors |
---|
72 | HCOR = corrector('HCOR',0.0,[0 0],'CorrectorPass'); |
---|
73 | VCOR = corrector('VCOR',0.0,[0 0],'CorrectorPass'); |
---|
74 | DEF = corrector('DEF',0.0,[0.00 0],'CorrectorPass'); |
---|
75 | |
---|
76 | % DIPOLES |
---|
77 | BEND = rbend('BEND' , 2.160, ... |
---|
78 | 0.174533, 0.0872665, 0.0872665 , 0.0,'BendLinearPass'); |
---|
79 | |
---|
80 | % Begin Lattice |
---|
81 | % Superperiods |
---|
82 | |
---|
83 | SUP1 = [ ... |
---|
84 | QPD DEF SDBP SDCO VCOR SD11 SDCO SDBP ... |
---|
85 | QPF SDBP BPM SDCO HCOR SD31 BEND SD2 ... |
---|
86 | ... |
---|
87 | QPD SDBP SDCO VCOR SD11 SDCO HCOR SDBP ... |
---|
88 | QPF SD2 BEND SD31 VCOR SDCO BPM SDBP ... |
---|
89 | ... |
---|
90 | QPD SXD SD2 BEND SD31 HCOR SDCO BPM SDBP ... |
---|
91 | QPF SXF SD2 BEND SD31 VCOR SDCO SDBP ... |
---|
92 | ... |
---|
93 | QPD SXD SD2 BEND SD31 HCOR SDCO SDBP ... |
---|
94 | QPF SXF SD2 BEND SD31 VCOR SDCO BPM SDBP ... |
---|
95 | ... |
---|
96 | QPD SXD SD2 BEND SD31 HCOR SDCO BPM SDBP ... |
---|
97 | QPF SXF SD2 BEND SD31 VCOR SDCO SDBP ... |
---|
98 | ... |
---|
99 | QPD SXD SD2 BEND SD31 HCOR SDCO BPM SDBP ... |
---|
100 | QPF SD3 BEND SD2 SXD ... |
---|
101 | ... |
---|
102 | QPD SDBP SDCO VCOR SD31 BEND SD2 SXF ... |
---|
103 | QPF SDBP BPM SDCO HCOR SD31 BEND SD2 SXD ... |
---|
104 | ... |
---|
105 | QPD SDBP BPM SDCO VCOR SD31 BEND SD2 SXF ... |
---|
106 | QPF SDBP SDCO HCOR SD31 BEND SD2 SXD ... |
---|
107 | ... |
---|
108 | QPD SDBP SDCO VCOR SD31 BEND SD2 SXF ... |
---|
109 | QPF SDBP BPM SDCO HCOR SD31 BEND SD2 SXD ... |
---|
110 | ... |
---|
111 | QPD SDBP BPM SDCO VCOR SD31 BEND SD2 ... |
---|
112 | QPF SDBP SDCO HCOR SD11 SDCO VCOR SDBP ... |
---|
113 | ... |
---|
114 | QPD SD2 BEND SD31 HCOR SDCO BPM SDBP ... |
---|
115 | QPF SD1 ]; |
---|
116 | |
---|
117 | ELIST = [DEBUT INJ SECT1 SUP1 SECT2 SUP1 CAV FIN]; |
---|
118 | |
---|
119 | buildlat(ELIST); |
---|
120 | |
---|
121 | % Set all magnets to same energy |
---|
122 | THERING = setcellstruct(THERING,'Energy',1:length(THERING),GLOBVAL.E0); |
---|
123 | |
---|
124 | evalin('caller','global THERING FAMLIST GLOBVAL'); |
---|
125 | atsummary; |
---|