fisx
fisx::Math Class Reference

Common fluorescence spectroscopy math functions. More...

#include <fisx_math.h>

Static Public Member Functions

static double E1 (const double &x)
 
static double En (const int &n, const double &x)
 
static double deBoerD (const double &x)
 
static double deBoerL0 (const double &mu1, const double &mu2, const double &muj, const double &density, const double &thickness)
 
static double deBoerX (const double &p, const double &q, const double &d1, const double &d2, const double &mu_1_j, const double &mu_2_j, const double &mu_b_j_d_t=0.0)
 
static double deBoerV (const double &p, const double &q, const double &d1, const double &d2, const double &mu_1_j, const double &mu_2_j, const double &mu_b_j_d_t)
 
static bool isNumber (const double &x)
 
static bool isFiniteNumber (const double &x)
 
static double deBoerY (const double &a, const double &b, const double &c, const double &d)
 
static double deBoerW (const double &a, const double &b, const double &d)
 
static double AS_5_1_53 (const double &x)
 
static double AS_5_1_56 (const double &x)
 
static double getFWHM (const double &energy, const double &noise, const double &fano, const double &quantumEnergy=0.00385)
 
static double erf (const double &x)
 
static double erfc (const double &x)
 

Detailed Description

Common fluorescence spectroscopy math functions.

De Boer Formulae for secondary excitation corrections

This class implements the formulae contained in the article: D.K.G. de Boer, X-Ray Spectrometry, Vol. 19, (1990) 145 - 154.

Member Function Documentation

§ AS_5_1_53()

double fisx::Math::AS_5_1_53 ( const double &  x)
static

Abramowitz and Stegun formula 5.1.53 Returns E1(x) + log(x) Formula is valid for 0 <= x <= 1

§ AS_5_1_56()

double fisx::Math::AS_5_1_56 ( const double &  x)
static

Abramowitz and Stegun formula 5.1.56 Returns x * exp(x) * E1(x) Formula is valid for 1 <= x < +inf

§ deBoerD()

double fisx::Math::deBoerD ( const double &  x)
static

Calculates exp(x) * E1(x) Used in D.K.G. de Boer, X-Ray Spectrometry, Vol. 19, (1990) 145 - 154 and needed to calculate secondary excitation.

Implemented following Abramowitz and Stegun

§ deBoerL0()

double fisx::Math::deBoerL0 ( const double &  mu1,
const double &  mu2,
const double &  muj,
const double &  density,
const double &  thickness 
)
static

Calculates the integral part of expression 6 of the article D.K.G. de Boer, X-Ray Spectrometry, Vol. 19, (1990) 145 - 154 and needed to calculate secondary excitation. muj is the matrix mass attenuation coefficient at the matrix emitted line j mui is the matrix mass attenuation coefficient at the fluorescent line i mul is the matrix mass attenuation coefficient at the incident energy

§ deBoerW()

static double fisx::Math::deBoerW ( const double &  a,
const double &  b,
const double &  d 
)
static

Help function, see formula A2b appendix

§ deBoerX()

double fisx::Math::deBoerX ( const double &  p,
const double &  q,
const double &  d1,
const double &  d2,
const double &  mu_1_j,
const double &  mu_2_j,
const double &  mu_b_j_d_t = 0.0 
)
static

For multilayers p and q following article d1 is the product density * thickness of fluorescing layer d2 is the product density * thickness of layer j originating the secondary excitation mu_1_j is the mass attenuation coefficient of fluorescing layer at j excitation energy mu_2_j is the mass attenuation coefficient of layer j at j excitation energy mu_b_d_t is the sum of the products mu * density * thickness of layers between layer i and j

§ deBoerY()

static double fisx::Math::deBoerY ( const double &  a,
const double &  b,
const double &  c,
const double &  d 
)
static

Help function, see formula A2a appendix

§ E1()

double fisx::Math::E1 ( const double &  x)
static

Calculate the exponential integral of order 1 on x.

       |inf
      |          dy

E1(x) = | exp(y) -— |x y

Only the real part is calculated

§ En()

double fisx::Math::En ( const int &  n,
const double &  x 
)
static

Calculate the exponential integral of order n on x

       |inf
      |          dy

En(x) = | exp(y) -— |x y^n

Only the real part is calculated

§ erf()

double fisx::Math::erf ( const double &  x)
static

Error function

§ erfc()

double fisx::Math::erfc ( const double &  x)
static

Complementary error function

§ getFWHM()

double fisx::Math::getFWHM ( const double &  energy,
const double &  noise,
const double &  fano,
const double &  quantumEnergy = 0.00385 
)
static

Get FWHM from energy, noise, fano and average energy needed to create a signal

§ isFiniteNumber()

bool fisx::Math::isFiniteNumber ( const double &  x)
static

Returns false is x is NaN or an infinite number

§ isNumber()

bool fisx::Math::isNumber ( const double &  x)
static

Returns false is x is NaN


The documentation for this class was generated from the following files: