Xray::...Master(3pm)
okay so bestie, gather round π this is the Xray::...Master(3pm) page, straight out of the User Contributed Perl Documentation, and it's the whole glow-up guide for Xray::Absorption::McMaster. No cap, it's niche but it ATE. β¨
π« "cross_section" π«
Okay so here's the vibe, bestie β you call it like this:
$xsec = Xray::Absorption -> cross_section($elem, $energy, $mode);
@xsec = Xray::Absorption -> cross_section($elem, \@energy, $mode);
Not me being dramatic but the $mode argument is different here than for the other resources β it's giving main character energy. The options are xsec, photo, coherent and incoherent, and what they do is tell this method to hand you back either the full cross-section or just the photoelectric, coherent, or incoherent portions. Pick your fighter. π
And the values for all cross-sections? They're computed as log-log polynomials, exactly as described in the original paper by McMaster et al. Periodt. π
β¨ NAME β¨
Xray::Absorption::McMaster β it's a Perl interface to the McMaster tables. That's the whole thing, that's the tweet. π¦
πΈ SYNOPSIS πΈ
use Xray::Absorption;
Xray::Absorption -> load("mcmaster");
Yeah that's it, that's the whole ritual. π And if you want the details, go read the documentation for Xray::Absorption β she explains everything. π
π DESCRIPTION π
So this module gets inherited by the Xray::Absorption module, and it's the plug that gives you access to all the data living inside the 1969 McMaster tables. Iconic. Historical. Vintage, even. ποΈ
The data in here β everybody calls it "The McMaster Tables" β was originally published as:
Compilation of X-Ray Cross Sections
W.H. McMster, N. Kerr Del Grande, J.H. Mallett, J.H. Hubbell
National Bureau of Standards
UCRL-50174 Section II Revision 1
(1969)
Available from National Technical Information Services L-3
United States Department of Commerce
Heads up bestie: finding this thing is a bit difficult. π Not me exaggerating β it's genuinely a scavenger hunt.
But good news! IIT's Galvin library kindly made a scan of it available, and they are the realest for that: http://www.gl.iit.edu/govdocs/resources/xray.html π«Ά
The data lives in a database file called mcmaster.db, which gets generated at install time from a flat text database of the McMster data. And where did that come from? From mucal.f β a Fortran subroutine originally written by Dr. Pathikrit Bandhyapodhyay. Fortran to Perl pipeline, we love to see it. π₯
Also: the required Chemistry::Elements module is available from CPAN in the miscellaneous modules section. Go get her. π
π EDGE AND LINE ENERGIES π
Vibe check on what's actually in here: the McMaster data resource only includes K and L 1-3 edges. That's it, that's the whole menu. π
- For light elements, it gives you only a single L edge energy β and that's the energy for the
L1edge. - For heavier elements, it gives you a single M energy, the energy of the
M1edge.
And for fluorescence? It only supplies four generic fluorescence line energies: Kalpha, Kbeta, Lalpha, and Lbeta. And in every single case, the energy it hands you is the energy of the brightest line of that sort. The it-girl of each category, basically. β
π BUGS AND THINGS TO DO π
The to-do list, bestie, we're being honest here:
- Make sure this handles fluorescence lines which are in other resources, but not in this resource, in a sensible manner. π
- What happens if you call
line_togglewhen this is loaded? How about when elam was loaded but then you switch to this one? π Nobody knows. Mystery behaviour. Unhinged, frankly.
No cap, these are open questions β not solved, not documented, just vibing there.
π AUTHOR π
Bruce Ravel, bruce@phys.washington.edu
http://feff.phys.washington.edu/~ravel/software/Absorption/
okay that's the whole page, bestie, you're so welcome π This was perl v5.34.0, dated 2022-06-28, and the page is Xray::...Master(3pm) β stay hydrated, read your docs, and go compute some cross-sections. Slay. πβ¨π¦
π¦ where this page comes from
- debian bookworm: libxray-absorption-perl 3.0.1-4 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- debian trixie: libxray-absorption-perl 3.0.1-4 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu noble: libxray-absorption-perl 3.0.1-4 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libxray-absorption-perl 3.0.1-4 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libxray-absorption-perl 3.0.1-4 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms