source: MML/trunk/machine/SOLEIL/StorageRing/insertions/IDStarter/idCalcCorRespMatr.m @ 17

Last change on this file since 17 was 17, checked in by zhangj, 10 years ago

To have a stable version on the server.

  • Property svn:executable set to *
File size: 3.0 KB
Line 
1function [mCorRespX, mCorRespZ] = idCalcCorRespMatr(idName, gap, dirMeas)
2% Modified by Fabien on December 4th : the correctors current values are
3% not an argument of the function anymore. See idCalcCorRespMatr_old in
4% case of problem!
5
6
7[arElecBeamMeasCHE, arElecBeamMeasBkgrCHE, vCurValsCHE] = idReadCorElecBeamMeasData(idName, gap, 'CHE');
8[arElecBeamMeasCVE, arElecBeamMeasBkgrCVE, vCurValsCVE] = idReadCorElecBeamMeasData(idName, gap, 'CVE');
9[arElecBeamMeasCHS, arElecBeamMeasBkgrCHS, vCurValsCHS] = idReadCorElecBeamMeasData(idName, gap, 'CHS');
10[arElecBeamMeasCVS, arElecBeamMeasBkgrCVS, vCurValsCVS] = idReadCorElecBeamMeasData(idName, gap, 'CVS');
11
12dirStart = pwd;
13if strcmp(dirMeas, '')
14    dirMeas = getfamilydata('Directory',idName);
15end
16
17cd(dirMeas);
18stMeas = load(char(arElecBeamMeasCHE(1)));
19cd(dirStart);
20
21numCurValsCHE = length(vCurValsCHE);
22numCurValsCVE = length(vCurValsCVE);
23numCurValsCHS = length(vCurValsCHS);
24numCurValsCVS = length(vCurValsCVS);
25numBPMs = length(stMeas.X);
26mCorRespX = zeros(numBPMs, 2);
27mCorRespZ = zeros(numBPMs, 2);
28
29arStMeasCHE = cell(1, numCurValsCHE);
30arStMeasCVE = cell(1, numCurValsCVE);
31arStMeasCHS = cell(1, numCurValsCHS);
32arStMeasCVS = cell(1, numCurValsCVS);
33arStMeasBkgrCHE = cell(1, numCurValsCHE);
34arStMeasBkgrCVE = cell(1, numCurValsCVE);
35arStMeasBkgrCHS = cell(1, numCurValsCHS);
36arStMeasBkgrCVS = cell(1, numCurValsCVS);
37
38cd(dirMeas);
39for j = 1:numCurValsCHE
40        arStMeasCHE{j} = load(char(arElecBeamMeasCHE(j)));
41    arStMeasBkgrCHE{j} = load(char(arElecBeamMeasBkgrCHE(j)));
42end
43for j = 1:numCurValsCVE
44    arStMeasCVE{j} = load(char(arElecBeamMeasCVE(j)));
45    arStMeasBkgrCVE{j} = load(char(arElecBeamMeasBkgrCVE(j)));
46end
47for j = 1:numCurValsCHS
48    arStMeasCHS{j} = load(char(arElecBeamMeasCHS(j)));
49        arStMeasBkgrCHS{j} = load(char(arElecBeamMeasBkgrCHS(j)));
50end
51for j = 1:numCurValsCVS
52    arStMeasCVS{j} = load(char(arElecBeamMeasCVS(j)));
53        arStMeasBkgrCVS{j} = load(char(arElecBeamMeasBkgrCVS(j)));
54end
55cd(dirStart);
56
57arAuxCHE = zeros(numCurValsCHE, 1);
58arAuxCVE = zeros(numCurValsCVE, 1);
59arAuxCHS = zeros(numCurValsCHS, 1);
60arAuxCVS = zeros(numCurValsCVS, 1);
61
62for i = 1:numBPMs
63    for j = 1:numCurValsCHE
64        stMeasCHE = arStMeasCHE{j};
65        stMeasBkgrCHE = arStMeasBkgrCHE{j};
66        arAuxCHE(j) = stMeasCHE.X(i) - stMeasBkgrCHE.X(i);
67    end
68    for j = 1:numCurValsCVE
69        stMeasCVE = arStMeasCVE{j};
70        stMeasBkgrCVE = arStMeasBkgrCVE{j};
71        arAuxCVE(j) = stMeasCVE.Z(i) - stMeasBkgrCVE.Z(i);
72    end
73    for j = 1:numCurValsCHS
74        stMeasCHS = arStMeasCHS{j};
75        stMeasBkgrCHS = arStMeasBkgrCHS{j};
76        arAuxCHS(j) = stMeasCHS.X(i) - stMeasBkgrCHS.X(i);
77    end
78    for j = 1:numCurValsCVS
79        stMeasCVS = arStMeasCVS{j};
80        stMeasBkgrCVS = arStMeasBkgrCVS{j};
81        arAuxCVS(j) = stMeasCVS.Z(i) - stMeasBkgrCVS.Z(i);
82    end
83   
84    mCorRespX(i, 1) = idLeastSqLineTilt(vCurValsCHE, arAuxCHE);
85    mCorRespX(i, 2) = idLeastSqLineTilt(vCurValsCHS, arAuxCHS);
86    mCorRespZ(i, 1) = idLeastSqLineTilt(vCurValsCVE, arAuxCVE);
87    mCorRespZ(i, 2) = idLeastSqLineTilt(vCurValsCVS, arAuxCVS);
88end
89
90
Note: See TracBrowser for help on using the repository browser.