1 #ifndef larsim_LegacyLArG4_CustomPhysicsBuiltIns_hh
2 #define larsim_LegacyLArG4_CustomPhysicsBuiltIns_hh
14 #include "Geant4/G4ChargeExchangePhysics.hh"
15 #include "Geant4/G4DecayPhysics.hh"
16 #include "Geant4/G4EmExtraPhysics.hh"
17 #include "Geant4/G4EmLivermorePhysics.hh"
18 #include "Geant4/G4EmStandardPhysics.hh"
19 #include "Geant4/G4HadronElasticPhysics.hh"
20 #include "Geant4/G4HadronElasticPhysicsHP.hh"
21 #include "Geant4/G4HadronElasticPhysicsPHP.hh"
22 #include "Geant4/G4HadronPhysicsQGSP_BERT.hh"
23 #include "Geant4/G4HadronPhysicsQGSP_BERT_HP.hh"
24 #include "Geant4/G4IonPhysics.hh"
25 #include "Geant4/G4NeutronTrackingCut.hh"
26 #include "Geant4/G4StoppingPhysics.hh"
32 G4VPhysicsConstructor*
35 return new G4EmStandardPhysics(0);
39 G4VPhysicsConstructor*
42 return new G4EmExtraPhysics(
"extra EM");
46 G4VPhysicsConstructor*
49 return new G4ChargeExchangePhysics(2);
53 G4VPhysicsConstructor*
56 return new G4DecayPhysics(
"Decay", 0);
61 G4VPhysicsConstructor*
64 return new G4HadronElasticPhysics(0);
69 G4VPhysicsConstructor*
72 return new G4HadronElasticPhysicsHP(0);
77 G4VPhysicsConstructor*
80 return new G4HadronElasticPhysicsPHP(0);
85 G4VPhysicsConstructor*
88 constexpr G4bool quasiElastic{
true};
89 return new G4HadronPhysicsQGSP_BERT(
"hadron", quasiElastic);
94 G4VPhysicsConstructor*
97 return new G4HadronPhysicsQGSP_BERT_HP(
"hadronHP",
true);
101 G4VPhysicsConstructor*
104 return new G4StoppingPhysics(
"stopping");
108 G4VPhysicsConstructor*
111 return new G4IonPhysics(
"ion");
115 G4VPhysicsConstructor*
118 return new G4NeutronTrackingCut(
"Neutron tracking cut", 0);
G4VPhysicsConstructor * Build() const