1 gaskelld 1.1 INCLUDE 'COSY' ;
2 procedure run ;
3 variable line 80 ;
4 variable TRMAP_FT 1000 8 ; {transport map from fp to target}
5 variable TRMAP_TF 1000 8 ; {transport map from target to fp}
6 variable Q1MID_MAP 1000 8 ; {temporary map to midpoint in Q1}
7 variable Q2MID_MAP 1000 8 ; {temporary map to midpoint in Q2}
8 variable Q3MID_MAP 1000 8 ; {temporary map to midpoint in Q3}
9 variable TEMPMAP 1000 8 ; {temporary map}
10 variable RMAP 1000 4 ; {reverse transport map 4 dim}
11 variable TMPMAP 1000 8 ;
12 variable TR1MAP 1000 8 ;
13 variable MAPT 2000 5 ;
14 variable OBJ 1 ;
15 variable TMP1 1;
16 variable TMPSPOS 1000;
17 variable TDUMP_LEVEL 1;
18 variable DIP_MOD 1 ; {dipole model number}
19
20 variable t_ref 1 ; {kinetic energy of ref particle}
21 variable p_cen 1 ; {central momentum setting in GeV}
22 gaskelld 1.1 variable me 1 ; {mass of electron in GeV}
23 variable mp 1 ; {mass of proton in GeV}
24 variable mid 1 ;
25 variable exit 1 ;
26
27 variable RES 1 4 ;
28 variable RORDER 1 ; {order of recon matrix}
29 variable FORDER 1 ; {order of forward matrix}
30 variable FRMODE 1 ; {fringe field mode}
31
32 {resolutions for reverse map}
33 variable R1 1 ; {x resolution}
34 variable R2 1 ; {dx/dz resolution}
35 variable R3 1 ; {y resolution}
36 variable R4 1 ; {dy/dz resolution}
37 variable R5 1 ; {delta resolution}
38 variable R6 1 ; {detector position resolution}
39 variable R7 1 ; {detector angle resolution}
40
41 {multipole variables}
42 variable Q1 1 ; { Quadrupole strength Q1 }
43 gaskelld 1.1 variable H1 1 ;
44 variable O1 1 ;
45 variable D1 1 ;
46 variable DD1 1 ;
47 variable Q2 1 ; { Quadrupole strength Q2 }
48 variable H2 1 ;
49 variable O2 1 ;
50 variable D2 1 ;
51 variable DD2 1 ;
52 variable Q3 1 ; { Quadrupole strength Q3 }
53 variable H3 1 ;
54 variable O3 1 ;
55 variable D3 1 ;
56 variable DD3 1 ;
57
58 {dipole variables}
59 variable D_RADIUS 1 ; { dipole bend radius }
60 variable D_BEND 1 ; { dipole bend angle }
61 variable D_GAP 1 ; { dipole half gap }
62 variable D_ALPHA 1 ; { entrance shim angle }
63 variable D_BETA 1 ; { exit shim angle }
64 gaskelld 1.1 variable D_N 1 5 ; { field index area }
65 variable DELTA_D_N 1 ; { error on the field index }
66 variable D_S1 1 5 ; { entrance polynomial coefficients }
67 variable D_S2 1 5 ; { exit polynomial coefficients }
68 variable D_H1 1 ; { dipole entrance curvature }
69 variable D_H2 1 ; { dipole exit curvature }
70 variable D_S01 1 5 ;
71 variable D_S2 1 5 ;
72 variable D_S02 1 5 ;
73
74
75 {procedure declarations}
76
77 {-----------------------------------------------------------------------------}
78
79 procedure PMT IU ;
80 variable I 1 ;
81 LOOP I 1 5 ;
82 MAPT(I) := TMPMAP(I) ;
83 ENDLOOP ;
84 DAPRV Mapt 5 5 TWOND IU ;
85 gaskelld 1.1 ENDprocedure ;
86
87 {-----------------------------------------------------------------------------}
88
89 PROCEDURE PMR IU ; {PRINTS RMAP TO IU}
90 VARIABLE I 1 ; VARIABLE M 2000 5 ;
91 LOOP I 1 4 ; M(I) := RMAP(I) + 0*DD(1) ; ENDLOOP ;
92 DAPRV M 4 4 TWOND IU ; ENDPROCEDURE ;
93
94 {-----------------------------------------------------------------------------}
95
96 procedure SET_ORDERS ;
97 RORDER:=5 ;
98 FORDER:=5 ;
99 FRMODE:=3 ;
100 endprocedure ;
101
102 {-----------------------------------------------------------------------------}
103
104 procedure DEF_QUADS IU ;
105 { Q1 := -1.16452 ; }
106 gaskelld 1.1 { Q1 := -1.16948 ; }
107 Q1 := -0.243838 ;
108 H1 := 0.0 ;
109 O1 := 0.0 ;
110 D1 := 0.0 ;
111 DD1 := 0.0 ;
112
113 { Q2 := 0.923703 ; }
114 { Q2 := 0.92556 ; }
115 Q2 := 0.1934 ;
116 H2 := 0.0 ;
117 O2 := 0.0 ;
118 D2 := 0.0 ;
119 DD2 := 0.0 ;
120
121 { Q3 := 0.854484 ; }
122 { Q3 := 0.89647 ; }
123 Q3 := 0.17892 ;
124 H3 := 0.0 ;
125 O3 := 0.0 ;
126 D3 := 0.0 ;
127 gaskelld 1.1 DD3 := 0.00245 ;
128
129 IF IU=3 ;
130 FC 2 1 1 0.1122 8.5000 -1.4982 3.5882 -2.1209 1.723 ;
131 FC 2 2 1 0.1122 8.5000 -1.4982 3.5882 -2.1209 1.723 ;
132 FC 3 1 1 0.1122 8.5000 -1.4982 3.5882 -2.1209 1.723 ;
133 FC 3 2 1 0.1122 8.5000 -1.4982 3.5882 -2.1209 1.723 ;
134 FC 4 1 1 0.1122 8.5000 -1.4982 3.5882 -2.1209 1.723 ;
135 FC 4 2 1 0.1122 8.5000 -1.4982 3.5882 -2.1209 1.723 ;
136 FC 5 1 1 0.1122 8.5000 -1.4982 3.5882 -2.1209 1.723 ;
137 FC 5 2 1 0.1122 8.5000 -1.4982 3.5882 -2.1209 1.723 ;
138 FC 6 1 1 0.1122 8.5000 -1.4982 3.5882 -2.1209 1.723 ;
139 FC 6 2 1 0.1122 8.5000 -1.4982 3.5882 -2.1209 1.723 ;
140 ELSEIF 1=1 ;
141 FC 2 1 1 0.1122 6.2671 -1.4982 3.5882 -2.1209 1.723 ;
142 FC 2 2 1 0.1122 6.2671 -1.4982 3.5882 -2.1209 1.723 ;
143 FC 3 1 1 0.1122 6.2671 -1.4982 3.5882 -2.1209 1.723 ;
144 FC 3 2 1 0.1122 6.2671 -1.4982 3.5882 -2.1209 1.723 ;
145 FC 4 1 1 0.1122 6.2671 -1.4982 3.5882 -2.1209 1.723 ;
146 FC 4 2 1 0.1122 6.2671 -1.4982 3.5882 -2.1209 1.723 ;
147 FC 5 1 1 0.1122 6.2671 -1.4982 3.5882 -2.1209 1.723 ;
148 gaskelld 1.1 FC 5 2 1 0.1122 6.2671 -1.4982 3.5882 -2.1209 1.723 ;
149 FC 6 1 1 0.1122 6.2671 -1.4982 3.5882 -2.1209 1.723 ;
150 FC 6 2 1 0.1122 6.2671 -1.4982 3.5882 -2.1209 1.723 ;
151 ENDIF ;
152 ENDprocedure ;
153
154 {-----------------------------------------------------------------------------}
155
156 procedure DEF_DIPOLE ;
157 variable I 1 ;
158 IF DIP_MOD<0.5 ;
159 D_RADIUS := 8.40 ; D_BEND := 45.0 ; D_GAP := 0.125 ;
160 D_ALPHA := -30.0 ; D_BETA := -30.0 ;
161 D_N(1) := -1.25 ;
162 D_N(2) := -D_N(1)*D_N(1) ;
163 D_N(3) := D_N(1)*D_N(1)*D_N(1) ;
164 D_N(4) := -D_N(1)*D_N(1)*D_N(1)*D_N(1) ;
165 D_N(5) := D_N(1)*D_N(1)*D_N(1)*D_N(1)*D_N(1) ;
166 D_S1(1) := TAN(-30.*DEGRAD) ; {Entrance pole shape}
167 D_S1(2) := 0.4014526 ;
168 D_S1(3) := 0.21710 ;
169 gaskelld 1.1 D_S1(4) := -0.0825 ;
170 D_S1(5) := -0.3110 ;
171 D_S2(1) := TAN(-30.*DEGRAD) ; {Exit pole shape}
172 D_S2(2) := -0.4433318 ;
173 D_S2(3) := 0.18020 ;
174 D_S2(4) := -0.2443 ;
175 D_S2(5) := 1.1649 ;
176 ELSEIF 1>0 ;
177 D_RADIUS:=8.458 ;
178 D_BEND:=45.0 ;
179 D_GAP:=0.1244 ;
180 D_H1:=0.6369 ; D_H2:=-0.3571 ;
181 D_ALPHA := -30.0 ; D_BETA := -30.0 ;
182 D_N(1) := -1.26 ;
183 D_N(2) := -D_N(1)*D_N(1) ;
184 D_N(3) := D_N(1)*D_N(1)*D_N(1) ;
185 D_N(4) := -D_N(1)*D_N(1)*D_N(1)*D_N(1) ;
186 D_N(5) := D_N(1)*D_N(1)*D_N(1)*D_N(1)*D_N(1) ;
187 D_S1(1) := -0.5513012 ; D_S1(2) := 0.4656544 ;
188 D_S1(3) := 0.03799517 ; D_S1(4) := 0.03613541 ;
189 D_S1(5) := -0.2209376;
190 gaskelld 1.1 D_S2(1) := -0.6049777 ; D_S2(2) := 0.2850934 ;
191 D_S2(3) := 0.4569041 ; D_S2(4) := 0.4247217 ;
192 D_S2(5) := -0.9568408 ;
193 ENDIF ;
194
195 FC 1 1 1 0.04725 2.2395 -0.9768 0.7288 -0.1299 0.0222 ;
196 FC 1 2 1 0.04725 2.2395 -0.9768 0.7288 -0.1299 0.0222 ;
197
198 endprocedure ;
199
200 {********************************************************************}
201
202
203 OV 5 3 0 ; {Order Value <order><phase dim><#par>}
204 { RP 4000.0 0.0005 -1;}
205 RPE 837.56 ;
206 PTY 0 ;
207 SB .0 .030 .0 .05 .020 .0 .0 .05 .0 .0 .0 ;
208
209 SET_ORDERS ;
210 TDUMP_LEVEL:=3;
211 gaskelld 1.1 DIP_MOD:=0;
212 OPENF 20 'hrs_forward_map.meek' 'UNKNOWN' ;
213
214 DEF_QUADS 1 ; DEF_DIPOLE ;
215 UM ;
216
217 {-------midpoint maps in Q1 and Q2--------------}
218
219 IF TDUMP_LEVEL=3 ;
220 DL 1.6000 ;
221 FR 1 ;
222 mid:=0.9413*2.0/3.0 ;
223 MQ mid Q1 0.1500 ;
224 SM Q1MID_MAP ;
225 exit:=0.9413*0.3333333;
226 MQ exit Q1 0.1500 ;
227
228 DL 1.25 ;
229
230 mid:=1.8266*0.666667 ;
231 M5 mid Q2 H2 O2 D2 DD2 0.300 ; {Q2 2/3}
232 gaskelld 1.1 SM Q2MID_MAP ; {transport map at 2/3 of Q2}
233 ENDIF ;
234
235 {-----------------------------------------------}
236
237 FR FRMODE ;
238 UM ; CR ; ER 1 3 2 3 1 3 1 1 ; BP ;
239
240 DL 1.5903 ; {Drift to Q1}
241
242 DEF_QUADS 0 ;
243 IF TDUMP_LEVEL>1 ;
244 PT 20 ;
245 ENDIF ;
246
247 IF TDUMP_LEVEL=3 ; {PT midpoint of Q1}
248 SM TMPMAP ;
249 UM ;
250 AM Q1MID_MAP ;
251 PT 20 ;
252 UM ;
253 gaskelld 1.1 AM TMPMAP ;
254 ENDIF ;
255 FR -1 ; MQ 0.9413 Q1 0.1500 ; {Q1 entrance fringe}
256 FR 0 ; MQ 0.9413 Q1 0.1500 ; {Q1 central}
257 FR -2 ; MQ 0.9413 Q1 0.1500 ; {Q1 exit fringe}
258
259 IF TDUMP_LEVEL>1 ;
260 PT 20 ;
261 ENDIF ;
262
263 DL 1.172 ; {Drift to Q2}
264
265 DEF_QUADS 0 ;
266 IF TDUMP_LEVEL>1 ;
267 PT 20 ;
268 ENDIF ;
269
270 IF TDUMP_LEVEL=3 ; {PT midpoint of Q2}
271 SM TMPMAP ;
272 UM ;
273 AM Q2MID_MAP;
274 gaskelld 1.1 PT 20 ;
275 UM ;
276 AM TMPMAP ;
277 ENDIF ;
278
279
280 DEF_QUADS 0 ;
281 FR -1 ; M5 1.8266 Q2 H2 O2 D2 DD2 0.300 ; {Q2 entrance fringe}
282 FR 0 ; M5 1.8266 Q2 H2 O2 D2 DD2 0.300 ; {Q2 central}
283 FR -2 ; M5 1.8266 Q2 H2 O2 D2 DD2 0.300 ; {Q2 exit fringe}
284 { M5 1.8266 Q2 H2 O2 D2 DD2 0.300 ; } {Q2}
285
286 IF TDUMP_LEVEL>1 ;
287 PT 20 ;
288 ENDIF ;
289
290 DL 4.4308 ; {Drift to B1}
291
292 IF TDUMP_LEVEL>1 ;
293 PT 20 ;
294 ENDIF ;
295 gaskelld 1.1
296 DEF_DIPOLE ;
297 FR FRMODE ;
298 MC D_RADIUS D_BEND D_GAP D_N D_S1 D_S2 5 ; {B1}
299
300 { MC D_RADIUS D_BEND D_GAP D_N D_S1 D_S2 5 ;} {B1}
301
302 IF TDUMP_LEVEL>1 ;
303 PT 20 ;
304 ENDIF ;
305
306 DL 1.5925 ; {Drift to Q3}
307
308 IF TDUMP_LEVEL>1 ;
309 PT 20 ;
310 ENDIF ;
311
312 DEF_QUADS 0 ;
313 FR -1 ; M5 1.8268 Q3 H3 O3 D3 DD3 0.300 ; {Q3 entrance fringe}
314 FR 0 ; M5 1.8268 Q3 H3 O3 D3 DD3 0.300 ; {Q3 central}
315 FR -2 ; M5 1.8268 Q3 H3 O3 D3 DD3 0.300 ; {Q3 exit fringe}
316 gaskelld 1.1
317 { M5 1.8268 Q3 H3 O3 D3 DD3 0.300 ;} {Q3}
318
319 IF TDUMP_LEVEL>1 ;
320 PT 20 ;
321 ENDIF ;
322
323 DL 3.4523 ; {Drift to detector plane}
324
325 PS .50 ; {Mark focal plane}
326 DL 5.000 ; {extend rays for picture}
327 PS .50 ; {Mark plane}
328 EP ;
329 DL -5.000 ; {Drift back to focal plane}
330 EP ;
331
332 IF TDUMP_LEVEL>1 ;
333 PT 20 ;
334 ENDIF ;
335
336 CLOSEF 20 ;
337 gaskelld 1.1
338 OPENF 20 'hrs_reconstruction_map.meek' 'UNKNOWN' ;
339
340 TMPSPOS := SPOS ;
341 CATR MAP TR1MAP SPOS ;
342 UM ;
343 SPOS := TMPSPOS ;
344 AM TR1MAP ;
345
346 RR MAP 0 0.01 0.01 0.01 0.01 0.0 0.0 1000 RORDER RMAP RES ;
347
348 pmr 20 ;
349 closef 20 ;
350
351 PG -10 -10 ;
352 PP -61 0 90 ;
353 PP -62 0 0 ;
354 endprocedure ;
355
356 run ;
357
358 gaskelld 1.1 end ;
|