Component Manual for the Xray-Tracing Package McXtrace, version 3.8.6

A.  Libraries and conversion constants

The McXtrace Library contains a number of built-in functions and conversion constants which are useful when constructing components. These are stored in the share directory of the MCXTRACE library.

Within these functions, the ’Run-time’ part is available for all component/instrument descriptions. The other parts are dynamic, that is they are not pre-loaded, but only imported once when a component requests it using the %include McXtrace keyword. For instance, within a component C code block, (usually SHARE or DECLARE):

1    %include "read_table-lib"

will include the ’read_table-lib.h’ file, and the ’read_table-lib.c’ (unless the --no-runtime option is used with mcxtrace). Similarly,

1    %include "read_table-lib.h"

will only include the ’read_table-lib.h’. The library embedding is done only once for all components (like the SHARE section). For an example of implementation, see Res_monitor.

In this Appendix, we present a short list of both each of the library contents and the run-time features.

A.1 Run-time calls and functions (mcxtrace-r)
A.1.1 Photon propagation
A.1.2 Coordinate and component variable retrieval
A.1.3 Coordinate transformations
A.1.4 Mathematical routines
A.1.5 Output from detectors
A.1.6 Ray-geometry intersections
A.1.7 Random numbers
A.2 Reading a data file into a vector/matrix (Table input, read_table-lib)
A.3 Constants for unit conversion etc.