Union process: Resolution kernel for direct-geometry single-crystal spectrometers (aims at a pixel and TOF window).
Author: Fahima Islam (McStas port of the MCViNE DGSSXResKernel; MCViNE by J. Y. Y. Lin et al.)
Origin: MCViNE, https://github.com/mcvine/mcvine (mccomponents/lib/kernels/sample/DGSSXResKernel.cc)
Date: 2026-09-29
Scatters towards a target disk (position target_x/y/z or target_index, radius focus_r) and picks the arrival time at the target uniformly in tof_at_target +/- dtof/2 (absolute neutron time, s). The final speed follows from the flight distance. Weight: solid_angle/4pi * dtof * dE/dt * vf/vi, as in MCViNE. Record ki/kf with monitors to build the resolution ellipsoid (similar in purpose to McStas’ TOFRes_sample, with MCViNE’s weighting).
Union process. Part of the Union components: define this process, collect it into a material with Union_make_material (absorption is set there with my_absorption, the absorption inverse penetration depth at 2200 m/s), assign the material to Union_box/Union_cylinder/Union_sphere/Union_mesh geometries, and add a Union_master after them. Geometry, attenuation and multiple scattering are handled by Union_master; this component provides the MCViNE kernel: the scattering coefficient and the final-state sampling (weight). Isotropic process (powder/liquid-like); rotation is irrelevant. The target is the Union focusing of the geometry (target_index / target_x.. and focus_r / focus_xw,focus_xh / focus_aw,focus_ah on Union_box etc.). The kernel code is shared with the standalone component MCViNE_DGSSXRes (mcvine-lib.c). Uses share/mcvine-lib.h/.c and share/mcvine-union-lib.h/.c; the process type MCViNE is declared in share/union-lib.h and registered with Union_master in share/mcvine-union-lib.h.
Example: MCViNE_DGSSXRes_process(focus_r=0.0125, tof_at_target=0.0052, dtof=1e-5, scattering_coefficient=10)
Parameters in boldface are required; the others are optional.
|
Name |
Unit |
Description |
Default |
|
|
|||
|
tof_at_target |
s |
Desired absolute time of arrival at the target |
0.001 |
|
dtof |
s |
Width of the time window |
1e-5 |
|
scattering_coefficient |
m\(^{-1}\) |
Scattering coefficient (inverse penetration depth for scattering) |
0 |
|
sigma_scat |
barn |
Alternative: scattering cross section per unit cell (used when Vc>0) |
0 |
|
Vc |
Å\(^{3}\) |
Unit cell volume; when >0 the coefficient is sigma_scat/Vc |
0 |
|
packing_factor |
1 |
Packing factor (scales the scattering coefficient) |
1 |
|
interact_fraction |
1 |
Union: fraction of interactions forced to this process (-1: by cross section) |
-1 |
|
init |
string |
Deprecated and unused, accepted like on the other Union components (see Union_init). |
"" |
|
|
|||
|
|
|||
|
|
|||
Component source code found in file MCViNE_DGSSXRes_process.comp.
MCViNE documentation: https://mcvine.github.io