source: PSPA/madxPSPA/tests/test-track-11/slhc_sequence.madx @ 457

Last change on this file since 457 was 430, checked in by touze, 11 years ago

import madx-5.01.00

File size: 29.1 KB
Line 
1! S. Fartoukh: 06/06/2009: Version compatible with beam1, beam2 or beam4;
2! Revised version for SLHCV2: S. Fartoukh 30.09.2009
3! Based on SLHC3.0/removeinstall.madx
4! 2011/11 R. De Maria
5! To be called once at the beginning of the script
6! Use removeinstall.madx to place and displace elements
7! - New name conventions and element classes
8! - Additional orbit correctors for closed crossing scheme
9! - Movable D2,Q4,Q5,Q6
10! - MQYL in Q5 IR6
11! - Addition MS in Q10
12! - Default reference radius
13! - Additional corrector package
14! 2012/03/19 new MCBX lengths and position, new BPMS position
15!            bug in a5/b5 kmax corrected
16! 2012/03/20 new name for BPM in the triplet from BPMSD to BPMSQ
17!            xywab(d)e already taken
18! 2012/03/20 a5/b5 bug in the definition of the strengths
19! 2012/07/13 Crab cavity elements as tkickers
20
21
22
23!-------------------------------------------------------------------
24! Remove install old and new elements
25! Triplets, interconnection lenghts and MS postions are defined
26! by the calling program
27! -----------------------------------------------------------
28bv_aux=1;
29
30if (on_layout_custom==0){
31l.MQXL      :=          7.6850000000 ;
32l.MQX       :=          6.5770000000 ;
33dq1q2a      :=          3.5600000000 ;
34dq2aq2b     :=          1.9150000000 ;
35dq2bq3      :=          3.5600000000 ;
36deltaposD2  :=        -15.0000000000 ;
37deltaposQ4  :=          0.0000000000 ;
38deltaposQ5  :=         11.0000000000 ;
39deltaposQ6  :=          0.0000000000 ;
40on_cutMS.10 :=          0            ;
41on_cutMS.14 :=          0            ;
42};
43
44!value, l.MQXL,l.MQX,dq1q2a,dq2aq2b,dq2bq3;
45!value, deltaposD2;
46!value, deltaposQ4;
47!value, deltaposQ5;
48!value, deltaposQ6;
49
50!--------------------------------------------------
51! REMOVE CURRENT INSERTION (from TAS to Q6)
52!--------------------------------------------------
53
54seqedit,sequence=lhcb1;flatten;endedit;
55scale = 23348.89927;
56
57removemarker: marker;
58marks.l1: removemarker; marke.l1: removemarker;
59marks.l5: removemarker; marke.l5: removemarker;
60marks.r1: removemarker; marke.r1: removemarker;
61marks.r5: removemarker; marke.r5: removemarker;
62
63posmarke=15.0;
64!posmarks=163.0; ! include D2
65!posmarks=184;   ! include Q4
66posmarks=240;    ! include Q6
67
68seqedit, sequence=lhcb1;
69install,element=marks.l1,class=removemarker,at=-posmarks,from=IP1.L1;
70install,element=marke.l1,class=removemarker,at=-posmarke,from=IP1.L1;
71install,element=marke.r1,class=removemarker,at= posmarke,from=IP1;
72install,element=marks.r1,class=removemarker,at= posmarks,from=IP1;
73install,element=marks.l5,class=removemarker,at=-posmarks,from=IP5;
74install,element=marke.l5,class=removemarker,at=-posmarke,from=IP5;
75install,element=marke.r5,class=removemarker,at= posmarke,from=IP5;
76install,element=marks.r5,class=removemarker,at= posmarks,from=IP5;
77endedit;
78
79
80
81seqedit, sequence=lhcb1;
82select, flag=seqedit, clear;
83select, flag=seqedit, range=marks.l1/marke.l1;
84select, flag=seqedit, range=marke.r1/marks.r1;
85select, flag=seqedit, range=marks.l5/marke.l5;
86select, flag=seqedit, range=marke.r5/marks.r5;
87remove, element=selected;
88endedit;
89
90
91seqedit, sequence=lhcb1;
92select, flag=seqedit, clear;
93select, flag=seqedit, class=BRANA;
94select, flag=seqedit, class=X1FCL;
95select, flag=seqedit, class=X1FCR;
96select, flag=seqedit, class=X1ZDC001;
97select, flag=seqedit, class=X5ZDC001;
98select, flag=seqedit, class=X5ZDC002;
99remove, element=selected;
100endedit;
101
102
103! remove old Q10 corrector package
104
105seqedit,sequence=lhcb1;
106remove, element=MCBCH.10L1.B1;
107remove, element=MCBCV.10R1.B1;
108remove, element=MCBCH.10L5.B1;
109remove, element=MCBCV.10R5.B1;
110remove, element=MS.10L1.B1;
111remove, element=MS.10R1.B1;
112remove, element=MS.10L5.B1;
113remove, element=MS.10R5.B1;
114remove, element=MCBH.10L1.B1;
115remove, element=MCBV.10R1.B1;
116remove, element=MCBH.10L5.B1;
117remove, element=MCBV.10R5.B1;
118endedit;
119
120
121
122! remove old Q5 in IR6
123
124seqedit,sequence=lhcb1;
125remove,element=MQY.5L6.B1;
126remove,element=MQY.5R6.B1;
127remove,element=BPMYA.5L6.B1;
128remove,element=MQYL.5L6.B1 ;
129remove,element=MQYL.5R6.B1 ;
130remove,element=MCBYV.5R6.B1;
131endedit;
132
133! ----------------------------------------------------------------
134! macros for installation
135! ----------------------------------------------------------------
136
137install_ir15_cmn(ENAME,SPOS): macro={
138  value,SPOS;
139  seqedit,sequence=lhcb1;
140  install, element=ENAMEL1,at=-SPOS,from=IP1.L1;
141  install, element=ENAMER1,at= SPOS,from=IP1;
142  install, element=ENAMEL5,at=-SPOS,from=IP5;
143  install, element=ENAMER5,at= SPOS,from=IP5;
144  endedit;
145};
146
147install_ir15_b12(ENAME,SPOS): macro={
148  value,SPOS;
149  seqedit,sequence=lhcb1;
150  install, element=ENAMEL1.B1,at=-SPOS,from=IP1.L1;
151  install, element=ENAMER1.B1,at= SPOS,from=IP1;
152  install, element=ENAMEL5.B1,at=-SPOS,from=IP5;
153  install, element=ENAMER5.B1,at= SPOS,from=IP5;
154  endedit;
155};
156
157
158!----------------------------------------------------------
159! TAS
160!----------------------------------------------------------
161posTAS  =20.15;  !from V6.503
162l.TASC  =1.8;
163
164TASC: RCOLLIMATOR,  L := l.TASC; ! new TAS
165
166TASC.1R1: TASC; TASC.1L1: TASC;
167TASC.1R5: TASC; TASC.1L5: TASC;
168
169! TAS
170exec,install_ir15_cmn(TASC.1,      posTAS  );
171
172
173!----------------------------------------------------------
174! Triplet region
175!---------------------------------------------------------
176
177! Lstar {.46 |Q1|}
178Lstar   =23.00;  !22.965 m in V6.503
179
180posQ1 :=Lstar+l.MQXL/2.;
181posQ2a:=posQ1+(l.MQXL+l.MQX)/2.+dq1q2a;
182posQ2b:=posQ2a+l.MQX+dq2aq2b;
183posQ3 :=posQ2b+(l.MQXL+l.MQX)/2.+dq2bq3;
184!value, posQ1,posQ2a,posQ2b,posQ3;
185
186! new element types
187MQXC:   QUADRUPOLE, L := l.MQXL;   ! Q1 Q3
188MQXD:   QUADRUPOLE, L := l.MQX;    ! Q2a Q2b
189
190! triplet quad strengths in IR1 & IR5
191
192MQXC.1L1 : MQXC,k1:= kqx1.l1 *bv_aux;
193MQXC.1R1 : MQXC,k1:= kqx1.r1 *bv_aux;
194MQXD.A2L1: MQXD,k1:=-kqx2a.l1 *bv_aux;
195MQXD.B2L1: MQXD,k1:=-kqx2b.l1 *bv_aux;
196MQXD.A2R1: MQXD,k1:=-kqx2a.r1 *bv_aux;
197MQXD.B2R1: MQXD,k1:=-kqx2b.r1 *bv_aux;
198MQXC.3L1 : MQXC,k1:= kqx3.l1 *bv_aux;
199MQXC.3R1 : MQXC,k1:= kqx3.r1 *bv_aux;
200
201MQXC.1L5 : MQXC,k1:= kqx1.l5 *bv_aux;
202MQXC.1R5 : MQXC,k1:= kqx1.r5 *bv_aux;
203MQXD.A2L5: MQXD,k1:=-kqx2a.l5 *bv_aux;
204MQXD.B2L5: MQXD,k1:=-kqx2b.l5 *bv_aux;
205MQXD.A2R5: MQXD,k1:=-kqx2a.r5 *bv_aux;
206MQXD.B2R5: MQXD,k1:=-kqx2b.r5 *bv_aux;
207MQXC.3L5 : MQXC,k1:= kqx3.l5 *bv_aux;
208MQXC.3R5 : MQXC,k1:= kqx3.r5 *bv_aux;
209
210! Triplet
211exec,install_ir15_cmn(MQXC.1,     posQ1   );
212exec,install_ir15_cmn(MQXD.A2,    posQ2A  );
213exec,install_ir15_cmn(MQXD.B2,    posQ2B  );
214exec,install_ir15_cmn(MQXC.3,     posQ3   );
215
216!----------------------------------------------------
217! MCBX in Q2 (small orbit corrector)
218!----------------------------------------------------
219
220! MCBX
221! Q1  |.46 } .72 {.36 | MCBXDa | .46 | Q2a
222! Q2a |.46 } .72 {.46 | Q2b | .46| MCBXDb |.36 }
223! Q2b |.46 | MCBXDb |.36 } .72 {.46 | Q3 | .46}
224
225!l.MCBXD    := l.mqxl-l.mqx-0.360;   ! orbit corrector
226l.MCBXD    := dq1q2a-(.46+.72+.36+.46);   ! orbit corrector
227posMCBXDa  := posQ2a     -(l.MQX + l.MCBXD   )/2. -0.460;
228posMCBXDb  := posQ2b     +(l.MQX + l.MCBXD   )/2. +0.460;
229!value,l.MCBXD, posMCBXDa,posMCBXDb;
230
231! Cabling orbit corrector inside Q2a and Q2b cold masses
232
233MCBXDH: HKICKER,    Lrad := l.MCBXD;  ! nested corrector
234MCBXDV: VKICKER,    Lrad := l.MCBXD;  ! nested corrector
235
236Kmax_MCBXD := 1.8000 / l.MCBXD; ! 1.8Tm integrated strength
237Kmin_MCBXD := -Kmax_MCBXD ;
238!value, Kmax_MCBXD;
239
240MCBXDH,  Kmax:=Kmax_MCBXDH, Kmin:=Kmin_MCBXDH;
241MCBXDV,  Kmax:=Kmax_MCBXDV, Kmin:=Kmin_MCBXDV;
242
243
244MCBXDH.a2L1: MCBXDH, KICK := acbxh1.l1;
245MCBXDH.a2R1: MCBXDH, KICK := acbxh1.r1;
246MCBXDH.a2L5: MCBXDH, KICK := acbxh1.l5;
247MCBXDH.a2R5: MCBXDH, KICK := acbxh1.r5;
248MCBXDV.a2L1: MCBXDV, KICK := acbxv1.l1*bv_aux;
249MCBXDV.a2R1: MCBXDV, KICK := acbxv1.r1*bv_aux;
250MCBXDV.a2L5: MCBXDV, KICK := acbxv1.l5*bv_aux;
251MCBXDV.a2R5: MCBXDV, KICK := acbxv1.r5*bv_aux;
252MCBXDH.b2L1: MCBXDH, KICK := acbxh2.l1;
253MCBXDH.b2R1: MCBXDH, KICK := acbxh2.r1;
254MCBXDH.b2L5: MCBXDH, KICK := acbxh2.l5;
255MCBXDH.b2R5: MCBXDH, KICK := acbxh2.r5;
256MCBXDV.b2L1: MCBXDV, KICK := acbxv2.l1*bv_aux;
257MCBXDV.b2R1: MCBXDV, KICK := acbxv2.r1*bv_aux;
258MCBXDV.b2L5: MCBXDV, KICK := acbxv2.l5*bv_aux;
259MCBXDV.b2R5: MCBXDV, KICK := acbxv2.r5*bv_aux;
260
261! Orbit correctors
262exec,install_ir15_cmn(MCBXDH.A2,  posMCBXDa );
263exec,install_ir15_cmn(MCBXDV.A2,  posMCBXDa );
264exec,install_ir15_cmn(MCBXDH.B2,  posMCBXDb );
265exec,install_ir15_cmn(MCBXDV.B2,  posMCBXDb );
266
267
268!--------------------------------------------------------------------
269!BPM triplet
270!--------------------------------------------------------------------
271
272!          Q1  | .46 } .24 BPM .12 .36 {.36 | MCBXDa
273! MCBXDa | Q2a | .46 } .24 BPM .12 .36 {.46 | Q2b
274!       MCBXDb | .36 } .24 BPM .12 .36 {.46 | Q3
275!          Q3  | .46 } .24 BPM .12 .36 ...
276
277! BMPSQW is between TAS and Q1
278l.BPMSQ := 0.22;
279BPMSQ:  MONITOR,    L := l.BPMSQ;  ! bpm in the triplets'
280
281posBPMW  :=21.475;  !from V6.503
282posBPM1  := posQ1  + l.mqxl /2.+.46+.24;
283posBPM2a := posQ2a + l.mqx  /2.+.46+.24;
284posBPM2b := posQ3  - l.mqxl /2.-.46-.36-.12;
285posBPM3  := posQ3  + l.mqxl /2.+.46+.24;
286!value, posBPM1,posBPM2a,posBPM2b,posBPM3;
287
288
289BPMSQW.1L1.B1: BPMSQ;BPMSQW.1R1.B1 : BPMSQ;
290BPMSQW.1L5.B1: BPMSQ;BPMSQW.1R5.B1 : BPMSQ;
291BPMSQ.1L1.B1 : BPMSQ;BPMSQ.1R1.B1 : BPMSQ;
292BPMSQ.1L5.B1 : BPMSQ;BPMSQ.1R5.B1 : BPMSQ;
293BPMSQ.A2L1.B1: BPMSQ;BPMSQ.A2R1.B1: BPMSQ;
294BPMSQ.A2L5.B1: BPMSQ;BPMSQ.A2R5.B1: BPMSQ;
295BPMSQ.B2L1.B1: BPMSQ;BPMSQ.B2R1.B1: BPMSQ;
296BPMSQ.B2L5.B1: BPMSQ;BPMSQ.B2R5.B1: BPMSQ;
297BPMSQ.3L1.B1 : BPMSQ;BPMSQ.3R1.B1 : BPMSQ;
298BPMSQ.3L5.B1 : BPMSQ;BPMSQ.3R5.B1 : BPMSQ;
299
300! BPMS
301exec,install_ir15_b12(BPMSQW.1,  posBPMW   );
302exec,install_ir15_b12(BPMSQ.1,   posBPM1   );
303exec,install_ir15_b12(BPMSQ.A2,  posBPM2a  );
304exec,install_ir15_b12(BPMSQ.B2,  posBPM2b  );
305exec,install_ir15_b12(BPMSQ.3,   posBPM3   );
306
307
308!----------------------------------------------------------
309!Corrector package
310!----------------------------------------------------------
311
312! layout
313
314l.MCBXC   := 2;           ! orbit corrector
315l.MQSX3   := 0.670    ;   ! skew quadrupole corrector
316l.MCSTX3  := 0.500    ;   !  (b3,b6) nested correctors not yet finalised
317l.MCSX3   := l.MCSTX3 ;   !  b3  corrector combined with b6
318l.MCTX3   := l.MCSTX3 ;   !  b6  corrector combined with b3
319l.MCOSSX3 := 0.500    ;   !  (a3,a4,b4) nested correctors not yet finalised
320l.MCSSX3  := l.MCOSSX3;   !  a3  corrector combined with (a4,b4)
321l.MCOSX3  := l.MCOSSX3;   !  a4  corrector combined with (a3,b4)
322l.MCOX3   := l.MCOSSX3;   !  b4  corrector combined with (a3,a4)
323l.MCDTSX3 := 0.500    ;   !  (a5,b5,a6) nested correctors  not yet finalised
324l.MCDSX3  := l.MCDTSX3;   !  a5 corrector
325l.MCDX3   := l.MCDTSX3;   !  b5 corrector
326l.MCTSX3  := l.MCDTSX3;   !  b6 corrector
327
328
329! Q3|.46} .72 {.18 .18 |MCBXC   |.18
330!              .20 .115|MQSX3   |.115
331!              .20 .075|MCOSSX3 |.075
332!              .20 .075|MCSTX3  |.075
333!              .20 .075|MCDTSX3 |.075 .25}
334posMCBXC  := posQ3     +(l.MQXL   + l.MCBXC   )/2.+0.460+0.720+.180+.180;
335posMQSX3  := posMCBXC  +(l.MCBXC  + l.MQSX3   )/2.+0.180+0.200+0.115;
336posMCOSSX3:= posMQSX3  +(l.MQSX3  + l.MCOSSX3 )/2.+0.115+0.200+0.075;
337posMCSTX3 := posMCOSSX3+(l.MCOSSX3+ l.MCSTX3  )/2.+0.075+0.200+0.075;
338posMCDTSX3:= posMCSTX3 +(l.MCSTX3 + l.MCDTSX3 )/2.+0.075+0.200+0.075;
339
340
341! orbit corrector elements
342MCBXCH : HKICKER   , Lrad := l.MCBXC; ! H in corrector package (long for crabs)
343MCBXCV : VKICKER   , Lrad := l.MCBXC; ! V in corrector package (long for crabs)
344MQSX3  : QUADRUPOLE, L := l.MQSX3  ; ! (a2)
345MCSTX3 : MULTIPOLE , L := l.MCSTX3 ; ! (b3,b6)
346MCOSSX3: MULTIPOLE , L := l.MCOSSX3; ! (a3,a4,b4)
347MCDTSX3: MULTIPOLE , L := l.MCDTSX3; ! (a5,b5,a6)
348
349
350Kmax_MCBXC := 6.0000 / l.MCBXC               ;!6.0000Tm@50mm
351! 1.5*140urad needed for 15sigma crossing
352! 25mrad for orbit correction
353! 5.6Tm -> 6Tm
354Rref_mpcorr=0.05; !50mm reference radius for multipole correctors
355Kmax_MQSX3 := 0.6000 / l.MQSX3 /Rref_mpcorr         ;!0.6000Tm@50mm
356Kmax_MCSX3 := 0.0500 / l.MCSX3 /Rref_mpcorr^2 *   2.;!0.0500Tm@50mm
357Kmax_MCSSX3:= 0.0500 / l.MCSSX3/Rref_mpcorr^2 *   2.;!0.0500Tm@50mm
358Kmax_MCOX3 := 0.0300 / l.MCOX3 /Rref_mpcorr^3 *   6.;!0.0300Tm@50mm
359Kmax_MCOSX3:= 0.0300 / l.MCOSX3/Rref_mpcorr^3 *   6.;!0.0300Tm@50mm
360Kmax_MCDX3 := 0.0300 / l.MCDX3 /Rref_mpcorr^4 *  24.;!0.0300Tm@50mm
361Kmax_MCDSX3:= 0.0300 / l.MCDSX3/Rref_mpcorr^4 *  24.;!0.0300Tm@50mm
362Kmax_MCTX3 := 0.0700 / l.MCTX3 /Rref_mpcorr^5 * 120.;!0.0700Tm@50mm
363Kmax_MCTSX3:= 0.0700 / l.MCTSX3/Rref_mpcorr^5 * 120.;!0.0700Tm@50mm
364
365
366Kmin_MCBXC := -Kmax_MCBXC ;
367Kmin_MQSX3 := -Kmax_MQSX3 ;
368Kmin_MCSX3 := -Kmax_MCSX3 ;
369Kmin_MCSSX3:= -Kmax_MCSSX3;
370Kmin_MCOX3 := -Kmax_MCOX3 ;
371Kmin_MCOSX3:= -Kmax_MCOSX3;
372Kmin_MCTX3 := -Kmax_MCTX3 ;
373Kmin_MCDX3 := -Kmax_MCDX3 ;
374Kmin_MCDSX3:= -Kmax_MCDSX3;
375Kmin_MCTSX3:= -Kmax_MCTSX3;
376
377! cabling
378MCBXCH, Kmax:=Kmax_MCBXH3, Kmin:=Kmin_MCBXH3;
379MCBXCV, Kmax:=Kmax_MCBXV3, Kmin:=Kmin_MCBXV3;
380MCBXCH.3L1: MCBXCH, KICK := acbxh3.l1;
381MCBXCH.3R1: MCBXCH, KICK := acbxh3.r1;
382MCBXCH.3L5: MCBXCH, KICK := acbxh3.l5;
383MCBXCH.3R5: MCBXCH, KICK := acbxh3.r5;
384MCBXCV.3L1: MCBXCV, KICK := acbxv3.l1*bv_aux;
385MCBXCV.3R1: MCBXCV, KICK := acbxv3.r1*bv_aux;
386MCBXCV.3L5: MCBXCV, KICK := acbxv3.l5*bv_aux;
387MCBXCV.3R5: MCBXCV, KICK := acbxv3.r5*bv_aux;
388
389
390!A2 CORRECTOR
391MQSX3: QUADRUPOLE, L := l.MQSX3 , Kmax:=Kmax_MQSX3 , Kmin:=Kmin_MQSX3;
392MQSX.3L1: MQSX3, K1S:=kqsx3.l1;
393MQSX.3R1: MQSX3, K1S:=kqsx3.r1;
394MQSX.3L5: MQSX3, K1S:=kqsx3.l5;
395MQSX.3R5: MQSX3, K1S:=kqsx3.r5;
396
397
398!B3 CORRECTOR
399MCSX3: MULTIPOLE, Lrad := l.MCSX3 , Kmax:=Kmax_MCSX3 , Kmin:=Kmin_MCSX3;
400MCSX.3L1: MCSX3, KNL := {0, 0, kcsx3.l1*l.MCSX3};
401MCSX.3R1: MCSX3, KNL := {0, 0, kcsx3.r1*l.MCSX3};
402MCSX.3L5: MCSX3, KNL := {0, 0, kcsx3.l5*l.MCSX3};
403MCSX.3R5: MCSX3, KNL := {0, 0, kcsx3.r5*l.MCSX3};
404
405!B6 CORRECTOR
406MCTX3: MULTIPOLE, Lrad := l.MCTX3 , Kmax:=Kmax_MCTX3 , Kmin:=Kmin_MCTX3;
407MCTX.3L1: MCTX3, KNL := {0, 0, 0, 0, 0, kctx3.l1 *bv_aux*l.MCTX3};
408MCTX.3R1: MCTX3, KNL := {0, 0, 0, 0, 0, kctx3.r1 *bv_aux*l.MCTX3};
409MCTX.3L5: MCTX3, KNL := {0, 0, 0, 0, 0, kctx3.l5 *bv_aux*l.MCTX3};
410MCTX.3R5: MCTX3, KNL := {0, 0, 0, 0, 0, kctx3.r5 *bv_aux*l.MCTX3};
411
412!A6 CORRECTOR
413MCTSX3: MULTIPOLE, Lrad := l.MCTSX3 , Kmax:=Kmax_MCTSX3 , Kmin:=Kmin_MCTSX3;
414MCTSX.3L1: MCTSX3, KSL := {0, 0, 0, 0, 0, kctsx3.l1 *l.MCTSX3};
415MCTSX.3R1: MCTSX3, KSL := {0, 0, 0, 0, 0, kctsx3.r1 *l.MCTSX3};
416MCTSX.3L5: MCTSX3, KSL := {0, 0, 0, 0, 0, kctsx3.l5 *l.MCTSX3};
417MCTSX.3R5: MCTSX3, KSL := {0, 0, 0, 0, 0, kctsx3.r5 *l.MCTSX3};
418
419!A3 CORRECTOR
420MCSSX3: MULTIPOLE, Lrad := l.MCSSX3, Kmax:=Kmax_MCSSX3, Kmin:=Kmin_MCSSX3;
421MCSSX.3L1: MCSSX3, KSL := {0, 0, kcssx3.l1 *bv_aux*l.MCSSX3};
422MCSSX.3R1: MCSSX3, KSL := {0, 0, kcssx3.r1 *bv_aux*l.MCSSX3};
423MCSSX.3L5: MCSSX3, KSL := {0, 0, kcssx3.l5 *bv_aux*l.MCSSX3};
424MCSSX.3R5: MCSSX3, KSL := {0, 0, kcssx3.r5 *bv_aux*l.MCSSX3};
425
426!A4 CORRECTOR
427MCOSX3: MULTIPOLE , Lrad := l.MCOSX3, Kmax:=Kmax_MCOSX3, Kmin:=Kmin_MCOSX3;
428MCOSX.3L1: MCOSX3, KSL := {0, 0, 0, kcosx3.l1*l.MCOSX3};
429MCOSX.3R1: MCOSX3, KSL := {0, 0, 0, kcosx3.r1*l.MCOSX3};
430MCOSX.3L5: MCOSX3, KSL := {0, 0, 0, kcosx3.l5*l.MCOSX3};
431MCOSX.3R5: MCOSX3, KSL := {0, 0, 0, kcosx3.r5*l.MCOSX3};
432
433!B4 CORRECTOR
434MCOX3 : MULTIPOLE , Lrad := l.MCOX3 , Kmax:=Kmax_MCOX3 , Kmin:=Kmin_MCOX3;
435MCOX.3L1: MCOX3, KNL := {0, 0, 0, kcox3.l1 *bv_aux*l.MCOX3};
436MCOX.3R1: MCOX3, KNL := {0, 0, 0, kcox3.r1 *bv_aux*l.MCOX3};
437MCOX.3L5: MCOX3, KNL := {0, 0, 0, kcox3.l5 *bv_aux*l.MCOX3};
438MCOX.3R5: MCOX3, KNL := {0, 0, 0, kcox3.r5 *bv_aux*l.MCOX3};
439
440!A5 CORRECTOR
441MCDSX3: MULTIPOLE , Lrad := l.MCDSX3, Kmax:=Kmax_MCDSX3, Kmin:=Kmin_MCDSX3;
442MCDSX.3L1: MCDSX3, KSL := {0, 0, 0, 0, kcdsX3.l1 *bv_aux*l.MCDSX3};
443MCDSX.3R1: MCDSX3, KSL := {0, 0, 0, 0, kcdsX3.r1 *bv_aux*l.MCDSX3};
444MCDSX.3L5: MCDSX3, KSL := {0, 0, 0, 0, kcdsX3.l5 *bv_aux*l.MCDSX3};
445MCDSX.3R5: MCDSX3, KSL := {0, 0, 0, 0, kcdsX3.r5 *bv_aux*l.MCDSX3};
446
447!B5 CORRECTOR
448MCDX3 : MULTIPOLE , Lrad := l.MCDX3 , Kmax:=Kmax_MCDX3 , Kmin:=Kmin_MCDX3;
449MCDX.3L1: MCDX3, KNL := {0, 0, 0, 0, kcdx3.l1*l.MCDX3};
450MCDX.3R1: MCDX3, KNL := {0, 0, 0, 0, kcdx3.r1*l.MCDX3};
451MCDX.3L5: MCDX3, KNL := {0, 0, 0, 0, kcdx3.l5*l.MCDX3};
452MCDX.3R5: MCDX3, KNL := {0, 0, 0, 0, kcdx3.r5*l.MCDX3};
453
454
455
456! Installl non linear correctors
457exec,install_ir15_cmn(MCBXCH.3,posMCBXC); !b1
458exec,install_ir15_cmn(MCBXCV.3,posMCBXC); !a1
459exec,install_ir15_cmn(MQSX.3,  posMQSX3); !a2
460exec,install_ir15_cmn(MCSSX.3, posMCOSSX3);!a3
461exec,install_ir15_cmn(MCOSX.3, posMCOSSX3);!a4
462exec,install_ir15_cmn(MCOX.3,  posMCOSSX3);!b4
463exec,install_ir15_cmn(MCSX.3,  posMCSTX3); !b3
464exec,install_ir15_cmn(MCTX.3,  posMCSTX3); !b6
465exec,install_ir15_cmn(MCDX.3,  posMCDTSX3);!a5
466exec,install_ir15_cmn(MCDSX.3, posMCDTSX3);!b5
467exec,install_ir15_cmn(MCTSX.3, posMCDTSX3);!a6
468
469
470
471!---------------------------------------------
472! D1 area
473!---------------------------------------------
474
475! separation recombination dipoles
476l.MBXA= 6.5;
477MBXA : RBEND,   L := l.MBXA ;  ! D1
478BPMWC: MONITOR, L := l.BPMWC;  ! bpm in D1
479
480! service module for current distribution in the non-IP side of D1
481l.DFBXI = 3;    ! not finalized
482DFBXI : PLACEHOLDER, L:= l.DFBXI;
483
484! Layout
485! MCDTSX3 |.075 .25} .72 {.4 .29 D1 .4 .29}
486!   D1 | .4 .29 } .72 .4 .29  DFBXI
487!   D1 | .4 .29 } .72 .4 .29  DFBXI
488
489posD1 := posMCDTSX3+(l.MBXA+l.MCDTSX3)/2.+0.075+0.250+0.72+0.4+0.29;
490posDFBXI := posD1 + (l.MBXA+l.DFBXI)/2.+0.72+0.4+0.29;
491posBPMWC := posD1 + l.MBXA/2 + 0.90; ! to be checked with long range
492
493! Separation recombination dipoles
494
495MBXA.4L1: MBXA,angle:= ad1.lr1, K0 := kd1.lr1;
496MBXA.4R1: MBXA,angle:=-ad1.lr1, K0 :=-kd1.lr1;
497MBXA.4L5: MBXA,angle:= ad1.lr5, K0 := kd1.lr5;
498MBXA.4R5: MBXA,angle:=-ad1.lr5, K0 :=-kd1.lr5;
499
500BPMWC.4L1.B1: BPMWC;
501BPMWC.4R1.B1: BPMWC;
502BPMWC.4L5.B1: BPMWC;
503BPMWC.4R5.B1: BPMWC;
504
505DFBXI.4L1: DFBXI;
506DFBXI.4R1: DFBXI;
507DFBXI.4L5: DFBXI;
508DFBXI.4R5: DFBXI;
509
510
511! D1
512exec,install_ir15_b12(BPMWC.4, posBPMWC  );
513exec,install_ir15_cmn(MBXA.4,  posD1);
514exec,install_ir15_cmn(DFBXI.4,   posDFBXI);
515
516
517
518
519!---------------------------------------------
520! D2 area
521!---------------------------------------------
522
523!  TAN TCTVA TCTH BPMWD .4055 (left)
524!  TAN TCLP       BPMWD .4055 (right)
525!  {.4 D2 .4 MCBRDH .4 MCBRDV .4}
526!  B1-> 0.5 { 1.3 1.3  CRAB 2.6  CRAB 2.6  CRAB 1.3 } 2.69 | MCBYY
527!  B2<- 0.5 { 1.3 CRAB 2.6  CRAB 2.6  CRAB 1.3  1.3 } 2.69 | MCBYY
528
529
530
531! D2
532l.MBRD=10;
533l.MCBRD=1.5;
534MBRD : RBEND,   L := l.MBRD ;  ! D2
535MCBRDH: HKICKER,  L := l.MCBRD; ! long for crabs in D2 cryostats
536MCBRDV: VKICKER,  L := l.MCBRD; ! long for crabs in D2 cryostats
537BPMWD: MONITOR, L := l.BPMWD;  ! bpm in D2
538
539posD2  := 157.9+deltaposD2; ! from V6.503
540!posD2  = 157.9-15;     !  3.99T
541!posD2  = 157.9-8-7;     ! from V6.503
542! 8 to fit two cavitities with 1.5 meter at 163
543!11 to fit three cavitities with 1.5 meter
544
545
546! shielding collimation
547! v6.503  10.425 ,   7.335 ,   5.655 ,   3.445 ,   2.0805
548! slhc 1.275 closer to D2
549posTAN    := posD2 - l.MBRD/2  -  9.15;
550posTCTVA  := posD2 - l.MBRD/2  -  6.06;
551posTCTH   := posD2 - l.MBRD/2  -  4.38;
552posTCLP   := posD2 - l.MBRD/2  -  2.17;
553posBPMWD  := posD2 - l.MBRD/2  -  0.8055;
554posMCBRDH := posD2 + l.MBRD/2 + l.MCBRD/2 + 0.40;
555posMCBRDV := posMCBRDH + l.MCBRD/2 + l.MCBRD/2 + 0.40;
556
557
558
559MBRD.4L1.B1: MBRD, angle:=-ad2.l1, K0:=-kd2.l1;
560MBRD.4R1.B1: MBRD, angle:= ad2.r1, K0:= kd2.r1;
561MBRD.4L5.B1: MBRD, angle:=-ad2.l5, K0:=-kd2.l5;
562MBRD.4R5.B1: MBRD, angle:= ad2.r5, K0:= kd2.r5;
563
564
565MCBRDH.4L1.B1: MCBRDH, kick:=acbrdh4.l1b1;
566MCBRDH.4R1.B1: MCBRDH, kick:=acbrdh4.r1b1;
567MCBRDH.4L5.B1: MCBRDH, kick:=acbrdh4.l5b1;
568MCBRDH.4R5.B1: MCBRDH, kick:=acbrdh4.r5b1;
569MCBRDV.4L1.B1: MCBRDV, kick:=acbrdv4.l1b1;
570MCBRDV.4R1.B1: MCBRDV, kick:=acbrdv4.r1b1;
571MCBRDV.4L5.B1: MCBRDV, kick:=acbrdv4.l5b1;
572MCBRDV.4R5.B1: MCBRDV, kick:=acbrdv4.r5b1;
573
574
575
576
577BPMWD.4L1.B1: BPMWD;
578BPMWD.4R1.B1: BPMWD;
579BPMWD.4L5.B1: BPMWD;
580BPMWD.4R5.B1: BPMWD;
581
582
583! separation recombination powering
584ad1.lr1:=atan(0.194/2./(posD2-posD1))*(1-R0);
585kd1.lr1:=ad1.lr1/l.MBXA;
586ad1.lr5:=atan(0.194/2./(posD2-posD1))*(1-R0);
587kd1.lr5:=ad1.lr5/l.MBXA;
588ad2.l1 :=atan(0.194/2./(posD2-posD1))*(1-R0);
589ad2.r1 :=atan(0.194/2./(posD2-posD1))*(1-R0);
590kd2.l1 :=ad2.l1/l.MBRD;
591kd2.r1 :=ad2.r1/l.MBRD;
592ad2.l5 :=atan(0.194/2./(posD2-posD1))*(1-R0);
593ad2.r5 :=atan(0.194/2./(posD2-posD1))*(1-R0);
594kd2.l5 :=ad2.l5/l.MBRD;
595kd2.r5 :=ad2.r5/l.MBRD;
596
597value, posD1,posD2,posD2-posD1;
598value, ad1.lr1,l.MBXA,ad1.lr1/l.MBXA*scale;
599value, ad2.l1,l.MBRD,ad2.l1/l.MBRD*scale;
600
601value,posTAN;
602value,posTCTH,posTCTVA,posTCLP;
603seqedit,sequence=lhcb1;
604! ... TAN
605install,element=TANAL.4L1,   at= -posTAN,    from= IP1.L1;
606install,element=TANAR.4R1,   at=  posTAN,    from= IP1;
607install,element=TANC.4L5,    at= -posTAN,    from= IP5;
608install,element=TANC.4R5,    at=  posTAN,    from= IP5;
609
610! ... TCTH
611install,element=TCTH.4L1.B1, at= -posTCTH,   from= IP1.L1;
612install,element=TCTH.4L5.B1, at= -posTCTH,   from= IP5;
613
614! ... TCTVA
615install,element=TCTVA.4L1.B1, at= -posTCTVA, from=IP1.L1;
616install,element=TCTVA.4L5.B1, at= -posTCTVA, from=IP5;
617
618! ... TCLP
619install,element=TCLP.4R1.B1,  at= posTCLP, from=IP1;
620endedit;
621
622
623! D2
624exec,install_ir15_b12(MBRD.4,   posD2    );
625exec,install_ir15_b12(BPMWD.4,  posBPMWD );
626exec,install_ir15_b12(MCBRDH.4, posMCBRDH);
627exec,install_ir15_b12(MCBRDV.4, posMCBRDV);
628
629
630
631!-------------------------------------------
632! Q4
633!-------------------------------------------
634
635l.MQYY =3.40;
636l.MCBYY=0.90;
637
638
639posQ4       :=169.553+deltaPosQ4;  !nominal
640posBPMYY.4  :=posQ4 + l.MQYY/2 + 0.994; !2.676 BPMYA.4L5.B1:BPMYA BPMYA.4L5.B2:BPMYA
641posMCBYY.B4 :=posQ4 - 2.522; !same as nominal note that in IR2-8-6 distance can
642posMCBYY.4  :=posQ4 - 3.818; !be better
643posMCBYY.A4 :=posQ4 - 5.114;
644
645MQYY  : QUADRUPOLE, L := l.MQYY  ; ! very large aperture 2-in-1 (MQYY)
646MCBYYH : HKICKER,   L := l.MCBYY ; ! for orbit correction separate
647MCBYYV : VKICKER,   L := l.MCBYY ; ! for orbit correction separate
648BPMYY : MONITOR,    L := l.BPMYY ; ! bpm in Q4
649
650Kmax_MCBYYH=2.5; !Copied from MCBY  2.5T at 4.5k
651Kmax_MCBYYV=2.5;
652
653
654
655MQYY.4L1.B1: MQYY, k1:= kq4.l1b1;
656MQYY.4R1.B1: MQYY, k1:= kq4.r1b1;
657MQYY.4L5.B1: MQYY, k1:= kq4.l5b1;
658MQYY.4R5.B1: MQYY, k1:= kq4.r5b1;
659
660MCBYYV.A4R1.B1:MCBYYV, KICK:= acbyvs4.r1b1, polarity=+1;
661MCBYYH.4R1.B1 :MCBYYH, KICK:= acbyhs4.r1b1, polarity=+1;
662MCBYYV.B4R1.B1:MCBYYV, KICK:= acbyv4.r1b1, polarity=+1;
663MCBYYH.B4L5.B1:MCBYYH, KICK:= acbyh4.l5b1, polarity=+1;
664MCBYYV.4L5.B1 :MCBYYV, KICK:= acbyvs4.l5b1, polarity=+1;
665MCBYYH.A4L5.B1:MCBYYH, KICK:= acbyhs4.l5b1, polarity=+1;
666MCBYYV.A4R5.B1:MCBYYV, KICK:= acbyvs4.r5b1, polarity=+1;
667MCBYYH.4R5.B1 :MCBYYH, KICK:= acbyhs4.r5b1, polarity=+1;
668MCBYYV.B4R5.B1:MCBYYV, KICK:= acbyv4.r5b1, polarity=+1;
669MCBYYH.B4L1.B1:MCBYYH, KICK:= acbyh4.l1b1, polarity=+1;
670MCBYYV.4L1.B1 :MCBYYV, KICK:= acbyvs4.l1b1, polarity=+1;
671MCBYYH.A4L1.B1:MCBYYH, KICK:= acbyhs4.l1b1, polarity=+1;
672
673BPMYY.4L1.B1: BPMYY;
674BPMYY.4R1.B1: BPMYY;
675BPMYY.4L5.B1: BPMYY;
676BPMYY.4R5.B1: BPMYY;
677
678
679exec,install_ir15_b12(BPMYY.4, posBPMYY.4  );
680exec,install_ir15_b12(MQYY.4,  posQ4 );
681
682value,posMCBYY.B4,posMCBYY.4,posMCBYY.A4;
683
684seqedit,sequence=lhcb1;
685! .... MCBYY.B4
686install,element=MCBYYH.B4L1.B1, at=-posMCBYY.B4, from= IP1.L1;
687install,element=MCBYYV.B4R1.B1, at= posMCBYY.B4, from= IP1;
688install,element=MCBYYH.B4L5.B1, at=-posMCBYY.B4, from= IP5;
689install,element=MCBYYV.B4R5.B1, at= posMCBYY.B4, from= IP5;
690!
691! .... MCBYY.4
692install,element=MCBYYV.4L1.B1, at=-posMCBYY.4, from= IP1.L1;
693install,element=MCBYYH.4R1.B1, at= posMCBYY.4, from= IP1;
694install,element=MCBYYV.4L5.B1, at=-posMCBYY.4, from= IP5;
695install,element=MCBYYH.4R5.B1, at= posMCBYY.4, from= IP5;
696!
697! .... MCBYY.A4
698install,element=MCBYYH.A4L1.B1, at=-posMCBYY.A4, from= IP1.L1;
699install,element=MCBYYV.A4R1.B1, at= posMCBYY.A4, from= IP1;
700install,element=MCBYYH.A4L5.B1, at=-posMCBYY.A4, from= IP5;
701install,element=MCBYYV.A4R5.B1, at= posMCBYY.A4, from= IP5;
702endedit;
703
704
705!-------------------------------------------
706! Q5
707!-------------------------------------------
708! Q5  MQYL for IR5 to gain aperture and for IR6 to gain strength
709l.MQYL=4.80;
710MQYL:  QUADRUPOLE, L := l.MQYL   ; ! long MQY type
711BPMYC: MONITOR,    L := l.BPMYC  ; ! large ap. for Q5 maybe from old q4 ones
712
713
714
715MQYL.5R1.B1:MQYL,K1 :=  kq5.r1b1, polarity=+1;
716MQYL.5L5.B1:MQYL,K1 :=  kq5.l5b1, polarity=-1;
717MQYL.5R5.B1:MQYL,K1 :=  kq5.r5b1, polarity=+1;
718MQYL.5L1.B1:MQYL,K1 :=  kq5.l1b1, polarity=-1;
719
720MCBYH.5R1.B1: MCBYH, KICK :=  acbch5.r1b1, polarity=+1;
721MCBYV.5L5.B1: MCBYV, KICK :=  acbcv5.l5b1, polarity=+1;
722MCBYH.5R5.B1: MCBYH, KICK :=  acbch5.r5b1, polarity=+1;
723MCBYV.5L1.B1: MCBYV, KICK :=  acbcv5.l1b1, polarity=+1;
724
725
726BPMYC.5R1.B1:BPMYC;
727BPMYC.5L5.B1:BPMYC;
728BPMYC.5R5.B1:BPMYC;
729BPMYC.5L1.B1:BPMYC;
730
731posMQYL.5  := 196.490 + deltaPosQ5;
732posMQML.6  := 228.390 + deltaPosQ6;
733
734dposMCBY  = 3.042;
735dposMCBC  = 3.042;
736dposBPM   = 3.145;
737
738
739! Q5
740exec,install_ir15_b12(MQYL.5,    posMQYL.5 );
741
742seqedit,sequence=lhcb1;
743install,element=BPMYC.5L1.B1, at=-posMQYL.5+dposBPM, from= IP1.L1;
744install,element=BPMYC.5R1.B1, at= posMQYL.5+dposBPM, from= IP1;
745install,element=BPMYC.5L5.B1, at=-posMQYL.5-dposBPM, from= IP5;
746install,element=BPMYC.5R5.B1, at= posMQYL.5-dposBPM, from= IP5;
747
748install,element=MCBYV.5L1.B1, at=-posMQYL.5-dposMCBY, from= IP1.L1;
749install,element=MCBYH.5R1.B1, at= posMQYL.5-dposMCBY, from= IP1;
750install,element=MCBYV.5L5.B1, at=-posMQYL.5+dposMCBY, from= IP5;
751install,element=MCBYH.5R5.B1, at= posMQYL.5+dposMCBY, from= IP5;
752endedit;
753
754! ------------------------------------------
755! Q6
756! ------------------------------------------
757
758exec,install_ir15_b12(MQML.6,    posMQML.6 );
759
760seqedit,sequence=lhcb1;
761! .... BPM.6
762install,element=BPM.6L1.B1, at=-posMQML.6+dposBPM, from= IP1.L1;
763install,element=BPMR.6R1.B1, at= posMQML.6+dposBPM, from= IP1;
764install,element=BPM.6L5.B1, at=-posMQML.6-dposBPM, from= IP5;
765install,element=BPMR.6R5.B1, at= posMQML.6-dposBPM, from= IP5;
766
767! .... MCBC.6
768install,element=MCBCH.6L1.B1, at=-posMQML.6-dposMCBC, from= IP1.L1;
769install,element=MCBCV.6R1.B1, at= posMQML.6-dposMCBC, from= IP1;
770install,element=MCBCH.6L5.B1, at=-posMQML.6+dposMCBC, from= IP5;
771install,element=MCBCV.6R5.B1, at= posMQML.6+dposMCBC, from= IP5;
772endedit;
773
774
775
776
777
778! ------------------------------------------
779! MS in Q10
780! ------------------------------------------
781posMSQ10    := l.MQML/2 +0.1605+l.MS/2;
782posMCBQ10   :=posMSQ10+l.MS/2 +0.085+l.MCBV/2;
783
784MCBH.10L1.B1: MCBH, KICK := acbh10.l1b1, polarity=+1;
785MCBH.10L5.B1: MCBH, KICK := acbh10.l5b1, polarity=+1;
786MCBV.10R1.B1: MCBV, KICK := acbv10.r1b1, polarity=+1;
787MCBV.10R5.B1: MCBV, KICK := acbv10.r5b1, polarity=+1;
788
789
790DISABLE_SEXT(MS.10):macro={
791MS.10L1.B1: MS,K2:=0;
792MS.10R1.B1: MS,K2:=0;
793MS.10L5.B1: MS,K2:=0;
794MS.10R5.B1: MS,K2:=0;
795on_cutMS.10=1;
796};
797
798ENABLE_SEXT(MS.10,ksf1,ksd2,ksd1,ksf2):macro={
799MS.10L1.B1: MS,K2:=ksf1.a81b1;
800MS.10R1.B1: MS,K2:=ksd2.a12b1;
801MS.10L5.B1: MS,K2:=ksf1.a45b1;
802MS.10R5.B1: MS,K2:=ksd2.a56b1;
803on_cutMS.10=0;
804};
805
806exec,ENABLE_SEXT(MS.10);
807
808value,posMSQ10,posMCBQ10;
809value,on_cutMS.10,on_cutMS.14;
810if (on_cutMS.10==1){exec, DISABLE_SEXT(MS.10);};
811if (on_cutMS.14==1){exec, DISABLE_SEXT(MS.14);};
812
813! Q10
814seqedit,sequence=lhcb1;
815install,element=MS.10L1.B1,  at=+posMSQ10, from=MQML.10L1.B1;
816install,element=MS.10R1.B1,  at=+posMSQ10, from=MQML.10R1.B1;
817install,element=MS.10L5.B1,  at=+posMSQ10, from=MQML.10L5.B1;
818install,element=MS.10R5.B1,  at=+posMSQ10, from=MQML.10R5.B1;
819install,element=MCBH.10L1.B1,at=posMCBQ10, from=MQML.10L1.B1;
820install,element=MCBV.10R1.B1,at=posMCBQ10, from=MQML.10R1.B1;
821install,element=MCBH.10L5.B1,at=posMCBQ10, from=MQML.10L5.B1;
822install,element=MCBV.10R5.B1,at=posMCBQ10, from=MQML.10R5.B1;
823endedit;
824
825
826! ------------------------------------------
827! Q5 in IR6
828! ------------------------------------------
829
830dQ5IR6= l.MQYL-l.MQY;
831posQ5IR6     := 208.2  +dQ5IR6/2;
832posBPMQ5IR6  := 210.918+dQ5IR6;
833posMCBYQ5IR6 := 210.547+dQ5IR6;
834
835MQYL.5L6.B1: MQYL, K1 :=  kq5.l6b1;
836MQYL.5R6.B1: MQYL, K1 :=  kq5.r6b1;
837
838value,posBPMQ5IR6,posQ5IR6,posMCBYQ5IR6;
839
840seqedit,sequence=lhcb1;
841install,element=BPMYA.5L6.B1,at=-posBPMQ5IR6 ,from=IP6;
842install,element=MQYL.5L6.B1 ,at=-posQ5IR6    ,from=IP6;
843install,element=MQYL.5R6.B1 ,at= posQ5IR6    ,from=IP6;
844install,element=MCBYV.5R6.B1,at= posMCBYQ5IR6,from=IP6;
845endedit;
846
847
848! -------------------------------------------------
849! Crab cavities
850! -------------------------------------------------
851
852!  {.4 D2 .4 MCBRDH .4 MCBRDV .4}
853!  B1-> 0.5 { 1.3 1.3  CRAB 2.6  CRAB 2.6  CRAB 1.3 } 2.69 | MCBYY
854
855posCRAB=163-1.5; ! 3 modules 11.8MV 1.8 from D2 at(-15)
856posCRABA1=posCRAB-1.5;posCRABA2=posCRAB-2.8;
857posCRABB1=posCRAB-4.1;posCRABB2=posCRAB-5.4;
858posCRABC1=posCRAB-6.7;posCRABC2=posCRAB-8.0;
859
860
861crab_make_tkicker(NNN,FFF): macro {
862omega_crabsc:=twopi*HRF400/LHCLENGTH;
863z_crab:=0;
864sin_crab:=sin(omega_crabsc*z_crab);
865cosi1:=cos(twopi*phi_IR1/360.);sinu1:=sin(twopi*phi_IR1/360.);
866cosi5:=cos(twopi*phi_IR5/360.);sinu5:=sin(twopi*phi_IR5/360.);
867on_crab1=0;on_crab5=0;
868acrabNNN.l1b1: tkicker, l=0, HKICK:=on_crab1*ahcrab_l1b1/FFF*sin_crab*cosi1,VKICK:=on_crab1*avcrab_l1b1/FFF*sin_crab*sinu1;
869acrabNNN.r1b1: tkicker, l=0, HKICK:=on_crab1*ahcrab_r1b1/FFF*sin_crab*cosi1,VKICK:=on_crab1*avcrab_r1b1/FFF*sin_crab*sinu1;
870acrabNNN.l5b1: tkicker, l=0, HKICK:=on_crab5*ahcrab_l5b1/FFF*sin_crab*cosi5,VKICK:=on_crab5*avcrab_l5b1/FFF*sin_crab*sinu5;
871acrabNNN.r5b1: tkicker, l=0, HKICK:=on_crab5*ahcrab_r5b1/FFF*sin_crab*cosi5,VKICK:=on_crab5*avcrab_r5b1/FFF*sin_crab*sinu5;
872};
873
874crab_install(NNN,PFFF,PBBB): macro ={
875value,PFFF,PBBB;
876seqedit, sequence=lhcb1;
877install,element=acrabNNN.l5b1,at=-PBBB,from=IP5;
878install,element=acrabNNN.r5b1,at= PFFF,from=IP5;
879install,element=acrabNNN.l1b1,at=-PBBB,from=IP1.L1;
880install,element=acrabNNN.r1b1,at= PFFF,from=IP1;
881endedit;
882};
883
884crab_remove(NNN): macro ={
885seqedit, sequence=lhcb1;
886remove,element=acrabNNN.l5b1;
887remove,element=acrabNNN.r5b1;
888remove,element=acrabNNN.l1b1;
889remove,element=acrabNNN.r1b1;
890endedit;
891};
892
893
894exec,crab_make_tkicker(A,3);
895exec,crab_make_tkicker(B,3);
896exec,crab_make_tkicker(C,3);
897
898!exec,crab_remove(A);
899!exec,crab_remove(B);
900!exec,crab_remove(C);
901
902exec,crab_install(A,posCRABA1,posCRABA2);
903exec,crab_install(B,posCRABB1,posCRABB2);
904exec,crab_install(C,posCRABC1,posCRABC2);
Note: See TracBrowser for help on using the repository browser.