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; |
---|