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: PerfectCrystal

[ Identification | Description | Input parameters | Links ]

The PerfectCrystal Component

Version 1.1 - added option 'debyescherrer' to select analyzer geometry - added option 'facette' to approximate analyzer sphere by small, flat crystals Version 1.0 - inital release


  • Site:
  • Author: Markus Appel
  • Origin: ILL / FAU Erlangen-Nuernberg
  • Date: 2015-12-21


Perfect crystal component, primarily for use as monochromator and analyzer in
backscattering spectrometers. Reflection from a single Bragg reflex of a flat or
spherical surface is simulated using a Darwin, Ewald or Gaussian profile. Doppler
movement of the monochromator is supported as well.

Orientation of the crystal surface is *different* from other monochromator components!
Gravitational energy shift for tall analyzers should work in principle, but it not tested yet.
See the parameter description on how to define the geometry and properties.

[1] Website for Backscattering Spectroscopy:

IN16B (ILL) Si111 large angle analyzers (approximate dimensions):
PerfectCrystal(radius=2, lambda=6.2708, sigma=0.24e-3,
ttmin=40, ttmax=165, phimin=-45, phimax=+45, centerfocus=1)

IN16B (ILL) Si111 Doppler monochromator:
PerfectCrystal(radius=2.165, lambda=6.2708, sigma=0.24e-3,
width = 0.500, height = 0.250, centerfocus=0,
speed = 4.7, amplitude = 0.075, exclusive=1)

Input parameters

Parameters in boldface are required; the others are optional.
ttmaxdeganalyzer coverage angle in horizontal xz-plane between -180 and 180NAN
ttwidthdeghorizontal coverage as center and full widthNAN
widthmabsolute widthNAN
phimaxdegvertical analyzer coverage between -90 and 90 (-180 and 180 if debyescherrer==1)NAN
phiwidthdegvertical coverage as center and full widthNAN
heightmabsolute height (only if debyescherrer==0)NAN
debyescherrer-180...180(0/1) bend analyzer following a Debye-Scherrer ring along scattering angle tt (twotheta) (phi =0
facettemwidth of square crystal facettes arranged on the spherical surface (set 0 to disable). Default: 0 Warning: Facettation will fail at the poles along +-y axis.0
facette_xidegrandom misalignemt of each facette. Default: 00
centerfocus0/1Component origin is the center of the analyzer sphere if 1, if set to 0 the origin is on the analyzer surface. Default: 00
radiusmRadius of curvature, set to 0 for a flat surface. Default: 00
tauA^-1Scattering vector of the reflex (sometimes also called Q...)NAN
lambdaAAlternatively to tau: backscattered wavelengthNAN
R0Peak reflectivity. Default: 11.0
dtauovertau1Plateau width of the Ewald/Darwin curve (seeNAN
dtauovertau_extRelative variation of tau (randomized for each trajectory, full width)0
ewald0/1Use Ewald curve if 1, Darwin curve if 0. Default: 1 (Ewald)1
sigmameVWidth of the Gaussian reflectivity curve in meV (corresponding to the energy resolution). (The width will be transformed and the Gaussian is actually calculated in k-space.)NAN
ismirror0/1Simply reflect all neutrons if 1. Good for debugging/visualization. Default: 00
speedm/sMaximum Doppler speed. The actual monochromator velocity is randomized between -speed and +speed. Default: 00
amplitudemAmplitude of the Doppler movement. Default: 00
smartphase0/1Optimize Doppler phase for better MC efficiency if set to 1. *WARNING:* Experimental option! Always compare to a simulation without smartphase. Better do not use smartwidth with Ewald/Darwin curves due to their endless tails. Default: 00
smartwidthmeVHalf width of the possible energy reflection window for smartphase. Default: 5*sigma OR 10*2*dtauovertau*E0NAN
exclusive0/1If set to 1, absorb all neutrons that missed the monochromator/analyzer surface. Default: 00
transmit0...1Monte-Carlo probability of transmitting an event through the monochromator/analyzer surface. (Events with R=1.0 for DarwinE/Ewald curves are always reflected!). Default: 00


[ Identification | Description | Input parameters | Links ]

Generated on 2024-01-03 11:47:43

Last Modified: Tuesday, 16-Apr-2024 20:05:21 CEST
Search website mailinglist archive GitHub repos