[4] | 1 | function varargout = bpminit_orb |
---|
| 2 | % BPMINIT_Orb - Initialize electron BPM data for ORBIT program |
---|
| 3 | |
---|
| 4 | % |
---|
| 5 | % Written by William J. Corbett |
---|
| 6 | % Adapted by Laurent S. Nadolski |
---|
| 7 | |
---|
| 8 | BPMxFamily = 'BPMx'; |
---|
| 9 | BPMzFamily = 'BPMz'; |
---|
| 10 | |
---|
| 11 | AO = getao; |
---|
| 12 | |
---|
| 13 | %horizontal plane *** |
---|
| 14 | BPM(1).AOFamily = BPMxFamily; |
---|
| 15 | BPM(1).name = AO.(BPMxFamily).CommonNames; |
---|
| 16 | BPM(1).s = AO.(BPMxFamily).Position; |
---|
| 17 | ntbpm = size(BPM(1).name,1); |
---|
| 18 | BPM(1).mode = 0; %display to show name, toggle for BPM.ifit |
---|
| 19 | BPM(1).ref = zeros(ntbpm,1); %...BPM.ref,des,abs all set in reference read |
---|
| 20 | BPM(1).des = zeros(ntbpm,1); %...initialize array |
---|
| 21 | BPM(1).act = zeros(ntbpm,1); %...initialize array |
---|
| 22 | BPM(1).rffit = zeros(ntbpm,1); %...initialize dispersion component |
---|
| 23 | BPM(1).avail = (1:ntbpm)'; %...initialize all BPMs available |
---|
| 24 | BPM(1).ifit = (1:ntbpm)'; %...initialize all BPMs on for fitting |
---|
| 25 | BPM(1).fit = zeros(ntbpm,1); %...initialize fitted solution zero |
---|
| 26 | BPM(1).wt = ones(ntbpm,1); %...SVD fitting weights |
---|
| 27 | BPM(1).etawt = ones(ntbpm,1); %...SVD dispersion fitting weights |
---|
| 28 | BPM(1).id = 1; %...initialize BPM selection |
---|
| 29 | BPM(1).ATindex = AO.(BPMxFamily).AT.ATIndex; %load AT indices |
---|
| 30 | BPM(1).ntbpm = ntbpm; % number of bpms |
---|
| 31 | |
---|
| 32 | |
---|
| 33 | % vertical plane |
---|
| 34 | BPM(2).AOFamily= BPMzFamily; |
---|
| 35 | BPM(2).name = AO.(BPMzFamily).CommonNames; |
---|
| 36 | BPM(2).s = AO.(BPMzFamily).Position; |
---|
| 37 | ntbpm = size(BPM(2).name,1); |
---|
| 38 | BPM(2).mode = 0; %display to show name, toggle for BPM.ifit |
---|
| 39 | BPM(2).ref = zeros(ntbpm,1); %...BPM.ref,des,abs all set in reference read |
---|
| 40 | BPM(2).des = zeros(ntbpm,1); %...initialize array |
---|
| 41 | BPM(2).act = zeros(ntbpm,1); %...initialize array |
---|
| 42 | BPM(2).rffit= zeros(ntbpm,1); %...initialize dispersion component |
---|
| 43 | BPM(2).avail= (1:ntbpm)'; %...initialize all BPMs available |
---|
| 44 | BPM(2).ifit = (1:ntbpm)'; %...initialize all BPMs on for fitting |
---|
| 45 | BPM(2).fit = zeros(ntbpm,1); %...initialize fitted solution zero |
---|
| 46 | BPM(2).wt = ones(ntbpm,1); %...SVD fitting weights |
---|
| 47 | BPM(2).etawt= ones(ntbpm,1); %...SVD dispersion fitting weights |
---|
| 48 | BPM(2).id = 1; %...initialize BPM selection |
---|
| 49 | BPM(2).ATindex = AO.(BPMxFamily).AT.ATIndex; %load AT indices |
---|
| 50 | BPM(2).ntbpm = ntbpm; %number of bpms |
---|
| 51 | |
---|
| 52 | varargout{1} = BPM; |
---|