source: MML/trunk/machine/SOLEIL/Booster/applications/boosterreal.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: 5.1 KB
Line 
1function 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
10global FAMLIST THERING GLOBVAL
11
12%GLOBVAL.E0 = 2.75e9; % Ring energy
13GLOBVAL.E0 = 0.1085e9; % Ring energy
14% GLOBVAL.E0 = 0.100e9; % Ring energy
15
16GLOBVAL.LatticeFile = mfilename;
17FAMLIST = cell(0);
18
19disp(['** Loading SOLEIL booster magnet lattice ', mfilename]);
20
21L0 = 156.6202003;                % design length [m]
22C0 = 2.99792458e8;           % speed of light [m/s]
23HarmNumber = 184;
24
25%% Cavity
26%              NAME   L     U[V]       f[Hz]          h        method       
27CAV = rfcavity('RF' , 0 , 0.844e+6 , HarmNumber*C0/L0, ...
28               HarmNumber ,'CavityPass');   
29CAV = 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
61F = 1e8;
62Finv = 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
68SXF  =  sextupole('SXF' , Finv,  0.383*F, 'StrMPoleSymplectic4Pass');
69SXD  =  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
77BEND  =  rbend('BEND'  , 2.160,  ...
78            0.174533, 0.0872665, 0.0872665 , 0.0,'BendLinearPass');
79
80% Begin Lattice
81%  Superperiods 
82
83SUP1  = [ ...
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
117ELIST = [DEBUT INJ SECT1 SUP1 SECT2 SUP1 CAV FIN];
118
119buildlat(ELIST);
120
121% Set all magnets to same energy
122THERING = setcellstruct(THERING,'Energy',1:length(THERING),GLOBVAL.E0);
123
124evalin('caller','global THERING FAMLIST GLOBVAL');
125atsummary;
Note: See TracBrowser for help on using the repository browser.