In order to perform gamma-ray tracking, the positions and energies of the gamma-ray interactions in the HPGe crystal must be accurately determined from the signal waveforms. Each gamma-ray typically interacts via several Compton scattering events, followed by photo-electric absorption. The signal decomposition procedure must handle cases where two or more interactions occur within one of the detector segments. An algorithm to perform this "signal decomposition" has been developed, by combining several methods such as Singular Value Decomposition, adaptive grid search and constrained least-squares. It utilizes calculated signal waveforms, corrected for effects such as the preamplifier response and both integral and differential cross-talk. We have shown experimentally that this algorithm can achieve an average position resolution of at least 2mm.
It is important that the signal decomposition be performed in real time, so that large quantities of waveform data need not be stored. This requirement means that signal decomposition forms the data acquisition bottleneck; computational speed and efficiency of the algorithm are therefore very important. On the current generation of 2 GHz processors, the algorithm requires less than 10 ms of CPU time per hit segment. With advances in processing power from multi-core CPUs, this performance meets our requirements.
In order to facilitate the continued development of the basis creation and signal decomposition codes, an offline version of the signal decomposition code has been developed. This is a code which is algorithmically identical to the decomposition being run on the GRETINA cluster, but can run on a personal computer to perform signal decomposition for a single GRETINA crystal based on raw data in a file.
PetCat (the origin of the name is a secret...contact Mario and offer to help out our efforts on signal decomposition if you want to know) is available online through a Mercurial Bitbucket-hosted software repository. Please contact Mario Cromaz to get details and an invitation to access the repository.