libcpixe/sfc.c File Reference

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include "libcpixe.h"
#include "compilopt.h"

Include dependency graph for sfc.c:

Go to the source code of this file.

Functions

int createSFCList (const EXP_PARAM *pexp, const int *PresentElems, const XrayYield *XYldArray, const AbsCoef *TotAbsCoefArray, int *nSFCList, SFCListElem **SFCList)
int needSFC (atomicnumber Za, atomicnumber Zb, const CalibYld *enerA, const AbsCoef *AbsC, int *nSFCList, SFCListElem **SFCList)
double sigmaphoto (int iabs, const AbsCoef *AbsC, atomicnumber Zb, double Xray)
int inrange (double value, double min, double max)


Detailed Description

sfc.c contains the portion of libcpixe related to secondary fluorescence corrections.

This is still (in v1.0) under development so nothing is really used yet.

Definition in file sfc.c.


Function Documentation

int createSFCList ( const EXP_PARAM pexp,
const int *  PresentElems,
const XrayYield XYldArray,
const AbsCoef TotAbsCoefArray,
int *  nSFCList,
SFCListElem **  SFCList 
)

Definition at line 35 of file sfc.c.

References SIM_PARAM::MaxZinsample, minK, needSFC(), and EXP_PARAM::simpar.

Here is the call graph for this function:

int inrange ( double  value,
double  min,
double  max 
)

Checks if a value is within limits

Parameters:
value (I) Value to check
min (I) minimum limit
max (I) maximum limit
Returns:
1 if value is inside range, 0 otherwise

Definition at line 242 of file sfc.c.

Referenced by needSFC().

Here is the caller graph for this function:

int needSFC ( atomicnumber  Za,
atomicnumber  Zb,
const CalibYld enerA,
const AbsCoef AbsC,
int *  nSFCList,
SFCListElem **  SFCList 
)

<

Todo:
135=9x15 (absorption lines x emission_lines). If more lines or absorptions are added, this should be raised. Note that a conditional compilation for the case in which M absorption lines are not used, could reduce it to 4x15 or even to 4x12 if M emission lines are neither considered.

<

Todo:
Only K and L absorption lines are considered (since M lines are hard to quantify anyway, we don't waste time). If SFC is desired for M lines too, change nabs to 9 here. Also, a conditional compilation could be implemented depending on a preproc variable called ,i.e., QUANTIFYMLINES

Todo:
In case M emission lines should not be considered for SFC, this for loop can be eliminated by a conditional compilation

Definition at line 57 of file sfc.c.

References SFCListElem::abs, SFCListElem::Ea, AbsCoef::enr, SFCListElem::epri, SFCListElem::esec, inrange(), CalibYld::K_, CalibYld::L_, CalibYld::M_, minK, minL, minM, sigmaphoto(), SFCListElem::sigmaphoto, SFCListElem::Za, and SFCListElem::Zb.

Referenced by createSFCList().

Here is the call graph for this function:

Here is the caller graph for this function:

double sigmaphoto ( int  iabs,
const AbsCoef AbsC,
atomicnumber  Zb,
double  Xray 
)

Definition at line 137 of file sfc.c.

References AbsCoef::coefenr, AbsCoef::enr, and TotAbsor_elemental().

Referenced by needSFC().

Here is the call graph for this function:

Here is the caller graph for this function:


Generated on Sat Dec 8 23:11:38 2007 for libCPIXE by  doxygen 1.5.4