Cross-sections (2020 Planned Features)

Dear geant4 developers,

In the list of 2020 Planned Features it is written:

Interface for changing easily cross-sections on top of any physics list (allow user-defined cross-section per element or per material) - (1)/(2)

Does that mean that I will be able to set my own cross section for production of isotopes by means of photonuclears reaction?

And is there some instruction for changing cross section now? Because G4CascadeInterface* bertini has difference by factor of 3 (for Au196), and LEND doesn’t work for energies more that 20 MeV. For example take them from Because there is an instruction for neutron cross section, but no for IAEA Photonuclear Data Library…

It may be that the cross section is correct, but the model that calculates reaction products is not producing neutrons for each photonuclear interaction. See the discussion and workaround here, and in the linked bug report.

I know this post, and the production yield is fine for LEND model, but it works only up to 20 MeV. But I need energy range more than 20 MeV. So maybe someone know how to change the production yields?
And in bug report it is said that G4LENDorBERTModel was developed and implemented, but there are still problems about not conservation. So the problem still is for energy more 20 MeV…((

I meant that if you use Bertini, and set the environment variable
then there should be about the correct number of photoneutrons.

Yes, it works, thank you. But the cross sections is not so precise like experimental one. Or maybe the cause that phtonuclear process doesn’t work for production of metastable levels… ( So the question still is be: is it possible to implement cross sections from IAEA Photonuclear Data Library?

Do you know is it possible to set enviroment variable for certain volume? Because I see that for Au and Ta this variable is needed but for Cr neutron yield is fine and if set it for Cr as well, cross section would be over estimate for this element.

  • I don’t know how to implement new cross sections. Hopefully someone else will respond.
  • If the yield is fine for an element, the fix is not expected to change it (at least not much). When you write it would be an overestimate do you mean this is what you observe? Please try, preferably with one of the Hadr extended examples, and let us know.


In the new Geant4 version 10.7beta released 2 days ago we have changed gamma-nuclear models. If you have interest, can you , please, try this out. An interface to charge cross section in an easy way is not yet available.


Dear Vladimir,

I got the cross sections for Au196 and A196m1 production through (g,n) reaction using the last version of soft (please look at the image attached). As you could see there is still a problem. The CS for Au196m1 is much higher than for Au196_ground. And that is not right. Is it a bug? Also I saw the same situation for production of Hg197m through (p,n) reaction…

I used QGSP_BIC and G4RadioactiveDecayPhysics.

Has there been any progress on implementing user defined cross sections since this was posted? I am looking for the same thing as @Aleksei but have had minimal luck. Any tips would be greatly appreciated!!

As I know for now there is no official option in geant4 to implement your own cross-section. That is possible like this if you don’t care about pruducs of reaction, or like this if you need to take into account products.


with Geant4 10.7 there are several ways how to change default cross sections. First it is needed to construct full physics, for example, using reference Physics List. After it is possible

a) access any process for a given particle via
G4HadProcesses::FindInelasticProcess(const G4ParticleDefinition*);

and add custom cross section to this particle.

b) it is possible to scale default cross section by a factor using G4HadronicParameters interface.


Hello Aleksey,

probably Bugzilla bug report is needed. Can you reproduce the problem in $G4INSTALL/examples/extended/hadronic/Hadr00 ?
In that case, the an investigation may be easier.