Is there a place where non-retrocompatibilities of code are specified?


I had to work with some simulation code that was written 2 years ago. It does not run with newer versions of Geant 4, and it took a while to make it work.

For example, keywords that define optical properties have changed since version 10.7 ( “FASTCOMPONENT” became “SCINTILLATIONCOMPONENT1”, etc ).

Is there any guideline about how to migrate codes after each major release? I would save time of many people.

Thank you for your time,

The Release Notes (also online on the Download Page for each release) should cover the majority of these under the “Items for migration of the user code” sections.

Dear Ben,

I checked the release notes, and in particular regarding the optical module I mentioned. In v10.7 release notes I found only this:

Proposal is to create new names SCINTILLATIONTIMECONSTANT1/2/3 and the same for other parameters. The existing names are kept for backwards compatibility, with the idea to remove them in the next major release. There is a flag in G4Scintillation, with messenger command in the OpticalPhysics list, to use the new method: /process/optical/scintillation/setEnhancedTimeConstants true. Results are unchanged if using same values. Allow specifying SCINTILLATIONYIELD only (not requiring SCINTILLATIONYIELD1) when only one scintillation channel is present. Same for particle specific yields. Set verbosity levels correctly.


It’s possible that something was missed in preparing the Release Notes, apologies if so. If the issue is primarily with the optical physics parameters, it’s probably best to ask directly under the Physics Processes/Models category for the exact steps/changes needed.

Thanks for your kind answer.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.