source: MML/trunk/applications/orbit/diamond/Diamondelementicons.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: 3.8 KB
Line 
1function Diamondelementicons;
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%SYS=getappdata(0,'SYS');
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='sp3bpm_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='sp3corrector_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='sp3bend_1.jpg';           %BEND
67        ElementIcons{jj}.AOFamily=AO.(fam).FamilyName;
68        ElementIcons{jj}.AODevice=AO.(fam).DeviceList(ii,:);
69  end
70
71%Horizontally Focusing Quads
72dx=0.003;
73dy=0.33;
74
75fam='Q1B';     
76ifam=isfamily(fam);
77ind=AO.(fam).AT.ATIndex;
78elemind=[elemind; ind];
79jj=0;
80  for ii=1:size(ind,1)
81    jj=ind(ii);
82        ElementIcons{jj}.xpts=[0 -dx;  -dx   -dx;     -dx   0;     0  dx;   dx  dx; dx 0;];
83        ElementIcons{jj}.ypts=[0  dy;   dy  2*dy;    2*dy  3*dy; 3*dy 2*dy; 2*dy dy; dy 0;];
84        ElementIcons{jj}.color='r';
85        ElementIcons{jj}.elementimage='sp3quadrupole_1.jpg';
86        ElementIcons{jj}.AOFamily=AO.(fam).FamilyName;
87        ElementIcons{jj}.AODevice=AO.(fam).DeviceList(ii,:);
88 end
89
90fam='Q2B';     
91ifam=isfamily(fam);
92ind=AO.(fam).AT.ATIndex;
93elemind=[elemind; ind];
94jj=0;
95  for ii=1:size(ind,1)
96    jj=ind(ii);
97        ElementIcons{jj}.xpts=[0 -dx;  -dx   -dx;     -dx   0;     0  dx;   dx  dx; dx 0;];
98        ElementIcons{jj}.ypts=[0  dy;   dy  2*dy;    2*dy  3*dy; 3*dy 2*dy; 2*dy dy; dy 0;];
99        ElementIcons{jj}.color='r';
100        ElementIcons{jj}.elementimage='sp3quadrupole_1.jpg';
101        ElementIcons{jj}.AOFamily=AO.(fam).FamilyName;
102        ElementIcons{jj}.AODevice=AO.(fam).DeviceList(ii,:);
103 end
104
105fam='Q3B';     
106ifam=isfamily(fam);
107ind=AO.(fam).AT.ATIndex;
108elemind=[elemind; ind];
109jj=0;
110  for ii=1:size(ind,1)
111    jj=ind(ii);
112        ElementIcons{jj}.xpts=[0 -dx;  -dx   -dx;     -dx   0;     0  dx;   dx  dx; dx 0;];
113        ElementIcons{jj}.ypts=[0  dy;   dy  2*dy;    2*dy  3*dy; 3*dy 2*dy; 2*dy dy; dy 0;];
114        ElementIcons{jj}.color='r';
115        ElementIcons{jj}.elementimage='sp3quadrupole_1.jpg';
116        ElementIcons{jj}.AOFamily=AO.(fam).FamilyName;
117        ElementIcons{jj}.AODevice=AO.(fam).DeviceList(ii,:);
118 end
119
120elemind=sort(elemind);
121SYS.elemind=elemind(:);   %store element indices for display
122setappdata(0,'SYS',SYS);
123setappdata(0,'ElementIcons',ElementIcons);
Note: See TracBrowser for help on using the repository browser.