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

[ Identification | Description | Input parameters | Links ]

The Union_abs_logger_1D_space_tof Component

A sample component to separate geometry and phsysics


  • Site:
  • Author: Mads Bertelsen
  • Origin: ESS DMSC
  • Date: 19.06.20


Part of the Union components, a set of components that work together and thus
separates geometry and physics within McStas.
The use of this component requires other components to be used.

1) One specifies a number of processes using process components
2) These are gathered into material definitions using Union_make_material
3) Geometries are placed using Union_box/cylinder/sphere, assigned a material
4) Logger and conditional components can be placed which will record what happens
5) A Union_master component placed after all of the above

Only in step 5 will any simulation happen, and per default all geometries
defined before this master, but after the previous will be simulated here.

There is a dedicated manual available for the Union_components

This component is an absorption logger, and thus placed in point 4) above.

A absorption logger will log something for each absorption event happening
in the geometry or geometries on which it is attached. These are specified
in the target_geometry string. By leaving it blank, all geometries are
logged, even the ones not defined at this point in the instrument file.
Multiple geometries are specified as a comma separated list.

This absorption logger records the absorbed intensity as a function of the
y position and time of flight. One common use could be to attach this
absorption logger to a cylindrical helium-3 volume, creating a model of
the detector volume. In such a detector, only the y position of the event
is known, and as such creates a similar dataset.

This absorption logger needs to be placed in space, the position is recorded in
the coordinate system of the logger component. Note the detection is along the
y axis of the component, so it is natural to place it relative to a cylinder.

It is possible to attach one or more conditional components to this absorption
logger. Such a conditional component would impose a condition on the state of
the neutron after the Union_master component that executes the simulation,
and the absorption logger will only record the event if this condition is true.

To use the logger_conditional_extend function, set it to some integer value n
and make and extend section to the master component that runs the geometry.
In this extend function, logger_conditional_extend[n] is 1 if the conditional
stack evaluated to true, 0 if not. This way one can check what rays is logged
using regular McStas monitors. Only works if a conditional is applied to this

Input parameters

Parameters in boldface are required; the others are optional.
target_geometrystringComma separated list of geometry names that will be logged, leave empty for all volumes (even not defined yet)"NULL"
yheightmheight of absorption logger
n1number of bins for spatial axis0.2
time_minsMinimum time recorded0
time_maxsMaximum time recorded1
time_bins1number of time bins100
filenamestringFilename of produced data file"NULL"
order_total1Only log rays that have scattered n times, -1 for all orders-1
order_volume1Only log rays that have scattered n times in the same geometry, -1 for all orders-1
logger_conditional_extend_index1If a conditional is used with this logger, the result of each conditional calculation can be made available in extend as a array called "logger_conditional_extend", and one would then access logger_conditional_extend[n] if logger_conditional_extend_index is set to n-1


[ Identification | Description | Input parameters | Links ]

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

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