source: MML/trunk/machine/SOLEIL/StorageRing/BBA/bmp4Cor.m @ 4

Last change on this file since 4 was 4, checked in by zhangj, 11 years ago

Initial import--MML version from SOLEIL@2013

File size: 5.3 KB
Line 
1function [CorFamRes,CorDevListRes,BpmFamRes,BpmDevListRes,BpmEyeRes,ConsRes]=bmp4Cor(QuadFamilyList,QuadDevList,Plane)
2%clear
3%load('HrzCOR.mat');
4%Donnᅵes stockᅵe dans HrzCOR.mat ᅵ partir du prog eff2.m
5%save('HrzCOR.mat','listHCOR','listBPMx','repInit','rep','effic','famQp','famQtot','listfamQtot','famBp','indBp','posBp','amplEff','HCORtrouv','famQtrouv','indQtrouv','nbH','indnbH','nbHCOR');
6
7if     Plane==1
8            BpmFam='BPMx';
9            CorFam='HCOR';
10            NamePlane='HPlane';
11            %CorBpmResp=efficacy.HPlane; %effic(Cor,Bpm)
12            BpmMax=37;
13    elseif Plane==2
14            BpmFam='BPMz';
15            CorFam='VCOR';
16            NamePlane='VPlane';
17            %CorBpmResp=efficacy.VPlane;
18            BpmMax=4.5;
19    else
20        error('input must "1" for horizontal plane or "2" for vertical plane');
21   
22end
23
24% OPTION ALL Qp
25%for i=1:160 %length(famQtot) % <=> famQtot = vecteur de longueur 160 contenant toutes les familles Qp: 'Q1','Q1'...
26    disp('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$')
27    %tailleQp=size(QuadFamilyList);
28   
29    for i=1:length(QuadFamilyList)
30       
31   
32    %listfamQtot(i,:);
33    %indBp(i,:);
34    if Plane==1
35    [famCb1,indCb1,posHb1]=proche2(CorFam,char(QuadFamilyList(i)),QuadDevList(i,:),-1);      % Hb1= first  HCOR before Qp [cell elt]
36    [famCa1,indCa1,posHa1]=proche2(CorFam,char(QuadFamilyList(i)),QuadDevList(i,:),1);       % Ha1= first  HCOR after  Qp [cell elt]
37    [famCb2,indCb2,posHb2]=proche2(CorFam,CorFam,indCb1,-1);                % Hb2= second HCOR before Qp [cell elt]
38    [famCa2,indCa2,posHa2]=proche2(CorFam,CorFam,indCa1,1);                 % Ha2= second HCOR after  Qp [cell elt]
39   
40    % Hb2 Hb1 Qp Ha1 Ha2
41   
42   % [famBa1,indBa1,posBb1]=proche2(BpmFam,CorFam,indCb1,1)           % Bb1 = first  BPM after  HCOR "Hb1"
43   % [famBa2,indBa2,posBb2]=proche2(BpmFam,BpmFam,indBa1,1)          % Bb2 = second BPM after  HCOR "Hb1"
44   %
45   % [famBb1,indBb1,posBa1]=proche2(BpmFam,CorFam,indCa1,-1)         % Ba1 = first  BPM before HCOR "Ha1"
46   % [famBb2,indBb2,posBa2]=proche2(BpmFam,CorFam,indBb1,-1)
47   
48   
49    %[famBqb1,indBqb1,posBqb1]=proche2('BPMx',char(famQtot(i)),listfamQtot(i,:),-1);    % Bqb1 = first   BPM before Qp [cell elt]
50    %[famBqa1,indBqa1,posBqa1]=proche2('BPMx',char(famQtot(i)),listfamQtot(i,:),1);     % Bqa1 = first   BPM after  Qp [cell elt]
51   
52     %Il y a soit 2 BPM soit 3 BPM entre deux HCOR
53   
54         %if (sum(indBb1-indBa1)==0) | (sum(indBb1-indBa2)==0)
55         %    vecBp=[indBa1;indBa2];
56         %    cons=[1;1];
57         %else
58         %    vecBp=[indBa1;indBa2;indBb1];
59         %    cons=[1;1;1]
60         %end
61     elseif Plane==2
62         [famB0,indB0,posB0]=proche2(BpmFam,QuadFamilyList(i),QuadDevList(i,:),0);
63         [famBb1,indBb1,posb1]=proche2(BpmFam,QuadFamilyList(i),QuadDevList(i,:),-1);
64         [famBa1,indBa1,posa1]=proche2(BpmFam,QuadFamilyList(i),QuadDevList(i,:),1 );
65         testVecBp=[indBb1;indBa1]-[indB0;indB0];
66         testVec1(1)=sum(testVecBp(1,:));
67         testVec1(2)=sum(testVecBp(2,:));
68         
69         if testVec1(1)==0
70             %les cor avant Qp seront recherchés à partir de indB0
71             %les cor aprÚs Qp seront recherché à partir de Qp
72             [famCb1,indCb1,posCb1]=proche2(CorFam,BpmFam,indB0,-1);
73             [famCb2,indCb2,posCb2]=proche2(CorFam,famCb1,indCb1,-1)
74             
75             [famCa1,indCa1,posCa1]=proche2(CorFam,QuadFamilyList(i),QuadDevList(i,:),1);
76             [famCa2,indCa2,posCa2]=proche2(CorFam,famCa1,indCa1,1);
77             
78             %quels sont les bpm compris entre Cb1 et Ca1
79             %comparer tous les Bpm aprÚs le premier correcteur avant (Cb1) avec le premier avant
80             
81           
82             
83             
84             
85         elseif testVec1(2)==0
86             %les cor avant Qp seront recherché à partir de Qp
87             %les cor aprÚs Qp seront recherché à partir de indB0
88             
89             [famCb1,indCb1,posb1]=proche2(CorFam,QuadFamilyList(i),QuadDevList(i,:),-1);
90             [famCb2,indCb2,posb2]=proche2(CorFam,famCb1,indCb1,-1);
91             
92             [famCa1,indCa1,posa1]=proche2(CorFam,BpmFam,indB0,1);
93             [famCa2,indCa2,posa2]=proche2(CorFam,famCa1,indCa1,1);
94             
95                     
96           
97             
98         end
99         
100    end
101     [famBt0,indBt0,post0]=proche2(BpmFam,famCa1,indCa1,-1); % first BPM before Ca1
102             
103             var=0;
104             condi=10;
105             famBt1=famCb1;
106             indBt1=indCb1;
107             while abs(condi)>0
108                 var=var+1;
109                 [famBt1,indBt1,posBt1]=proche2(BpmFam,famBt1,indBt1,1);
110                 famBtSol(var)=cellstr(famBt1);
111                 indBtSol(var,:)=indBt1;
112                 posBtSol(var)=posBt1;
113                 condi=indBtSol(var,:)-indBt0;
114                 condi=sum(condi);
115                 %disp(condi);
116                 %disp(var);
117             end
118         for j=1:var
119             vecBp(j,:)=indBtSol(j,:);
120             cons(j)=1;
121         end
122   
123    [famYQp,indYQp,posYQp]=proche2(BpmFam,char(QuadFamilyList(i)),QuadDevList(i,:),0,vecBp);
124   
125    CorFamRes=CorFam;
126    CorDevListRes=[indCb2; indCb1; indCa1; indCa2];
127    BpmFamRes=BpmFam;
128    BpmDevListRes=vecBp;
129    BpmEyeRes=indYQp;
130    ConsRes=cons;
131   
132end
133
134%save('bmp4.mat','indC','valH','famQtot','listfamQtot')
Note: See TracBrowser for help on using the repository browser.