00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include "G4DNAGenericIonsManager.hh"
00029 #include "G4PhysicalConstants.hh"
00030 #include "G4SystemOfUnits.hh"
00031 #include "G4Alpha.hh"
00032 #include "G4Ions.hh"
00033
00034
00035
00036 G4DNAGenericIonsManager * G4DNAGenericIonsManager :: Instance(void)
00037 {
00038 if (!theInstance)
00039 theInstance=new G4DNAGenericIonsManager;
00040
00041 return theInstance;
00042 }
00043
00044
00045
00046 G4ParticleDefinition * G4DNAGenericIonsManager :: GetIon(const G4String & name)
00047 {
00048 IonsMap::const_iterator i(map.find(name));
00049
00050 if (i==map.end())
00051 return 0;
00052
00053 return i->second;
00054 }
00055
00056
00057
00058 G4DNAGenericIonsManager :: G4DNAGenericIonsManager()
00059 {
00060
00061
00062
00063
00064
00065
00066
00067
00068 G4Ions *helium;
00069 G4Ions *hydrogen;
00070 G4Ions *alphaPlus;
00071 G4Ions *positronium1s;
00072 G4Ions *positronium2s;
00073
00074 G4Ions *carbon;
00075 G4Ions *nitrogen;
00076 G4Ions *oxygen;
00077 G4Ions *iron;
00078
00079 iron= new G4Ions(
00080 "iron", 52.5672*GeV, 0.0*MeV, +26.0*eplus,
00081 0, +1, 0,
00082 0, 0, 0,
00083 "nucleus", +26, +56, 0,
00084 true, -1.0, 0,
00085 false, "", 0,
00086 0.0);
00087
00088 oxygen= new G4Ions(
00089 "oxygen", 15.0074*GeV, 0.0*MeV, +8.0*eplus,
00090 0, +1, 0,
00091 0, 0, 0,
00092 "nucleus", +8, +16, 0,
00093 true, -1.0, 0,
00094 false, "", 0,
00095 0.0);
00096
00097
00098 nitrogen= new G4Ions(
00099 "nitrogen", 13.132*GeV, 0.0*MeV, +7.0*eplus,
00100 0, +1, 0,
00101 0, 0, 0,
00102 "nucleus", +7, +14, 0,
00103 true, -1.0, 0,
00104 false, "", 0,
00105 0.0);
00106
00107 carbon= new G4Ions(
00108 "carbon", 11.267025440*GeV, 0.0*MeV, +6.0*eplus,
00109 0, +1, 0,
00110 0, 0, 0,
00111 "nucleus", +6, +12, 0,
00112 true, -1.0, 0,
00113 false, "", 0,
00114 0.0);
00115
00116 helium= new G4Ions(
00117 "helium", 3.727417*GeV, 0.0*MeV, +0.0*eplus,
00118 0, +1, 0,
00119 0, 0, 0,
00120 "nucleus", +2, +4, 0,
00121 true, -1.0, 0,
00122 false, "", 0,
00123 0.0);
00124
00125 alphaPlus= new G4Ions("alpha+", 3.727417*GeV, 0.0*MeV, +1.0*eplus,
00126 1, +1, 0,
00127 0, 0, 0,
00128 "nucleus", +1, +4, 0,
00129 true, -1.0, 0, false,
00130 "", 0, 0.0);
00131
00132 hydrogen= new G4Ions("hydrogen", 0.9382723*GeV, 0.0*MeV, +0.0*eplus,
00133 0, +1, 0,
00134 0, 0, 0,
00135 "nucleus", +1, +1, 0,
00136 true, -1.0, 0, false,
00137 "", 0, 0.0);
00138
00139 positronium1s= new G4Ions("Ps-1s", 2*electron_mass_c2, 0.0*MeV, +0.0*eplus,
00140 0, 0, 0,
00141 0, 0, 0,
00142 "nucleus", 0, 0, 0,
00143 true, -1.0, 0, false,
00144 "", 0, 0.0);
00145
00146 positronium2s= new G4Ions("Ps-2s", 2*electron_mass_c2, 0.0*MeV, +0.0*eplus,
00147 0, 0, 0,
00148 0, 0, 0,
00149 "nucleus", 0, 0, 0,
00150 true, -1.0, 0, false,
00151 "", 0, 0.0);
00152
00153
00154 map["helium" ]=helium;
00155 map["hydrogen"]=hydrogen;
00156 map["alpha+" ]=alphaPlus;
00157 map["alpha++" ]=G4Alpha::Alpha();
00158 map["Ps-1s" ]=positronium1s;
00159 map["Ps-2s" ]=positronium2s;
00160 map["carbon" ]=carbon;
00161 map["nitrogen"]=nitrogen;
00162 map["oxygen" ]=oxygen;
00163 map["iron" ]=iron;
00164
00165
00166 }
00167
00168
00169
00170 G4DNAGenericIonsManager * G4DNAGenericIonsManager::theInstance(0);
00171