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

 Other Downloads (share)

Mailing list

Search web/mailinglist

 Wiki (GitHub)
 McStas manual


Report bugs (GitHub)

Code-repository (GitHub)

McStas: MultiDiskChopper

[ Identification | Description | Input 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)


  • Site:
  • Author: Markus Appel
  • Origin: ILL / FAU Erlangen-Nuernberg
  • Date: 2015-10-19


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)

Input parameters

Parameters in boldface are required; the others are optional.
slit_centerstring(deg) Angular position of the slits (similar to slit_width)"0 180"
slit_widthstring(deg) Angular width of the slits, given as list in a string separated by space ' ', comma ',', underscore '_' or semicolon ';'. Example: "0;20;90;135;270""10 20"
nslitsNumber of slits to read from slit_width and slit_center2
delta_ymy-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
nuHzRotation speed of the disk, the sign determines the direction.0
nrev When isfirst=1: 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).0
ratio When isfirst=1: Spacing of the additional revolutions from the parameter nrev from the central revolution.1
jittersJitter in the time phase.0
delaysTime delay of the chopper clock.0
isfirst0/1Set to 1 for the first chopper after a continuous source. The neutron events0
phasedegPhase angle located on top of the disk at t=delay (see below).0
radiusmOuter radius of the disk0.375
equal0/1When isfirst=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.0
abs_outIf 1, absorb all neutrons outside the disk diameter.0
verbose0/1Set to 1 to display more information during the simulation.0


[ Identification | Description | Input parameters | Links ]

Generated on 2023-09-19 20:01:36

Last Modified: Wednesday, 03-Jan-2024 19:59:10 CET
Search website mailinglist archive GitHub repos