McXtrace logo

McXtrace - An X-ray ray-trace simulation package

Synchrotron SOLEIL DTU Physics

McXtrace
site 2

About McXtrace
 Publications
 Project Partners
 Project People
 Goal

Download
 Components

Documentation
 Manual
 Commands
 Wiki (GitHub)
 Tutorial

Mailing list

Links

Search

Code-repository (GitHub)

Report bugs (GitHub)


McXtrace: FluoCrystal

[ Identification | Description | Input parameters | Links ]

The FluoCrystal Component

Sample model handling absorption, fluorescence, Compton, Rayleigh scattering and single crystal diffraction.

Identification

  • Site:
  • Author: Emmanuel Farhi (emmanuel.farhi.synchrotron-soleil.fr)
  • Origin: Synchrotron SOLEIL
  • Date: April 2025

Description

Sample that models multiple photon-matter interactions:
- absorption          (photon excites an electron and creates a hole)
- fluorescence        (excited electrons emit light while falling into lower states)
- Compton scattering  (inelastic, incoherent)
- Rayleigh scattering (elastic,   coherent)
- crystal diffraction (elastic,   coherent)

The 'material' specification is given as a chemical formulae, e.g. "LaB6". It
may also be given as a file name (CIF/LAU/LAZ/FullProf format) in which case
the formulae is guessed (but may be approximative), and the crystal
diffraction is computed, following same options as the PowderN
sample component. The fluorescence is handled for atoms from Z=5 to Z=90.

By setting the 'order' to 1, the absorption along the scattered path is handled.
A higher 'order' will handle multiple scattering events, and final absorption.
For instance, a value order>=2 handles e.g. fluorescence iterative cascades
in the material. Leaving 'order=0' handles the single scattering only.

The single crystal diffraction model is simplified wrt the Single_crystal
component. Use that latter with a Fluorescence in a GROUP for more complex features.

Example: FluoCrystal(material="LaB6.cif",
xwidth=0.001,yheight=0.001,zdepth=0.0001, p_interact=0.99, mosaic=3)

Sample shape:
Sample shape may be a cylinder, a sphere, a box or any other shape
box/plate:       xwidth x yheight x zdepth (thickness=0)
hollow box/plate:xwidth x yheight x zdepth and thickness>0
cylinder:        radius x yheight (thickness=0)
hollow cylinder: radius x yheight and thickness>0
sphere:          radius (yheight=0 thickness=0)
hollow sphere:   radius and thickness>0 (yheight=0)
any shape:       geometry=OFF file

The complex geometry option handles any closed non-convex polyhedra.
It computes the intersection points of the photon ray with the object
transparently, so that it can be used like a regular sample object.
It supports the OFF, PLY and NOFF file format but not COFF (colored faces).
Such files may be generated from XYZ data using:
qhull < coordinates.xyz Qx Qv Tv o > geomview.off
or
powercrust coordinates.xyz
and viewed with geomview or java -jar jroff.jar (see below).
The default size of the object depends of the OFF file data, but its
bounding box may be resized using xwidth,yheight and zdepth.

Concentric components:
This component has the ability to contain other components when used in
hollow cylinder geometry (namely sample environment, e.g. cryostat and
furnace structure). Such component 'shells' should be split into input and
output side surrounding the 'inside' components. First part must then use
'concentric=1' flag to enter the inside part. The component itself must be
repeated to mark the end of the concentric zone. The number of concentric
shells and number of components inside is not limited.

COMPONENT F_in = FluoCrystal(material="Al", concentric=1, ...)
AT (0,0,0) RELATIVE sample_position

COMPONENT something_inside ... // e.g. the sample itself or other materials

COMPONENT F_out = COPY(F_in)(concentric=0)
AT (0,0,0) RELATIVE sample_position

Enhancing computation efficiency:
An important option to enhance statistics is to set 'p_interact' to, say,
30 percent (0.3) in order to force a fraction of the beam to scatter. This
will result on a larger number of scattered events, retaining intensity.

In addition, it may be desirable to define a 'target' for the fluorescence
processes via e.g. the 'target_index' and the 'focus_xw / focus_yh' options.
This target should e.g. be the SDD area.

The SPLIT feature is currently BROKEN with this component. Do not use it.

If you get strange results, check the crystal mosaicity and delta(d)/d parameters,
as this component is not suited for ideal/perfect mosaic crystals.

The fluorescence is computed via the XRayLib (apt install libxrl-dev) https://github.com/tschoonj/xraylib.

Input parameters

