To study the beam's energy repartition after reflection on the channel cut the older instrument file described in the older readme did not use a Monitor_nD component, it used two energy monitors one on top of the other. It's still worth glancing at the older readme for other considerations (e.g. the beam geometrically cut by the channel-cut).
Main result and status
Result
The ROCK beamline has been simulated.
Two results are of interest, the XANES/EXAFS graphs generated by the simulated beamline and the energy repartition of the beam after reflection on the channel cut.
Here are the commands used to generate the examples displayed in the following text.
To create the copper scan:
mxrun SOLEIL_ROCK.instr Etohit=8500,9500 scan=1 nbsample=1 cc=2 -N100
To create the manganese and chrome scan:
mxrun SOLEIL_ROCK.instr Etohit=5700,6800 scan=1 nbsample=2 sample_file=Mn.txt sample_density=7.21 sample_file_2=Cr.txt sample_density_2=7.15 cc=2 -N100
To get the same result on the energy repartition monitor shown in this readme:
mxrun SOLEIL_ROCK.instr Etohit=17000 cc=2 -n1e8
The optional paramter --mpi=4
can be added after mxrun to run it on 4 cpu cores (four is taken as an example, one can chose more).
McXtrace version 1.7 was used.
Status
- Simulate the ROCK beamline
- Use the Single_crystal component as it is used in the glitches project.
- Use the Mirror_toroid_pothole component instead of the Mirror_toroid component.
The ROCK beamline
ROCK is a quick-EXAFS beamline dedicated to the study of rapid kinetic processes on nanomaterials used mainly in the field of catalysis and batteries. Its energy range goes from 4 to 40 keV, the wavelength selection is done with a two Hertz oscillating channel-cut.
From the source to the sample the beamline is composed of the elements listed in table I with their characteristics :
Table I
Beamline elements | Bending magnet | Horizontal slit | Vertical slit | Toroidal mirror | Horizontal slit | M2a plane mirror | Horizontal slit | Channel Cut | Vertical slit | Horizontal slit | Focusing mirror |
---|---|---|---|---|---|---|---|---|---|---|---|
Distance (mm) source / Element | 0 | 8533.6 | 8648.6 | 10150 | 11690.5 | 16820 | 18151.2 | CC1:18920 CC2:19250 CC3:20000 | 21135 | 21250 | 22440 |
Element characteristics | Field=1.72T Ec=8.65keV | - | - | Coating:Ir(50nm) Big radius:9.02km Small radius:0.0317m Incidence:2.5mrad Width:0.015m Length:1.1m | - | Coatings:Pt(50nm) or Pd(50nm) or B4C(5nm) Width:47mm Length:1.1m Incidence:1.75mrad to 5.2 mrad | - | Channelcut CC1 Crystal:Si(111) d:3.13582Ang Width:25mm Length(C1,C2):70mm Spacing:10mm ----------------- Channelcut CC2 Cristal:Si(220) d:1.92038Ang Width:25mm Length(C1,C2):70mm Spacing:10mm ----------------- Channelcut CC3 Crystal:Si(111) d:3.13582Ang Width:25mm Length(C1):50mm Length(C2):70mm Spacing:10mm | - | - | Coatings:Pt(50nm) or Pd(50nm) or B4C(5nm) Width:47mm Length:1.1m Incidence:1.75mrad to 5.2 mrad |
Angular attitudes of ROCK's beamline optics. The total angular deviation is of 2.5 mrad (toroidal mirror). The angular deviations due to M2a/M2b on one end and those due to the channel-cut on the other cancel each other out.

McXtrace ROCK
Soleil : ROCK beamline with McXtrace
Simulation of the ROCK beamline with the McXtrace software. The beam at the end of the line is then used to simulate an EXAFS spectrum of copper.
Channel cut
Vertical offset
Depending on the attack angle the reflected ray from the first crystal will hit the second at different places.
The vertical offset of the ray is : H1 = 2*e*cos(β)
The vertical offset of the centre of the second crystal is : H2 = D*sin(α+β)
where D = sqrt(e^2+l^2)
and α = arctan(e/l)
.
In the above, the red line is not a ray.

