gammalab: a suite of programs for k0-naa and gamma-ray spectrum analysis
TRANSCRIPT
GammaLab: a suite of programs for k0-NAA and gamma-rayspectrum analysis
Mohammad Wasim
Received: 2 March 2010 / Published online: 25 April 2010
� Akademiai Kiado, Budapest, Hungary 2010
Abstract The GammaLab is a collection of computer
codes, written in MATLAB, for performing calculations
involved in k0 neutron activation analysis. The main fea-
tures of the program include calibrations including energy-
channel, energy-FWHM and energy-efficiency for different
geometries, background subtraction, nuclide identification,
spectral interference correction, elemental concentration
and limit of detection determination. The data input is
taken from two files one is the spectrum file stored in IAEA
ASCII format and other is report file containing peak
energy and peak area data. The information about sample,
irradiation and counting conditions, background spectra are
retrieved from QAQCData database. GammaLab takes
nuclear data such as gamma lines, emission probabilities,
half-lives, and k0 factors from NucData database. The
sample results which contain elemental concentrations with
uncertainties are stored in the QAQCData database. The
program has been evaluated by analyzing several hundred
spectra and results were found satisfactory.
Keywords GammaLab � k0-NAA � Software �QAQCData � NucData
Introduction
The development of gamma-ray spectrometry software
parallels the availability of cheap computing facilities. It is
not uncommon that a data analyst can write scientific
programs. The acquisition of the data is the first step in
gaining insight into a system. There is a possibility that
without an effective data analytical tool, the information
stay hidden behind the numbers. Now a day, the role of
scientific computing in a modern analytical laboratory
plays very important role. Almost all kind of spectrometric
techniques offer some kind of software; the same is true for
gamma-ray spectrometry. A number of software is avail-
able for data reduction and extracting useful information
from gamma-ray spectrometric data efficiently. IAEA-
TECDOC-1011 [1] provides a good review of software
offering spectral as well as further analysis options. The
software reported by various laboratories include Hyper-
Lab [2], NADA92 [3] and MULTINAA [4], ActAn [5],
UNISAMPO–SHAMAN [6], Span [1], ADVNAA [7],
ZAKI [8], SPAAC [9], INTERPRET [10], ROMOS [11]
and others.
The k0 standardization in neutron activation analysis
(NAA) was introduced in early 1970 [12]. The imple-
mentation of k0-NAA requires careful determination of
full peak efficiency calibration coefficients of the detector
for different counting geometries and characterization of
neutron flux for irradiation channels. For 1/v nuclides,
following the HØGDAHL convention [13], reactor neutron
flux is characterized by thermal to epithermal flux ratio (f)
and epithermal flux shape factor (a).Our laboratory adopted
k0-NAA standardization for two research reactors, Pakistan
Research Reactor-1 (PARR-1) [14] and PARR-2 [15] and
found the method accurate [16, 17]. Although the method
is experimentally simple, but the calculations involved
therein are complicated, which requires appropriate com-
puter codes for the job. Moreover, identifying radionuc-
lides, associated with peaks in a spectrum, is very time
consuming. Initially [14, 15] we used Microsoft Excel for
the determination of f, a and elemental concentrations. The
whole procedure, starting from flux characterization to
M. Wasim (&)
Chemistry Division, Pakistan Institute of Nuclear Science
and Technology (PINSTECH), P.O. Nilore, Islamabad, Pakistan
e-mail: [email protected]
123
J Radioanal Nucl Chem (2010) 285:337–342
DOI 10.1007/s10967-010-0562-0
elemental concentration determination, was time consum-
ing and tedious especially the nuclide identification. Later
on, we switched to MATLAB� (Mathworks Inc, USA) [18]
to ease out some of the steps involve. Since we have been
using MATLAB for multivariate data analysis, therefore,
we decided to write complete software for k0-NAA in
MATLAB. GammaLab is a collection of all codes written
for flux characterization to spectrum interpretation and
elemental concentration calculations over the last few
years. This paper presents structure of GammaLab and its
salient features.
Main features of the program
In k0-NAA, sample analysis starts with the irradiation at a
particular irradiation channel. In our laboratory all samples,
flux monitors and control samples, irradiated together at the
same position in a rabbit, are assigned a unique batch ID and
each sample is given a unique sample ID. The batch IDs,
sample IDs and irradiation conditions are stored in the
QAQCData database [19]. We use MAESTRO software
(ORTEC, USA) for gamma spectrum acquisition and each
spectrum is given a unique spectrum ID. Using MAESTRO,
the acquired spectra are saved in the IAEA ASCII format.
Once acquisition stops, the spectrum ID with acquisition
conditions are stored in the QAQCData. GammaLab
assumes that all the sample related information has already
been stored in QAQCData before commencing the analysis.
The codes in GammaLab were developed to perform the
following tasks: (a) to perform background correction, (b) to
determine the neutron flux parameters, (c) to associate cor-
rect nuclides to the peaks found in the spectrum, (d) to
correct spectral interferences (e) to calculate elemen-
tal concentrations and detection limits using k0-NAA
standardization. The current version of GammaLab follows
HØGDAHL convention [13]. The structure of GammaLab is
presented in Fig. 1.
Background correction is performed by using the
background spectrum acquired close in time to the sample
acquisition. The peaks identified in the background spec-
trum are matched, within the given energy tolerance, in the
activated sample spectrum. Once a match is found, the
background peak area, normalized to the sample live time,
is subtracted from the sample peak area. All background
corrected areas are checked for their significance and all
those peaks having either negative areas or less than the
significant limit are removed. After background subtraction
the program calculates f and a using Au and Zr spectra.
All codes of GammaLab assure data integrity; if some
information is missing such as sample weight or counting
geometry, etc. then the program moves to the next spec-
trum and record the problem encountered as an Error
Report. GammaLab also contains scripts for fast flux
determination, nuclear interference correction for (n,a),
(n,p) and (n,2n) reactions and concentration calculation
using fast flux based nuclear reactions. Other codes are for
gamma-ray spectrum modelling.
Data input
Input file for GammaLab contains only spectra IDs as
shown in Fig. 2, which shows spectra IDs for Au, Zr and
samples irradiated under the same batch ID. If user wants
to analyze all samples under the same batch ID then it is
sufficient to provide only batch ID at command prompt,
GammaLab retrieves all the required information using the
batch ID and perform the required job.
Using the spectra IDs the program locates two files with
the same name but different extensions; one file containing
GammaLabNuclear Data
(NucData)
Input
Spectra IDs
Report File
(*.res)
Spectrum File
(*.spe)
Users
Parameters
Error File
(*.txt)
Result File
(*.txt)
MATLAB Variable
(*.mat)
Sample related Data
(QAQCData)
Fig. 1 Structure diagram
of GammaLab
338 M. Wasim
123
channel-counts stored as IAEA ASCII format with .spe file
extension and the other file containing information as peak
energies, areas and uncertainties having .res file extension.
The .spe file is required for the determination of gamma
line significance. Currently, .res file is used to get infor-
mation about the location of peaks, using this information
peak counts are modified after baseline subtraction in the
.spe file which leaves .spe file as spectrum background. We
create .spe file with MAESTRO (ORTEC, USA) but it can
also be created by software package developed by IAEA
called WinSPEDAC [20], which offers data conversion
routines from one spectrum format to another. Using .spe
file, peak fitting is performed by another program from
IAEA called ANGES [1]. It is a user-friendly program, and
produces .res file containing peak energy, peak area and
uncertainty information. Figure 3 shows formats of .spe
and ANGES generated .res files of spectrum ID 1140.
GammaLab connects to QAQCData and NucData [21]
databases, using object database connectivity (ODBC)
option of Microsoft Windows, for the retrieval or storage of
information. QAQCData is a relational database developed
by us using Microsoft ACCESS for storing, retrieving and
analysing the information about samples, experimental
conditions and results. It also stores regression coefficients
for energy-channel, energy-FWHM and energy-efficiency
calibrations. Background spectra [22] are also stored in
QAQCData. The database has been designed not only for
storing data but also for quality control purposes.
NucData is another relational database developed by us
using Microsoft ACCESS for storing and retrieving nuclear
data to be used in gamma-ray spectrometry and NAA
related scripts. The database was derived mainly from
IAEA-NUDAT. The current version of database contains
Fig. 2 Format of the input file used in GammaLab
Fig. 3 Format of *.spe and *.res input files
GammaLab: a suite of programs for k0-NAA and gamma-ray spectrum analysis 339
123
half-lives of 767 radionuclides and 22,490 gamma lines
along with emission probabilities. Each line has attributes
of either X-ray, gamma-ray or annihilation line. The k0,Au
factor, Q0 values (resonance integral to 2,200 ms-1 cross-
section ratio) and �Er values (effective resonance energy
[23] in eV) with activation/decay codes, stored in the
database, have been taken from De Corte et al. [24].
compilation. All the programs and databases described in
this paper operate under Windows operating system.
Programming platform: MATLAB
MATLAB stands for MATrix LABoratory. It is a language
for technical computing that integrates computation, visu-
alization and programming in a user-friendly environment.
In MATLAB basic data type is an array with no constraint on
data size. This allows matrix and vector manipulation sim-
ple. MATLAB offers a library of linear algebra functions,
which makes codes small, clean and easily interpretable.
MATLAB provides open source code programming plat-
form. Since changes happen quite frequently at the start of
software development, open source code provides excellent
option for modifications and updates. The language con-
struct is very much similar to other languages.
In GammaLab, the data retrieval and storage from dat-
abases is performed by using structured query language
(SQL) scripts. Using queries the data retrieval and storage
from more than one table with different conditions can be
implemented easily. The determination of f and a in
GammaLab is done by using lsqnonlin [25] optimizing
functions of MATLAB. Current users of GammaLab have
not been allowed to make changes in codes; they can
submit only feedback, which could be implemented in
future versions.
Nuclide identification
Several Nuclide identification (NID) procedures have been
reported in the literature such as DIMEN [26], which is
based on median estimates of peak areas, expert system
Shaman [6], library correlation nuclide identification
algorithm [27] and others.
The NID routines of GammaLab are rule based, which
are similar to expert system Shaman. Nuclide identification
starts with the selection of candidate radionuclides based
on peak energies in the spectrum. Using SQL scripts, each
peak found in spectrum is compared with gamma lines in
NucData. If a match is found within interval defined as
(E ± t 9 FWHM), where E is peak energy and t is user
defined peak search factor and FWHM is full width at half
maximum of the peak, the corresponding radionuclides are
selected. The next step involves the removal of user’s
defined elements stored as a list of ‘‘exclude elements’’.
The current list contains elements from H to Ne. The next
step is the association of production mode to the starting
candidates. Production modes are retrieved from NucData.
The current list of production modes include (n,c), (n,p),
(n,a), (n,2n), natural, daughter (produced in decay chain)
and fission product. In GammaLab user has the provision to
include all or any combination of production modes. Since
spectra are background corrected, therefore, production
mode ‘‘natural’’ is not associated to any nuclide. Then half-
life is checked for all radionuclides, except for those hav-
ing production mode ‘‘daughter’’. In the daughter case,
half-life is checked in relation with its daughter-parent
relationship. Then each radionuclide is checked for the
presence of its primary gamma line, which is the most
significant line of a radionuclide relative to the spectrum.
After the application of the above defined three rules;
majority of the radionuclides are excluded. GammaLab
stores all information in the form of a matrix. At this point,
links are created showing peak to nuclide and nuclide to
peak associations. Moreover, all peaks associated with a
nuclide are ranked according to emission probability of that
nuclide. Once a peak or a nuclide is removed from
the matrix, the links are modified. Further rules include the
confirmation of production mode, significance check of the
next gamma-line not identified, concentration check to see
if it is not more than 100%, within given tolerance, or
negative. At the end single and double escape peaks are
labelled if a peak is within energy tolerance of 511 or
1,022 keV of another photo peak.
In GammaLab the nuclide identification proceeds iter-
atively; the main program keeps track of all changes and
directs the program according to the nature of change.
Finally, the radionuclides having production mode (n,c) are
used for the calculation of elemental concentration using
k0-NAA standardization.
Data output
The main program generates output in three to four formats
as shown in Fig. 1. Most of the information generated
during the execution of GammaLab is stored in QAQCData
and as MATLAB variable (*.mat) to be used for further
data analysis. The data stored as MATLAB variable is in
numeric format, while the nuclides, saved in QAQCData,
are in character format. Another form of output is a text
file (*.txt) containing brief information about the elements
quantified. The fourth type of output is error report
(*ErrReport.txt), only generated if an error occurs during
the execution of the program. The stored information
includes f, a, thermal flux, peak energies, original peak
areas, regressed areas, radionuclides identified, elemental
concentrations with uncertainties, limits of detection,
340 M. Wasim
123
percent of the peak area explained and percent of the
nuclide’s lines explained. All the concentration calcula-
tions are based on regressed areas except for peaks where
peak to nuclide association is single. Since regressed areas
depend on correct NID, it is therefore useful for the analyst
to check and compare the original peak areas with the
regressed peak areas. The saved data also keeps stamp of
the GammaLab version. The data stored in the text file can
be copied into Microsoft EXCEL simply by copy and paste
command for further data analysis. The data stored in
QAQCData can be retrieved using Report option of MS
ACCESS; one such customized report has been presented
in Fig. 4.
Performance testing and future implementations
Several hundred spectra, collected during the last few
years, have been analysed using GammaLab and the results
were found satisfactory. These spectra were obtained from
samples having varied nature of matrices include geologi-
cal, biological, alloys and environmental. The average
processing time, of a spectrum having about 100 peaks, on
a computer equipped with Intel Core2, 2.13 GHz processor
and having 1 GB RAM is not more than 3 min.
All scripts including the main program, written in
GammaLab, run on MATLAB command prompt, which in
future will be available via a graphical user interface.
Fig. 4 Results obtained using Report option of MS ACCESS
GammaLab: a suite of programs for k0-NAA and gamma-ray spectrum analysis 341
123
The reactions which do not follow 1/v law such as176Lu(n,c)177Lu, 151Eu(n,c)152 Eu and others can be quan-
tified using Westcott’s formalism [28] these will be
implemented in the future version of GammaLab most
probably using the approach described by St-Pierre and
Kennedy [29]. Other methods such as relative and mono-
standard methods will also become part of the future
version.
Acknowledgements M. W gratefully acknowledges the valuable
discussions with Dr. J. H. Zaidi about the algorithms used in
GammaLab.
References
1. Intercomparison of gamma ray analysis software packages (1998)
IAEA-TECDOC-1011, IAEA, Vienna
2. Simonits A, Ostor J, Kalvin S, Fazekas B (2003) J Radioanal
Nucl Chem 257:589
3. Landsberger S, Cizek WD, Campbell RH (1994) J Radioanal
Nucl Chem 180:55
4. Lin X, Baumgartner F, Li X (1997) J Radioanal Nucl Chem
215:179
5. Software for nuclear spectrometry (1998) IAEA-TECDOC-1049.
IAEA, Vienna
6. Aarnio PA, Ala-Heikkila JJ, Hakulinen TT (2008) J Radioanal
Nucl Chem 276:455
7. Bangfa N, Pingsheng W, Hulling N, Shuyuan L, Xuefeng L,
Weizhi T (2000) J Radioanal Nucl Chem 244:665
8. Ojo JO, Filby RH (2002) Nucl Instr Methods Phys Res A 481:502
9. Ptasinski J, Janczyszyn J, Pohorecki W, Loska L (1996) J Ra-
dioanal Nucl Chem 207:285
10. Blaauw M (1994) Nucl Instr Methods Phys Res A 353:269
11. Moens L, Roos P (1992) J Radioanal Nucl Chem 160:269
12. Simonits A, De Corte F, Hoste J (1975) J Radioanal Chem 24:31
13. Høgdahl OT (1962) Neutron absorption in pile neutron activation
analysis. Report MMPP-226-1
14. Wasim M, Arif M, Zaidi JH, Anwar Y (2009) Radiochim Acta
97:651
15. Wasim M, Zaidi JH, Arif M, Fatima I (2008) J Radioanal Nucl
Chem 277:525
16. Iqbal MS, Taqi SG, Arif M, Wasim M, Sher M (2009) Biol Trace
Elem Res 130:204
17. Wasim M, Arif M, Zaidi JH, Fatima I (2008) Radiochim Acta
96:863
18. The Mathworks, Matlab. http://www.mathworks.com. Retrieved
March 2010
19. Wasim M (2007) J Radioanal Nucl Chem 272:61
20. WinSpedac. http://www-naweb.iaea.org/napc/physics/PS/Soft
wares/Spedac.htm. Retrieved in February 2010
21. Wasim M, Zaidi JH (2002) Nucl Instr Methods Phys Res A
481:760
22. Wasim M, Arif M, Zaidi JH (2010) The Nucleus 47:55
23. Ryves TB (1969) Metrologia 5:119
24. De Corte F, Simonits A (2003) At Data Nucl Data Tab 85:47
25. Coleman TF, Li Y (1996) SIAM J Optim 6:418
26. Kondrashov SS, Moroz ZD (1993) Nucl Instr Methods Phys Res
A 328:542
27. William RR (2007) Nucl Instr Methods Phys Res A 579:288
28. De Corte F, Simonits A, Bellemanns F, Freitas MC, Jovanovic S,
Smodis B, Erdtmann G, Petri H, De Wispelaere A (1993)
J Radioanal Nucl Chem 169:125
29. St-Pierre J, Kennedy G (2007) J Radioanal Nucl Chem 271:283
342 M. Wasim
123