Simulating internal pair production of Y90

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.