Physics model list

Hi everyone
I would like to ask if I use the physics list below:
emPhysicsList = new G4EmStandardPhysics_option3();
hadronPhys.push_back( new G4HadronPhysicsQGSP_BIC_HP());
hadronPhys.push_back( new G4EmExtraPhysics());
hadronPhys.push_back( new G4HadronElasticPhysicsHP());
hadronPhys.push_back( new G4StoppingPhysics());
hadronPhys.push_back( new G4IonBinaryCascadePhysics());
hadronPhys.push_back( new G4IonElasticPhysics());
What type of physics model is it? is it QGSP_BIC_HP_EMY or QGSP_BIC_EMY?
Cheers

If you add the G4DecayPhysics and the G4RadioactiveDecayPhysics, it is the same of QGSP_BIC_HP_EMY. You can use the constructor IonPhysics to substitute G4IonBinaryCascadePhysics. I checked this in Geant4 10.7.

Thank you so much for your answer Dr. Guatelli,
I have add your suggestions to my physics model as below:
else if (name == “QGSP_BIC_HP_EMY”)
{
G4cout << “BIC being used” << G4endl;
emName = name;
delete emPhysicsList;
emPhysicsList = new G4EmStandardPhysics_option3();
G4RunManager::GetRunManager() → PhysicsHasBeenModified();
hadronPhys.push_back( new G4DecayPhysics());
hadronPhys.push_back( new G4RadioactiveDecayPhysics());
hadronPhys.push_back( new G4HadronPhysicsQGSP_BIC_HP());
hadronPhys.push_back( new G4EmExtraPhysics());
hadronPhys.push_back( new G4HadronElasticPhysicsHP());
hadronPhys.push_back( new G4StoppingPhysics());
hadronPhys.push_back( new G4IonPhysics());
hadronPhys.push_back( new G4IonElasticPhysics());
}
am I writing it correct and make it as QGSP_BIC_HP_EMY ?

yes, it should be. But why don’t you use directly the pre-built physics list of Geant4?

one more question Dr, how if I simply changes in that physics list from “G4EmStandardPhysics_option3();” to “G4EmStandardPhysics_option4();”? does it mean the physics model changes from QGSP_BIC_HP_EMY to QGSP_BIC_HP_EMZ?

For the use directly pre-built physics list, I try to #include “G4HadronPhysicsQGSP_BIC_HP_EMY.hh”
but its error when compile with following message:
fatal error: G4HadronPhysicsQGSP_BIC_HP_EMY.hh: No such file or directory
68 | #include “G4HadronPhysicsQGSP_BIC_HP_EMY.hh”
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

yes. However, if I remember correctly, since Geant4 10.6 opt4 is the default EM constructor for QGSP_BIC_HP. So you can directly use that physics list: QGSP_BIC_HP as long as you use a versio n of Geant4 from 10.6 onwards. Now I can’t remember if this was changed in 10.5 or 10.6. sorry. but you can check directly in the physics list.

I see.
Thank you so much for your answer Dr.
It’s really helpful.
Cheers

First, the different EM options are not handled with separate .hh files. You can use G4PhysListFactory to fetch a physics list with the EM option suffix.

Second, what you’ve cited above is not a physics list. The things which start “G4HadronPhysicsXXX” are physics “constructors”, or pieces of physics lists, which can be used to build up your own custom physics list. In this case, you’d register G4HadronPhysicsQGSP_BIC_HP into your private physics list, and then you’d register G4EmStandardPhysics_option4, if that’s what you want.

1 Like

Thank you so much for your answer Dr. Kelsey.
It does work fine now.
Cheers