/******************************************************************************* * * McStas, neutron ray-tracing package * Copyright 1997-2002, All rights reserved * Risoe National Laboratory, Roskilde, Denmark * Institut Laue Langevin, Grenoble, France * * Instrument: H8_test * * %Identification * Written by: Emmanuel Farhi * Date: 1st Feb 2001. * Origin: ILL (France) * Release: McStas 1.6 * Version: $Revision: 1.4 $ * %INSTRUMENT_SITE: Brookhaven * * The former thermal H8 triple-axis spectrometer from Brookhaven reactor * * %Description * This instrument is a simple model of the thermal H8 triple-axis spectrometer * from former Brookhaven reactor. It is directly illuminated by the moderator, * and has flat monochromator and analyzer. Sample is a vanadium cylinder. * Such an instrument was used for the Monte Carlo neutron simulation package * cross comparison related in paper "A Model Instrument for Monte Carlo Code * Comparisons", Neutron News 13 (No. 4), 24-29 (2002). * * Example: mcrun h8_test.instr Lambda=2.36 * * %Parameters * INPUT PARAMETERS: * Lambda : source energy [Angs] * * %Link * Neutron News 13 (No. 4), 24-29 (2002). * * %End *******************************************************************************/ DEFINE INSTRUMENT H8_test(Lambda=2.36) DECLARE %{ #define VERSION "0.01" double DM = 3.3539; /* Monochromator d-spacing in Angs */ /* PG002 Orders : 1st 3.355 2e 1.6775, 3e 1.1183 */ /* to compute */ double A1,A2; double A3,A4; double A5,A6; double mono_q, Ei; %} /* end of DECLARE */ INITIALIZE %{ int ORDER = 1; double vi, Ki; int SM,SS,SA; /* SM : scattering at mono to the right (-1)/left(+1) */ /* SS : scattering at sample to the right (-1)/left(+1) */ /* SA : scattering at analyser to the right (-1)/left(+1) */ SM = 1; SS = -1; SA = 1; /* SM = 0; SS = -0; SA = 0; */ mono_q = 2*PI*ORDER/DM; /* Q mono in Angs-1 */ Ki = 2*PI/Lambda; vi = K2V*fabs(Ki); Ei = VS2E*vi*vi; A2 = asin(mono_q/2/Ki)*RAD2DEG*2; A4 = A2; A6 = A2; A2 *= SM; /* A1 : mono theta (crystal) */ A1 = A2/2; /* A2 : mono 2 theta (arm to sample) */ A4 *= SS; /* A3 : sample theta */ A3 = A4/2; /* A4 : sample 2 theta (arm to analyser) */ A6 *= SA; /* A5 : analyser theta (crystal) */ A5 = A6/2; /* A6 : analyser 2 theta (arm to Dector) */ printf("Instrument : H8, v%s (21/02/01) on %s.\n",VERSION,getenv("HOSTNAME")); printf("Monochromator : (DM = %g)\n",DM); printf("A1 = %.2f, A2 = %.2f (deg)\n",A1,A2); printf("Ki = %.4g Angs-1 Energy = %.4g meV\nVelocity = %.4g m/s, Lambda = %.4g Angs\n", Ki, Ei, vi, Lambda); %} /* end of INITIALIZE */ TRACE /* Source description */ /* a flat constant source */ COMPONENT Source = Source_flat( radius = 0.10, dist = 2.7473, xw = 0.031, yh = 0.054, E0 = Ei, dE = 0.5) AT (0,0,0) ABSOLUTE COMPONENT D0_Source = PSD_monitor( xmin = -0.015, xmax = 0.015, ymin = -0.027, ymax = 0.027, nx=20, ny=20, filename="D0_Source.psd") AT (0, 0, 0.0001) RELATIVE Source /* SC1 collimator. 40'=3 slots, 20'=6 slots */ COMPONENT SC1 = Guide( w1 = 0.031, h1 = 0.054, w2 = 0.031, h2 = 0.054, l = 0.9144, R0 = 1.0, Qc=0.021, alpha=6, m=1, W=0.0003) AT (0.0, 0, 2.7473) RELATIVE Source COMPONENT D1_SC1_Out = PSD_monitor( xmin = -0.015, xmax = 0.015, ymin = -0.027, ymax = 0.027, nx=20, ny=20, filename="D1_SC1_Out.psd") AT (0.0, 0, 0.9145) RELATIVE SC1 COMPONENT As1 = Slit( xmin = -0.022250, xmax = 0.022250, ymin = -0.031750, ymax = 0.031750) AT (0, 0, 3.6998) RELATIVE Source COMPONENT As2 = Slit( xmin = -0.022250, xmax = 0.022250, ymin = -0.031750, ymax = 0.031750) AT (0, 0, 4.0808) RELATIVE Source COMPONENT As3 = Slit( xmin = -0.022250, xmax = 0.022250, ymin = -0.031750, ymax = 0.031750) AT (0, 0, 4.1189) RELATIVE Source COMPONENT As4 = Slit( xmin = -0.022250, xmax = 0.022250, ymin = -0.031750, ymax = 0.031750) AT (0, 0, 4.4141) RELATIVE Source COMPONENT D2_A4 = PSD_monitor( xmin = -0.022250, xmax = 0.022250, ymin = -0.031750, ymax = 0.031750, nx=20, ny=20, filename="D2_A4.psd") AT (0, 0, 0.0001) RELATIVE As4 COMPONENT Mono_Craddle = Arm() AT (0, 0, 5.2746) RELATIVE Source ROTATED (0, A1, 0) RELATIVE Source COMPONENT PG1Xtal = Monochromator( zmin = -0.05, zmax = 0.05, ymin = -0.04, ymax = 0.04, mosaich = 40, mosaicv = 40, r0 = 0.7, Q=mono_q) AT (0, 0, 0.0001) RELATIVE Mono_Craddle /* on mono, pointing towards sample */ COMPONENT Mono_Out = Arm() AT (0,0,0.0002) RELATIVE Mono_Craddle ROTATED (0, A2, 0) RELATIVE Source /* D3 should be in transmission, there at 222.2 mm */ COMPONENT D4_SC2_In = PSD_monitor( xmin = -0.015900, xmax = 0.015900, ymin = -0.024750, ymax = 0.024750, nx=20, ny=20, filename="D4_SC2_In.psd") AT (0, 0, 0.2222) RELATIVE Mono_Out /* SC2 collimator. 40'=4 slots, 20'=8 slots */ COMPONENT SC2 = Guide( w1 = 0.0318, h1 = 0.0495, w2 = 0.0318, h2 = 0.0495, l = 0.6096, R0 = 1.0, Qc=0.021, alpha=6, m=1, W=0.0003) AT (0, 0, 0.2223) RELATIVE Mono_Out COMPONENT D5_SC2_Out = PSD_monitor( xmin = -0.015900, xmax = 0.015900, ymin = -0.024750, ymax = 0.024750, nx=20, ny=20, filename="D5_SC2_Out.psd") AT (0, 0, 0.6097) RELATIVE SC2 COMPONENT Sample_Craddle = Arm() AT (0, 0, 0.7811) RELATIVE D5_SC2_Out ROTATED (0, A3, 0) RELATIVE Mono_Out COMPONENT Sample_Out = Arm() /* this is the sample-ana axis */ AT (0,0,0) RELATIVE Sample_Craddle ROTATED (0, A4, 0) RELATIVE Mono_Out COMPONENT Sample = V_sample( radius_i = 0.0, radius_o = 0.0064, h = 0.0254, focus_r = 0.035, pack = 1, target_x = 0, target_y = 0, target_z = 0.234) AT (0,0,0) RELATIVE Sample_Out /* D6 should be in transmission, there at 235.0 mm */ COMPONENT D7_SC3_In = PSD_monitor( xmin = -0.023900, xmax = 0.023900, ymin = -0.024500, ymax = 0.024500, nx=20, ny=20, filename="D7_SC3_In.psd") AT (0, 0, 0.2349) RELATIVE Sample_Out /* SC3 collimator. 40' = 12 slots, 20'=24 slots */ COMPONENT SC3 = Guide( w1 = 0.0478, h1 = 0.0490, w2 = 0.0478, h2 = 0.0490, l = 0.3048, R0 = 1.0, Qc=0.021, alpha=6, m=1, W=0.0003) AT (0, 0, 0.2350) RELATIVE Sample_Out COMPONENT D8_SC3_Out = PSD_monitor( xmin = -0.023900, xmax = 0.023900, ymin = -0.024500, ymax = 0.024500, nx=20, ny=20, filename="D8_SC3_Out.psd") AT (0, 0, 0.3047) RELATIVE SC3 COMPONENT Ana_Craddle = Arm() AT (0, 0, 0.1397) RELATIVE D8_SC3_Out ROTATED (0, A5, 0) RELATIVE Sample_Out COMPONENT PG2Xtal = Monochromator( zmin = -0.05, zmax = 0.05, ymin = -0.04, ymax = 0.04, mosaich = 40, mosaicv = 40, r0 = 0.7, Q=mono_q) AT (0, 0, 0) RELATIVE Ana_Craddle COMPONENT Ana_Out = Arm() /* this is the sample-ana axis */ AT (0,0,0) RELATIVE Ana_Craddle ROTATED (0, A6, 0) RELATIVE Sample_Out /* D9 should be in transmission, there at 336.6 mm */ COMPONENT D10_SC4_In = PSD_monitor( xmin = -0.023900, xmax = 0.023900, ymin = -0.024500, ymax = 0.024500, nx=20, ny=20, filename="D10_SC4_In.psd") AT (0, 0, 0.3365) RELATIVE Ana_Out /* SC4 collimator. 80' = 6 slots */ COMPONENT SC4 = Guide( w1 = 0.0478, h1 = 0.0490, w2 = 0.0478, h2 = 0.0490, l = 0.3048, R0 = 1.0, Qc=0.021, alpha=6, m=1, W=0.0003) AT (0, 0, 0.3366) RELATIVE Ana_Out /* vertical 3He Detector */ /* COMPONENT He3S = PSD_monitor( xmin = -0.025400, xmax = 0.025400, ymin = -0.042850, ymax = 0.042850, options="x y, all bins=50") AT (0, 0, 0.3048+0.00001) RELATIVE SC4 */ COMPONENT He3H = PSD_monitor( xmin = -0.025400, xmax = 0.025400, ymin = -0.042850, ymax = 0.042850, nx=20, ny=20, filename="He3H.psd") AT (0, 0, 0.3049) RELATIVE SC4 END