Implementing G4QMD physics model

I want to implement the G4QMD model in a modular physics list specifically in the hadrontherapy example. I would appreciate any help.

I found an implementation of the QMD model in the in geant4.10.02 but the Tripathi and Shen cross-sections seem to have been discontinued in geant4.11.

the simplest and recommended way to use G4QMD is via the physics constructor: G4IonQMDPhysics.
This is used, for instance, in the reference physics list Shielding.
If you want to use G4QMD in the hadrontherapy advanced example, you could modify the file:
src/, and create a “HADRONTHERAPY_3” which is identical to either “HADRONTHERAPY_1” or “HADRONTHERAPY_2” (depending on your preference), and replacing the line:
hadronPhys.push_back( new G4IonBinaryCascadePhysics());
hadronPhys.push_back( new G4IonQMDPhysics);

Best regards,


since Geant4 11.0, the Tripathi cross section has been removed, while the Shen is still there. However, we recommend - and use by default in reference physics lists and physics constructors - the Glauber-Gribov nucleus-nucleus cross section (described by the class G4ComponentGGNuclNuclXsc), which describes better the available cross section measurements.

Best regards,

Hi Alberto,
I really appreciate your detailed response. I was able to implement the constructor “G4IonQMDPhysics” by including the header file “G4IonQMDPhysics.hh”. I agree with you that the Shen cross-sections is still available in geant4.11. I have replaced the constructor “G4IonBinaryCascadePhysics” as you suggested but left “G4HadronPhysicsQGSP_BIC” in my list which looks like the following without any “HP models”:
hadronPhys.push_back( new G4DecayPhysics());
hadronPhys.push_back( new G4RadioactiveDecayPhysics());
hadronPhys.push_back( new G4IonQMDPhysics());
hadronPhys.push_back( new G4EmExtraPhysics());
hadronPhys.push_back( new G4HadronElasticPhysics());
hadronPhys.push_back( new G4StoppingPhysics());
hadronPhys.push_back( new G4HadronPhysicsQGSP_BIC());
hadronPhys.push_back( new G4NeutronTrackingCut());

It seems to be using the Glauber-Gribov cross-section. Please let me know if I could change anything to optimize my simulations with generic ions in the range 50-500 MeV/n.

Best regards,

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