Hello,
I am currently modelling various prompt gamma neutron activation analysis scenarios, and something that I would like to be able to do is differentiate where incident gammas on my sensitive detector where created. For example it would be great to know if a gamma was created by a nCapture event from iron that is present in my sample material or from iron that is present in the background structure.
Is there a way to do this in Geant4, and if so what is the recommended way to do this?
I understand that I may be able to use the trajectory class to do this, but it will be quite expensive on the CPU usage? I currently run simulations with a neutron GPS generating 1e8 neutrons.
Appreciate any guidance that can be provided on this.
Are you simulating a detector or just getting the ground truth? The former would be a few more steps. The latter is pretty straight forward.
Get access to the logical volumes in your stepping action. First get read only access to your detector construction class (suppose its called DetectorConstruction).
Im currently simulating a Sodium Iodide detector as a sensitive detector and capturing the kinetic energy of the gammas that interact with it to capture my “combined” spectrum from the gammas generated in both the sample and background material (we are doing our detector response function post simulation to save on processing), but the end goal is to separate the sample spectrum and background spectrum from each other.
Alright. So building on my previous post, suppose you define 2 G4Regions: one that includes all “detectors” and one that includes all “background” elements. I think the strategy would be to just modify the User Tracking Information class in RE01 to have two flags: one for if a particle or any of its descendants is inside either the detector or background volumes.
In your stepping action you would check if the particle is inside the detector or background volume (or region if complicated) and set the flag for that user information for the particle. This would be passed down as in the example in the link to all subsequent secondaries. Then when some particle interacts in your detector you record these flags. Then filtering on this field would allow you to construct “background scatter”, “direct detection”, and “combined” events.