McStas logo McStas - A neutron ray-trace simulation package ILL; PSI; ESS Niels Bohr Institute DTU Physics NEXMAP


About McStas
 Conditions of use
 Project funding

 Linux Install (deb/rpm)
 Mac OS X Install
 Unix Install (src code)
 Windows Install
 Other Downloads (share)

Mailing list

Search web/mailinglist

 McStas manual
 Known problems
 C Compilers




Report bugs


McStas Ubuntu live-dvd

McStas: MultiDiskChopper Component

[ Identification | Description | Input parameters | Output parameters | Links ]

The MultiDiskChopper Component

Based on DiskChopper (Revision 1.18) by Peter Willendrup (2006), which in turn is based on Chopper (Philipp Bernhardt), Jitter and beamstop from work by Kaspar Hewitt Klenoe (jan 2006), adjustments by Rob Bewey (march 2006)


  • Author: Markus Appel
  • Origin: ILL / FAU Erlangen-Nuernberg
  • Date: 2015-10-19
  • Version:(Unknown)


Models a disk chopper with a freely configurable slit pattern. For simple applications,
use the DiskChopper component and see the component manual example of DiskChopper GROUPing.
If the chopper slit pattern should be dynamically configurable or a complicated pattern
is to be used as first chopper on a continuous source, use this component.

Width and position of the slits is defined as a list in string parameters so
they can easily be taken from instrument parameters.
The chopper axis is located on the y axis as defined by the parameter delta_y.
When the chopper is the first chopper after a continuous (i.e. time-independent) 
source, the parameter isfirst should be set to 1 to increase Monte-Carlo efficiency.

Examples (see parameter definitions for details): 
Two opposite slits with 10 and 20deg opening, with the 20deg slit in the beam at t=0.02:
MultiDiskChopper(radius=0.2, slit_center="0;180", slit_width="10;20", delta_y=-0.1, 
                 nu=302, nslits=2, phase=180, delay=0.02)

First chopper on a continuous source, creating pulse trains for one additional revolution
before and after the revolution at t=0:
MultiDiskChopper(radius=0.2, slit_center="0;180", slit_width="10;20", delta_y=-0.1, 
                 nu=302, nslits=2, phase=180, isfirst=1, nrev=1)

WARNING: This is a contributed Component.

Input parameters

Parameters in boldface are required; the others are optional.
Name Unit Description Default
slit_center string : (deg) Angular position of the slits (similar to slit_width) "0 180"
slit_width string : (deg) Angular width of the slits, given as list in a string separated by space ' ', comma ',', underscore '_' or semicolon ';' . "10 20"
nslits 2
delta_y m y-position of the chopper rotation axis. If the chopper is located above the guide (delta_y>0), the coordinate system will be mirrored such that the created pulse pattern in time is the same as for delta_y<0. A warning will be printed in this case. -0.3
nu Hz Rotation speed of the disk, the sign determines the direction. 0
nrev - Number of *additional* disk revolutions before *and* after the one around t=delay to distribute events on. If set to 2 for example, there will be 2 leading, 1 central, and 2 trailing revolutions of the disk (2*nrev+1 in total). Default: 0 0
ratio - Spacing of the additional revolutions from the parameter nrev from the central revolution. 1
jitter s Jitter in the time phase. Default: 0 0
delay - are cumulative, and both can be specified. 0
isfirst 0/1 Set to 1 for the first chopper after a continuous source. The neutron events will be shifted in time to pass the component (with adapted weight). Default: 0 0
phase deg Phase angle located on top of the disk at t=delay (see below). Default: 0 0
radius m Outer radius of the disk 0.375
equal 0/1 If 0, the neutron events will be distributed between different slits proportional to the slit size. If 1, the events will be distributed such that each slit transmits the same number of events. This parameter can be used to achieve comparable simulation statistics over different pulses when simulating small and large slits together. Default: 0 0
abs_out - If 1, absorb all neutrons outside the disk diameter. Default: 0 0
verbose 0/1 Set to 1 to display more information during the simulation. Default: 0 0

Output parameters

Name Unit Description Default
islit - Index of the slit which has transmitted the current neutron (between 0 and nslits-1).  
irev - Index of the disk revolution that has transmitted the current neutron. Only set if isfirst=1. irev will be between (-nrev*ratio) and (nrev*ratio), where irev=0 is the central revolution.  


[ Identification | Description | Input parameters | Output parameters | Links ]

Generated automatically by McDoc, Peter Willendrup <> / Mon May 22 14:59:10 2017

Last Modified: Monday, 22-May-2017 16:59:10 CEST
Search website mailinglist archive GitHub repos