-
Notifications
You must be signed in to change notification settings - Fork 1
Detector Calibration
Calibration establishes a relationship between analog-to-digital converter readings and real-world quantities. There are a number of factors that influence the measurment: photon energy, photon trajectory, scintillator efficiency, optical path inside the scintillation medium, photomultipler efficiency at the scintillation wavelength, photomultiplier dark current, photomultiplier gain, ADC resolution, temperature ... By measuring a variety of sources it is possible to compute a model that can reasonably accurately convert a large number of 526 into "potassium-40!" (for example)
calibrate.py -W will create an example calibration file. It contains some suggested elements and easily detected emission peaks. There is an intentional error ("unobtanium") in the template to prevent it from being used without at least a cursory look
{
"unobtainium": "Remove this line after filling in actual calibration measurements. The channel mapping below is a rough (aka. wrong) linear model...",
"americium": [
{ "energy": 26, "channel": 9 },
{ "energy": 60, "channel": 21 }
],
"barium": [
{ "energy": 80, "channel": 28 },
{ "energy": 166, "channel": 59 },
{ "energy": 303, "channel": 109 },
{ "energy": 356, "channel": 128 }
],
"europium": [
{ "energy": 40, "channel": 14 },
{ "energy": 122, "channel": 44 },
{ "energy": 245, "channel": 88 },
{ "energy": 344, "channel": 124 },
{ "energy": 1098, "channel": 395 },
{ "energy": 1408, "channel": 507 }
],
"potassium": [
{ "energy": 1461, "channel": 526 }
],
"radium": [
{ "energy": 295, "channel": 106 },
{ "energy": 352, "channel": 126 },
{ "energy": 609, "channel": 219 },
{ "energy": 1120, "channel": 403 },
{ "energy": 1765, "channel": 635 },
{ "energy": 2204, "channel": 793 }
],
"sodium": [
{ "energy": 511, "channel": 184 },
{ "energy": 1275, "channel": 459 }
],
"thorium": [
{ "energy": 338, "channel": 121 },
{ "energy": 583, "channel": 210 },
{ "energy": 911, "channel": 328 },
{ "energy": 1588, "channel": 572 },
{ "energy": 2614, "channel": 941 }
]
}Remove the unobtainium, save the file, and compute the initial calibration factors
{
"americium": [
{ "energy": 26, "channel": 9 },
{ "energy": 60, "channel": 21 }
],
"barium": [
{ "energy": 80, "channel": 28 },
{ "energy": 166, "channel": 59 },
{ "energy": 303, "channel": 109 },
{ "energy": 356, "channel": 128 }
],
"europium": [
{ "energy": 40, "channel": 14 },
{ "energy": 122, "channel": 44 },
{ "energy": 245, "channel": 88 },
{ "energy": 344, "channel": 124 },
{ "energy": 1098, "channel": 395 },
{ "energy": 1408, "channel": 507 }
],
"potassium": [
{ "energy": 1461, "channel": 526 }
],
"radium": [
{ "energy": 295, "channel": 106 },
{ "energy": 352, "channel": 126 },
{ "energy": 609, "channel": 219 },
{ "energy": 1120, "channel": 403 },
{ "energy": 1765, "channel": 635 },
{ "energy": 2204, "channel": 793 }
],
"sodium": [
{ "energy": 511, "channel": 184 },
{ "energy": 1275, "channel": 459 }
],
"thorium": [
{ "energy": 338, "channel": 121 },
{ "energy": 583, "channel": 210 },
{ "energy": 911, "channel": 328 },
{ "energy": 1588, "channel": 572 },
{ "energy": 2614, "channel": 941 }
]
}This produces an incorrect, but nice looking set of calibration factors.
$ ./calibrate.py
data range: (9, 26) - (941, 2614)
x^0 .. x^2: [1.26860787, 2.77308657, 4.45e-06]
R^2: 1.00000
Below are some spectra from a few easily obtained sources, along with one industrial source. Simply record enough data to get a clean peak, then measure the channel with the highest energy near the expected energy.
For the sources below, the following measurements were made
| Isotope | Energy (keV) | channel |
|---|---|---|
| Am-241 | 26 | 10 |
| Am-241 | 60 | 28 |
| K-40 | 1461 | 551 |
| Th-232 | 338 | 138 |
| Th-232 | 583 | 234 |
| Th-232 | 911 | 362 |
| Th-232 | 1588 | 597 |
| Th-232 | 2614 | 936 |
| Na-22 | 511 | 207 |
| Na-22 | 1275 | 488 |
Source: ionization-type smoke detector

Source: sodium-free salt substitute

Source: thoriated tungsten welding electrode
Thorium emits a wide range of high energy photons

Source: industrial source
