Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // 27 /// \file G4EmDNAChemistry_option3_Extended.cc 28 /// \brief Implementation of the G4EmDNAChemis 29 30 #include "G4EmDNAChemistry_option3_Extended.hh 31 32 #include "G4DNAMolecule.hh" 33 #include "G4MoleculeTable.hh" 34 35 // particles 36 #include "G4H2O.hh" 37 #include "G4H2.hh" 38 #include "G4Hydrogen.hh" 39 #include "G4OH.hh" 40 #include "G4H3O.hh" 41 #include "G4Electron_aq.hh" 42 43 #include "G4H2O2.hh" 44 #include "G4O2.hh" 45 #include "G4HO2.hh" 46 47 #include "G4PhysicalConstants.hh" 48 #include "G4SystemOfUnits.hh" 49 #include "G4DNAIndependentReactionTimeModel.hh 50 #include "G4DNAMolecularReactionTable.hh" 51 52 #include "G4ChemicalMoleculeFinder.hh" 53 // factory 54 #include "G4PhysicsConstructorFactory.hh" 55 56 G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAChemistry 57 58 void G4EmDNAChemistry_option3_Extended::Constr 59 { 60 ConstructMolecule(); //from G4EmDNAChemist 61 //dna molecules 62 G4Deoxyribose::Definition(); 63 G4Phosphate::Definition(); 64 G4Adenine::Definition(); 65 G4Guanine::Definition(); 66 G4Thymine::Definition(); 67 G4Cytosine::Definition(); 68 G4Histone::Definition(); 69 //damaged molecules 70 G4DamagedDeoxyribose::Definition(); 71 G4DamagedAdenine::Definition(); 72 G4DamagedGuanine::Definition(); 73 G4DamagedThymine::Definition(); 74 G4DamagedCytosine::Definition(); 75 G4ModifiedHistone::Definition(); 76 //________________DNA_____________________ 77 auto table = G4MoleculeTable::Instance(); 78 table->CreateConfiguration("Deoxyribose",G 79 table->CreateConfiguration("Phosphate",G4P 80 table->CreateConfiguration("Adenine",G4Ade 81 table->CreateConfiguration("Thymine",G4Thy 82 table->CreateConfiguration("Guanine",G4Gua 83 table->CreateConfiguration("Cytosine",G4Cy 84 table->CreateConfiguration("Histone",G4His 85 86 //damaged DNAElement Configuration 87 88 table->CreateConfiguration("Damaged_Deoxyr 89 G4DamagedDeoxyribose::Definition()); 90 table->CreateConfiguration("Damaged_Adenin 91 G4DamagedAdenine::Definition()); 92 table->CreateConfiguration("Damaged_Thymin 93 G4DamagedThymine::Definition()); 94 table->CreateConfiguration("Damaged_Guanin 95 G4DamagedGuanine::Definition()); 96 table->CreateConfiguration("Damaged_Cytosi 97 G4DamagedCytosine::Definition()); 98 } 99 100 //....oooOO0OOooo........oooOO0OOooo........oo 101 102 void G4EmDNAChemistry_option3_Extended::Constr 103 G4DNAMolecularReactionTable* theReactionTa 104 { 105 G4EmDNAChemistry_option3::ConstructReactio 106 107 //Get the molecular configuration 108 auto table = G4MoleculeTable::Instance(); 109 G4MolecularConfiguration* OH = table->GetC 110 G4MolecularConfiguration* OHm = table->Get 111 G4MolecularConfiguration* e_aq = table->Ge 112 G4MolecularConfiguration* H2 = table->GetC 113 G4MolecularConfiguration* H3Op = table->Ge 114 G4MolecularConfiguration* H = table->GetCo 115 G4MolecularConfiguration* H2O2 = table->Ge 116 117 // DNA additions-------------------------- 118 G4MolecularConfiguration* deoxyribose = ta 119 G4MolecularConfiguration* adenine = table- 120 G4MolecularConfiguration* guanine = table- 121 G4MolecularConfiguration* thymine = table- 122 G4MolecularConfiguration* cytosine = table 123 G4MolecularConfiguration* histone = table- 124 125 G4MolecularConfiguration* damage_deoxyribo 126 G4MolecularConfiguration* damage_adenine = 127 G4MolecularConfiguration* damage_guanine = 128 G4MolecularConfiguration* damage_thymine = 129 G4MolecularConfiguration* damage_cytosine 130 131 132 // OH and DNA 133 134 // 2-Deoxyribose + OH -> damagedDeoxyribos 135 G4DNAMolecularReactionData* reactionData = 136 1.80e9*(1e-3*m3/(mole*s)), deoxyribose, OH 137 reactionData->AddProduct(damage_deoxyribos 138 reactionData->SetReactionType(1); 139 theReactionTable->SetReaction(reactionData 140 141 // adenine + OH -> ... 142 reactionData = new G4DNAMolecularReactionD 143 6.10e9*(1e-3*m3/(mole*s)), adenine, OH); 144 reactionData->AddProduct(damage_adenine); 145 reactionData->SetReactionType(1); 146 theReactionTable->SetReaction(reactionData 147 148 // guanine + OH -> ... 149 reactionData = new G4DNAMolecularReactionD 150 9.20e9*(1e-3*m3/(mole*s)), guanine, OH); 151 reactionData->AddProduct(damage_guanine); 152 reactionData->SetReactionType(1); 153 theReactionTable->SetReaction(reactionData 154 155 // thymine + OH -> ... 156 reactionData = new G4DNAMolecularReactionD 157 6.40e9*(1e-3*m3/(mole*s)), thymine, OH); 158 reactionData->AddProduct(damage_thymine); 159 reactionData->SetReactionType(1); 160 theReactionTable->SetReaction(reactionData 161 162 // cytosine + OH -> ... 163 reactionData = new G4DNAMolecularReactionD 164 6.10e9*(1e-3*m3/(mole*s)), cytosine, OH); 165 reactionData->AddProduct(damage_cytosine); 166 reactionData->SetReactionType(1); 167 theReactionTable->SetReaction(reactionData 168 169 // Hydrated e- and DNA 170 171 // Deoxyribose + Hydrated e- -> ... 172 reactionData = new G4DNAMolecularReactionD 173 0.01e9*(1e-3*m3/(mole*s)), deoxyribose, e_ 174 reactionData->AddProduct(damage_deoxyribos 175 reactionData->SetReactionType(1); 176 theReactionTable->SetReaction(reactionData 177 178 // adenine + Hydrated e- -> ... 179 reactionData = new G4DNAMolecularReactionD 180 9e9*(1e-3*m3/(mole*s)), adenine, e_aq); 181 reactionData->AddProduct(damage_adenine); 182 reactionData->SetReactionType(1); 183 theReactionTable->SetReaction(reactionData 184 185 // guanine + Hydrated e- -> ... 186 reactionData = new G4DNAMolecularReactionD 187 14e9*(1e-3*m3/(mole*s)), guanine, e_aq); 188 reactionData->AddProduct(damage_guanine); 189 reactionData->SetReactionType(1); 190 theReactionTable->SetReaction(reactionData 191 192 // thymine + Hydrated e- -> ... 193 reactionData = new G4DNAMolecularReactionD 194 18e9*(1e-3*m3/(mole*s)), thymine, e_aq); 195 reactionData->AddProduct(damage_thymine); 196 reactionData->SetReactionType(1); 197 theReactionTable->SetReaction(reactionData 198 199 // cytosine + Hydrated e- -> ... 200 reactionData = new G4DNAMolecularReactionD 201 13e9*(1e-3*m3/(mole*s)), cytosine, e_aq); 202 reactionData->AddProduct(damage_cytosine); 203 reactionData->SetReactionType(1); 204 theReactionTable->SetReaction(reactionData 205 206 // Radical H and DNA 207 208 // Deoxyribose + Radical H -> ... 209 reactionData = new G4DNAMolecularReactionD 210 0.029e9*(1e-3*m3/(mole*s)), deoxyribose, H 211 reactionData->AddProduct(damage_deoxyribos 212 reactionData->SetReactionType(1); 213 theReactionTable->SetReaction(reactionData 214 215 // adenine + Radical H -> ... 216 reactionData = new G4DNAMolecularReactionD 217 0.10e9*(1e-3*m3/(mole*s)), adenine, H); 218 reactionData->AddProduct(damage_adenine); 219 reactionData->SetReactionType(1); 220 theReactionTable->SetReaction(reactionData 221 222 // thymine + Radical H -> ... 223 reactionData = new G4DNAMolecularReactionD 224 0.57e9*(1e-3*m3/(mole*s)), thymine, H); 225 reactionData->AddProduct(damage_thymine); 226 reactionData->SetReactionType(1); 227 theReactionTable->SetReaction(reactionData 228 229 // cytosine + Radical H -> ... 230 reactionData = new G4DNAMolecularReactionD 231 0.092e9*(1e-3*m3/(mole*s)), cytosine, H); 232 reactionData->AddProduct(damage_cytosine); 233 reactionData->SetReactionType(1); 234 theReactionTable->SetReaction(reactionData 235 236 //histone + all molecules -> modification( 237 238 reactionData = new G4DNAMolecularReactionD 239 0.0*(1e-3*m3/(mole*s)), histone, OH); 240 reactionData->AddProduct(histone); 241 reactionData->SetEffectiveReactionRadius( 242 2.4*nm + G4OH::Definition()->GetVanDerVaal 243 reactionData->SetReactionType(1); 244 theReactionTable->SetReaction(reactionData 245 246 reactionData = new G4DNAMolecularReactionD 247 0.0*(1e-3*m3/(mole*s)), histone, OHm); 248 reactionData->AddProduct(histone); 249 reactionData->SetEffectiveReactionRadius( 250 2.4*nm + G4OH::Definition()->GetVanDerVaal 251 reactionData->SetReactionType(1); 252 theReactionTable->SetReaction(reactionData 253 254 reactionData = new G4DNAMolecularReactionD 255 0.0*(1e-3*m3/(mole*s)), histone, e_aq); 256 reactionData->AddProduct(histone); 257 reactionData->SetEffectiveReactionRadius( 258 2.4*nm + G4Electron_aq::Definition()->GetV 259 reactionData->SetReactionType(1); 260 theReactionTable->SetReaction(reactionData 261 262 reactionData = new G4DNAMolecularReactionD 263 0.0*(1e-3*m3/(mole*s)), histone, H2); 264 reactionData->AddProduct(histone); 265 reactionData->SetEffectiveReactionRadius( 266 2.4*nm + G4H2::Definition()->GetVanDerVaal 267 reactionData->SetReactionType(1); 268 theReactionTable->SetReaction(reactionData 269 270 reactionData = new G4DNAMolecularReactionD 271 0.0*(1e-3*m3/(mole*s)), histone, H3Op); 272 reactionData->AddProduct(histone); 273 reactionData->SetEffectiveReactionRadius( 274 2.4*nm + G4H3O::Definition()->GetVanDerVaa 275 reactionData->SetReactionType(1); 276 theReactionTable->SetReaction(reactionData 277 278 reactionData = new G4DNAMolecularReactionD 279 0.0*(1e-3*m3/(mole*s)), histone, H); 280 reactionData->AddProduct(histone); 281 reactionData->SetEffectiveReactionRadius( 282 2.4*nm + G4Hydrogen::Definition()->GetVanD 283 reactionData->SetReactionType(1); 284 theReactionTable->SetReaction(reactionData 285 286 reactionData = new G4DNAMolecularReactionD 287 0.0*(1e-3*m3/(mole*s)), histone, H2O2); 288 reactionData->AddProduct(histone); 289 reactionData->SetEffectiveReactionRadius( 290 2.4*nm + G4H2O2::Definition()->GetVanDerVa 291 reactionData->SetReactionType(1); 292 theReactionTable->SetReaction(reactionData 293 } 294 295