tschoonj / xraylib

A library for X-ray matter interaction cross sections for X-ray fluorescence applications
https://github.com/tschoonj/xraylib/wiki
Other
123 stars 56 forks source link

Energy range of cross sections: Missing documentation (and request for extension) #117

Closed llohse closed 4 years ago

llohse commented 5 years ago

I cannot find which for which energies the various cross sections are available. There does not seem to be a range check in the code. The data (I checked various PI cross sections) seems to end somewhere around 1 MeV and is simply repeated afterwards. Kissel et al. provide PE cross sections well into the GeV range.

a) It would be nice to have some documentation for which energies the cross sections are available.

b) Would it be possible to include PI cross sections for higher energies as provided by Kissel?

tschoonj commented 5 years ago

Hi @llohse,

I will add some documentation about the energy ranges when I make the next release.

The Kissel database files I have go only up to 300 keV. If you have files that exceed this range please point me to them and I will have a look.

I will open a PR soon where I will introduce range checks to avoid the pointless repeating.

llohse commented 5 years ago

@tschoonj, thanks a lot! I'll buy you a beer if I see you on a conference.

As for the files. The original paper (https://www.ge.infn.it/geant4/temp/saracco/cor/RTAB.pdf), section 9 indicates that the high energy (up to 100 GeV) cross sections are separately provided in files with an x suffix in the original collection, i.e. data_PE/082_pe0slx, whereas the "low"-energy (up to 300 keV) data is in data_PE/082_pe0sl.

Consider this a humble feature request.

tschoonj commented 5 years ago

For the range checks: see #122

It turns out I actually have the RTAB files with x suffix. Will investigate

tschoonj commented 5 years ago

The extended range files only cover the total PE cross sections, not the partial PE cross sections. In fact I don't even use the Kissel total PE cross sections in xraylib, and rely on the sum of the partial ones instead for CS_Photo_Total, as I apply a small correction to ensure the edge energies match with the ones returned by EdgeEnergy.

So sorry, but nothing I can do here I'm afraid...