Limiting simulation to histories where primary fully deposited energy in target

I would like to track and record only scintillation photons of events where incoming gammas from a beam source fully deposit their full energy in the target crystal. Put another way I only want to track secondaries if the incoming gamma at some point undergoes photoelectric absorption, either immediately or following a series of scattering event.

So my question is whether the above is possible, or must I make do with running everything and simply throw the results that I don’t want?

1 Like

Depending on the size and material, full absorption may or may not be a synonym for a photoelectric process…

It was my intent to say they are synonymous for this case. Let me try phrasing my question another way, can I set my run to abort events if the primary particle does not undergo photoelectric absorption before secondaries are generated and transported?

Photoelectric absorption means that you have a secondary electron with energy more or less equal to the incident gamma energy. It is somewhat complicated to filter these events since the secondary electron will be tracked. I would put a volume electron source instead with the energy of the gammas and trace optical photons generated by electrons. It is essentially the same from the physics point of view.

That does not work for what I want to observe. Depending on the geometry of the scintillation crystal, side wall conditions, and so on, the location of interaction impacts the probability that a generated photon interacts with the surface defined as a photocathode.

By using a volumetric source I am assuming that the probability of releasing a photon in my scintillation crystal is equal everywhere. For example this would not be true if one had a long narrow scintillation crystal and wanted to simulate a beam source going through the crystal at various distances away from the face that the crystal is coupled to.

Anywho, the workaround I am going with is to record interaction types of my primaries, and the event ID into a text file and will throw away the event output if I do not see that ID with “phot”. This will mean that simulations will take longer but I will get what I want.

Agree, and the probability of the photon to reach certain depth is not equal. Now I see what you simulate :slight_smile:

Do you simulate the photocathode as a separate volume with optical properties of the glass variety used in the PMT? If the place matters, the incident angle also matters.

For now I have defined my geometry to be a scintillation crystal, layer of grease, glass, and another arbitrary volume behind the glass, the optical boundary between the glass and arbitrary volume is set to kill every particle that reaches it for now that is. I defined the arbitrary volume as the detector so I could record the particles killed at that surface.

Ideally in the future I do something like what " Wang, Y., Cao, G., Wen, L. et al. A new optical model for photomultiplier tubes. Eur. Phys. J. C 82, 329 (2022). A new optical model for photomultiplier tubes | SpringerLink" did and define my optical boundary as thin film with absorption and reflection possessing an angular dependence.

For now though I wanted to simulate the number of optical photons that would reach the surface representing the photocathode. Only including photon collection when the primary gamma fully deposited it’s energy in the scintillation crystal.

you could also consider the full simulation and discard unwanted events afterwards as you stated in your first post, and make the simulation more efficient with biasing, either geometrically, or in the cross-sections for, let’s say, photoelectric effect!?

Thanks for the excellent reading; the article is interesting. I think it is rather doable to tweak Geant4 behavior in the StepAction to ensure the thin film effects are considered.

I would also try to generate photons with known angles of incidence to verify the model returns accurate results.