Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

Todo List

Class absorber
document this structure

Class ESxType
document this structure

Global EXP_PARAM::ion
For the moment only H ions are supported.

Global FILTER::Calibflt
(not supported yet)

Class SecResType
document this structure

Global SFCListElem::sigmaphoto
units?)

Class SRType
document this structure

Class XrayYield
document this structure

Global cpixecalib (void)
This indicates that the filter is not going to be varied (Provisional)

Divide the calib yields by Xprod(Ecal) to obtain detector efficiency at the given emission energy. Tabulate [emission_energy,efficiency] --->Output

the detector efficiency can be fitted VS energy. The fit can be interpolated and converted back to calib yields for the elements/lines for which no experimental info was available (i.e. construct the calib file)

Global createSPTs (const char *path, const EXP_PARAM *pexp, int MaxZinsample, const int *PresentElems, double step, SPT **SPTArray)
readstopcoef assumes that the files SCOEF.95A and SCOEF.95B are located where the program is called. This must be generalized (In fact, the coefficients could be hardcoded using an include file)

Global createsublyrs (const EXP_PARAM *pexp, const foil *pMat, const SPT *SPTArray, double MajAbsCoef, LYR *plyr)
Discuss this initialization with M.R.

Global deNormalize (const EXP_PARAM *pexp, const AbsCoef *AbsC, const FluorCKCoef *pFCK, atomicnumber Z2, double M2, double attfraction, const CalibYld *pXYld, XrayYield *ResY, CalibYld *XYldSum)
This function does not support M-lines

Note: This function is only valid for 10 Z2 in range [10,99]

Global deNormalize (const EXP_PARAM *pexp, const AbsCoef *AbsC, const FluorCKCoef *pFCK, atomicnumber Z2, double M2, double attfraction, const CalibYld *pXYld, XrayYield *ResY, CalibYld *XYldSum)
do this part when the filters are supported

Check hardcoded Z limits

Check hardcoded Z limits

Check hardcoded Z limits

Support also M lines here

Global FilterTrans (const EXP_PARAM *pexp, const XrayYield *XYldArray, const AbsCoef *TotAbsCoefArray, const int *PresentElems, FILTER *Filter)
Document this function

Global initlyr (const EXP_PARAM *pexp, const XrayYield *XYldArray, const AbsCoef *TotAbsCoefArray, const int *PresentElems, LYR *plyr, double *MACoef)
plyr->NeedSFC is just a convenience pointer to the Sample-general NeedSFC. This should be changed and not used, but for the moment it works.

TODO:Check why was the following line commented out (in the Pascal Code):

Global integrate_Simpson (const EXP_PARAM *pexp, const AbsCoef *TotAbsCoefArray, const FluorCKCoef *FCKCoefArray, const XrayYield *XYldArray, int NFoilUsed, const FILTER *Filter, LYR *plyrarray, CalibYld *XYldSums)
document this function

Global PaulX (double ener, atomicnumber z)
Document this function (description, units for ener & return and references)

This function only works for proton beams!!

Global PaulX_lp (double x, long p)
Document this function (description, units for ener & return and references)

Global PaulX_y (double MeV, atomicnumber z)
Document this function (description, units for ener & return and references)

This function only works for proton beams!!

Global PenInteg (atomicnumber atnumb, const CalibYld *AbsFac, const ESxType *ESA, const CalibYld *YldA, const CalibYld *TrsA, const CalibYld *pTrs0, int FExlen, int NeedSFC, int AllowXEqCalc, double x0, double CosInc, CalibYld *XYld, CalibYld *XSFCr, CalibYld *XYldxmed)
IMPORTANT: check here the use of cosInc in relation with the definition of x0

Global readAbsCoef (char *TotAbsCoefFileNm, int MaxZinsample, const int *PresentElems, const FILTER *Filter, AbsCoef **TotAbsCoefArray)
Note that enr indexing starts in 1 while the stdcoeffs & coefenr start in 0. A conversion from 1-->0 could be done with little work.

Global readEXP_PARAM (char *ExpParFileNm, EXP_PARAM *pexppar)
For the moment, only H ions are supported

Global readFCK (char *FCKCoefFileNm, int MaxZinsample, FluorCKCoef **FCKCoefArray)
Modify to read only the present elems.

Substitute the "..." by explicit labels

Global readFilter (const char *FilterDefFileNm, FILTER *Filter)
For the moment, the geometric correction is just initialized to 1

Global readINPUT (const char *InputFileNm, EXP_PARAM *pexppar, EXTRAINFO *pExtraInfo)
For the moment, only H ions are supported

: SXF not supported yet

: Xeq calculation not

