Replies: 1 comment 1 reply
-
@luriol Hi, I think that a few things are going on. First, the "jump ratio" in XrayDB is from the Elam et al tables, and I believe that is from extrapolating the XCOM data (ie, the values from Second, f2 should be proportional to mu*E, so maybe the comparison in jumps should be with I think the biggest effect here is that the Chantler data is broadened (with a core-level width Gamma of around 5.6 eV, I believe), which might be a noticeable effect when using +/-50 eV. If I do this: import numpy as np
import xraydb as xdb
import matplotlib.pyplot as plt
(e_l3, yfield, jump_l3) = xdb.xray_edge('W','L3')
(e_l2, yfield, jump_l2) = xdb.xray_edge('W','L2')
(e_l1, yfield, jump_l1) = xdb.xray_edge('W','L1')
print(f"W L3, L2, L1: E= {e_l3}, {e_l2}, {e_l1}, Jump = {jump_l3}, {jump_l2}, {jump_l1}")
(energy, yfield, jump_ratio) = xdb.xray_edge('W','L1')
print(f'jump_ratio reported for W L1 = {jump_ratio:7.3f}')
jump_mue = xdb.mu_elam('W',energy+1)/xdb.mu_elam('W',energy-1)
print(f'jump_ratio from mu_elam edge+/-1 eV = {jump_mue:7.3f}')
jump_mue = xdb.mu_elam('W',energy+50)/xdb.mu_elam('W',energy-50)
print(f'jump_ratio from mu_elam edge+/-50 eV = {jump_mue:7.3f}')
jump_muc = xdb.mu_chantler('W',energy+50)/xdb.mu_chantler('W',energy-50)
print(f'jump_ratio from mu_chantler edge+/-50 eV = {jump_muc:7.3f}')
jump_muf2 = xdb.f2_chantler('W',energy+50)/xdb.f2_chantler('W',energy-50)
print(f'jump_ratio from f2_chantler edge+/-50 eV = {jump_muf2:7.3f}')
e = np.linspace(-200, 200, 201) + energy
mu_e = xdb.mu_elam('W', e)
mu_c = xdb.mu_chantler('W', e)
f2_c = xdb.f2_chantler('W', e)
f2_ce = f2_c/e
plt.plot(e, mu_e/mu_e.min(), label='mu_elam')
plt.plot(e, f2_c/f2_c.min(), label='f2_chantler')
plt.plot(e, f2_ce/f2_ce.min(), label='f2_chantler/energy')
plt.plot(e, mu_c/mu_c.min(), label='mu_chantler')
plt.ylabel('f2/f2.min(), mu / mu.min()')
plt.xlabel('Energy (eV)')
plt.title('f2, mu for W L1')
plt.axvline(energy-50)
plt.axvline(energy+50)
plt.legend()
plt.show() I get this output
and this plot So, the reported edge jump is pretty consistent with But, I think that also really means that those values for "jump ratio" will tend to be high-ish estimates, especially for L edges as they ignore broadening. |
Beta Was this translation helpful? Give feedback.
-
I'm not sure if I'm misunderstanding the database, or if this is really an issue. I would expect that the value of the "jump ratio" given by the xray_edge() function, should give the same jump ratio as when it is calculated directly from the ratio of the cross sections given by the f2_chanler() function. However these values differ by more than would be expected. See the code snippet below and the associated output. Does this indicate an inconsistency in the database?
import numpy as np import xraydb as xdb (energy, yfield, jump_ratio) = xdb.xray_edge('W','L1') Jump = xdb.f2_chantler('W',energy+50)/xdb.f2_chantler('W',energy-50) print('jump_ratio = {0:7.3f} jump calculated from f2 = {1:7.3f}'.format( jump_ratio,Jump))
jump_ratio = 1.155 jump calculated from f2 = 1.137
Beta Was this translation helpful? Give feedback.
All reactions