Nuvi Evaluation Package Technical Brief

1. General
 The spectrum evaluation package is integrated in the nuvi software,
and is used for qualitative and quantitative analysis of gamma spectra.
Being an integral part of nuvi, it allows spectrum evaluation while
simultaneously acquiring other spectra; evaluating the spectrum which
is currenlty being acquired is also possible, though spectrum changes
during evaluation would induce some error. The final output of the
evaluation is a sample report, which includes activities (corrected
for decay during acquisition) with their respective reference dates,
which can be set on a per nuclide basis. Initially, all dates are
set to the acquisition start moment, which is taken automatically
from the spectrum (which automatically stores its start moment taking
it from the OS). Thus, evaluating a spectrum amounts to 4-5 mouse
clicks; and making an efficiency calibration amounts to click-and-editing
the activities/reference dates in the sample report, subsequently
saving the efficiency curve to a file.

 Here is a summary of the main features of the evaluation package:

- an integral part of nuvi - consists of DPS objects which interact
  with each other without need for operator intervention,

- powerfull AND-ing of menu selected nuclide peaks during identification
  dramatically increases qualitative credibility,

- unique curve-fitting algorithm works error-free on very narrow
  (FWHM < 1 channel) peaks and behaves very well with low statistics,

- interactive (GUI based) nuclide library allows "click-and-change" of any

- can be script-programmed using the DPS script language,

- easy to operate.

2. Theory of Operation

In nuvi, various objects are located in some of the 16 buffers.
Spectrum evaluation is done in the following steps:

a. The peaks in the spectrum to be analyzed are marked - either
automatically or manually or both. If the spectrum is not
energy calibrated, it must be calibrated at this stage.