Global readSIM_PARAM (char *SampleParamFileNm, SIM_PARAM *simpar, char *IniMatFileNm, char *FilterFileNm, char *XYldFileNm)
complete here the initialization for the case when a filter is used. UPDATE: this should be managed elsewhere, probably in FilterTrans() or readFilter()

Global readXYld (const char *XYldFileNm, const int *PresentElems, const CPIXERESULTS *CalcFlags, int MaxZinsample, double *CalEner, XrayYield **XYldArray)
Modify to read only the present elems.

Global ReisX (const AbsCoef *AbsC, const FluorCKCoef *pFCK, double ener, atomicnumber z, double M2, double *sigmaXL)
(cite M.Reis paper named ???)

This function is only for proton beams!!

Global ReisX (const AbsCoef *AbsC, const FluorCKCoef *pFCK, double ener, atomicnumber z, double M2, double *sigmaXL)
What is Hr ???

What is cau ???

What is a02 ???

Global ReisX_En (double z, int niu)
check that the units of the hardcoded constants are appropriate

document this function

Global ReisX_g (int ss, atomicnumber Zg, double xi)
check that the units of the hardcoded constants are appropriate

document this function

Global ReisX_gs (FwTipo T, int SS, double ksis)
check that the units of the hardcoded constants are appropriate

document this function

Global ReisX_hs (FwTipo T, int SS, double ksih, double thet)
check that the units of the hardcoded constants are appropriate

document this function

Global ReisX_polisec (int ssind, double kz, double tz)
check that the units of the hardcoded constants are appropriate

document this function

Global Simps (double a, double b, double fa, double fi, double fb)
IMPORTANT: Why the 6 and the 4??????? Has something to do with exponential function integration? If not, it should be rather: return( (b-a)/4 * (fa+2*fi+fb) ) UPDATE: This has to do with the line in SSthick where "thick" is calculated.

document this function

Global SSThick (const EXP_PARAM *pexp, const foil *pMat, const SPT *SPTArray, double MajAbsCoef, double LayerThickness, ESxType ESxin, ESxType *ESxfin, int *pFpos, double *thick, ESxType **ESxA)
: check if the thressholds of these conditions are reasonable or should be more conservative.

The reallocation of ESxArray could be done inteligently in increments larger than 2, thus sacrificing some memory to speed up the process. Some extra variable would also be needed to remember the actual dimension of the matrix and comparing it with pFpos.

Global TotAbsor (const AbsCoef *TotAbsCoefArray, const COMPOUND *cmp, double Xray)
This function returns 0 if the Xray energy is not in the range covered by stdener. Maybe an error (and exit) should be triggered instead. Moreover: Is this absolutely general? I think this limits the generality of the program since elements below Na cannot be treated (and this is not desirable from a generalistic point of view). Therefore, these limits should be coded as variables just as minK, maxK,... UPDATE 1: The limits can be expanded, but the X-absorption data table should be altered accordingly (and dimstdener too). UPDATE 2: Better to show a warning than to exit in case that the limits are violated (TODO).

Global TotAbsor_elemental (int iener, const AbsCoef *Absco, int Z, double Xray)
This function returns 0 if the Xray energy is not in the 1-30 range. Maybe an error (and exit) should be triggered instead. Moreover: Is this absolutely general? I think this limits the generality of the program since elements below Na cannot be treated (and this is not desirable from a generalistic point of view). Therefore, these limits should be coded as variables just as minK, maxK,... UPDATE 1: The limits can be expanded, but the X-absorption data table should be altered accordingly. UPDATE 2: Better to show a warning than to exit in case that the limits are violated (TODO).

Global Xprod (const AbsCoef *AbsC, const FluorCKCoef *pFCK, atomicnumber Z1, atomicnumber Z2, double M2, double ener, CalibYld *XYld)
This function only works for proton beams!!

Global Xprod (const AbsCoef *AbsC, const FluorCKCoef *pFCK, atomicnumber Z1, atomicnumber Z2, double M2, double ener, CalibYld *XYld)
Check hardcoded Z limits

Check hardcoded Z limits

Check hardcoded Z limits

Global LONGSTRINGLENGTH
Modify fscanf functions to check for length when reading filenames of fixed maximum length

Global needSFC (atomicnumber Za, atomicnumber Zb, const CalibYld *enerA, const AbsCoef *AbsC, int *dimList, SFCListElem **SFCList)
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.

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

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

Global minK
These values should be read instead of hardcoded. Maybe in SIMPARAM?

Global cpixemain (int NCALL)
This indicates that the filter is not going to be varied (Provisional)

Generated on Fri Jul 15 20:43:50 2005 for LibCPIXE API by  doxygen 1.3.9.1