source: MML/trunk/machine/SOLEIL/StorageRing/diagnostics/duree_vie.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: 1.3 KB
Line 
1function [LT,is_valid,valid_samples]=duree_vie(bpm_group,N_samples)
2fSA=9.8428;
3attr_list={'SumSAHistory'};
4
5
6result=tango_group_read_attributes2(bpm_group,attr_list);
7N_bpm=size(result.dev_replies,2);
8LT(N_bpm)=0;
9for j=1:1:N_bpm
10    stop_scan=0;
11    buffer_length=size(result.dev_replies(j).attr_values.value,2);
12    index=buffer_length;
13    while stop_scan==0
14%        if result.dev_replies(j).attr_values.value(index)>1.0003*result.dev_replies(j).attr_values.value(index-1)
15        if result.dev_replies(j).attr_values.value(index)>1.003*result.dev_replies(j).attr_values.value(index-1)
16            start=index+5;
17            stop_scan=1;
18%            fprintf('scan stopped at sample %d for bpm %d \n', index,j)
19        else
20            index=index-1;
21        end
22        if index==buffer_length-N_samples
23            stop_scan=1;
24            start=buffer_length-N_samples;
25        end
26    end
27    new_sum=result.dev_replies(j).attr_values.value(start:buffer_length);
28     valid_samples(j)=buffer_length-start;
29    if(valid_samples(j)<70)
30        is_valid(j)=0;
31        LT(j)=NaN;
32    else
33        is_valid(j)=1;
34        LT(j)=-((0-double(int16(valid_samples(j)/2)))/(3600*fSA))/(log(mean(new_sum(1:double(uint16(valid_samples(j)/2))))/(mean(new_sum(double(uint16(valid_samples(j)/2)+1):valid_samples(j))))));
35    end
36
37
38end
39% figure(1)
40% plot(LT)
Note: See TracBrowser for help on using the repository browser.