1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418
|
/********************************************************************
*
* Instrument: ILL_H16_IN5
*
* %Identification
* Written by: E. Farhi, J. Ollivier, Celia Castan Guerrero
* Date: Jan 2004-2009
* Origin: ILL
*
* %INSTRUMENT_SITE: ILL
*
* The H16 cold guide (feeding IN5)
*
* %Description
*
* The H16@ILL curved guide sending cold neutrons from the VCS to IN5.
*
* %Example: m=1 Detector: GuideOut_Phic_I=1.85e+10
*
* %Parameters
* m: [1] m-value of whole guide coating. 0 absorbing, 1 for Ni, 1.2 for Ni58, 2-4 for SM
* lambda: [AA] mean incident wavelength.
* dlambda: [AA] wavelength half width. Use e.g. 0.8*lambda for white beam.
*
* %E
************************************************************************/
DEFINE INSTRUMENT ILL_H16(lambda=10, dlambda=9.9, m=1)
DECLARE
%{
//---Guide (1st part of guide) --------------------------------------
double L_Guide1, L_Guide21;
double L_Guide22, L_Guide23; // gerade dimensions
double L_Guide3, L_Guide41;
double L_Guide42, L_Guide43;
double L_Guide44, L_Guide45;
double L_Collimator, L_CollSample;
double L_gap, disk_gap,mono_gap;
//---Reactor & Krumm Guide coating (2nd part of guide) ------------
double alt_Guide_Qc,alt_Guide_Ro,alt_Guide_alpha,alt_Guide_W;
double L_reactor_guide; // total length of the reactor guide
// from the source to the VTE valve
double L_source_sample;
//---Neue Guide coating--------------------------------------------
double Guide_Qc,Guide_Ro,Guide_alpha,Guide_W;
%}
INITIALIZE
%{
//==========================================================================
// Source
//==========================================================================
/* sT1=216.8; sI1=1.24e+13;*/ //example source data
/* sT2=33.9; sI2=1.02e+13;*/
/* sT3=16.7; sI3=3.0423e+12;*/
//==========================================================================
// Guide
//==========================================================================
L_reactor_guide = 33.30127; // Total length: Source-VTE [m]
L_gap = 0.2130; // gap VTE+OT-H16
L_Guide1 = 4.3900; // for gerade Guide1
L_Guide21 = 0.6950; // for gerade Guide21
L_Guide22 = 0.1300; // for gerade Guide22
L_Guide23 = 0.69500; // for gerade Guide23
disk_gap = 0.02; // full gap at choppers
L_Guide3 = 5.5125; // for gerade Guide3
L_Guide41 = 0.7425; // for gerade Guide41
L_Guide42 = 0.0350; // for gerade Guide42
L_Guide43 = 0.7500; // for gerade Guide43
L_Guide44 = 0.0350; // for gerade Guide44
L_Guide45 = 0.7900; // for gerade Guide45
mono_gap = 0.0300; // gap for the 1st monitor
L_Collimator= 0.1300; // for gerade Collimator
L_CollSample= 0.2400-0.025; // the sample chamber size & keep
// place for the vana sample
L_source_sample = L_reactor_guide+L_gap+L_Guide1+L_Guide21+disk_gap;
L_source_sample+= L_Guide22+disk_gap+L_Guide23+L_Guide3+L_Guide41;
L_source_sample+= disk_gap+L_Guide42+disk_gap+L_Guide43;
L_source_sample+= disk_gap+L_Guide44+disk_gap+L_Guide45;
L_source_sample+= mono_gap+L_Collimator+L_CollSample+0.025+0.0009;
printf("Instrument: ILL_H16 (H16@ILL cold guide on VCS).\n Total lenght Source - Sample = %f [m].\n\n",
L_source_sample);
// Alt Guide coating
alt_Guide_Qc = 0.021745; // for m=1 alpha and W aren't used.
alt_Guide_Ro = 0.995;
alt_Guide_alpha = 6.07;
alt_Guide_W = 0.0023;
// New Guide and super-mirors
Guide_Qc = 0.02275;
Guide_Ro = 0.996;
Guide_alpha = 5.75;
Guide_W = 0.00125;
%}
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_//
TRACE
COMPONENT arm = Progress_bar(percent=10) AT (0,0,0) ABSOLUTE
/*------------------*/
/* SOURCE */
/*------------------*/
COMPONENT VCS = Source_gen(
yheight = 0.22,
xwidth = 0.14,
focus_xw = 0.038,
focus_yh = 0.2,
lambda0 = lambda,
dlambda = dlambda,
T1=216.8,I1=1.24e+13, /* VCS parameters */
T2=33.9, I2=1.02e+13,
T3=16.7 ,I3=3.0423e+12,
verbose = 1)
AT (0, 0, 0) RELATIVE PREVIOUS
/*--------------------*/
/* The H16 Guide */
/*--------------------*/
// zuerste, die gerade Teil
// ^^^^^^^^^^^^^^^^^^^^^^^^
//(6x499.7mm+0.3mm gap, 301.27mm+20mm gap, 230mm+170mm gap)
//-----------------------------------------------------------------
COMPONENT gerade_in_pile1 = Guide(
w1 = 0.038, h1 = 0.2, w2 = 0.037, h2 = 0.2, l = 0.4997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = 1, W = alt_Guide_W)
AT (0,0,2.33) RELATIVE arm
COMPONENT gerade_in_pile2 = Guide(
w1 = 0.037, h1 = 0.2, w2 = 0.03603, h2 = 0.2, l = 0.4997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = 1, W = alt_Guide_W)
AT (0,0,0.500) RELATIVE gerade_in_pile1
COMPONENT gerade_in_pile3 = Guide(
w1 = 0.03603, h1 = 0.2, w2 = 0.03504, h2 = 0.2, l = 0.4997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = 1, W = alt_Guide_W)
AT (0,0,0.500) RELATIVE gerade_in_pile2
COMPONENT gerade_in_pile4 = Guide(
w1 = 0.03504, h1 = 0.2, w2 = 0.03406, h2 = 0.2, l = 0.4997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,0.5000) RELATIVE gerade_in_pile3
COMPONENT gerade_in_pile5 = Guide(
w1 = 0.03406, h1 = 0.2, w2 = 0.03307, h2 = 0.2, l = 0.4997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,0.5000) RELATIVE gerade_in_pile4
COMPONENT gerade_in_pile6 = Guide(
w1 = 0.03307, h1 = 0.2, w2 = 0.03209, h2 = 0.2, l = 0.4997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,0.5000) RELATIVE gerade_in_pile5
COMPONENT gerade_in_pile7 = Guide(
w1 = 0.03209, h1 = 0.2, w2 = 0.03149, h2 = 0.2, l = 0.30127,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = 1, W = alt_Guide_W)
AT (0,0,0.5000) RELATIVE gerade_in_pile6
COMPONENT gerade_in_pile8 = Guide(
w1 = 0.03145, h1 = 0.2, w2 = 0.03100, h2 = 0.2, l = 0.230,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,0.32127) RELATIVE gerade_in_pile7
// The "MAN" Guide
// ^^^^^^^^^^^^^^^^^^^^^^^
//(29 Teilen nach ein 170mm gap)
//------------------------------------------------------
COMPONENT krumm1 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.7497,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,0.400) RELATIVE gerade_in_pile8
ROTATED (0,0.018630,0) RELATIVE gerade_in_pile8
COMPONENT krumm2 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,0.750) RELATIVE krumm1
ROTATED (0,0.0079,0) RELATIVE krumm1
COMPONENT krumm3 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm2
ROTATED (0,0.02115,0) RELATIVE krumm2
COMPONENT krumm4 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm3
ROTATED (0,0.021240,0) RELATIVE krumm3
COMPONENT krumm5 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.7497,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm4
ROTATED (0,0.018630,0) RELATIVE krumm4
COMPONENT krumm6 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,0.750) RELATIVE krumm5
ROTATED (0,0.018540,0) RELATIVE krumm5
COMPONENT krumm7 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.4997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm6
ROTATED (0,0.015930,0) RELATIVE krumm6
COMPONENT krumm8 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,0.500) RELATIVE krumm7
ROTATED (0,0.018990,0) RELATIVE krumm7
COMPONENT krumm9 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm8
ROTATED (0,0.021240,0) RELATIVE krumm8
COMPONENT krumm10 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm9
ROTATED (0,0.021240,0) RELATIVE krumm9
COMPONENT krumm11 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm10
ROTATED (0,0.021240,0) RELATIVE krumm10
COMPONENT krumm12 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm11
ROTATED (0,0.021240,0) RELATIVE krumm11
COMPONENT krumm13 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm12
ROTATED (0,0.021150,0) RELATIVE krumm12
COMPONENT krumm14 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm13
ROTATED (0,0.021240,0) RELATIVE krumm13
COMPONENT krumm15 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm14
ROTATED (0,0.021240,0) RELATIVE krumm14
COMPONENT krumm16 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm15
ROTATED (0,0.021240,0) RELATIVE krumm15
COMPONENT krumm17 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.4997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm16
ROTATED (0,0.015930,0) RELATIVE krumm16
COMPONENT krumm18 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,0.500) RELATIVE krumm17
ROTATED (0,0.015930,0) RELATIVE krumm17
COMPONENT krumm19 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm18
ROTATED (0,0.021240,0) RELATIVE krumm18
COMPONENT krumm20 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm19
ROTATED (0,0.021240,0) RELATIVE krumm19
COMPONENT krumm21 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm20
ROTATED (0,0.021150,0) RELATIVE krumm20
COMPONENT krumm22 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm21
ROTATED (0,0.021240,0) RELATIVE krumm21
COMPONENT krumm23 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm22
ROTATED (0,0.021240,0) RELATIVE krumm22
COMPONENT krumm24 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm23
ROTATED (0,0.021240,0) RELATIVE krumm23
COMPONENT krumm25 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm24
ROTATED (0,0.021240,0) RELATIVE krumm24
COMPONENT krumm26 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.7497,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm25
ROTATED (0,0.018630,0) RELATIVE krumm25
COMPONENT krumm27 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,0.750) RELATIVE krumm26
ROTATED (0,0.018540,0) RELATIVE krumm26
COMPONENT krumm28 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm27
ROTATED (0,0.021240,0) RELATIVE krumm27
COMPONENT krumm29 =Guide(
w1 = 0.030, h1 = 0.2, w2 = 0.030, h2 = 0.2, l = 0.9997,
R0 = alt_Guide_Ro, Qc = alt_Guide_Qc, alpha = alt_Guide_alpha,
m = m, W = alt_Guide_W)
AT (0,0,1.000) RELATIVE krumm28
ROTATED (0,0.021240,0) RELATIVE krumm28
/*---------------------------------------------------------*/
/* Und jetzt die gerade Guide, choppers, usw. */
/*---------------------------------------------------------*/
COMPONENT GuideOut = Arm() AT (0,0,1.000) RELATIVE krumm29
COMPONENT GuideOut_xy = Monitor_nD(
xwidth=0.03, yheight=0.2, restore_neutron=1,
options="x y, per cm2, slit")
AT (0,0,0.01) RELATIVE PREVIOUS
COMPONENT GuideOut_dxdy = Monitor_nD(
xwidth=0.03, yheight=0.2, restore_neutron=1,
options="dx dy, per cm2, slit")
AT (0,0,0) RELATIVE PREVIOUS
COMPONENT GuideOut_Phic = Monitor_nD(
xwidth=0.03, yheight=0.2, restore_neutron=1,
options="x, y, per cm2, capture, slit", bins=40)
AT (0,0,0) RELATIVE PREVIOUS
COMPONENT GuideOut_L = Monitor_nD(
xwidth=0.03, yheight=0.2, restore_neutron=1,
options="lambda, limits=[1 21] bins=20, per cm2, slit")
AT (0,0,0) RELATIVE PREVIOUS
END
|