Skip to content

Commit 77da0db

Browse files
committed
Align MBH
1 parent 27d7a88 commit 77da0db

File tree

2 files changed

+148
-0
lines changed

2 files changed

+148
-0
lines changed

align_mbh_v1.madx

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
align_elem(RREF,EELEM,SSHIFT): macro={
2+
stest=table(survey,EELEM,s);
3+
value,stest;
4+
if ( stest > 1e-9 ) {
5+
ttt=table(survey,RREF,theta); ctt=cos(ttt);stt=sin(ttt);
6+
xvz=stt; xvx=-ctt; zvz=ctt; zvx=stt; ! x and s directions
7+
zzz=table(survey,EELEM,z)-table(survey,RREF,z);
8+
xxx=table(survey,EELEM,x)-table(survey,RREF,x);
9+
dx_EELEM=zzz*xvz+xxx*xvx;
10+
sx_EELEM=zzz*zvz+xxx*zvx;
11+
value,dx_EELEM,sx_EELEM;
12+
if (dx_EELEM>0){
13+
dx_EELEM=dx_EELEM-(SSHIFT/1000);
14+
} else {
15+
dx_EELEM=dx_EELEM+(SSHIFT/1000);
16+
};
17+
value,dx_EELEM;
18+
select, flag=error, range=EELEM;
19+
ealign, dx=dx_EELEM;
20+
select, flag=error, clear;
21+
!r_MBHt=0.022;
22+
!show,EELEM;
23+
!EELEM,APERTYPE=RECTELLIPSE,APERTURE={r_MBHt,g_MBH,r_MBHt,r_MBHt},APER_TOL={r_tol_MBH,h_tol_MBH,v_tol_MBH};
24+
};
25+
};
26+
27+
align_slice(RREF,EELEM,NSLICE,SSHIFT): macro={
28+
exec,align_elem(RREF,EELEM..NSLICE,SSHIFT);
29+
};
30+
31+
align_group(RREF,EELEM,SSHIFT): macro={
32+
align_group_n=0;
33+
stest=1;
34+
while(align_group_n<64 && stest>1e-9){
35+
align_group_n=align_group_n+1;
36+
exec,align_slice(RREF,EELEM,$align_group_n,SSHIFT);
37+
};
38+
};
39+
40+
41+
align_mbh(mbn,irn,bim): macro={
42+
mbh_hsag_mm=mbh_hsag*1000;
43+
if (mbh_irirnqmbn >0){
44+
exec, align_group(MBH.AmbnRirn.bim,MBH.AmbnRirn.bim,mbh_hsag_mm);
45+
exec, align_group(MBH.AmbnLirn.bim,MBH.AmbnLirn.bim,mbh_hsag_mm);
46+
exec, align_group(MBH.BmbnRirn.bim,MBH.BmbnRirn.bim,mbh_hsag_mm);
47+
exec, align_group(MBH.BmbnLirn.bim,MBH.BmbnLirn.bim,mbh_hsag_mm);
48+
};
49+
};
50+
51+
52+
print,text="Running survey for alignment calculations...";
53+
survey;
54+
if (mylhcbeam==1){
55+
exec,align_mbh(8,1,b1); exec,align_mbh(9,1,b1); exec,align_mbh(10,1,b1);
56+
exec,align_mbh(8,2,b1); exec,align_mbh(10,2,b1);
57+
exec,align_mbh(8,5,b1); exec,align_mbh(9,5,b1); exec,align_mbh(10,5,b1);
58+
exec,align_mbh(8,7,b1); exec,align_mbh(10,7,b1);
59+
};
60+
if (mylhcbeam>1){
61+
exec,align_mbh(8,1,b2); exec,align_mbh(9,1,b1); exec,align_mbh(10,1,b2);
62+
exec,align_mbh(8,2,b2); exec,align_mbh(10,2,b2);
63+
exec,align_mbh(8,5,b2); exec,align_mbh(9,5,b2); exec,align_mbh(10,5,b2);
64+
exec,align_mbh(8,7,b2); exec,align_mbh(10,7,b2);
65+
};
66+
67+

