source: MML/trunk/machine/SOLEIL/LT2/Lattices/LT2lattice.m @ 4

Last change on this file since 4 was 4, checked in by zhangj, 10 years ago

Initial import--MML version from SOLEIL@2013

File size: 7.2 KB
Line 
1function LT2lattice
2% Lattice definition file
3% Lattice for LT2
4%
5% Laurent S. Nadolski, SOLEIL, 03/04
6% 17/01/06 Pass method for bend is obsolete in new AT
7
8global FAMLIST THERING GLOBVAL
9GLOBVAL.E0 = 2.75e9; % Ring energy
10GLOBVAL.LatticeFile = mfilename;
11FAMLIST = cell(0);
12disp(['** Loading lattice in ' mfilename])
13
14%% markers           
15%% Ecrans
16ECR1 =  marker('BPM', 'IdentityPass');
17ECR_EMIT =  marker('BPM', 'IdentityPass');
18ECR2 =  marker('BPM', 'IdentityPass');
19ECR3 =  marker('BPM', 'IdentityPass');
20BPM1 =  marker('BPM', 'IdentityPass');
21BPM2 =  marker('BPM', 'IdentityPass');
22BPM3 =  marker('BPM', 'IdentityPass');
23% %% perturbateurs
24% KICKQD =  marker('KICKQD', 'IdentityPass');
25% PERTM =  marker('PERTM', 'IdentityPass');
26% emittance
27EMIT  = marker('EMITTANCE', 'IdentityPass');
28%% divers
29FIN =  marker('FIN', 'IdentityPass');
30DEBUT =  marker('DEBUT', 'IdentityPass');
31
32%% DRIFT SPACES
33 SD1  = drift('SD1', 0.100000E+00,'DriftPass');
34 SD2    = drift('SD2', 0.493000E+01,'DriftPass');
35 SD20    = drift('SD20', 0.116250E+01,'DriftPass');
36 %SD20A    = drift('SD20A', 2.125,'DriftPass');
37 SD20A    = drift('SD20A', 1.975,'DriftPass');
38 SD22A    = drift('SD20A', 0.30,'DriftPass');
39 SD21     = drift('SD21', 0.354250E+01,'DriftPass');
40 %SD21A    = drift('SD21A', 1.3201,'DriftPass');
41 SD21A    = drift('SD21A', 1.1701,'DriftPass');
42 SD21AB    = drift('SD21AB',0.554,'DriftPass');
43 SD21ABBP  = drift('SD21ABBP', 0.350,'DriftPass');
44 SD22      = drift('SD22', 0.255500E+01,'DriftPass');
45 SD22B     = drift('SD22B', 0.355900E+00,'DriftPass');
46 SD31      = drift('SD31', 0.100000E+01,'DriftPass');
47 SD32      = drift('SD32', 0.176000E+01,'DriftPass');
48 SD32A     = drift('SD32A',0.210,'DriftPass');
49 SD33      = drift('SD33', 0.130000E+01,'DriftPass');
50 SD33A     = drift('SD33A', 0.120000E+01,'DriftPass');
51 SD34      = drift('SD34', 0.310000E+01,'DriftPass');
52 SD4       = drift('SD4', 0.500000E+00,'DriftPass');
53 SD5        = drift('SD5', 0.100000E+01,'DriftPass');
54 SD5G       = drift('SD5G', 0.775000E+00,'DriftPass');
55 SD5G1     = drift('SD5G1', 0.387500E+00,'DriftPass');
56 SD51      = drift('SD5G1', 0.500000E+00,'DriftPass');
57 SD6       = drift('SD6', 0.691715E+01,'DriftPass');
58 SD6A      = drift('SD6A', 0.502831E+01,'DriftPass');
59 SD6AGBP   = drift('SD6AGBP',0.450,'DriftPass');
60 SD6AG     = drift('SD6AG', 0.435331E+01,'DriftPass');
61 SD6AB     = drift('SD6AB', 0.300000E+00,'DriftPass');
62 SD6B      = drift('SD6B', 0.151524E+01,'DriftPass');
63 SD61      = drift('SD61', 0.700000E+00,'DriftPass');
64 SD62      = drift('SD62', 0.700000E+00,'DriftPass');
65 SD62B     = drift('SD62B', 0.600000E+00,'DriftPass');
66 SD63      = drift('SD63', 0.126260E+01,'DriftPass');
67 SD7       = drift('SD7', 0.147000E+01,'DriftPass');
68 SD7G      = drift('SD7G', 0.124500E+01,'DriftPass');
69 SDG       = drift('SDG', 0.225000E+00,'DriftPass');
70 SD8       = drift('SD8',  0.100000E+01,'DriftPass');
71 SD8G      = drift('SD8G', 0.775000E+00,'DriftPass');
72 SD81      = drift('SD81', 0.500000E+00,'DriftPass');
73 SD9       = drift('SD9',0.100000E+01,'DriftPass');
74 SD10      = drift('SD10', 0.620000E+01,'DriftPass');
75 SD101     = drift('SD101', 0.291500E+01,'DriftPass');
76 SD102      = drift('SD102', 0.133530E+01,'DriftPass');
77 SD101E    = drift('SD101E', 0.200000E+01,'DriftPass');
78 SD102E    = drift('SD102E', 0.684700E+00,'DriftPass');
79 SD103     = drift('SD103', 0.181000E+01,'DriftPass');
80 SD11      = drift('SD11', 0.799977E+00,'DriftPass');
81 DRIFT      = drift('DRIFT', 0.200000E+02,'DriftPass');
82
83%% QUADRUPOLES
84L= 0.4;
85% focalisation sans les champs de fuite dans les dipoles
86% QP1  =  quadrupole('QP', L, 0.1004788E+01  , 'QuadLinearPass');
87% QP2  =  quadrupole('QP', L, -.6306412E+00 , 'QuadLinearPass');
88% QP3  =  quadrupole('QP', L, -.7193035E+00  , 'QuadLinearPass');
89% QP4  =  quadrupole('QP', L, 0.1047543E+01  , 'QuadLinearPass');
90% QP5  =  quadrupole('QP', L,  0.9431380E+00   , 'QuadLinearPass');
91% QP6  =  quadrupole('QP', L, -.1152734E+01  , 'QuadLinearPass');
92% QP7  =  quadrupole('QP', L,  0.6238244E+00  , 'QuadLinearPass');
93
94% % focalisation avec champ de fuite dans les dipoles - betax = 10.8 m entrée ANNEAU
95% QP1  =  quadrupole('QP', L, 0.40371/L  , 'QuadLinearPass');
96% QP2  =  quadrupole('QP', L, -.25738/L , 'QuadLinearPass');
97% QP3  =  quadrupole('QP', L, -.29429/L  , 'QuadLinearPass');
98% QP4  =  quadrupole('QP', L, 0.42088/L  , 'QuadLinearPass');
99% QP5  =  quadrupole('QP', L,  0.37640/L   , 'QuadLinearPass');
100% QP6  =  quadrupole('QP', L, -.46712/L  , 'QuadLinearPass');
101% QP7  =  quadrupole('QP', L,  0.25389/L  , 'QuadLinearPass');
102
103% focalisation avec champ de fuite dans les dipoles - betax = 3 m entrée ANNEAU
104QP1  =  quadrupole('QP', L, 0.31134/L  , 'QuadLinearPass');
105QP2  =  quadrupole('QP', L, -.18935/L , 'QuadLinearPass');
106QP3  =  quadrupole('QP', L, -.29986/L  , 'QuadLinearPass');
107QP4  =  quadrupole('QP', L, 0.40561/L  , 'QuadLinearPass');
108QP5  =  quadrupole('QP', L,  0.35898/L   , 'QuadLinearPass');
109QP6  =  quadrupole('QP', L, -.43423/L  , 'QuadLinearPass');
110QP7  =  quadrupole('QP', L,  0.21242/L  , 'QuadLinearPass');
111
112
113% Q1 = [QP1 QP1];
114% Q2 = [QP2 QP2];
115% Q3 = [QP3 QP3];
116% Q4 = [QP4 QP4];
117% Q5 = [QP5 QP5];
118% Q6 = [QP6 QP6];
119% Q7 = [QP7 QP7];
120% EN attente d'elements coupes en deux
121
122
123%% Vertical Correctors
124CV  =  corrector('CV',0.0,[0 0],'CorrectorPass');
125
126%% Horizontal Correctors
127CH  =  corrector('CH',0.0,[0 0],'CorrectorPass');
128
129%% DIPOLES
130% {** 1.3815 factor to fit with BETA ??? strange **}
131theta = 0.193789E+00;  % radian
132%fullgap = 0.105*0.724*2/6*1.3815;
133BEND  =  rbend('BEND', 1.052435,  ...
134    theta, theta/2, theta/2, 0.0, ...
135                'BendLinearPass');
136
137%% {** septa booster **}
138% beta_gap=0.03/6;
139% tracy_gap=beta_gap*0.724*2;
140% theta = -7.5*pi/180;
141% fullgap= 0.03/6*0.724*2; %*1.3815;
142
143% SEP     = rbend2('SEP', L,  theta, theta/2, theta/2, 0.0, fullgap, 'BendLinearPass');
144% SEPup   = rbend2('SEPup', L/2, theta/2, theta/2, 0.0, 0.0,  fullgap, 'BendLinearPass');
145% SEPdown = rbend2('SEPdown', L/2, theta/2, 0.0, theta/2, 0.0,  fullgap, 'BendLinearPass');
146
147L_sep_A = 0.50; theta_sep_A = 0.550000E-01; % radian
148L_sep_P = 0.60; theta_sep_P = 0.2374000E-01; % radian
149SEP_A_1    = rbend('SEP_A_1', L_sep_A,  theta_sep_A, 0, theta_sep_A, 0.0,  'BendLinearPass');
150SEP_A_2    = rbend('SEP_A_2', L_sep_A,  theta_sep_A,  theta_sep_A,0,  0.0,  'BendLinearPass');
151SEP_P    = rbend('SEP_A_2', L_sep_P,  theta_sep_P,  theta_sep_P,0,  0.0,  'BendLinearPass');
152
153
154% Begin Lattice
155%%  Superperiods 
156
157LINE1 = [...
158 SD20A    CV       SD22A...
159 CV      SD21A     SD21AB    SD21ABBP       ECR1 ...
160 SD22B     CH      SDG       QP1            SD31 ...
161 QP2      SD32A    SD32      BEND           SD33 ...
162 SD33A   ECR_EMIT  SD34      BEND           SD4  ...   
163 QP3       SDG       CV      SD5G1          SD5G1 ...
164 QP4       SDG       CH      SD6AGBP        SD6AG ...
165 SD6AB     BPM1      SD6B    BEND           SD63 ...
166 BEND      SD7G      CH      SDG            QP5   ...
167 SD81     BPM2       SD81    QP6            SDG  ...
168 CV       SD8G      QP7      SD101E          CV  ...
169 SD102E   SD102     BPM3     ECR2          SD103 ...
170 SEP_A_1  SD1       SEP_A_2  SD11          SEP_P ...
171 ECR3...
172       ];
173
174
175
176ELIST = [DEBUT, LINE1, FIN];
177
178buildlat(ELIST);
179
180% Set all magnets to same energy
181THERING = setcellstruct(THERING,'Energy',1:length(THERING),GLOBVAL.E0);
182
183disp('** Done **');
Note: See TracBrowser for help on using the repository browser.