Multiple-Scattering Parameter tune

Hi, everyone,

I am trying to tune the multiple-scattering for MeV-scale electron in pure-water geometry (Angle, probability).
However I couldn’t understand what parameter I should tune.
Also, I often see the “Step Limitation” for the MSC tuning, however I don’t know how to change step limitation.

What parameter is good for tune multiple-scattering ?


My suggestion is NOT to touch msc parameters. I would suggest to use the default parameters. I suggest G4EmStandardPhysics_option4.


Thank you for your reply!
I checked EmStandardPhysics_option4, however the angle distribution was not so much changed.
Until last time I was using the EmLivermore Physics model. I looked at G4EmStandardPhysics_option4, but for MSC, the model in both lists is the Urban MSC model. So I think the list change is not affected for MSC angle and probability.
Therefore, I don’t think changing the list will affect the MSC angle and probability.
(I’m not confident so please let me know if I make a mistake.)

I saw the topic in Geant4 forum that StepLimiter physics may affect MSC. But I don’t know how to implement…

Which version of Geant4 are you using? you may look at this paper to see differences among the EM physics lists from 10.5 onwards (there should not be change afterwards).

Anyway, I would suggest not to touch the msc parameters.

I’m sorry for my lack of information.
I used Geant4.10.3. I confirmed G4GoudsmitSaundersonMscModel is used for EmStandard_option4.
I will try to tune without parameter changing.
Thank you for advice!

Significant improvements have been made in the G4GoudsmitSaundersonMscModel in version Geant4.10.4. that includes:

  • implemented possible Mott-correction as an option to the default, screened Rutherford DCS based GS angular distributions
  • the corresponding corrections to the integrated quantities, e.g. elastic, first and second transport cross sections, are also available
  • a scattering power correction, that accounts the otherwise neglected effects of small angular deflections associated to sub-threshold ionisations along the step (i.e. those contributing to the continuous energy losses), is also included

Note, that while these corrections are not activated in the default G4GoudsmitSaundersonMscModel, all of these are active when the model is used in the G4EmStandardPhysics_option4* EM constructor from version Geant.10.4..

Furthermore, small corrections has been made in version Geant4.10.5. and exactly the same model (G4GoudsmitSaundersonMscModel with all above corrections) is used since Geant4.10.5. in G4EmStandardPhysics_option4, G4EmLivermorePhysics, G4EmPenelopePhysics and G4EmPolarizedLivermorePhysics EM physics constructors.

Also note, that beyond the corrections mentioned above, the G4GoudsmitSaundersonMscModel is used with its error-free stepping in all above mentioned physics constructors (since version Geant4.10.4.) that guaranties exact boundary crossing. All these, together with the so called Longitudinal and Lateral Correlation
applied in the G4GoudsmitSaundersonMscModel to determine the post-step particle position, results in highly accurate simulation of e-/e+ transport.

If you decide to use the most recent version of Geant4, i.e. Geant4.10.7., you might compare the MSC based simulation results with those obtained by the new (in 10.7.) G4eDPWACoulombScatteringModel single scattering model. This single scattering model is based on the most accurate available numerical differential Coulomb scattering cross sections (computed by using Dirac Partial Wave Analysis, using screening based on numerical electron densities computed from the Dirac-Fock model of the atom, applying exchange and correlation-polarization corrections on the top of the static-field approximation, including the finite nuclear size effects by using a Fermi charge distribution).

Therefore, if you want to obtain the most accurate e-/e+ angular distributions in your simulation by using an MSC model, I would suggest to try the G4EmStandardPhysics_option4 EM physics constructor and do not tune any of the MSC parameters. These will reproduce very well the angular distributions and results that you would obtain with the above mentioned, most accurate single scattering model.
However, if you want to study the effects of the different MSC corrections and MSC related simulation parameter values to the obtained angular distributions, then you need to study carefully the physics reference manual, release notes and make sure you fully understand the role of these parameters before setting them to a certain value.

Good luck!


I suggest to switch to Geant4 10.7, for the detailed reasons indicated below by Novak.

Thank you for a lot of advice!
I try to update and use the G4EmStandartPhysics_option4 model.
Thank you!

Thank you for advice!
Yes I am now trying to switch to Geant4.10.07.
Currently I just change the path of G4INSTALL and so on to Geant4.10.07,
and read
setenv CXX g++
setenv CPP "gcc -E"
setenv CC gcc
setenv PATH /usr/local/gcc-7.3.0/bin:/usr/local/cmake-3.18.1/bin:$PATH
setenv QTDIR /usr/local/geant4.10/qt-4.8.5
setenv QTINC /usr/local/geant4.10/qt-4.8.5/include
setenv QTLIB /usr/local/geant4.10/qt-4.8.5/lib

However maybe the compiler has changed since Geant4.10.03…
I receive a lot of error…

/usr/local/geant4.10/geant4.10.06.p02/lib64/Geant4-``10.6.2/Linuxg++/libG4physicslists.a( In function'G4HadronDElasticPhysics::ConstructProcess()':' undefined reference to 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const' undefined reference to 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const''

and so on…
I already confirmed the example code was working at geant410.07

I’m sorry if I made a mistake in the place to ask a question, but do you know any point to change the update for Geant4 based simulation software?

These errors indeed seem to indicate compiler version mismatch. Where do you get the Geant4 libraries from? If you download these from Geant4 download page, there is a README showing the version of compiler used, please compare with the version you use.