Gate
Gate copied to clipboard
Errors in nPhantomCompton and nPhantomRayleigh
The nPhantomCompton and nPhantomRayleigh entries in the Hits output file are unreliable - they are correct in some cases and incorrect in others. Some photons that are evidently scattered (judging from their energy and direction) show up as unscattered according to nPhantomCompton and nPhantomRayleigh, and moreover the names of the last Compton and Rayleigh scattering volumes are NULL for those events. I have seen this in a simulation containing a phantom attached to a phantomSD, and a detector attached to a crystalSD. Apart from that, there is nothing else than vacuum in the simulation so there is no other place where they could have scattered. Moreover, the likelihood that the error occurs is much higher for a high-Z detector (CdTe) material than for a low-Z detector (Si). This bug could cause severe and hard-to-detect errors in scatter simulations when comparing different detector materials.
This issue could perhaps be identical to the one reported here: http://lists.opengatecollaboration.org/pipermail/gate-users/2018-November/010558.html The e-mail thread suggests that this could be related to atomic deexcitation. In my simulation, atomic deexcitation (UAtomDeexcitation) is enabled.
Attached: a minimal example exhibiting the bug, with a description of how to analyze the output. I tested this on vGate 8.1 with Gate 8.1.p01. GATE_scatter_bug_example.zip
Thanks a lot, this is important. Right now, I dont have the ressource to investigate but I will contact someone that may. Probably it will not corrected for the release (end of this week), but we will provide a patch as soon as a correction is found. Thanks again, David
I have investigated a little bit the issue. The information of the scattering in the phantom is read and loaded to the corresponding hit in GateAnalyses.cc. For the correspondance, the ID of the photons involved in the current event is retrieved through std::vector<G4int> photonIDVec = m_trajectoryNavigator→FindAnnihilationGammasTrackID(); For the employed gamma-ray source, photonIDVec is usually a single element vector with a value of 1. However, for some events the retrieved vector is empty. Since this situation is not considered, the values related to the scattering in the phantom are not loaded into the hits. For these hits, the phantom values correspond to the initialization values, so no Rayleigh or Compton interactions and «NULL» for the volume names where the last interaction occurred.
In your particular case, the problem can be patched adding a few lines in GateAnalyses.cc to set manually the photonID for these particular events. I can send you the modifications. However, to truly solve the problem, I have to investigate the reason why for certain events m_trajectoryNavigator→FindAnnihilationGammasTrackID() returns an empty vector. I will try to come back to you with a better solution.
Best, Ane