Back to home page

EIC code displayed by LXR

 
 

    


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 //  AIDA Detector description implementation
0006 //--------------------------------------------------------------------------
0007 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
0008 // All rights reserved.
0009 //
0010 // For the licensing terms see $DD4hepINSTALL/LICENSE.
0011 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
0012 //
0013 // Author     : M.Frank
0014 //
0015 //==========================================================================
0016 
0017 // EM physics
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 // Ion and hadrons
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 // Optical physics
0107 #include <G4OpticalPhysics.hh>
0108 DECLARE_GEANT4_PHYSICS(G4OpticalPhysics)
0109 
0110 // Fast simulation
0111 #include <G4FastSimulationPhysics.hh>
0112 DECLARE_GEANT4_PHYSICS(G4FastSimulationPhysics)
0113 
0114 // Channeling physics 
0115 #include <G4Channeling.hh>
0116 #include <G4ProcessManager.hh>
0117 namespace {
0118 
0119   /// Channeling physics 
0120   /** Channeling physicsconstructor
0121    *  (taken from <Geant4>examples/extended/exoticphysics/channeling)
0122    *  \author  M.Frank
0123    *  \version 1.0
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