#include "physics.hh" #include "NeutronHPphysics.hh" #include "G4SystemOfUnits.hh" #include "G4UnitsTable.hh" // particles #include "G4BaryonConstructor.hh" #include "G4BosonConstructor.hh" #include "G4IonConstructor.hh" #include "G4LeptonConstructor.hh" #include "G4MesonConstructor.hh" #include "G4ShortLivedConstructor.hh" MyPhysicsList::MyPhysicsList() : G4VUserPhysicsList() { SetVerboseLevel(1); fEmPhysicsList = new G4EmStandardPhysics(); fOpticalPhysicsList = new G4OpticalPhysics(); //fHadronPhysicsList = new G4HadronPhysicsQGSP_BIC(); fDecayPhysicsList = new G4DecayPhysics(); fNeutronHPPhysics = new NeutronHPphysics("neutronHP"); fHadronShieldingPhysicsList = new G4HadronPhysicsShielding(); // register all physics lists RegisterPhysics(fEmPhysicsList); RegisterPhysics(fOpticalPhysicsList); //RegisterPhysics(fHadronPhysicsList); RegisterPhysics(fDecayPhysicsList); RegisterPhysics(fNeutronHPPhysics); RegisterPhysics(fHadronShieldingPhysicsList); } MyPhysicsList::~MyPhysicsList() { delete fEmPhysicsList; delete fOpticalPhysicsList; //delete fHadronPhysicsList; delete fDecayPhysicsList; delete fNeutronHPPhysics; delete fHadronShieldingPhysicsList; } void MyPhysicsList::SetCuts() { SetCutValue(0.0 * mm, "proton"); SetDefaultCutValue(1.0 * mm); } void MyPhysicsList::ConstructParticle() { //fEmPhysicsList->ConstructParticle(); //fHadronPhysicsList->ConstructParticle(); //fDecayPhysicsList->ConstructParticle(); //fNeutronHPPhysics->ConstructParticle(); //fHadronShieldingPhysicsList->ConstructParticle(); G4BosonConstructor pBosonConstructor; pBosonConstructor.ConstructParticle(); G4LeptonConstructor pLeptonConstructor; pLeptonConstructor.ConstructParticle(); G4MesonConstructor pMesonConstructor; pMesonConstructor.ConstructParticle(); G4BaryonConstructor pBaryonConstructor; pBaryonConstructor.ConstructParticle(); G4IonConstructor pIonConstructor; pIonConstructor.ConstructParticle(); G4ShortLivedConstructor pShortLivedConstructor; pShortLivedConstructor.ConstructParticle(); } void MyPhysicsList::ConstructProcess() { AddTransportation(); //fEmPhysicsList->ConstructProcess(); //fHadronPhysicsList->ConstructProcess(); //fDecayPhysicsList->ConstructProcess(); //fNeutronHPPhysics->ConstructProcess(); //fHadronShieldingPhysicsList->ConstructProcess(); }