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
00034
00035 virtual void ConstructParticle();
00036
00037
00038
00039
00040 virtual void ConstructProcess();
00041
00042 protected:
00043
00044 G4HadronElasticProcess theElasticProcess;
00045 G4LElastic* theElasticModel;
00046
00047
00048 G4MultipleScattering fIonMultipleScattering;
00049 G4ionIonisation fIonIonisation;
00050
00051
00052 G4MultipleScattering fDeuteronMultipleScattering;
00053 G4hIonisation fDeuteronIonisation;
00054 G4DeuteronInelasticProcess fDeuteronProcess;
00055 G4LEDeuteronInelastic* fDeuteronModel;
00056
00057
00058 G4MultipleScattering fTritonMultipleScattering;
00059 G4hIonisation fTritonIonisation;
00060 G4TritonInelasticProcess fTritonProcess;
00061 G4LETritonInelastic* fTritonModel;
00062
00063
00064 G4MultipleScattering fAlphaMultipleScattering;
00065 G4hIonisation fAlphaIonisation;
00066 G4AlphaInelasticProcess fAlphaProcess;
00067 G4LEAlphaInelastic* fAlphaModel;
00068
00069
00070 G4MultipleScattering fHe3MultipleScattering;
00071 G4hIonisation fHe3Ionisation;
00072
00073 };
00074
00075
00076 #endif
00077