Simulated count variance much smaller than experimental — how to model realistic detector fluctuations?

Geant4 Version: 11.2.2 (installed from source)
Operating System: Ubuntu 22.04 LTS (64-bit)
Compiler/Version: GNU GCC 13.3.0
CMake Version: 3.28.3

Hello,

I am simulating a NaI(Tl) gamma detector system in Geant4 using 662 keV photons (Cs-137). I record the total energy deposition per event and count events within a photopeak window.

For a fixed geometry and source position, I repeated the simulation multiple times and obtained the following counts:

641 637 638 639 633 637 639 640 638 646 636 630 632 629 614 618 615 633 636 624 628 629 620 617 623 641 645 641 642 650 648 644 639 647 645 639

The variance is very small compared to my experimental measurements under the same geometry.

In experiment (NaI detector with HV=651 V, LLD ≈ 3.1), the count variance is significantly larger.

If I want to reproduce experimental variance realistically, what is the recommended approach?

Any guidance would be appreciated.

Thank you.

The poor resolution of NaI (or any scintillator) is from:

  1. Conversion of incident radiation to x-rays and energetic electrons
  2. Conversion of energetic electrons to scintillation sites (Tl)
  3. Light (optical) emission from scintillation sites
  4. Light making it out of the crystal near the photosensor(s)
  5. Light entering the photosensor
  6. Light being within the absorption profile of the light sensor (PMT, SiPM)
  7. Conversion of the aggregated light pulses into a signal with electronics
  8. Filtering imposed by the electronics that filters electronic noise at the expense of the signal (related to the common bandwidth of both noise and signals)

You have 1. Geant4 can be additionally be used to handle 2-6 (see the optical examples) with 6 requiring probably defining you own light sensor. Geant4 is meant as a radiation transport package and the last two are better handled with electronic simulation packages such as PSpice.

But all of this is very involved to model something that is well understood especially if you already have the detector in hand. What do you want to get from this? If its to help model a system response downstream you can “bootstrap” the resolution by taking the incoming data points in list mode or the spectra in event mode and just “smearing it” out based on your experimentally found resolution.