source: MML/trunk/applications/orbit/cls/CLSelementicons.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: 4.8 KB
Line 
1function SPEAR3elementicons;
2%initialize element icon data for SPEAR3
3%other machines modify family names accordingly
4%call this routine from orbit initialization
5
6global THERING SYS
7   
8dx=0.01;
9dx2=0.005;
10
11AO=GetAO;
12ElementIcons=cell(1,size(THERING,2));  %generate ElementIcons cell array/store information in appdata
13
14%BPMS
15fam='BPMx';
16phi=2*pi*[0:0.01:1];
17ifam=isfamily(fam);
18ind=AO.(fam).AT.ATIndex;
19elemind=ind;
20phi=2*pi*[0:0.05:1];
21jj=0;
22  for ii=1:size(ind,1)
23    jj=ind(ii);
24    ElementIcons{jj}.xpts=cos(phi)/180;      %180 gets horizontal size correct
25    ElementIcons{jj}.ypts=(sin(phi)+1.8)/4;  %+1.8)/4 gets vertical size and position correct
26    ElementIcons{jj}.color='g';   
27    ElementIcons{jj}.elementimage='clsbpm_1.jpg';
28    ElementIcons{jj}.AOFamily=AO.(fam).FamilyName;
29    ElementIcons{jj}.AODevice=AO.(fam).DeviceList(ii,:);
30  end
31
32%Correctors
33fam='HCM';
34ifam=isfamily(fam);
35ind=AO.(fam).AT.ATIndex;
36elemind=[elemind; ind];
37dx=0.005;  dx2=0.0015;
38dy=0.6; dy2=0.10;
39jj=0;
40  for ii=1:size(ind,1)
41    jj=ind(ii);
42        ElementIcons{jj}.xpts=[0   dx;    dx   dx2;    dx2 dx2; dx2 -dx2; -dx2 -dx2; -dx2 -dx; -dx   0;];
43        ElementIcons{jj}.ypts=[1.0 dy;    dy   dy;     dy  dy2; dy2  dy2;  dy2  dy;   dy   dy;  dy 1.0;];
44        ElementIcons{jj}.color='k';
45        ElementIcons{jj}.elementimage='clscorrector_1.jpg';
46        ElementIcons{jj}.AOFamily=AO.(fam).FamilyName;
47        ElementIcons{jj}.AODevice=AO.(fam).DeviceList(ii,:);
48 end
49
50%Bends
51dx=0.010;
52dx2=0.002;
53dy=0.85;
54dy2=0.1;
55
56fam='BEND';   
57ifam=isfamily(fam);
58ind=AO.(fam).AT.ATIndex;
59elemind=[elemind; ind];
60jj=0;
61  for ii=1:size(ind,1)
62    jj=ind(ii);
63        ElementIcons{jj}.xpts=[-dx2 -dx;  -dx  dx;     dx   dx2;     dx2  -dx2;];
64        ElementIcons{jj}.ypts=[dy2   dy;   dy  dy;     dy   dy2;     dy2   dy2;];
65        ElementIcons{jj}.color='b';
66        ElementIcons{jj}.elementimage='clsbend_1.jpg';           %BEND
67        ElementIcons{jj}.AOFamily=AO.(fam).FamilyName;
68        ElementIcons{jj}.AODevice=AO.(fam).DeviceList(ii,:);
69  end
70
71
72%Horizontally Focusing Quads
73dx=0.003;
74dy=0.33;
75
76fam='QFA';     
77ifam=isfamily(fam);
78ind=AO.(fam).AT.ATIndex;
79elemind=[elemind; ind];
80jj=0;
81  for ii=1:size(ind,1)
82    jj=ind(ii);
83        ElementIcons{jj}.xpts=[0 -dx;  -dx   -dx;     -dx   0;     0  dx;   dx  dx; dx 0;];
84        ElementIcons{jj}.ypts=[0  dy;   dy  2*dy;    2*dy  3*dy; 3*dy 2*dy; 2*dy dy; dy 0;];
85        ElementIcons{jj}.color='r';
86        ElementIcons{jj}.elementimage='clsquadrupole_1.jpg';
87         ElementIcons{jj}.AOFamily=AO.(fam).FamilyName;
88        ElementIcons{jj}.AODevice=AO.(fam).DeviceList(ii,:);
89 end
90
91fam='QFB';     
92ifam=isfamily(fam);
93ind=AO.(fam).AT.ATIndex;
94elemind=[elemind; ind];
95jj=0;
96  for ii=1:size(ind,1)
97    jj=ind(ii);
98        ElementIcons{jj}.xpts=[0 -dx;  -dx   -dx;     -dx   0;     0  dx;   dx  dx; dx 0;];
99        ElementIcons{jj}.ypts=[0  dy;   dy  2*dy;    2*dy  3*dy; 3*dy 2*dy; 2*dy dy; dy 0;];
100        ElementIcons{jj}.color='r';
101        ElementIcons{jj}.elementimage='clsquadrupole_1.jpg';
102         ElementIcons{jj}.AOFamily=AO.(fam).FamilyName;
103        ElementIcons{jj}.AODevice=AO.(fam).DeviceList(ii,:);
104 end
105 
106fam='QFC';     
107ifam=isfamily(fam);
108ind=AO.(fam).AT.ATIndex;
109elemind=[elemind; ind];
110jj=0;
111  for ii=1:size(ind,1)
112    jj=ind(ii);
113        ElementIcons{jj}.xpts=[0 -dx;  -dx   -dx;     -dx   0;     0  dx;   dx  dx; dx 0;];
114        ElementIcons{jj}.ypts=[0  dy;   dy  2*dy;    2*dy  3*dy; 3*dy 2*dy; 2*dy dy; dy 0;];
115        ElementIcons{jj}.color='r';
116        ElementIcons{jj}.elementimage='clsquadrupole_1.jpg';
117        ElementIcons{jj}.AOFamily=AO.(fam).FamilyName;
118        ElementIcons{jj}.AODevice=AO.(fam).DeviceList(ii,:);
119 end
120
121%Horizontally Focusing Sextupoles
122dx=0.005;  dx2=0.002;
123dy=0.85;
124
125fam='SD';     
126ifam=isfamily(fam);
127ind=AO.(fam).AT.ATIndex;
128elemind=[elemind; ind];
129jj=0;
130  for ii=1:size(ind,1)
131    jj=ind(ii);
132        ElementIcons{jj}.xpts=[0 -dx; -dx   dx;    dx2  0;];
133        ElementIcons{jj}.ypts=[0  dy;  dy   dy;    dy   0;];
134        ElementIcons{jj}.color='y';
135        ElementIcons{jj}.elementimage='clssextupole_1.jpg';
136        ElementIcons{jj}.AOFamily=AO.(fam).FamilyName;
137        ElementIcons{jj}.AODevice=AO.(fam).DeviceList(ii,:);
138  end
139
140%Vertically Focusing Sextupoles
141dx=0.005;  dx2=0.002;
142dy=0.15;
143
144fam='SF';     
145ifam=isfamily(fam);
146ind=AO.(fam).AT.ATIndex;
147elemind=[elemind; ind];
148jj=0;
149  for ii=1:size(ind,1)
150    jj=ind(ii);
151        ElementIcons{jj}.xpts=[-dx  0;    0   dx;    dx -dx;];
152        ElementIcons{jj}.ypts=[ dy  1.0;  1.0 dy;    dy  dy;];
153        ElementIcons{jj}.color='y';
154        ElementIcons{jj}.elementimage='clssextupole_1.jpg';
155        ElementIcons{jj}.AOFamily=AO.(fam).FamilyName;
156        ElementIcons{jj}.AODevice=AO.(fam).DeviceList(ii,:);
157 end
158   
159elemind=sort(elemind);
160SYS.elemind=elemind(:);   %store element indices for display
161
162setappdata(0,'ElementIcons',ElementIcons);
163
164
Note: See TracBrowser for help on using the repository browser.