00001 00002 #ifndef BesEMPhysics_h 00003 #define BesEMPhysics_h 1 00004 00005 #include "globals.hh" 00006 #include "G4ios.hh" 00007 00008 #include "G4VPhysicsConstructor.hh" 00009 00010 #include "G4PhotoElectricEffect.hh" 00011 #include "G4ComptonScattering.hh" 00012 #include "G4GammaConversion.hh" 00013 #include "G4MultipleScattering.hh" 00014 #include "G4eIonisation.hh" 00015 #include "G4eBremsstrahlung.hh" 00016 #include "G4eplusAnnihilation.hh" 00017 00018 class BesEMPhysics : public G4VPhysicsConstructor 00019 { 00020 public: 00021 BesEMPhysics(const G4String& name ="EM"); 00022 virtual ~BesEMPhysics(); 00023 00024 public: 00025 // This method will be invoked in the Construct() method. 00026 // each particle type will be instantiated 00027 virtual void ConstructParticle(); 00028 00029 // This method will be invoked in the Construct() method. 00030 // each physics process will be instantiated and 00031 // registered to the process manager of each particle type 00032 virtual void ConstructProcess(); 00033 00034 protected: 00035 // Gamma physics 00036 G4PhotoElectricEffect thePhotoEffect; 00037 G4ComptonScattering theComptonEffect; 00038 G4GammaConversion thePairProduction; 00039 00040 // Electron physics 00041 G4MultipleScattering theElectronMultipleScattering; 00042 G4eIonisation theElectronIonisation; 00043 G4eBremsstrahlung theElectronBremsStrahlung; 00044 00045 //Positron physics 00046 G4MultipleScattering thePositronMultipleScattering; 00047 G4eIonisation thePositronIonisation; 00048 G4eBremsstrahlung thePositronBremsStrahlung; 00049 G4eplusAnnihilation theAnnihilation; 00050 }; 00051 00052 00053 #endif 00054 00055 00056 00057 00058