Parameters in boldface are required; the others are optional.
NameUnitDescriptionDefault
geometrystrName of an Object File Format (OFF) or PLY file for complex geometry. The OFF/PLY file may be generated from XYZ coordinates using qhull/powercrust.0
radiusmOuter radius of sample in (x,z) plane. cylinder/sphere.0
thicknessmThickness of hollow sample Negative value extends the hollow volume outside of the box/cylinder.0
xwidthmWidth for a box sample shape.0
yheightmHeight of sample in vertical direction for box/cylinder shapes.0
zdepthmDepth for a box sample shape.0
concentric1Indicate that this component has a hollow geometry and may contain other components. It should then be duplicated after the inside part (only for box, cylinder, sphere).0
materialstrA CIF/LAZ/LAU file e.g. "LaB6.cif" to handle diffraction or chemical formulae, e.g. "Pb2SnO4" (no diffraction)."LaB6.cif"
packing_factor1How dense is the material compared to bulk 0-1.0
densityg/cm^3Density of material. V_rho=density/weight/1e24*N_A at/Angs^3.0
weightg/molAtomic/molecular weight of material.0
p_interact1Force a given fraction of the beam to scatter, keeping intensity right, to enhance small signals (-1 inactivate).0
target_xmPosition of target to focus at, along X (for fluorescence).0
target_ymPosition of target to focus at, along Y (for fluorescence).0
target_zmPosition of target to focus at, along Z (for fluorescence).0
focus_rmRadius of disk containing target. Use 0 for full space (for fluorescence).0
focus_xwmHoriz. dimension of a rectangular area (for fluorescence).0
focus_yhmVert. dimension of a rectangular area (for fluorescence).0
focus_awdegHoriz. angular dimension of a rectangular area (for fluorescence).0
focus_ahdegVert. angular dimension of a rectangular area (for fluorescence).0
target_index1Relative index of component to focus at, e.g. next is +1 (for fluorescence).0
flag_compton1When 0, the Compton scattering is ignored.1
flag_rayleigh1When 0, the Rayleigh scattering is ignored.1
flag_lorentzian1When 1, the fluorescence line shapes are assumed to be Lorentzian, else Gaussian.0
flag_kissel1When 1 (slower), handle M-lines XRF from Kissel for Z>=52 Te (else only K and L-lines).0
sx_reflstrA CIF/LAZ/LAU reflection file as for PowderN. When not given, 'material' is used. Specify it when 'material' is a chemical formula.""
int flag_sx1
delta_d_d1Lattice spacing variance, gaussian RMS (longitudinal mosaic) e.g. 1e-4 to 1e-3.1e-3
int barns1
recip_cell1Choice of direct/reciprocal (0/1) unit cell definition0
axAA or AA^-1Coordinates of first (direct/recip) unit cell vector0
ayAA or AA^-1a on y axis0
azAA or AA^-1a on z axis0
bxAA or AA^-1Coordinates of second (direct/recip) unit cell vector0
byAA or AA^-1b on y axis0
bzAA or AA^-1b on z axis0
cxAA or AA^-1Coordinates of third (direct/recip) unit cell vector0
cyAA or AA^-1c on y axis0
czAA or AA^-1c on z axis0
aa0
bb0
cc0
mosaic_ABarc_minutes, arc_minutes,1, 1, 1, 1, 1, 1In Plane mosaic rotation and plane vectors (anisotropic), mosaic_A, mosaic_B, A_h,A_k,A_l, B_h,B_k,B_l. Puts the crystal in the in-plane mosaic state. Vectors A and B define plane in which the crystal roation is defined, and mosaic_A, mosaic_B, denotes the resp. mosaicities (gaussian RMS) with respect to the two reflections chosen by A and B (Miller indices).{0,0, 0,0,0, 0,0,0}
mosaicarc minCrystal mosaic (isotropic), gaussian RMS. Puts the crystal in the isotropic mosaic model state, thus disregarding other mosaicity parameters, e.g. 1-10.3
mosaic_aarc minHorizontal (rotation around lattice vector a) mosaic (anisotropic), gaussian RMS. Put the crystal in the anisotropic crystal vector state. I.e. model mosaicity through rotation around the crystal lattice vectors. Has precedence over in-plane mosaic model.-1
mosaic_barc minVertical (rotation around lattice vector b) mosaic (anisotropic), gaussian RMS.-1
mosaic_carc minOut-of-plane (Rotation around lattice vector c) mosaic (anisotropic), gaussian RMS-1
AT ( , , ) RELATIVE
ROTATED ( , , ) RELATIVE

Links

  • Source code for FluoCrystal.comp.
  • The XRayLib https://github.com/tschoonj/xraylib http://dx.doi.org/10.1016/j.sab.2011.09.011
  • Fluorescence https://en.wikipedia.org/wiki/Fluorescence
  • Rayleigh https://en.wikipedia.org/wiki/Rayleigh_scattering
  • Compton https://en.wikipedia.org/wiki/Compton_scattering
  • X-ray absorption edges http://skuld.bmsc.washington.edu/scatter/AS_periodic.html
  • X-ray fluorescence spectra http://www.xrfresearch.com/xrf-spectra/
  • X-ray edges and fluo lines https://physics.nist.gov/PhysRefData/XrayTrans/Html/search.html

[ Identification | Description | Input parameters | Links ]

Generated on mcxtrace 3.5.32


Last Modified: Tuesday, 17-Jun-2025 20:12:04 CEST
Search website mailinglist archive GitHub repos