source: MML/trunk/machine/SOLEIL/LT1/Lattices/LT1emittancelattice.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: 5.7 KB
Line 
1function LT1emittancelattice
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
15ECR0 =  marker('BPM', 'IdentityPass');
16ECR1 =  marker('BPM', 'IdentityPass');
17ECR2 =  marker('BPM', 'IdentityPass');
18ECR3 =  marker('BPM', 'IdentityPass');
19ECR4 =  marker('BPM', 'IdentityPass');
20%% Collimateur (fente d'analyse)
21COLL =  marker('COLL', '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
30SDL1  = drift('SDL1', 1.2892000, 'DriftPass');
31SDL1A = drift('SDL1A',  0.379800, 'DriftPass');
32SDL2  = drift('SDL2',  0.180000, 'DriftPass');
33SDL2B = drift('SDL2B',  0.674150, 'DriftPass');
34SDL3  = drift('SDL3',  0.180000, 'DriftPass');
35SDL3B = drift('SDL3B',  2.220000, 'DriftPass');
36SDL4  = drift('SDL4',  0.180000, 'DriftPass');
37SDL4B = drift('SDL4B', 0.770000, 'DriftPass');
38SDL5H1= drift('SDL5H1',  0.180000, 'DriftPass');
39SDL5H2= drift('SDL5H2',  0.505260, 'DriftPass');
40SDL5C = drift('SDL5C',  0.364740, 'DriftPass');
41SDL6  = drift('SDL6', 2.49248, 'DriftPass');
42SDL6T = drift('SDL6T',  0.221200, 'DriftPass');
43SDL7  = drift('SDL7',  0.130000, 'DriftPass');
44SDL7B = drift('SDL7B',  0.971910, 'DriftPass');
45SDL8  = drift('SDL8',  0.180000, 'DriftPass');
46SDL8B = drift('SDL8B', 0.300000, 'DriftPass');
47SDL9  = drift('SDL9',  0.344540, 'DriftPass');
48SDL9B = drift('SDL9B',  0.180000, 'DriftPass');
49SDL0  = drift('SDL0',  0.198800, 'DriftPass');
50SDL0B = drift('SDL0B',  0.583820, 'DriftPass');
51SDL0B1= drift('SDL0B1', 0.500000, 'DriftPass');
52SDL0C = drift('SDL0C',  2.309270, 'DriftPass');
53SBOO1 = drift('SBOO1',  1.294100, 'DriftPass');
54SBOO2 = drift('SBOO2',  0.764434, 'DriftPass');
55SBOO3 = drift('SBOO3', 0.150000, 'DriftPass');
56SBOO4 = drift('SBOO4',  2.000000, 'DriftPass');
57PERTEBR = drift('PERTEBR',  0.130000, 'DriftPass');
58PERTELM = drift('PERTELM',  0.30000, 'DriftPass');
59PERTSLM = drift('PERTSLM',  0.30000, 'DriftPass');
60PERTSBR = drift('PERTSBR',  0.130000, 'DriftPass');
61
62%% QUADRUPOLES
63L= 0.15/2;
64QP1  =  quadrupole('QP', L,  4.17582 , 'QuadLinearPass');
65QP2  =  quadrupole('QP', L, -2.78267 , 'QuadLinearPass');
66QP3  =  quadrupole('QP', L, -2.61001 , 'QuadLinearPass');
67QP4  =  quadrupole('QP', L,  4.29826   , 'QuadLinearPass');
68QP5  =  quadrupole('QP', L,  4.94250   , 'QuadLinearPass');
69QP6  =  quadrupole('QP', L, -4.94777  , 'QuadLinearPass');
70QP7  =  quadrupole('QP', L,  4.92238  , 'QuadLinearPass');
71QDBOO=  quadrupole('QDBOO', 0.2,  -0.891375 , 'QuadLinearPass');
72
73% Q1 = [QP1 QP1];
74% Q2 = [QP2 QP2];
75% Q3 = [QP3 QP3];
76% Q4 = [QP4 QP4];
77% Q5 = [QP5 QP5];
78% Q6 = [QP6 QP6];
79% Q7 = [QP7 QP7];
80% EN attente d'elements coupes en deux
81L= 0.15;
82Q1  =  quadrupole('QP', L,  4.17582, 'QuadLinearPass');
83Q2  =  quadrupole('QP', L, -2.78267, 'QuadLinearPass');
84Q3  =  quadrupole('QP', L, -2.61001, 'QuadLinearPass');
85Q4  =  quadrupole('QP', L,  4.29826, 'QuadLinearPass');
86Q5  =  quadrupole('QP', L,  4.94250, 'QuadLinearPass');
87Q6  =  quadrupole('QP', L, -4.94777, 'QuadLinearPass');
88Q7  =  quadrupole('QP', L,  4.92238, 'QuadLinearPass');
89
90
91%% Vertical Correctors
92CV  =  corrector('CV',0.0,[0 0],'CorrectorPass');
93
94%% Horizontal Correctors
95CH  =  corrector('CH',0.0,[0 0],'CorrectorPass');
96
97%% DIPOLES
98% {** 1.3815 factor to fit with BETA ??? strange **}
99%theta = -15*pi/180;
100theta = 0.001;
101fullgap = 0.105*0.724*2/6*1.3815;
102BEND  =  rbend2('BEND', 0.30, theta, theta/2, theta/2, 0.0, ...
103                fullgap,'BendLinearFringeTiltPass');
104
105%% {** septa booster **}
106% beta_gap=0.03/6;
107% tracy_gap=beta_gap*0.724*2;
108theta = -7.5*pi/180;
109fullgap= 0.03/6*0.724*2; %*1.3815;
110L = 0.30;
111SEP     = rbend2('SEP', L,  theta, theta/2, theta/2, 0.0, fullgap, 'BendLinearFringeTiltPass');
112SEPup   = rbend2('SEPup', L/2, theta/2, theta/2, 0.0, 0.0,  fullgap, 'BendLinearFringeTiltPass');
113SEPdown = rbend2('SEPdown', L/2, theta/2, 0.0, theta/2, 0.0,  fullgap, 'BendLinearFringeTiltPass');
114
115% Begin Lattice
116%%  Superperiods 
117LINE2 = [ ...
118    SDL1       ECR0      SDL1A     QP1       QP1       SDL2       CH    ...
119    SDL2B     ...
120    QP2        QP2       SDL3      CV       SDL3B      QP3        QP3    ...
121    SDL4       SDL4B     QP4       QP4       SDL5H1     CH        SDL5H2     ...
122    ECR1       SDL5C     BEND      SDL6      COLL      ...
123    SDL6T      QP5       QP5       SDL7      CH        SDL7B      CV        ...
124    SDL8       QP6       QP6       SDL8B     BEND       SDL9       ECR2    ...
125    SDL0       QP7       QP7       SDL9B     SDL0C      CV        SDL0B1     ...
126    ECR3       SDL0B     SEPup     SEPdown    SBOO1      QDBOO      ...
127    KICKQD     QDBOO  ...   
128    SBOO2      SBOO3     PERTEBR   PERTELM   PERTM      PERTSLM    PERTSBR    ...
129    SBOO3      ECR4      SBOO4
130];
131
132LINE = [ ...
133    SDL1       ECR0     SDL1A     Q1       SDL2       CH        SDL2B     ...
134    Q2         SDL3      CV       SDL3B      Q3        ...
135    SDL4       SDL4B     Q4       SDL5H1     CH        SDL5H2     ...
136    ECR1       SDL5C     BEND      SDL6     COLL      ...
137    SDL6T      Q5       SDL7      CH        SDL7B      CV        ...
138    SDL8       Q6       SDL8B     BEND       SDL9       ECR2    ...
139    SDL0       Q7       SDL9B     SDL0C      CV        SDL0B1     ...
140    ECR3       SDL0B     SEPup     CH       SEPdown    SBOO1      QDBOO      ...
141    KICKQD     QDBOO  ...   
142    SBOO2      SBOO3     PERTEBR   PERTELM   PERTM      PERTSLM    PERTSBR    ...
143    SBOO3      ECR4      SBOO4
144];
145
146ELIST = [DEBUT, LINE2, FIN];
147
148buildlat(ELIST);
149
150% Set all magnets to same energy
151THERING = setcellstruct(THERING,'Energy',1:length(THERING),GLOBVAL.E0);
152
153disp('** Done **');
Note: See TracBrowser for help on using the repository browser.