Positron annihilation not detected in BNCT-SPECT simulation

Hello G4 experts:

I am simulating the gamma spectrum during epi-thermal neutron irradiating water phantom, we know that the gamma emitted by channel H(n,gamma)D is 2.22MeV, and with a possibility to undergo electron-positron pair production (recorded as ‘conv’ process in G4) and generate 511keV gamma.

However, in my simulation I find that the 511keV phantom does not show a significant peak in the spectrum. The peak of 2.22MeV is obvious, as well as the corresponding double escape peak, which means the pair production process happened, but the annihilation photons are rarely recorded.

My simulation is designed as a ring detector array circling the water phantom, and data in the spectrum above are collected from all detector elements and merged together (for any single element the count number is too low to make a spectrum). The energy is collected by step->GetTotalEnergyDeposit() and fill to the root histogram in EndOfEventAction(). The EM physics I use option4. The detector element material is NaI.

From the result above it seems like that there is no problem about the 511 keV disturbing target photon 478keV in B-10 neutron capture. However in many published articles it is mentioned that the target 478keV need to be distinguished from 511keV. There is another spectrum in which the water phantom is replaced by a B-10 contained water. The 478keV peak is significant here and we see no 511keV peak around. I guess there may be mistakes in my data collection, are there any suggestion for me to construct a correct detector simulation?, thanks in advance.

_Geant4 Version:_11.0.1
_Operating System:_windows subsystem for linux (WSL2), ubuntu 22.04 LTS
_Compiler/Version:_gcc version 11.4.0
_CMake Version:_3.22.1


Pair production and hence 0.511 MeV gamma rays will occur in the detector elements which seem quite small in size (from the geometry diagram). Further, the pair production cross section in NaI at 2.2 MeV should also be small. I would assume then that the probability of one 0.511 MeV gamma hitting another detector is small but non zero. Counts near 0.511 MeV are ~50, which is comparable to the double escape peak (~57). However, the sloping background with high uncertainty makes it difficult to determine whether this is significant and if there truly is a peak present. Can you run longer to build up the statistics?

(I have assumed that you are filling your histograms by incrementing the appropriate energy bin each time a detector element registers an energy deposit in that energy range and then accumulating over the number of events. If this is not the case, could you please describe how you are doing it.)

Hi John,

Thank you very much for your reply.

My irradiated phantom size is cylinder with diameter 20cm, z length 10cm. The detector elements are G4Box with 0.5*0.5*4 cm3. I have also designed Pb shield and collimator for the elements but right now they are aligned as air to temporary disable them.

The energy deposition is fetched by:

G4String currentLVName = step->GetPreStepPoint()
if(currentLVName == "logicDetCore")

Here different detector elements are not distinguished (if we do so, then the counting number of each single element is too low).

And at the end of an event the accumulated Edep in EventAction is recorded to the root histogram:

G4int EspecID = analysisManager->GetH1Id("eDepSpec");
analysisManager->FillH1(EspecID, fEdep);

Then the final histogram is generated as you see above. Considering the energy resolution of scintillator, the filled Edep data need one more step of a Gaussian sampling, but I do not do this here.

For the histogram parameters, the bin width is roughly 30keV per bin:

analysisManager->CreateH1("eDepSpec", "energy spectrum of det",
                          100, 10.*keV, 3.*MeV);

I think in my code, the detector element size is small so that pair production happened in the detector is hard to catch the annihilation photon simultaneously. The 511 keV peak (if exist) comes from the annihilation in water phantom and is detected by the elements ring.

I doubt in 2 points:

  1. The method I collect the Edep by event (at the end of EventAction) is correct or not;
  2. The data merging in all elements is correct or not;

Thank you again for your suggestion.

A plot of the spectrum with more primary particles. The 511keV is not significant, and the 478keV of the B10-nCapture is obvious.

Hi Saluta,

I agree with you that the detector elements are so small that if pair production occurred, neither 511 MeV gamma would be likely to be detected. Also, given the low energy gamma from hydrogen (only ~ 1 MeV above pair threshold) together with the low Z target elements (H, O, B), the cross section for pair production should be very small compared to competing EM processes. In other words, the lack of the 511 peak that you see in your higher statistics plot is reasonable.


Hello Geant4 experts
“I want to create a source of thermal neutrons for BNCT. How can I do this?”
"Can you provide an appropriate Geant4 example or guidance for achieving this goal?"Thank you for help me