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 parameter, - 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 ignored). 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 package. 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.