00001 00002 #ifndef BesIonPhysics_h 00003 #define BesIonPhysics_h 1 00004 00005 #include "globals.hh" 00006 #include "G4ios.hh" 00007 00008 #include "G4VPhysicsConstructor.hh" 00009 00010 #include "G4HadronElasticProcess.hh" 00011 #include "G4LElastic.hh" 00012 00013 #include "G4DeuteronInelasticProcess.hh" 00014 #include "G4LEDeuteronInelastic.hh" 00015 00016 #include "G4TritonInelasticProcess.hh" 00017 #include "G4LETritonInelastic.hh" 00018 00019 #include "G4AlphaInelasticProcess.hh" 00020 #include "G4LEAlphaInelastic.hh" 00021 00022 #include "G4hIonisation.hh" 00023 #include "G4ionIonisation.hh" 00024 #include "G4MultipleScattering.hh" 00025 00026 class BesIonPhysics : public G4VPhysicsConstructor 00027 { 00028 public: 00029 BesIonPhysics(const G4String& name="ion"); 00030 virtual ~BesIonPhysics(); 00031 00032 public: 00033 // This method will be invoked in the Construct() method. 00034 // each particle type will be instantiated 00035 virtual void ConstructParticle(); 00036 00037 // This method will be invoked in the Construct() method. 00038 // each physics process will be instantiated and 00039 // registered to the process manager of each particle type 00040 virtual void ConstructProcess(); 00041 00042 protected: 00043 // Elastic Process 00044 G4HadronElasticProcess theElasticProcess; 00045 G4LElastic* theElasticModel; 00046 00047 // Generic Ion physics 00048 G4MultipleScattering fIonMultipleScattering; 00049 G4ionIonisation fIonIonisation; 00050 00051 // Deuteron physics 00052 G4MultipleScattering fDeuteronMultipleScattering; 00053 G4hIonisation fDeuteronIonisation; 00054 G4DeuteronInelasticProcess fDeuteronProcess; 00055 G4LEDeuteronInelastic* fDeuteronModel; 00056 00057 // Triton physics 00058 G4MultipleScattering fTritonMultipleScattering; 00059 G4hIonisation fTritonIonisation; 00060 G4TritonInelasticProcess fTritonProcess; 00061 G4LETritonInelastic* fTritonModel; 00062 00063 // Alpha physics 00064 G4MultipleScattering fAlphaMultipleScattering; 00065 G4hIonisation fAlphaIonisation; 00066 G4AlphaInelasticProcess fAlphaProcess; 00067 G4LEAlphaInelastic* fAlphaModel; 00068 00069 // He3 physics 00070 G4MultipleScattering fHe3MultipleScattering; 00071 G4hIonisation fHe3Ionisation; 00072 00073 }; 00074 00075 00076 #endif 00077