1 | function [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 | |
---|
12 | dirStart = pwd; |
---|
13 | if strcmp(dirMeas, '') |
---|
14 | dirMeas = getfamilydata('Directory',idName); |
---|
15 | end |
---|
16 | |
---|
17 | cd(dirMeas); |
---|
18 | stMeas = load(char(arElecBeamMeasCHE(1))); |
---|
19 | cd(dirStart); |
---|
20 | |
---|
21 | numCurValsCHE = length(vCurValsCHE); |
---|
22 | numCurValsCVE = length(vCurValsCVE); |
---|
23 | numCurValsCHS = length(vCurValsCHS); |
---|
24 | numCurValsCVS = length(vCurValsCVS); |
---|
25 | numBPMs = length(stMeas.X); |
---|
26 | mCorRespX = zeros(numBPMs, 2); |
---|
27 | mCorRespZ = zeros(numBPMs, 2); |
---|
28 | |
---|
29 | arStMeasCHE = cell(1, numCurValsCHE); |
---|
30 | arStMeasCVE = cell(1, numCurValsCVE); |
---|
31 | arStMeasCHS = cell(1, numCurValsCHS); |
---|
32 | arStMeasCVS = cell(1, numCurValsCVS); |
---|
33 | arStMeasBkgrCHE = cell(1, numCurValsCHE); |
---|
34 | arStMeasBkgrCVE = cell(1, numCurValsCVE); |
---|
35 | arStMeasBkgrCHS = cell(1, numCurValsCHS); |
---|
36 | arStMeasBkgrCVS = cell(1, numCurValsCVS); |
---|
37 | |
---|
38 | cd(dirMeas); |
---|
39 | for j = 1:numCurValsCHE |
---|
40 | arStMeasCHE{j} = load(char(arElecBeamMeasCHE(j))); |
---|
41 | arStMeasBkgrCHE{j} = load(char(arElecBeamMeasBkgrCHE(j))); |
---|
42 | end |
---|
43 | for j = 1:numCurValsCVE |
---|
44 | arStMeasCVE{j} = load(char(arElecBeamMeasCVE(j))); |
---|
45 | arStMeasBkgrCVE{j} = load(char(arElecBeamMeasBkgrCVE(j))); |
---|
46 | end |
---|
47 | for j = 1:numCurValsCHS |
---|
48 | arStMeasCHS{j} = load(char(arElecBeamMeasCHS(j))); |
---|
49 | arStMeasBkgrCHS{j} = load(char(arElecBeamMeasBkgrCHS(j))); |
---|
50 | end |
---|
51 | for j = 1:numCurValsCVS |
---|
52 | arStMeasCVS{j} = load(char(arElecBeamMeasCVS(j))); |
---|
53 | arStMeasBkgrCVS{j} = load(char(arElecBeamMeasBkgrCVS(j))); |
---|
54 | end |
---|
55 | cd(dirStart); |
---|
56 | |
---|
57 | arAuxCHE = zeros(numCurValsCHE, 1); |
---|
58 | arAuxCVE = zeros(numCurValsCVE, 1); |
---|
59 | arAuxCHS = zeros(numCurValsCHS, 1); |
---|
60 | arAuxCVS = zeros(numCurValsCVS, 1); |
---|
61 | |
---|
62 | for 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); |
---|
88 | end |
---|
89 | |
---|
90 | |
---|