b. A new object, list_of_peaks, is created based on the spectrum with
marked peaks. This results is fitting the curve (from buffer 14) to
all marked peaks and storing the fitting results (centroid, net area,
fit area, gross area, error etc.) on the list. The allowed energy
deviation is initialized to +/- as much energy as there is per
channel in the evaluated spectrum; it may be manually (or script)
changed at this stage (it is a list_of_peaks' parameter).

c. The peaks from the list_of_peaks are identified using the library
in the buffer with the number defined by the "lib" local variable.
Identification is done on a per peak/nuclide basis, that is, if
a peaks centroid matches an energy of a nuclide's peak, it will be
found only if all the selected "AND-ed with" energies of this nuclide
are found on the list (those outside the list energy range are

d. A new object, sample_report, is created based on the list_of_peaks.
Since it knows which list_of_peaks is to be reported, based on which
spectrum and which library, it stores all the links in itself (for
direct interaction with these objects) and all the object names
for archiving and subsequent retrieval. Before starting to calculate
activities, the sample_report loads in itself the efficiency curve
from the file defined by the global variable "effname". If "effname"
is not defined, a the file "default.eff" is taken; it results in
an efficiency multiplyer of 1 for any energy. Once the efficiency
curve is loaded, all activities are calculated and stored in the
sample_report with their reference moment being the acquisition
start moment. All activities are corrected for decay during acquisition.
If more than one peak of those enabled for use during quantitation
(in the library) are present on the list_of_peaks, the peak with
the lowest error is taken to calculate the nuclide's activity.

e. The sample_report, as created, can be viewed through one or more
nuvi "display" task(s)/window(s) like all other nuvi created objects.
It allows click-and-edit of all dates shown, recalculating the shown
activities every time a relevant date is changed. 

 To define a new efficiency curve, a sample_report of a known
source must be created using "default.eff" as efficiency curve (all
ones). Then, the activities in the shown report must be clicked
and edited to match those of the known source, and so must be
their respective date(s). Subsequently, while the nuvi command
window is connected to a sample_report, the "write .. efficiency "
command sequence is available either as a command or as menu button
sequence; it allows the efficiency curve to be written to a file.
The efficiency curve is stored as based on the data from all three
related objects - the sample_report, the list_of_peaks the report
was derived from and the nuclide_library which was used for
identification and during activity calculations. It stores as many
points as there are identified peaks on the list_of_peaks,
calculating efficiency by taking nuclide activity from the
sample_report and yield from the nuclide_library. The points
are stored as sets of energy/efficiency/error_at_this_point
single precision floating point numbers. Later, whenever an efficiency 
is to be calculated at a given energy, a third orders polynom
is created to pass through the 4 points closest to the desired
(using the method of Gaus) and then the efficiency is calculated
substituting the polynoms argument.

3. Related Objects Brief Description

 The nuvi evaluation package accesses four types of DPS objects:
spectrum, list_of_peaks, nuclide_library and sample_report (and
some others, transparent to the user).
Only the spectrum object is known to nuvi without the evaluation

3.1. spectrum - actually, pha-spectrum is the full object name,
which is a type of spectrum, which is a data_set. The latter is
not discussed here. Nuvi can create, manipulate, export/import
spectra, and can acquire data into them using available hardware.
Peak search is a spectrum action, so it works without the evaluation
package. The same is valid for curve fit to a single marked 
region, which results in producing a spectrum_peak in buffer 15,
which can be looked at.

3.2. list_of_peaks is derived from a spectrum and contains as many
entries as there have been marked ROIs in the spectrum at the moment
of the list creation. It can be placed in a nuvi data buffer and
visualized. Also, some of its paramater values can be changed by
the user - e.g. allowed energy deviation during identification.
The list name is set the same as the spectrum's, and can be subsequently
changed. Every entry contains the fitting results of its corresponding
peak. Energy related data are stored both in energy and in channel
units, as single precision floating point numbers. Area related
data are stored as extended precision floating point numbers.
Various other data are also stored.
3.3. nuclide_library is the object consulted by other objects (like
list_of_peaks and sample_report) for nuclide related information.
The nuclide_library can be viewed and edited through a nuvi "display"
task/window. It stores nuclide information as a set of "isotope" objects.
Nuclides inlcuded in the library have their parameters such as half-life
(stored as extended precision floating point in seconds), pairs of
energy/yield, stored in a binary format. Reaction type, child nuclide(s)
have also their (binary) entries in the library, though this first
version of the package does neither use nor access them. Beyond these
data,  every nuclide entry contains additional processing related 
data. The nuclide can  be switched on/off from the library display/menu
task, and each peak can be individualy enabled for detection. Wether
the peak will be used during quantitation is another flag which  can
be changed. Also, every peak has a set of as many flags (bits) as 
there are peaks defined for this nuclide, shown as "AND-ed peaks".
To view a peak's set  of flags, one can click the peak's energy - 
this will make the set of "AND-ed peaks" flags shown at the left of
the energy column to  become the  set of that particular peak, this
being indicated by the fact that  the arrow outgoing from the energies
will be that of the just clicked energy. A peak will be identified
only if all its enabled "AND-ed peaks" (those being pointed by an 
arrow ingoing to their energy) which fall into the list's energy range
are present on the list_of_peaks doing the nuclide identification.

3.4. sample_report is the final object produced during the evaluation
process. Whenever creating it, it stores to itself links to the
list_of_peaks it is derived from and the list's name, to the spectrum
the list was derived from and the spectrum name, to the nuclide library
and the library's name, and, if an acquisition nexus is connected
to the spectrum from which the evaluation started, the acquisition
nexus is given the chance to write its state to the sample_report.
Typically, it would write the current (at evaluation time) state
of the slots connected to this acquisition nexus, so this operation
depends on how the objects in the respective slots behave. Normally,
they would just write their state as they do whenever this state
is saved to a file from their control menus; before being asked to write
they are asked how much space they would need to write their state,
this being allocated to the sample_report. Errors occuring during nexus
state save, as opposed to all others, will not abort the creation
of the sample_report; they will just cause no nexus/slot data to
be stored to the report. This allows creating reports from spectra
acquired elsewhere and imported by nuvi.
 As the report is created, all its 3 dates (starting, sampling and
reference date) are set to the starting date of the spectrum, and so
are all individual nuclide reference dates. The operator name is
written to the report as it is defined by the global variable "myname".
The report contains as many nuclide entries as there are nuclides
identified on the list_of_peaks. Every nuclide entry stores nuclide
activity upon acquisition start (corrected for decay during acquisition)
both as measured and after efficiency correction, reference date,
library data used (energy/yield as found in the library during
activity calculation). During report visualization, the activity shown
is the efficiency corrected activity decay calculated for the nuclide's
reference date. Both the shown activity and the reference date can
be changed by clicking them and editing them, thus allowing the operator
both to see activity at any moment (up to the year 4095 and back to
year -4095, the internal limit being something like +/- 6 million
years) and to set activity to a known level in order to write the
efficiency curve during calibration procedures.

4. Ordering Information
The nuvi evaluation package is optional. To order it, you should
explicitly specify it in your order as "Nuvi Spectrum Evaluation Package".
As with other software products from TGI, a 1 year free update
is implied with this package.

TGI Home List of Products Old Documents Contact Us About Us Downloads Services