[4] | 1 | function Diamondelementicons; |
---|
| 2 | %initialize element icon data for SPEAR3 |
---|
| 3 | %other machines modify family names accordingly |
---|
| 4 | %call this routine from orbit initialization |
---|
| 5 | |
---|
| 6 | global THERING SYS |
---|
| 7 | %SYS=getappdata(0,'SYS'); |
---|
| 8 | dx=0.01; |
---|
| 9 | dx2=0.005; |
---|
| 10 | |
---|
| 11 | AO=GetAO; |
---|
| 12 | ElementIcons=cell(1,size(THERING,2)); %generate ElementIcons cell array/store information in appdata |
---|
| 13 | |
---|
| 14 | %BPMS |
---|
| 15 | fam='BPMx'; |
---|
| 16 | phi=2*pi*[0:0.01:1]; |
---|
| 17 | ifam=isfamily(fam); |
---|
| 18 | ind=AO.(fam).AT.ATIndex; |
---|
| 19 | elemind=ind; |
---|
| 20 | phi=2*pi*[0:0.05:1]; |
---|
| 21 | jj=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 |
---|
| 33 | fam='HCM'; |
---|
| 34 | ifam=isfamily(fam); |
---|
| 35 | ind=AO.(fam).AT.ATIndex; |
---|
| 36 | elemind=[elemind; ind]; |
---|
| 37 | dx=0.005; dx2=0.0015; |
---|
| 38 | dy=0.6; dy2=0.10; |
---|
| 39 | jj=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 |
---|
| 51 | dx=0.010; |
---|
| 52 | dx2=0.002; |
---|
| 53 | dy=0.85; |
---|
| 54 | dy2=0.1; |
---|
| 55 | |
---|
| 56 | fam='BEND'; |
---|
| 57 | ifam=isfamily(fam); |
---|
| 58 | ind=AO.(fam).AT.ATIndex; |
---|
| 59 | elemind=[elemind; ind]; |
---|
| 60 | jj=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 |
---|
| 72 | dx=0.003; |
---|
| 73 | dy=0.33; |
---|
| 74 | |
---|
| 75 | fam='Q1B'; |
---|
| 76 | ifam=isfamily(fam); |
---|
| 77 | ind=AO.(fam).AT.ATIndex; |
---|
| 78 | elemind=[elemind; ind]; |
---|
| 79 | jj=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 | |
---|
| 90 | fam='Q2B'; |
---|
| 91 | ifam=isfamily(fam); |
---|
| 92 | ind=AO.(fam).AT.ATIndex; |
---|
| 93 | elemind=[elemind; ind]; |
---|
| 94 | jj=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 | |
---|
| 105 | fam='Q3B'; |
---|
| 106 | ifam=isfamily(fam); |
---|
| 107 | ind=AO.(fam).AT.ATIndex; |
---|
| 108 | elemind=[elemind; ind]; |
---|
| 109 | jj=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 | |
---|
| 120 | elemind=sort(elemind); |
---|
| 121 | SYS.elemind=elemind(:); %store element indices for display |
---|
| 122 | setappdata(0,'SYS',SYS); |
---|
| 123 | setappdata(0,'ElementIcons',ElementIcons); |
---|