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