1 | function quadgetstepPS |
---|
2 | % Computes for 1 A shift a quadrupole offset by 100 µm |
---|
3 | |
---|
4 | % load lattice |
---|
5 | solamor2linb |
---|
6 | |
---|
7 | getquadefficiency('Q1', [1 1]); |
---|
8 | getquadefficiency('Q2', [1 1]); |
---|
9 | getquadefficiency('Q3', [1 1]); |
---|
10 | getquadefficiency('Q4', [1 1]); |
---|
11 | getquadefficiency('Q4', [1 2]); |
---|
12 | getquadefficiency('Q5', [1 1]); |
---|
13 | getquadefficiency('Q5', [1 2]); |
---|
14 | getquadefficiency('Q6', [1 1]); |
---|
15 | getquadefficiency('Q6', [2 1]); |
---|
16 | getquadefficiency('Q7', [1 1]); |
---|
17 | getquadefficiency('Q7', [2 1]); |
---|
18 | getquadefficiency('Q8', [1 1]); |
---|
19 | getquadefficiency('Q8', [2 1]); |
---|
20 | getquadefficiency('Q9', [2 1]); |
---|
21 | getquadefficiency('Q10', [2 1]); |
---|
22 | |
---|
23 | function [xmax zmax] = getquadefficiency(Family, DeviceList) |
---|
24 | |
---|
25 | DIQ = 1; %A |
---|
26 | xshift = 100e-6; % um |
---|
27 | zshift = 100e-6; % um |
---|
28 | |
---|
29 | % offset by 100µm in both planes |
---|
30 | atIdx = family2atindex(Family, DeviceList); |
---|
31 | setshift(atIdx, xshift,zshift) |
---|
32 | |
---|
33 | fprintf('Offset dx = %.0f um dz = %.0f um\n', xshift*1e6, zshift*1e6); |
---|
34 | |
---|
35 | % Orbit correction |
---|
36 | for k =1:3, |
---|
37 | setorbitH; |
---|
38 | setorbitV; |
---|
39 | end |
---|
40 | |
---|
41 | % get orbit before quadrupole step point |
---|
42 | x0 = getx; |
---|
43 | z0 = getz; |
---|
44 | |
---|
45 | stepsp(Family, DIQ, DeviceList); |
---|
46 | |
---|
47 | % get orbit after quadrupole step point |
---|
48 | x1 = getx; |
---|
49 | z1 = getz; |
---|
50 | |
---|
51 | dx = x1-x0; |
---|
52 | dz = z1-z0; |
---|
53 | |
---|
54 | xmax = max(abs(dx)); |
---|
55 | zmax = max(abs(dz)); |
---|
56 | fprintf('quadrupole %s(%d, %d) (+%d A) xmax = %.4f mm zmax =%.4f mm\n', Family, DeviceList, DIQ, xmax, zmax) |
---|
57 | |
---|
58 | % |
---|
59 | stepsp(Family, -DIQ, DeviceList); |
---|
60 | |
---|
61 | %reset align |
---|
62 | setsp('HCOR',0); |
---|
63 | setsp('VCOR',0); |
---|
64 | |
---|
65 | |
---|