No fission fragment occurs?

when i accord example “extended/hadronic/FisssionFragment” to produce fisssion fragment, it seems no fragment produce, to confirm the particle produced is fragment, the code below used:


to produce fission fragment, except according example “extended/hadronic/FisssionFragment”, something else shauld i do?

In your application, do you have Geant4 production cuts turned on? Often, fission fragments have a very short range, and production cuts will prevent them from being instantiated as tracks. If you turn off production cuts (or at least set the “proton” cut, which includes ion, to a small value), then you should see the fragments as tracks.

the cut value of my application is default, first i want to obtain the kinetic energy of fission fragment as thermal neutron bombing enriched Uranium, it seems not concerning the range of fission fragment, the key code below:

G4double ede = step->GetPreStepPoint()->GetKineticEnergy();

the results indicate the kinetic energy is 0 MeV

Here, a macro for example Hadr03 (with Geant4 10.7), the printout and the plot of fission fragments.

siyuan.mac.txt (909 Bytes)
siyuan.out.txt (4.0 KB)

sorry, i used “siyuan.mac.txt” to run the application “Hadr3”, the results is not same with yours, here is key information:

Geant4 version Name: geant4-10-07-patch-01 [MT] (5-February-2021)

List of nuclear reactions:

              neutron + U235 --> N gamma or e- + 2 neutron:       5   Q =  9.7775 MeV
              neutron + U235 --> N gamma or e- + 3 neutron:       2   Q =  10.275 MeV
              neutron + U235 --> N gamma or e- + 5 neutron:       2   Q =   16.95 MeV
                neutron + U235 --> N gamma or e- + neutron:       1   Q =  8.7925 MeV

the results from you:

Geant4 version Name: geant4-10-07-ref-05 (31-May-2021)
List of nuclear reactions:

neutron + U235 → N gamma or e- + 2 neutron + Ba144 + Kr90: 1 Q = 181.22 MeV
neutron + U235 → N gamma or e- + 2 neutron + Nb103 + Sb131: 1 Q = 183.31 MeV
neutron + U235 → N gamma or e- + 3 neutron + Pr150 + As83: 1 Q = 177.9 MeV
neutron + U235 → N gamma or e- + 3 neutron + Sr94 + Xe139: 1 Q = 177.94 MeV
neutron + U235 → N gamma or e- + 4 neutron + Ba141 + Kr91: 1 Q = 170.99 MeV
neutron + U235 → N gamma or e- + 4 neutron + Cs138 + Rb94: 1 Q = 177.77 MeV
neutron + U235 → N gamma or e- + 4 neutron + La140 + Br92: 1 Q = 186.8 MeV
neutron + U235 → N gamma or e- + 4 neutron + Sr95 + Xe137: 1 Q = 177.08 MeV
neutron + U235 → N gamma or e- + 5 neutron + Ba144 + Kr87: 1 Q = 180.21 MeV
neutron + U235 → N gamma or e- + neutron + Cs141 + Rb94: 1 Q = 174.73 MeV

i do not kown what cause this huge difference, Geant4 version? my Geant4 is the latest version from official website.
siyuan.out.txt (67.5 KB)

It seems that, in your version, the command
/process/had/particle_hp/use_Wendt_fission_model is inefficient.

In, activate the line

@maire ,thanks!,now it works well.

when using 1.2MeV neutron to bomb Uranium-235 target with 8e-10 m, so many alpha particles occurs,
see the picture below:

and many low energy fission fragment occurs,
see the picture below:

in the simulation, the Wendt model is used.


sorry, the mass distribution is not show the atomic mass over 200,
the figure below show these:

it seems the alpha decay process is on,
how to shut down this?

Are you doing spontaneous fission or only neutron-induced fission? You could disable the radioactive decay process via macro, /process/inactivate RadioactiveDecay or RadioactiveDecayBase (depending on your G4 version).

i did neutron-induced fission, when using /process/inactivate RadioactiveDecay, the session shows:
command refused (1):"/process/inactivate RadioactiveDecay"

when using /process/inactivate RadioactiveDecayBase, the session shows:
*** Break *** segmentation violation

when using hard code like this:
auto fDecayPhysics = new G4DecayPhysics(1);

it seems this do not work.

Sorry, I wasn’t completely clear. In your macro file, after /run/initialize to create all the processes, then use the command /process/list to get a list of all the processes. Look in that list for either “RadioactiveDecay” or “RadioactiveDecayBase”, and then use the /process/inactivate command with whichever name you found.

There are two issues with this. First, G4DecayPhysics isn’t where RadioactiveDecay is found anyway; that builder contains the quite different G4Decay process which handles particle decays.

Second, the RemovePhysics() function with a pointer must be passed the same pointer that was added to the physics list in the first place. Instantiating a new, different instance isn’t going to work. You could use the RemovePhysics("name") signature.

when using the command `/process/list’, the error occured:
*** Break *** segmentation violation

maybe it is because the forced collisions of variance reduction technique is used in the simulation.

That’s weird. You should not get a segfault from /process/list. If you use it before /run/initialize, it’ll give you an empty list. After /run/initialize, it should print the names of all processes.

If you’re getting a segfault, I suspect that means you have an error in your application, and you’re registering a null pointer as a “process.” That might explain your other seg faults as well.

Run in the debugger, look at the traceback to see where the segfault happens, and then work on your code to eliminate it. If you’re not familiar with how to use the debugger for your compiler, the documentation and the Web are your friends.

maybe it is a bug in 10.7.1, everything works ok in 11.0.0.