00001 // 00002 // ******************************************************************** 00003 // * DISCLAIMER * 00004 // * * 00005 // * The following disclaimer summarizes all the specific disclaimers * 00006 // * of contributors to this software. The specific disclaimers,which * 00007 // * govern, are listed with their locations in: * 00008 // * http://cern.ch/geant4/license * 00009 // * * 00010 // * Neither the authors of this software system, nor their employing * 00011 // * institutes,nor the agencies providing financial support for this * 00012 // * work make any representation or warranty, express or implied, * 00013 // * regarding this software system or assume any liability for its * 00014 // * use. * 00015 // * * 00016 // * This code implementation is the intellectual property of the * 00017 // * GEANT4 collaboration. * 00018 // * By copying, distributing or modifying the Program (or any work * 00019 // * based on the Program) you indicate your acceptance of this * 00020 // * statement, and all its terms. * 00021 // ******************************************************************** 00022 // 00023 // 00024 // $Id: ExN04IonPhysics.hh,v 1.1.1.1 2004/09/28 05:16:53 liwd Exp $ 00025 // GEANT4 tag $Name: G4Svc-00-01-52 $ 00026 // 00027 // 00028 // ------------------------------------------------------------ 00029 // GEANT 4 class header file 00030 // Class Description: 00031 // This class is an derived class of G4VPhysicsConstructor 00032 // 00033 // ------------------------------------------- 00034 // History 00035 // first version 12 Nov. 2000 by H.Kurashige 00036 // ------------------------------------------------------------ 00037 #ifndef ExN04IonPhysics_h 00038 #define ExN04IonPhysics_h 1 00039 00040 #include "globals.hh" 00041 #include "G4ios.hh" 00042 00043 #include "G4VPhysicsConstructor.hh" 00044 00045 #include "G4HadronElasticProcess.hh" 00046 #include "G4LElastic.hh" 00047 00048 #include "G4DeuteronInelasticProcess.hh" 00049 #include "G4LEDeuteronInelastic.hh" 00050 00051 #include "G4TritonInelasticProcess.hh" 00052 #include "G4LETritonInelastic.hh" 00053 00054 #include "G4AlphaInelasticProcess.hh" 00055 #include "G4LEAlphaInelastic.hh" 00056 00057 #include "G4hIonisation.hh" 00058 #include "G4MultipleScattering.hh" 00059 00060 class ExN04IonPhysics : public G4VPhysicsConstructor 00061 { 00062 public: 00063 ExN04IonPhysics(const G4String& name="ion"); 00064 virtual ~ExN04IonPhysics(); 00065 00066 public: 00067 // This method will be invoked in the Construct() method. 00068 // each particle type will be instantiated 00069 virtual void ConstructParticle(); 00070 00071 // This method will be invoked in the Construct() method. 00072 // each physics process will be instantiated and 00073 // registered to the process manager of each particle type 00074 virtual void ConstructProcess(); 00075 00076 protected: 00077 // Elastic Process 00078 G4HadronElasticProcess theElasticProcess; 00079 G4LElastic* theElasticModel; 00080 00081 // Generic Ion physics 00082 G4MultipleScattering fIonMultipleScattering; 00083 G4hIonisation fIonIonisation; 00084 00085 // Deuteron physics 00086 G4MultipleScattering fDeuteronMultipleScattering; 00087 G4hIonisation fDeuteronIonisation; 00088 G4DeuteronInelasticProcess fDeuteronProcess; 00089 G4LEDeuteronInelastic* fDeuteronModel; 00090 00091 // Triton physics 00092 G4MultipleScattering fTritonMultipleScattering; 00093 G4hIonisation fTritonIonisation; 00094 G4TritonInelasticProcess fTritonProcess; 00095 G4LETritonInelastic* fTritonModel; 00096 00097 // Alpha physics 00098 G4MultipleScattering fAlphaMultipleScattering; 00099 G4hIonisation fAlphaIonisation; 00100 G4AlphaInelasticProcess fAlphaProcess; 00101 G4LEAlphaInelastic* fAlphaModel; 00102 00103 // He3 physics 00104 G4MultipleScattering fHe3MultipleScattering; 00105 G4hIonisation fHe3Ionisation; 00106 00107 }; 00108 00109 00110 #endif 00111