/*******************************************************************************
*
* McStas, neutron ray-tracing package
* Copyright (C) 1997-2008, All rights reserved
* Risoe National Laboratory, Roskilde, Denmark
* Institut Laue Langevin, Grenoble, France
*
* Instrument: Test_StatisticalChopper
*
* %Identification
* Written by: Emmanuel Farhi
* Date: 1st Dec 2009.
* Origin: ILL (France)
* %INSTRUMENT_SITE: Tests_optics
*
* An example using a statistical/correlation chopper and its de-correlation monitor
*
* %Description
* This instrument is a simple model of a kind of TOF instrument, with powder sample
* and statistical chopper. The de-correlation is also performed in a dedicated monitor.
*
* Example: lambda=1 Detector: time_mon2_I=6.03103e-13
*
* %Parameters
* lambda: [Angs] source wavelength
*
* %L
* R. Von Jan and R. Scherm. The statistical chopper for neutron time-of-flight spectroscopy. Nuclear Instruments and Methods, 80 (1970) 69-76.
*
* %End
*******************************************************************************/
DEFINE INSTRUMENT Test_StatisticalChopper(lambda=1)
TRACE
COMPONENT base=Progress_bar()
AT (0,0,0) ABSOLUTE
// COMPONENT source1 = Moderator(radius = 0.0707, dist = 18, xw = 0.11, yh = 0.11,
// E0 = 10, E1 = 15, Ec = 9.0, t0 = 37.15, gam = 39.1)
// AT (0,0,0.01) RELATIVE PREVIOUS
COMPONENT source1 = Source_simple(xwidth=0.026, yheight=0.026,
lambda0=lambda, dlambda=0.00001,
focus_xw=0.005, focus_yh=0.05, dist=1.2)
AT (0,0,.001) relative PREVIOUS
EXTEND %{
t=randpm1()*255/60/1487;
%}
COMPONENT before_stat_chop = Monitor_nD(
options = "auto time bins=1000",
xwidth = 0.11, yheight = 0.11)
AT (0,0,0) RELATIVE PREVIOUS
COMPONENT chop1 = StatisticalChopper(nu=1487.0*60/255, verbose=1)
AT (0,0,1) relative PREVIOUS
COMPONENT after_stat_chop = Monitor_nD(
options = "auto time bins=1001",
xwidth = 0.11, yheight = 0.11)
AT (0,0,0.01) RELATIVE PREVIOUS
SPLIT COMPONENT Sample = Isotropic_Sqw(xwidth=.005, yheight=.05, zdepth=2e-3,
Sqw_coh="Na2Ca3Al2F14.laz", // Sqw_coh="Rb_liq_coh.sqw", Sqw_inc="Rb_liq_inc.sqw",
p_interact=0.99, d_phi=atan2(0.1,2)*RAD2DEG)
AT (0,0,.2) relative PREVIOUS
EXTEND %{
if (!SCATTERED) ABSORB;
%}
COMPONENT ChopMon2 = StatisticalChopper_Monitor(
options ="banana auto time bins=500, y bins=100",
radius=2, yheight=0.11, comp=chop1, restore_neutron=1)
AT (0,0,0) RELATIVE PREVIOUS
COMPONENT time_mon2 = Monitor_nD(
options = "banana, auto time,bins=1002",
radius=2.1, yheight = 0.11)
AT (0,0,0) RELATIVE PREVIOUS
END