Fiducia Main File (fiducia.main)

Created on Fri Jan 25 12:22:01 2019

FIDUCIA: Filtered Diode Unfolder (using) Cubic Spline Algorithm

DANTE spectrum deconvolver based on cubic splines method [1]. Translated from Dan Barnak’s Mathematica code.

DANTE channels are bounded by edge absorption feature (knot point) due to filter for the respective channel. Cubic splines representing the estimated spectrum are fitted in each spectral region bounded by knot points. The detector signal for each channel is then equal to the response function of the detector folded with the matrix representation of the cubic spline. A triadiagonal matrix representation of the cubic spline equation is used to make the problem numerically tractable. This way a matrix inversion can be used to solve for the unknown coefficients in the cubic spline equation, using the measured signals. These coefficients are then plugged back into the cubic spline equation over each interval (between knot points) to make a piecewise reconstruction of the x-ray spectrum at each time step.

References

Cubic spline deconvolution method [1] J. P. Knauer and N. C. Gindele. Temporal and spectral deconvolution of data from diamond, photoconductive devices. Rev. Sci. Instrum. 75, 3714 (2004) https://doi.org/10.1063/1.1785274

Error propagation for cubic spline deconvolution method [2] D. L. Fehl and F. Briggs. Verification of unfold error estimates in the unfold operator code. Rev. Sci. Instrum. 68, 890 (1997) https://doi.org/10.1063/1.1147713

Useful description of cubic spline matrix representation [3] http://mathworld.wolfram.com/CubicSpline.html

Paper comparing cubic splines unfolds to other methods [4] D. H. Barnak, J. R. Davies, J. P. Knauer, and P. M. Kozlowski. Soft x-ray spectrum unfold of K-edge filtered x-ray diode arrays using cubic splines. Submitted to Review of Scientific Instruments in 2020.

@author: Pawel M. Kozlowski

Functions

simulateSignal()

Takes the inferred spectrum and folds it with the instrument function to retrieve the forward propagated signal for each DANTE channel.

inferRadTemp(power, area, angle[, …])

Gets the inferred radiation temperature by calculating in from radiated power through the Stefan-Boltzmann Law.

inferPower(energies, spectra[, …])

Gets the inferred total radiation power as a function of time.

analyzeSpectrum(channels, knots, detArr, …)

Given the response function file and the DANTE measurement data file, run cubic spline analysis to reconstruct spectrum for a given time.

analyzeStreak(channels, responseFrame, …)

Given the response function file and the DANTE measurement data file, run cubic spline analysis to reconstruct spectrum for a given time.

feelingLucky(dataFile, attenuatorsFile, …)

Attempt processing dante signals given dante data file and calibration files using sensible defaults.