Thank you for your question. Could you please try using one of the default physics lists that includes fission? For example, FTFP_BERT_HP should include this process[1]
Do you explicitly set the production cuts in your job, or are you relying on the Geant4 defaults (usually ~1 mm). The fission fragments are low enough energy that unless you’re doing fission in vacuum (G4_Galactic), they’ll be suppressed by the production cut. To see them, you will probably need to set the “proton” (all hadrons) production cut to zero.
Mmmm, okay. Then there’s something else going on. If you’re seeing the fragments only in step->GetTotalEnergyDeposit(), that means the fragments themselves (as tracks) were not created (because the tracks were suppressed, and their kinetic energy was assigned to the parent step).
@maire1 , fission fragments are always explicitly generated in my application, here is another pulse amplitude spectrum include fission fragments calculated by Geant4:
Are you trying to do both of those things to the same step? That definitely won’t work.
If you’re looking at the step where the fission happened (i.e., the test on GetProcessName()), then the secondaries from the fission have not yet been converted into tracks. You will find them if you loop over the secondaries of the step (step->GetSecondaryInCurrentStep()).
Alternatively, if you modify your code, and look for track->GetCreatorProcess()->GetName() matching fission (make sure the process pointer isn’t null!), then you should see the fragments.