source: MML/trunk/machine/SOLEIL/LT1/Lattices/maille_LT1.m @ 4

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

Initial import--MML version from SOLEIL@2013

File size: 6.5 KB
Line 
1function maille_LT1
2% Lattice definition file
3% Lattice for LT1
4%
5% Laurent S. Nadolski, SOLEIL, 03/04
6
7global FAMLIST THERING GLOBVAL
8GLOBVAL.E0 = 100e6;
9GLOBVAL.LatticeFile = mfilename;
10FAMLIST = cell(0);
11disp(['** Loading lattice in ' mfilename])
12
13%% markers           
14%% Ecrans
15ECR1 =  marker('BPM', 'IdentityPass');
16ECR2 =  marker('BPM', 'IdentityPass');
17ECR3 =  marker('BPM', 'IdentityPass');
18ECR4 =  marker('BPM', 'IdentityPass');
19%% Collimateurs
20COLL1 =  marker('COLL1', 'IdentityPass');
21COLL2 =  marker('COLL2', 'IdentityPass');
22%% perturbateurs
23KICKQD =  marker('KICKQD', 'IdentityPass');
24PERTM =  marker('PERTM', 'IdentityPass');
25%% divers
26FIN =  marker('FIN', 'IdentityPass');
27DEBUT =  marker('DEBUT', 'IdentityPass');
28
29% DRIFT SPACES
30
31SDL1  = drift('SDL1', 1.119000, 'DriftPass');
32SDL1A = drift('SDL1A',  0.550000, 'DriftPass');
33SDL2  = drift('SDL2',  0.180000, 'DriftPass');
34SDL2B = drift('SDL2B',  0.674150, 'DriftPass');
35SDL3  = drift('SDL3',  0.180000, 'DriftPass');
36SDL3B = drift('SDL3B',  2.220000, 'DriftPass');
37SDL4  = drift('SDL4',  0.180000, 'DriftPass');
38SDL4B = drift('SDL4B', 0.770000, 'DriftPass');
39SDL5  = drift('SDL5', 0.180000, 'DriftPass');
40SDL5B = drift('SDL5B', 0.570000, 'DriftPass');
41SDL5H1= drift('SDL5H1',  0.180000, 'DriftPass');
42SDL5H2= drift('SDL5H2',  0.570000, 'DriftPass');
43SDL5C = drift('SDL5C',  0.300000, 'DriftPass');
44SDL6  = drift('SDL6', 1.983680, 'DriftPass');
45SDL6B = drift('SDL6B',  0.380000, 'DriftPass');
46SDL6T = drift('SDL6T',  0.350000, 'DriftPass');
47SDL7  = drift('SDL7',  0.130000, 'DriftPass');
48SDL7B = drift('SDL7B',  0.971910, 'DriftPass');
49SDL8  = drift('SDL8',  0.180000, 'DriftPass');
50SDL8B = drift('SDL8B', 0.300000, 'DriftPass');
51SDL9  = drift('SDL9',  0.300000, 'DriftPass');
52SDL9B = drift('SDL9B',  0.180000, 'DriftPass');
53SDL0  = drift('SDL0',  0.243340, 'DriftPass');
54SDL0B = drift('SDL0B',  0.500000, 'DriftPass');
55SDL0B1= drift('SDL0B1', 0.500000, 'DriftPass');
56SDL0C = drift('SDL0C',  2.393090, 'DriftPass');
57SBOO1 = drift('SBOO1',  1.294100, 'DriftPass');
58SBOO2 = drift('SBOO2',  0.764434, 'DriftPass');
59SBOO3 = drift('SBOO3', 0.150000, 'DriftPass');
60SBOO4 = drift('SBOO4',  2.000000, 'DriftPass');
61PERTEBR = drift('PERTEBR',  0.130000, 'DriftPass');
62PERTELM = drift('PERTELM',  0.30000, 'DriftPass');
63PERTSLM = drift('PERTSLM',  0.30000, 'DriftPass');
64PERTSBR = drift('PERTSBR',  0.130000, 'DriftPass');
65
66% QUADRUPOLES
67L= 0.15/2;
68QP1  =  quadrupole('QP1', L,  4.17582 , 'QuadLinearPass');
69QP2  =  quadrupole('QP2', L, -2.78267 , 'QuadLinearPass');
70QP3  =  quadrupole('QP3', L, -2.61001 , 'QuadLinearPass');
71QP4  =  quadrupole('QP4', L,  4.29826   , 'QuadLinearPass');
72QP5  =  quadrupole('QP5', L,  4.94250   , 'QuadLinearPass');
73QP6  =  quadrupole('QP6', L, -4.94777  , 'QuadLinearPass');
74QP7  =  quadrupole('QP7', L,  4.92238  , 'QuadLinearPass');
75QDBOO=  quadrupole('QDBOO', 0.2,  -0.891375 , 'QuadLinearPass');
76
77% Q1 = [QP1 QP1];
78% Q2 = [QP2 QP2];
79% Q3 = [QP3 QP3];
80% Q4 = [QP4 QP4];
81% Q5 = [QP5 QP5];
82% Q6 = [QP6 QP6];
83% Q7 = [QP7 QP7];
84%% EN attente d'éléments coupés en deux
85L= 0.15;
86Q1  =  quadrupole('QP', L,  4.17582 , 'QuadLinearPass');
87Q2  =  quadrupole('QP', L, -2.78267 , 'QuadLinearPass');
88Q3  =  quadrupole('QP', L, -2.61001 , 'QuadLinearPass');
89Q4  =  quadrupole('QP', L,  4.29826   , 'QuadLinearPass');
90Q5  =  quadrupole('QP', L,  4.94250   , 'QuadLinearPass');
91Q6  =  quadrupole('QP', L, -4.94777  , 'QuadLinearPass');
92Q7  =  quadrupole('QP', L,  4.92238  , 'QuadLinearPass');
93
94
95%% Vertical Correctors
96CV  =  corrector('COR',0.0,[0 0],'CorrectorPass');
97CV1  =  corrector('CV1',0.0,[0 0],'CorrectorPass');
98CV2  =  corrector('CV2',0.0,[0 0],'CorrectorPass');
99CV3  =  corrector('CV3',0.0,[0 0],'CorrectorPass');
100
101%% Horizontal Correctors
102CH  =  corrector('CH',0.0,[0 0],'CorrectorPass');
103CH1  =  corrector('CH1',0.0,[0 0],'CorrectorPass');
104CH2  =  corrector('CH2',0.0,[0 0],'CorrectorPass');
105CH3  =  corrector('CH3',0.0,[0 0],'CorrectorPass');
106CH4  =  corrector('CH4',0.0,[0 0],'CorrectorPass');
107
108% DIPOLES
109% {** 1.3815 factor to fit with BETA ??? strange **}
110theta = -15*pi/180;
111fullgap = 0.105*0.724*2/6*1.3815;
112BEND  =  rbend2('BEND', 0.30, theta, theta/2, theta/2, 0.0, ...
113                fullgap,'BendLinearFringeTiltPass');
114
115% {** septa booster **}
116% beta_gap=0.03/6;
117% tracy_gap=beta_gap*0.724*2;
118theta = -7.5*pi/180;
119fullgap= 0.03/6*0.724*2; %*1.3815;
120L = 0.30;
121SEP     = rbend2('SEP', L,  theta, theta/2, theta/2, 0.0, fullgap, 'BendLinearFringeTiltPass');
122SEPup   = rbend2('SEPup', L/2, theta/2, theta/2, 0.0, 0.0,  fullgap, 'BendLinearFringeTiltPass');
123SEPdown = rbend2('SEPdown', L/2, theta/2, 0.0, theta/2, 0.0,  fullgap, 'BendLinearFringeTiltPass');
124
125% Begin Lattice
126%%  Superperiods 
127LINE2 = [ ...
128    SDL1       SDL1A     QP1       QP1       SDL2       CH1        SDL2B     ...
129    QP2        QP2       SDL3      CV1       SDL3B      QP3        QP3    ...
130    SDL4       SDL4B     QP4       QP4       SDL5H1     CH2        SDL5H2     ...
131    ECR1       SDL5C     BEND      SDL6      COLL1      SDL6B      COLL2      ...
132    SDL6T      QP5       QP5       SDL7      CH3        SDL7B      CV2        ...
133    SDL8       QP6       QP6       SDL8B     BEND       SDL9       ECR2    ...
134    SDL0       QP7       QP7       SDL9B     SDL0C      CV3        SDL0B1     ...
135    ECR3       SDL0B     SEPup     CH4       SEPdown    SBOO1      QDBOO      ...
136    KICKQD     QDBOO  ...   
137    SBOO2      SBOO3     PERTEBR   PERTELM   PERTM      PERTSLM    PERTSBR    ...
138    SBOO3      ECR4      SBOO4
139];
140
141LINE = [ ...
142    SDL1       SDL1A     Q1       SDL2       CH        SDL2B     ...
143    Q2         SDL3      CV       SDL3B      Q3        ...
144    SDL4       SDL4B     Q4       SDL5H1     CH        SDL5H2     ...
145    ECR1       SDL5C     BEND      SDL6      COLL1      SDL6B      COLL2      ...
146    SDL6T      Q5       SDL7      CH        SDL7B      CV        ...
147    SDL8       Q6       SDL8B     BEND       SDL9       ECR2    ...
148    SDL0       Q7       SDL9B     SDL0C      CV        SDL0B1     ...
149    ECR3       SDL0B     SEPup     CH       SEPdown    SBOO1      QDBOO      ...
150    KICKQD     QDBOO  ...   
151    SBOO2      SBOO3     PERTEBR   PERTELM   PERTM      PERTSLM    PERTSBR    ...
152    SBOO3      ECR4      SBOO4
153];
154
155ELIST = [DEBUT, LINE, FIN];
156
157THERING=cell(size(ELIST));
158for i=1:length(THERING)
159    THERING{i} = FAMLIST{ELIST(i)}.ElemData;
160    FAMLIST{ELIST(i)}.NumKids=FAMLIST{ELIST(i)}.NumKids+1;
161    FAMLIST{ELIST(i)}.KidsList = [FAMLIST{ELIST(i)}.KidsList i];
162end
163
164%% compute total length
165
166L0_tot=0;
167for i=1:length(THERING)
168    L0_tot=L0_tot+THERING{i}.Length;
169end
170
171disp('** Done **');
Note: See TracBrowser for help on using the repository browser.