example_01
Download a Jupyter notebook with this example: example_01.ipynb.
Please follow the source comments for description and instructions.
Source Code
1# -*- coding: utf-8 -*-
2"""
3.. Authors:
4 Novimir Antoniuk Pablant <npablant@pppl.gov>
5
6
7A slightly more complicated example with an x-ray Bragg reflection from a
8spherical crystal.
9
10This configuration has a point source, a spherical crystal, and a detector.
11"""
12
13import numpy as np
14import xicsrt
15xicsrt.warn_version('0.8')
16
17# 1.
18config = dict()
19
20# 2.
21config['general'] = {}
22config['general']['number_of_iter'] = 5
23config['general']['save_images'] = False
24
25# 3.
26config['sources'] = {}
27config['sources']['source'] = {}
28config['sources']['source']['class_name'] = 'XicsrtSourceDirected'
29config['sources']['source']['intensity'] = 1e4
30config['sources']['source']['wavelength'] = 3.9492
31config['sources']['source']['spread'] = np.radians(10.0)
32config['sources']['source']['xsize'] = 0.00
33config['sources']['source']['ysize'] = 0.00
34config['sources']['source']['zsize'] = 0.00
35
36# 4.
37config['optics'] = {}
38config['optics']['crystal'] = {}
39config['optics']['crystal']['class_name'] = 'XicsrtOpticCrystalSpherical'
40config['optics']['crystal']['check_size'] = True
41config['optics']['crystal']['origin'] = [0.0, 0.0, 0.80374151]
42config['optics']['crystal']['zaxis'] = [0.0, 0.59497864, -0.80374151]
43config['optics']['crystal']['xsize'] = 0.2
44config['optics']['crystal']['ysize'] = 0.2
45config['optics']['crystal']['radius'] = 1.0
46
47# Rocking curve FWHM in radians.
48# This is taken from x0h for quartz 1,1,-2,0
49# Darwin Curve, sigma: 48.070 urad
50# Darwin Curve, pi: 14.043 urad
51config['optics']['crystal']['crystal_spacing'] = 2.45676
52config['optics']['crystal']['rocking_type'] = 'gaussian'
53config['optics']['crystal']['rocking_fwhm'] = 48.070e-6
54
55# 5.
56config['optics']['detector'] = {}
57config['optics']['detector']['class_name'] = 'XicsrtOpticDetector'
58config['optics']['detector']['origin'] = [0.0, 0.76871290, 0.56904832]
59config['optics']['detector']['zaxis'] = [0.0, -0.95641806, 0.29200084]
60config['optics']['detector']['xsize'] = 0.4
61config['optics']['detector']['ysize'] = 0.2
62
63# 6.
64results = xicsrt.raytrace(config)