Simulating internal pair production of Y90

Hi everyone,

I’m currently working on simulating the internal pair production process of Yttrium-90 (Y90), which is responsible for the positron emission observed in PET imaging. Specifically, I would like to model the positron spectrum resulting from the E0 transition of 1760.7 keV to the ground state of Zirconium-90 (Zr-90), following the beta-minus decay of Y90.

My goal is to simulate only the pair production process (not the full beta decay spectrum) and extract the energy distribution of the positrons emitted during this transition.

Could anyone advise on how to do this in Geant4 or if it’s even possible? I would really appreciate it.

Thank you!

Greetings,
Bea

Geant4 Version: Geant4.11.00
Operating System: virtual machine of Ubuntu LTS 22.04

I am not sure what you are getting at here. If you just want to grab the positron (energy) spectrum with maximal efficiency, than you could set production cuts of all particles to very large values and than in your own PreUserTrackingAction you can check if the particle is a positron and record its energy. The effect of all of this would be to permit the decays and record the positron initial energy (or momentum or whatever) and to have all the energy be deposited extremely locally which will help with simulation time.

Edit- If you specifically want only from that state than I recommend writing your own “decay” file that overrides geant4’s default for radioactive decay. Basically “tricking” the Y90 to have a BR of 1 to the Zr90 state of interest. This thread goes into it for Cf252 but it could work for this case here. BRbias never seems to quite work right.

Hi,

Thank you for your answer. I will check the thread better.

Sorry, I should have been more specific about what I needed. I want to grab the positron energy, but not only that, I also need the probability for each of the energies. Something like this graph here:

Is there a way for Geant4 to do that? Track the counts?

When you say locally you mean only a point source? Could it be possible to use a voxelized source instead to do it?

Do you want the positron energy distribution or the energy it deposits in some volume since your plot save EDep? I’ll work with the former for now.

There are two main ways. The more standard and involved one is record relevant information for every event in an ntuple and then process afterwards to generate your histograms. A cleaner, but less flexible, option is to have geant fill the histogram(s) as the simulation runs and then to just output/save the histogram into a file format of your choice. Very small file compared to listmode data option. To get the statistics you will just run many particles and then divide your histogram by the total counts.

This is covered here in more detail. There are many examples, but the most comprehensive direct example that has both that comes to mind is RDecay02 (this link goes to its histomanager class).

In my knowledge, the internal pair production mechanism is not implemented in Geant4 radioactive process.
Below, a macro for example rdecay01 and its printout.
beatriz.mac.txt (251 Bytes)
beatriz.out.txt (4.9 KB)

So, to explain it better, I am working with gate (which is based on geant4) for pet simulations where the source I want to define is the Y90. They have the option to define it as an ion source but I have done this and didn’t obtain any results and the simulations times were very long. So my idea was to use their other option of defining only the positron and give the energy distribution of the radioactive source, providing its energy spectrum .

That example I gave was from a model that is implemented there called fastY90 that says can only be applied to point sources where he says he gives the Cumulative energy spectrum of positron. Gate/source/physics/src/GateSourceFastY90Tables.cc at develop · OpenGATE/Gate · GitHub
Gate/source/physics/src/GateSourceFastY90Tables.cc at develop · OpenGATE/Gate · GitHub

I am kind trying to obtain the same type of positron spectrum of the y90 myself.

But since @maire1 says that the internal pair production mechanism is not implemented in Geant4 radioactive process, how could this be done then?

Just by doing a simple point source simulation to store all the properties (energy, number of particles, position, etc) of the positron from y90 and then construct the spectrum with that data? How could I include the tabulated positron branching ratio of 3.26*10^-5 like him?