File indexing completed on 2025-01-18 09:14:18
0001 #ifndef DDG4_PLUGINS_GEANT4_10_PHYSICSCONSTRUCTORS_H
0002 #define DDG4_PLUGINS_GEANT4_10_PHYSICSCONSTRUCTORS_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #include <G4EmStandardPhysics_option1.hh>
0019 DECLARE_GEANT4_PHYSICS(G4EmStandardPhysics_option1)
0020 #include <G4EmStandardPhysics_option2.hh>
0021 DECLARE_GEANT4_PHYSICS(G4EmStandardPhysics_option2)
0022 #include <G4EmStandardPhysics_option3.hh>
0023 DECLARE_GEANT4_PHYSICS(G4EmStandardPhysics_option3)
0024 #include <G4EmStandardPhysics.hh>
0025 DECLARE_GEANT4_PHYSICS(G4EmStandardPhysics)
0026 #include <G4EmStandardPhysicsSS.hh>
0027 DECLARE_GEANT4_PHYSICS(G4EmStandardPhysicsSS)
0028 #include <G4EmStandardPhysicsWVI.hh>
0029 DECLARE_GEANT4_PHYSICS(G4EmStandardPhysicsWVI)
0030 #include <G4EmExtraPhysics.hh>
0031 DECLARE_GEANT4_PHYSICS(G4EmExtraPhysics)
0032 #include <G4EmDNAPhysics.hh>
0033 DECLARE_GEANT4_PHYSICS(G4EmDNAPhysics)
0034 #include <G4EmLowEPPhysics.hh>
0035 DECLARE_GEANT4_PHYSICS(G4EmLowEPPhysics)
0036 #include <G4EmLivermorePhysics.hh>
0037 DECLARE_GEANT4_PHYSICS(G4EmLivermorePhysics)
0038 #include <G4ChargeExchangePhysics.hh>
0039 DECLARE_GEANT4_PHYSICS(G4ChargeExchangePhysics)
0040 #include <G4GenericBiasingPhysics.hh>
0041 DECLARE_GEANT4_PHYSICS(G4GenericBiasingPhysics)
0042
0043 #include <G4HadronDElasticPhysics.hh>
0044 DECLARE_GEANT4_PHYSICS(G4HadronDElasticPhysics)
0045 #include <G4HadronElasticPhysics.hh>
0046 DECLARE_GEANT4_PHYSICS(G4HadronElasticPhysics)
0047 #include <G4HadronElasticPhysicsHP.hh>
0048 DECLARE_GEANT4_PHYSICS(G4HadronElasticPhysicsHP)
0049 #include <G4HadronElasticPhysicsLEND.hh>
0050 DECLARE_GEANT4_PHYSICS(G4HadronElasticPhysicsLEND)
0051 #include <G4HadronElasticPhysicsPHP.hh>
0052 DECLARE_GEANT4_PHYSICS(G4HadronElasticPhysicsPHP)
0053 #include <G4HadronElasticPhysicsXS.hh>
0054 DECLARE_GEANT4_PHYSICS(G4HadronElasticPhysicsXS)
0055 #include <G4HadronHElasticPhysics.hh>
0056 DECLARE_GEANT4_PHYSICS(G4HadronHElasticPhysics)
0057 #include <G4HadronPhysicsFTF_BIC.hh>
0058 DECLARE_GEANT4_PHYSICS(G4HadronPhysicsFTF_BIC)
0059 #include <G4HadronPhysicsFTFP_BERT.hh>
0060 DECLARE_GEANT4_PHYSICS(G4HadronPhysicsFTFP_BERT)
0061 #include <G4HadronPhysicsFTFP_BERT_HP.hh>
0062 DECLARE_GEANT4_PHYSICS(G4HadronPhysicsFTFP_BERT_HP)
0063 #include <G4HadronPhysicsFTFP_BERT_TRV.hh>
0064 DECLARE_GEANT4_PHYSICS(G4HadronPhysicsFTFP_BERT_TRV)
0065 #include <G4HadronPhysicsINCLXX.hh>
0066 DECLARE_GEANT4_PHYSICS(G4HadronPhysicsINCLXX)
0067 #include <G4HadronPhysicsNuBeam.hh>
0068 DECLARE_GEANT4_PHYSICS(G4HadronPhysicsNuBeam)
0069 #include <G4HadronPhysicsQGS_BIC.hh>
0070 DECLARE_GEANT4_PHYSICS(G4HadronPhysicsQGS_BIC)
0071 #include <G4HadronPhysicsQGSP_BERT.hh>
0072 DECLARE_GEANT4_PHYSICS(G4HadronPhysicsQGSP_BERT)
0073 #include <G4HadronPhysicsQGSP_BERT_HP.hh>
0074 DECLARE_GEANT4_PHYSICS(G4HadronPhysicsQGSP_BERT_HP)
0075 #include <G4HadronPhysicsQGSP_BIC_AllHP.hh>
0076 DECLARE_GEANT4_PHYSICS(G4HadronPhysicsQGSP_BIC_AllHP)
0077 #include <G4HadronPhysicsQGSP_FTFP_BERT.hh>
0078 DECLARE_GEANT4_PHYSICS(G4HadronPhysicsQGSP_FTFP_BERT)
0079 #include <G4HadronPhysicsShielding.hh>
0080 DECLARE_GEANT4_PHYSICS(G4HadronPhysicsShielding)
0081
0082
0083
0084 #include <G4IonBinaryCascadePhysics.hh>
0085 DECLARE_GEANT4_PHYSICS(G4IonBinaryCascadePhysics)
0086 #include <G4IonElasticPhysics.hh>
0087 DECLARE_GEANT4_PHYSICS(G4IonElasticPhysics)
0088
0089 #include <G4IonINCLXXPhysics.hh>
0090 DECLARE_GEANT4_PHYSICS(G4IonINCLXXPhysics)
0091 #include <G4IonPhysics.hh>
0092 DECLARE_GEANT4_PHYSICS(G4IonPhysics)
0093 #include <G4IonQMDPhysics.hh>
0094 DECLARE_GEANT4_PHYSICS(G4IonQMDPhysics)
0095
0096 #include <G4RadioactiveDecayPhysics.hh>
0097 DECLARE_GEANT4_PHYSICS(G4RadioactiveDecayPhysics)
0098 #include <G4StepLimiterPhysics.hh>
0099 DECLARE_GEANT4_PHYSICS(G4StepLimiterPhysics)
0100 #include <G4StoppingPhysics.hh>
0101 DECLARE_GEANT4_PHYSICS(G4StoppingPhysics)
0102
0103 #include <G4NeutronTrackingCut.hh>
0104 DECLARE_GEANT4_PHYSICS(G4NeutronTrackingCut)
0105
0106
0107 #include <G4OpticalPhysics.hh>
0108 DECLARE_GEANT4_PHYSICS(G4OpticalPhysics)
0109
0110
0111 #include <G4FastSimulationPhysics.hh>
0112 DECLARE_GEANT4_PHYSICS(G4FastSimulationPhysics)
0113
0114
0115 #include <G4Channeling.hh>
0116 #include <G4ProcessManager.hh>
0117 namespace {
0118
0119
0120
0121
0122
0123
0124
0125 class Geant4ChannelingPhysics : public G4VPhysicsConstructor {
0126 public:
0127 Geant4ChannelingPhysics() = default;
0128 virtual ~Geant4ChannelingPhysics() = default;
0129 virtual void ConstructParticle() {}
0130 virtual void ConstructProcess() {
0131 G4Channeling* channeling = new G4Channeling();
0132 auto* iter = G4ParticleTable::GetParticleTable()->GetIterator();
0133 iter->reset();
0134
0135 while( (*iter)() ){
0136 G4ParticleDefinition* p = iter->value();
0137 G4double charge = p->GetPDGCharge();
0138 if (charge != 0) {
0139 G4ProcessManager* m = p->GetProcessManager();
0140 m->AddDiscreteProcess(channeling);
0141 }
0142 }
0143 }
0144 };
0145 }
0146 DECLARE_GEANT4_PHYSICS(Geant4ChannelingPhysics)
0147
0148 #endif