1 | function [X Z Sum]=getbpmsum(varargin) |
---|
2 | %GETBPMSUM - Get Sum vector for BPM and display it |
---|
3 | % |
---|
4 | % |
---|
5 | % |
---|
6 | % See Also getbpmrawdata |
---|
7 | |
---|
8 | % |
---|
9 | %% Written by Laurent S. Nadolski |
---|
10 | |
---|
11 | %% UGLY PATCH 122 by HAND |
---|
12 | |
---|
13 | DisplayFlag = 1; |
---|
14 | |
---|
15 | for i = length(varargin):-1:1 |
---|
16 | if strcmpi(varargin{i},'Display') |
---|
17 | DisplayFlag = 1; |
---|
18 | varargin(i) = []; |
---|
19 | elseif strcmpi(varargin{i},'NoDisplay') |
---|
20 | DisplayFlag = 0; |
---|
21 | varargin(i) = []; |
---|
22 | end |
---|
23 | end |
---|
24 | |
---|
25 | % BPM avec status = 1 |
---|
26 | indexBPMStatusTo1 = family2status('BPMx') & family2status('BPMz'); |
---|
27 | |
---|
28 | % Filtre sur l'index des BPMs (ElementList) avec status = 1 |
---|
29 | BPMlist = getfamilydata('BPMx','ElementList'); |
---|
30 | BPMlist = BPMlist(indexBPMStatusTo1); |
---|
31 | |
---|
32 | % Filtre sur le nom des BPMs (DeviceList) avec status = 1 |
---|
33 | BPMDlist = getfamilydata('BPMx','DeviceList'); |
---|
34 | BPMDlist = BPMDlist(indexBPMStatusTo1,:); |
---|
35 | |
---|
36 | spos = getspos('BPMx'); |
---|
37 | Vect = getbpmrawdata(BPMDlist,'Nodisplay','Struct'); |
---|
38 | |
---|
39 | Sum = Vect.Data.Sum; |
---|
40 | X = Vect.Data.X; |
---|
41 | Z = Vect.Data.Z; |
---|
42 | [maxSum idx] = max(Sum'); |
---|
43 | |
---|
44 | %idx2 = sub2ind(size(AM.Data.Sum), xpos, idx+ishift) |
---|
45 | |
---|
46 | % figure |
---|
47 | % mesh(Vect.Data.Sum) |
---|
48 | |
---|
49 | xdeb=0; |
---|
50 | xfin=350; |
---|
51 | |
---|
52 | xmax=10; |
---|
53 | %xfin=getcircumference; |
---|
54 | |
---|
55 | %&é"idx(1) = 7; |
---|
56 | figure(205) |
---|
57 | h1 = subplot(7,1,[1 2]); |
---|
58 | plot(spos,maxSum,'.-'); |
---|
59 | ylabel('Sum Signal Amplitude (u.a.)'); |
---|
60 | xaxis([xdeb xfin]);yaxis([0 2*5e08]); |
---|
61 | |
---|
62 | h2 = subplot(7,1,[3 4]); |
---|
63 | plot(spos,X(BPMlist,idx(1)),'.-b'); |
---|
64 | % hold on |
---|
65 | % plot(spos,X(1:120,idx(1)+1),'.-r'); |
---|
66 | % hold off |
---|
67 | ylabel('X Amplitude (mm)'); |
---|
68 | yaxis([-xmax xmax]);xaxis([xdeb xfin]); |
---|
69 | |
---|
70 | h3 = subplot(7,1,[5 6]); |
---|
71 | plot(spos,Z(BPMlist,idx(1)),'.-b'); |
---|
72 | % hold on |
---|
73 | % plot(spos,Z(1:120,idx(1))+1,'.-r'); |
---|
74 | % hold off |
---|
75 | ylabel('Z Amplitude (mm)'); |
---|
76 | yaxis([-xmax xmax]);xaxis([xdeb xfin]); |
---|
77 | |
---|
78 | h4 = subplot(7,1,7); |
---|
79 | drawlattice |
---|
80 | set(h4,'YTick',[]) |
---|
81 | xaxis([xdeb xfin]); |
---|
82 | |
---|
83 | grid on |
---|
84 | xlabel('s [mm]'); |
---|
85 | |
---|
86 | linkaxes([h1 h2 h3 h4],'x') |
---|
87 | set([h1 h2 h3 h4],'XGrid','On','YGrid','On'); |
---|
88 | %xaxis([0 100]) |
---|
89 | |
---|
90 | addlabel(1,0,datestr(clock)); |
---|
91 | |
---|
92 | % Output data |
---|
93 | X = X(BPMlist,idx(1)); |
---|
94 | Z = Z(BPMlist,idx(1)); |
---|
95 | Sum = Sum(BPMlist,idx(1)); |
---|
96 | |
---|