Speaker
Description
Scintillation detectors are essential in fields such as nuclear physics, medical imaging, and radiation detection. Simulating their signals is key to develop advanced signal processing algorithms. This paper introduces a Python package, scintiPulses, which simulates signals from scintillation detector with a quantum illumination function, and comprehensive set of parameters and noise models.
In its theory of scintillation published 1964, J.B. Birks introduced the concept of illumination function to describe the pulse shape induced by an ionising particle interacting with a scintillation detector. This sum of exponentially decaying functions is parametrised with decay periods of the prompt and delayed fluorescence of the scintillator. While this model fits well with energetic pulse, it departs from the reality in the low energy domain where the quantum nature of the energy quanta (scintillation photons) deforms the pulse with a shot noise which could lead to a pulse train far from the original model.
A quantum illumination function is proposed in scintiPulses to simulate this shot noised pulses. It consists of sampling the number of energy quanta is a Poisson distribution parametrized with the deposited energy and the scintillation light yield to draw an illumination function corresponding to the average number of charges as a function of the time (inhomogeneous Poisson process).
These scintillation pulses, with arrival times taking values in the exponential distribution parametrised with the inverse of the input count rate, are concatenated to form a full stochastic train of pulses.
The thermionic noise (dark noise) is added with the Dirac-shaped pules of single charge those inter-arrival times taking values in an exponential distribution (homogenous Poisson process).
The resulting signal (scintillation pulses + dark noise) converted to a voltage given a transimpedance capacitance and is then smoothed with a gaussian kernel with standard deviation equal to the spread time of the photodetector.
The gaussian white noise (thermal noise) is added followed by an anti-aliasing Butterworth low-pass filter parametrized with the bandwidth of acquisition system. The model also considers the quantization noise from digital electronic with their voltage dynamic range to account for pulse saturation.
The resultant output signal is the combination of the scintillation signal, shot noise, dark noise, thermal noise and quantization noise. Additionally, the scintiPulses program offers the possibility to return the signal from the RC filter of a preamplifier and the CR filter of a fast amplifier.
As a case example, the program has been coupled with the TDCRPy Python code, a tool to simulate the scintillation physics, to simulate scintillation signals from realistic quenched deposited energies.
scintiPulses simulates realistic signal from scintillator and is therefore a key tool to develop advance signal processing especially useful to train machine-learning algorithms. An example a of signal filtering using Recurrent Neutral Network RNN and tagged dataset from scintiPulses is described to illustrate how the tool can be used to develop efficient signal processing. The scintiPulses package is made available to any Python developers on https://pypi.org/project/scintiPulses and open for collaborative development on https://github.com/RomainCoulon/ scintiPulses.