DoseNet Summer 2024: Justin Ely’s Report

Obtaining Counts From NaI Sensors

Justin E

Introduction

This project aims to develop a script that can accurately obtain counts at certain energies from the sodium iodide (NaI) scintillation detectors. In general, the script operates by calibrating the sensor via a two-point linear calibration using characteristic peaks found in background radiation, then isolating the peak by locally analyzing the derivative at selected energies. Counts are obtained by reducing background noise from the resulting peak and integrating under a gaussian fitted to the peak.

Procedure & Methodology

Data collected directly from the NaI sensors is a histogram of counts where each bin is assigned a number, but the energy value is not given. Thus, it is necessary to calibrate the sensor using a calibration function. In this project, the calibration is done using two peaks, namely the decay of Bi-214 at 609 keV and the decay of K-40 at 1461 keV. Both of these isotopes are naturally-occuring, with Bi-214 being a daughter isotope of U-238 and K-40 existing in almost all living things, making them prime candidates for sensor calibration.

 

To find a peak, an estimation of its location is first found by applying a peak detecting algorithm across a large part of the dataset. Then the precise peak is found by detecting a peak in the area around the first estimate. Using the location of these two peaks as well as their expected energies, a linear calibration function is created.

Fig 1: Result of peak detection algorithm

Fig 2: Calibrated energy spectrum

The next step is to isolate the peak at the energy which the user wishes to obtain counts at. For this project, I’ve created a simple derivative function, which returns the slope of the line connecting the points immediately before and after the point in question. The leftmost point (leading edge) of the peak is identified by the absolute derivative of the function falling below a certain threshold. The rightmost point (trailing edge) is the first point where the derivative at a certain point is 25% of the derivative five points to the left of it (since some peaks may not have a local minimum to the right).

 

Fig 3: Peak isolation at a certain energy (chosen by the user), and the estimated noise

Between these two points, a straight line is drawn (note that the y-axis is log scaled). This line represents the background noise due to gammas not being fully absorbed by the scintillator, and thus should be subtracted from the data to obtain a noise free peak. To obtain counts from this peak, a gaussian regression is performed on the curve and the area under the gaussian curve is taken to be the total counts for that energy.

Fig 4: Drawing of the isolated gaussian, the gaussian curve, and the area under it

 

Current Drawbacks, Future Improvements, & Possible Solutions

The current script does not work well for sufficiently noisy data. The main issue lies in the derivative method, since there are many small local minima and maxima. I have tried increasing the distance between the two points that the derivative function uses to 5 before and 5 after, but a better approach may be taking an average derivative of a few points instead of just one. Note, however, that the peak detection function works fairly well for noisy data.

 

The current code does not check if the noise function (the straight line from the leading to trailing edge) is downward sloping. A future improvement may be to make this check, since the code must have made an error if the leading edge is below the trailing edge.

 

The current script struggles with detecting the leading edge of relatively flat peaks, since it may think that the entire slope is actually flat. A possible fix may be making the threshold stricter for detecting the local minimum.

 

The current calibration uses two points which causes some problems, namely negative energy values at low bin numbers, if the y-intercept of the calibration is negative. A solution may be to use a three point (possibly polynomial) calibration restricting the function to pass through the origin.

 

The current count uses the area under the curve of the gaussian from negative infinity to positive infinity. Calculating the integral with narrower bounds of integration, possibly using the gaussian error function, might give a more accurate count.

Posted in Community, Education, Internship, Outreach.