In the above, the mauve line is the ray. The [FE] and [HG] segments are the crystals.
The vertical offset of the centre of the second crystal is also of interest because we place the optic that follows the second crystal of the CC relative to it's centre.
For the simulation of the ROCK beamline, the ray is what is followed. Indeed the ray needs to hit the same place of the sample. Therefore we position the optic that follows the second crystal of the CC relative to it's centre modulo h
.
((explain also the projection for the horizontal offset))
Energy ranges
Three different types of channel-cuts are used: a long CC Si 220, a long CC Si 111 and a short CC Si 111. The long CC have their crystals equal to a length of 0.07 m.
The short CC has it's first crystal equal to a length of 0.05m, and it's second crystal of length 0.07m.
All have their crystals separated vertically by e=0.01m
.
The long CCs turn from 4 to 35 degrees. The short CC turns from 6 to 35 degrees.
E=12398.42/(2*d*sin(β))=(12398.42*sqrt(h^2+k^2+l^2))/(2*a*sin(β))
So in theory, the energy ranges are the following:
Si 220: E_min = 5628.83
and E_max = 46283.37
.
Long Si 111: E_min = 3446.94
and E_max = 28342.66
.
Short Si 111: E_min = 3446.94
and E_max = 18914.31
.
But the beam moves on the second crystal, let's calculate the energies corresponding to these maximum movements.
β min | β max |
---|---|
![]() |
![]() |
For the long CC Si 220:
tan(β_max)=e/0.035
β_max=arctan(e/0.035)=15.945°
β_min=arctan(e/(0.07+0.035))=5.44°
Then, with the relation that links the energy and the attack angle seen above:
E_min =(12398.42*sqrt(8))/(2*5.4309*sin(β_max))=11752.44 eV
E_max =(12398.42*sqrt(8))/(2*5.4309*sin(β_min))=34055.4 eV
For the long CC Si 111:
E_min = 7196.87 eV
et E_max = 20854.59 eV
.
For the short CC Si 111:
E_min = 5323.79 eV
et E_max = 18914.31 eV
.
We call these energies the "hittable" energies.
This is for the ray arriving "horizontally". Because there's a divergence cone the signal still exists for energies out of these "hittable" energies.

In the above, the red, mauve and dark mauve lines form the cone.
Energy repartition
The centre of the optic following the CC is positionned relative to the centre of the CC's second crystal modulo h
. The ray is followed.
A special monitor (made with the the Monitor_nD component) is placed after the M2b mirror but before the sample. It indicates the vertical energy repartition of the beam.
As explained in page 152 of the book "An Introduction to Synchrotron Radiation" by Willmott, Philip, John Wiley & Sons, 2019:
We allow, however, the incoming polychromatic beam to have a divergence of 𝛿𝜃 in the plane containing both it and the cristal normal. According to Equation (5.25), the cristal will select longer wavelengths from that part of the beam that impinges more steeply (larger 𝜃) on it than that part of the beam that strikes the cristal at a shallower angle.
where the equation 5.25 is Bragg's law: 2*d*sin(β)=n*λ
(share the pic of the book here?)
The rays forming the beam hit the crystal at different angles, it's the angular divergence, but there is also a divergence in energy with dE = 1% *E
. As a consequence the rays are of higher energy from top to bottom.
(show explicative diagram/picture here for sure)
The beam spot is inversed due to the concavity of the M2B mirror. Therefore the rays that hit the monitor are of higher energy from bottom to top.
To get the above, simply execute:
mxrun SOLEIL_ROCK.instr Etohit=17000 cc=2 -n1e8
--mpi=4
can be added after mxrun to run it on 4 cpu cores like so: mxrun --mpi=4 SOLEIL_ROCK.instr Etohit=17000 cc=2 -n1e8
The presence of the M2b mirror has for main purpose to focus the beam towards the detector. Furthermore, it attenuates the vertical movement of the beam caused by the channel-cut's rotation(although the vertical movement is minimal).
Simulation of the ROCK beamline with a sample
The sample is positioned at the end of the beamline.
XANES/EXAFS
One can verify here that the X-ray absorption edges found for copper, manganese and chrome are exact.
Energy scan copper
Here is the XANES/EXAFS graph for an energy scan from 8.5 to 9.5 keV with the copper sample. The oscillations due to backscattering in the EXAFS part can't be seen because McXtrace does not simulate that effect.
Energy scan Mn and Cr
Here is the XANES/EXAFS for an energy scan of 5.7 to 7.2 keV with a sample composed of Manganese and Chrome.
License: GPL-3.0