Software design for Physics
The design of the Geant4-DNA software dedicated to the modeling of Physics interactions entirely follows the software design of the electromagnetic Physics developments of the Geant4 toolkit.
A physical interaction (for example electronic excitation) is described by a C++ process class. A single process can handle several models (such as theoretical, semi-empirical, …) which are registered to the process class. These models calculate the process cross section and describe the final state of the interaction (that is, production of secondary electrons, scattering angle...).
All Geant4-DNA process classes derive from the G4VEmProcess abstract base class, which derives from the G4VDiscreteProcess class, since all Geant4-DNA processes are discrete processes. They use the naming format: G4DNAXXX where XXX is the process name (e.g. G4DNAExcitation for electronic excitation induced by electrons). This is the name that is displayed when using the Geant4 User Interface command /tracking/verbose 1.
All Geant4-DNA model classes derive from the G4VEmModel abstract base class. They use the naming format: G4DNAYYYXXXModel, where YYY is the model name (for example G4DNABornExcitationModel for electronic excitation described by the "Born" model).
These classes are further detailed in the Processes section.