align_mbh_v2.madx

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
align_elem(RREF,EELEM,SSHIFT): macro={
2+
stest=table(survey,EELEM,s);
3+
value,stest;
4+
if ( stest > 1e-9 ) {
5+
ttt=table(survey,RREF,theta); ctt=cos(ttt);stt=sin(ttt);
6+
xvz=stt; xvx=-ctt; zvz=ctt; zvx=stt; ! x and s directions
7+
zzz=table(survey,EELEM,z)-table(survey,RREF,z);
8+
xxx=table(survey,EELEM,x)-table(survey,RREF,x);
9+
dx_EELEM=zzz*xvz+xxx*xvx;
10+
sx_EELEM=zzz*zvz+xxx*zvx;
11+
value,dx_EELEM,sx_EELEM;
12+
if (dx_EELEM>0){
13+
dx_EELEM=dx_EELEM-(SSHIFT/1000);
14+
} else {
15+
dx_EELEM=dx_EELEM+(SSHIFT/1000);
16+
};
17+
value,dx_EELEM;
18+
select, flag=error, range=EELEM;
19+
ealign, dx=dx_EELEM;
20+
select, flag=error, clear;
21+
!r_MBHt=0.022;
22+
!show,EELEM;
23+
!EELEM,APERTYPE=RECTELLIPSE,APERTURE={r_MBHt,g_MBH,r_MBHt,r_MBHt},APER_TOL={r_tol_MBH,h_tol_MBH,v_tol_MBH},APER_OFFSET={dx_EELEM,0};
24+
};
25+
};
26+
27+
align_slice(RREF,EELEM,NSLICE,SSHIFT): macro={
28+
exec,align_elem(RREF,EELEM..NSLICE,SSHIFT);
29+
};
30+
31+
align_group(RREF,EELEM,SSHIFT): macro={
32+
align_group_n=0;
33+
stest=1;
34+
while(align_group_n<64 && stest>1e-9){
35+
align_group_n=align_group_n+1;
36+
exec,align_slice(RREF,EELEM,$align_group_n,SSHIFT);
37+
};
38+
};
39+
40+
41+
align_mbh(mbn,irn,bim): macro={
42+
mbh_hsag_mm=mbh_hsag*1000;
43+
if (mbh_irirnqmbn >0){
44+
exec, align_group(MBH.AmbnRirn.bim,MBH.AmbnRirn.bim,mbh_hsag_mm);
45+
exec, align_group(MBH.AmbnLirn.bim,MBH.AmbnLirn.bim,mbh_hsag_mm);
46+
exec, align_group(MBH.BmbnRirn.bim,MBH.BmbnRirn.bim,mbh_hsag_mm);
47+
exec, align_group(MBH.BmbnLirn.bim,MBH.BmbnLirn.bim,mbh_hsag_mm);
48+
};
49+
};
50+
51+
52+
print,text="Running survey for alignment calculations...";
53+
survey;
54+
if (mylhcbeam==1){
55+
exec,align_mbh(8,1,b1);
56+
exec,align_mbh(9,1,b1);
57+
exec,align_mbh(10,1,b1);
58+
exec,align_mbh(8,2,b1);
59+
exec,align_mbh(10,2,b1);
60+
exec,align_mbh(8,5,b1);
61+
exec,align_mbh(9,5,b1);
62+
exec,align_mbh(10,5,b1);
63+
exec,align_mbh(8,7,b1);
64+
exec,align_mbh(9,7,b1);
65+
exec,align_mbh(10,7,b1);
66+
};
67+
if (mylhcbeam>1){
68+
exec,align_mbh(8,1,b2);
69+
exec,align_mbh(9,1,b1);
70+
exec,align_mbh(10,1,b2);
71+
exec,align_mbh(8,2,b2);
72+
exec,align_mbh(10,2,b2);
73+
exec,align_mbh(8,5,b2);
74+
exec,align_mbh(9,5,b2);
75+
exec,align_mbh(10,5,b2);
76+
exec,align_mbh(8,7,b2);
77+
exec,align_mbh(9,7,b2);
78+
exec,align_mbh(10,7,b2);
79+
};
80+
81+

0 commit comments

Comments
 (0)