1 | bbho(nn): macro = { |
---|
2 | !--- macro defining head-on beam-beam elements; nn = IP number |
---|
3 | print, text="bbipnnl2: beambeam, sigx=sqrt(rnnipnnl2->betx*epsx),"; |
---|
4 | print, text=" sigy=sqrt(rnnipnnl2->bety*epsy),"; |
---|
5 | print, text=" xma=rnnipnnl2->x,yma=rnnipnnl2->y,"; |
---|
6 | print, text=" charge:=on_honn;"; |
---|
7 | print, text="bbipnnl1: beambeam, sigx=sqrt(rnnipnnl1->betx*epsx),"; |
---|
8 | print, text=" sigy=sqrt(rnnipnnl1->bety*epsy),"; |
---|
9 | print, text=" xma=rnnipnnl1->x,yma=rnnipnnl1->y,"; |
---|
10 | print, text=" charge:=on_honn;"; |
---|
11 | print, text="bbipnn: beambeam, sigx=sqrt(rnnipnn->betx*epsx),"; |
---|
12 | print, text=" sigy=sqrt(rnnipnn->bety*epsy),"; |
---|
13 | print, text=" xma=rnnipnn->x,yma=rnnipnn->y,"; |
---|
14 | print, text=" charge:=on_honn;"; |
---|
15 | print, text="bbipnnr1: beambeam, sigx=sqrt(rnnipnnr1->betx*epsx),"; |
---|
16 | print, text=" sigy=sqrt(rnnipnnr1->bety*epsy),"; |
---|
17 | print, text=" xma=rnnipnnr1->x,yma=rnnipnnr1->y,"; |
---|
18 | print, text=" charge:=on_honn;"; |
---|
19 | print, text="bbipnnr2: beambeam, sigx=sqrt(rnnipnnr2->betx*epsx),"; |
---|
20 | print, text=" sigy=sqrt(rnnipnnr2->bety*epsy),"; |
---|
21 | print, text=" xma=rnnipnnr2->x,yma=rnnipnnr2->y,"; |
---|
22 | print, text=" charge:=on_honn;"; |
---|
23 | }; |
---|
24 | |
---|
25 | mkho(nn): macro = { |
---|
26 | !--- macro defining head-on markers; nn = IP number |
---|
27 | print, text="mkipnnl2: bbmarker;"; |
---|
28 | print, text="mkipnnl1: bbmarker;"; |
---|
29 | print, text="mkipnn: bbmarker;"; |
---|
30 | print, text="mkipnnr1: bbmarker;"; |
---|
31 | print, text="mkipnnr2: bbmarker;"; |
---|
32 | }; |
---|
33 | |
---|
34 | inho(xx,nn): macro = { |
---|
35 | !--- macro installing bb or markers for head-on beam-beam (split into 5) |
---|
36 | print, text="install, element= xxipnnl2, at=-long_b, from=ipnn;"; |
---|
37 | print, text="install, element= xxipnnl1, at=-long_a, from=ipnn;"; |
---|
38 | print, text="install, element= xxipnn, at=1.e-9, from=ipnn;"; |
---|
39 | print, text="install, element= xxipnnr1, at=+long_a, from=ipnn;"; |
---|
40 | print, text="install, element= xxipnnr2, at=+long_b, from=ipnn;"; |
---|
41 | }; |
---|
42 | |
---|
43 | sbhomk(nn): macro = { |
---|
44 | !--- macro to create savebetas for ho markers |
---|
45 | print, text="savebeta, label=rnnipnnl2, place=mkipnnl2;"; |
---|
46 | print, text="savebeta, label=rnnipnnl1, place=mkipnnl1;"; |
---|
47 | print, text="savebeta, label=rnnipnn, place=mkipnn;"; |
---|
48 | print, text="savebeta, label=rnnipnnr1, place=mkipnnr1;"; |
---|
49 | print, text="savebeta, label=rnnipnnr2, place=mkipnnr2;"; |
---|
50 | }; |
---|
51 | |
---|
52 | mkl(nn,cc): macro = { |
---|
53 | !--- macro to create parasitic bb marker on left side of ip nn; cc = count |
---|
54 | print, text="mkipnnplcc: bbmarker;"; |
---|
55 | }; |
---|
56 | |
---|
57 | mkr(nn,cc): macro = { |
---|
58 | !--- macro to create parasitic bb marker on right side of ip nn; cc = count |
---|
59 | print, text="mkipnnprcc: bbmarker;"; |
---|
60 | }; |
---|
61 | |
---|
62 | sbl(nn,cc): macro = { |
---|
63 | !--- macro to create savebetas for left parasitic |
---|
64 | print, text="savebeta, label=rnnipnnplcc, place=mkipnnplcc;"; |
---|
65 | }; |
---|
66 | |
---|
67 | sbr(nn,cc): macro = { |
---|
68 | !--- macro to create savebetas for right parasitic |
---|
69 | print, text="savebeta, label=rnnipnnprcc, place=mkipnnprcc;"; |
---|
70 | }; |
---|
71 | |
---|
72 | inl(xx,nn,cc): macro = { |
---|
73 | !--- macro installing bb and markers for left side parasitic beam-beam |
---|
74 | print, text="install, element= xxipnnplcc, at=-cc*b_h_dist, from=ipnn;"; |
---|
75 | }; |
---|
76 | |
---|
77 | inr(xx,nn,cc): macro = { |
---|
78 | !--- macro installing bb and markers for right side parasitic beam-beam |
---|
79 | print, text="install, element= xxipnnprcc, at=cc*b_h_dist, from=ipnn;"; |
---|
80 | }; |
---|
81 | |
---|
82 | bbl(nn,cc): macro = { |
---|
83 | !--- macro defining parasitic beam-beam elements; nn = IP number |
---|
84 | print, text="bbipnnplcc: beambeam, sigx=sqrt(rnnipnnplcc->betx*epsx),"; |
---|
85 | print, text=" sigy=sqrt(rnnipnnplcc->bety*epsy),"; |
---|
86 | print, text=" xma=rnnipnnplcc->x,yma=rnnipnnplcc->y,"; |
---|
87 | print, text=" charge:=on_lrnnl;"; |
---|
88 | }; |
---|
89 | |
---|
90 | bbr(nn,cc): macro = { |
---|
91 | !--- macro defining parasitic beam-beam elements; nn = IP number |
---|
92 | print, text="bbipnnprcc: beambeam, sigx=sqrt(rnnipnnprcc->betx*epsx),"; |
---|
93 | print, text=" sigy=sqrt(rnnipnnprcc->bety*epsy),"; |
---|
94 | print, text=" xma=rnnipnnprcc->x,yma=rnnipnnprcc->y,"; |
---|
95 | print, text=" charge:=on_lrnnr;"; |
---|
96 | }; |
---|