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 #include "ChemOxygenWaterBuilder.hh" 28 29 #include "G4DNAMolecularReactionTable.hh" 30 #include "G4MoleculeTable.hh" 31 #include "G4SystemOfUnits.hh" 32 //....oooOO0OOooo........oooOO0OOooo........oo 33 34 void ChemOxygenWaterBuilder::OxygenScavengerRe 35 { 36 auto table = G4MoleculeTable::Instance(); 37 //----------------------------------- 38 // Get the molecular configuration 39 auto* e_aq = table->GetConfiguration("e_aq") 40 auto* H = table->GetConfiguration("H"); 41 auto* HO2 = table->GetConfiguration("HO2°") 42 auto* Om = table->GetConfiguration("Om"); 43 auto* O2 = table->GetConfiguration("O2"); 44 auto* O2m = table->GetConfiguration("O2m"); 45 auto* O3m = table->GetConfiguration("O3m"); 46 47 G4DNAMolecularReactionData* reactionData = n 48 // Oxygen concentration 49 // e_aq + O2(B) -> O2- 50 reactionData = new G4DNAMolecularReactionDat 51 reactionData->AddProduct(O2m); 52 pReactionTable->SetReaction(reactionData); 53 //------------------------------------------ 54 // H + O2(B) -> HO2 55 reactionData = new G4DNAMolecularReactionDat 56 reactionData->AddProduct(HO2); 57 pReactionTable->SetReaction(reactionData); 58 //------------------------------------------ 59 // O- + O2(B) -> O3- 60 reactionData = new G4DNAMolecularReactionDat 61 reactionData->AddProduct(O3m); 62 pReactionTable->SetReaction(reactionData); 63 //------------------------------------------ 64 } 65 //....oooOO0OOooo........oooOO0OOooo........oo 66 67 void ChemOxygenWaterBuilder::SecondOrderReacti 68 G4DNAMolecularReactionTable* pReactionTable) 69 { 70 //----------------------------------- 71 // Get the molecular configuration 72 auto table = G4MoleculeTable::Instance(); 73 auto* OH = table->GetConfiguration("°OH"); 74 auto* OHm = table->GetConfiguration("OHm"); 75 auto* e_aq = table->GetConfiguration("e_aq") 76 auto* H2 = table->GetConfiguration("H2"); 77 auto* H3Op = table->GetConfiguration("H3Op") 78 auto* H = table->GetConfiguration("H"); 79 auto* H2O2 = table->GetConfiguration("H2O2") 80 81 auto* HO2 = table->GetConfiguration("HO2°") 82 auto* HO2m = table->GetConfiguration("HO2m") 83 auto* Om = table->GetConfiguration("Om"); 84 auto* O2 = table->GetConfiguration("O2"); 85 auto* O2m = table->GetConfiguration("O2m"); 86 auto* O3m = table->GetConfiguration("O3m"); 87 88 // second order 89 G4DNAMolecularReactionData* reactionData = n 90 // Type I 91 //------------------------------------------ 92 // *H + *H -> H2 93 reactionData = new G4DNAMolecularReactionDat 94 reactionData->AddProduct(H2); 95 pReactionTable->SetReaction(reactionData); 96 //------------------------------------------ 97 // e_aq + H* + H2O -> H2 + OH- 98 reactionData = new G4DNAMolecularReactionDat 99 reactionData->AddProduct(OHm); 100 reactionData->AddProduct(H2); 101 pReactionTable->SetReaction(reactionData); 102 //------------------------------------------ 103 // e_aq + e_aq + 2H2O -> H2 + 2OH- 104 reactionData = new G4DNAMolecularReactionDat 105 reactionData->AddProduct(OHm); 106 reactionData->AddProduct(OHm); 107 reactionData->AddProduct(H2); 108 pReactionTable->SetReaction(reactionData); 109 //------------------------------------------ 110 // H3O+ + OH- -> 2H2O 111 reactionData = new G4DNAMolecularReactionDat 112 pReactionTable->SetReaction(reactionData); 113 //------------------------------------------ 114 // *OH + *H -> H2O 115 reactionData = new G4DNAMolecularReactionDat 116 pReactionTable->SetReaction(reactionData); 117 //------------------------------------------ 118 // *OH + *OH -> H2O2 119 reactionData = new G4DNAMolecularReactionDat 120 reactionData->AddProduct(H2O2); 121 pReactionTable->SetReaction(reactionData); 122 //------------------------------------------ 123 // e_aq + *OH -> OH- 124 reactionData = new G4DNAMolecularReactionDat 125 reactionData->AddProduct(OHm); 126 pReactionTable->SetReaction(reactionData); 127 //------------------------------------------ 128 // e_aq + H2O2 -> OH- + *OH 129 reactionData = new G4DNAMolecularReactionDat 130 reactionData->AddProduct(OHm); 131 reactionData->AddProduct(OH); 132 pReactionTable->SetReaction(reactionData); 133 //------------------------------------------ 134 // e_aq + H3O+ -> H* + H2O 135 reactionData = new G4DNAMolecularReactionDat 136 reactionData->AddProduct(H); 137 pReactionTable->SetReaction(reactionData); 138 139 // extended 140 //------------------------------------------ 141 // H + O- -> OH- 142 reactionData = new G4DNAMolecularReactionDat 143 reactionData->AddProduct(OHm); 144 pReactionTable->SetReaction(reactionData); 145 //------------------------------------------ 146 // H3O+ + O3- -> OH + O2 147 reactionData = new G4DNAMolecularReactionDat 148 reactionData->AddProduct(OH); 149 reactionData->AddProduct(O2); // add to Sca 150 pReactionTable->SetReaction(reactionData); 151 //------------------------------------------ 152 // H + HO2 -> H2O2 153 reactionData = new G4DNAMolecularReactionDat 154 reactionData->AddProduct(H2O2); 155 pReactionTable->SetReaction(reactionData); 156 //------------------------------------------ 157 // H + O2- -> HO2- 158 reactionData = new G4DNAMolecularReactionDat 159 reactionData->AddProduct(HO2m); 160 pReactionTable->SetReaction(reactionData); 161 //------------------------------------------ 162 // OH + O2- -> O2 + OH- 163 reactionData = new G4DNAMolecularReactionDat 164 reactionData->AddProduct(O2); // added to S 165 reactionData->AddProduct(OHm); 166 pReactionTable->SetReaction(reactionData); 167 //------------------------------------------ 168 // e_aq + O2- -> H2O2 + OH- + OH- 169 reactionData = new G4DNAMolecularReactionDat 170 reactionData->AddProduct(H2O2); 171 reactionData->AddProduct(OHm); 172 reactionData->AddProduct(OHm); 173 pReactionTable->SetReaction(reactionData); 174 //------------------------------------------ 175 // e_aq + HO2- -> O- + OH- 176 reactionData = new G4DNAMolecularReactionDat 177 reactionData->AddProduct(Om); 178 reactionData->AddProduct(OHm); 179 pReactionTable->SetReaction(reactionData); 180 //------------------------------------------ 181 // e_aq + O- -> OH- + OH- 182 reactionData = new G4DNAMolecularReactionDat 183 reactionData->AddProduct(OHm); 184 reactionData->AddProduct(OHm); 185 pReactionTable->SetReaction(reactionData); 186 //------------------------------------------ 187 // H3O+ + O2- -> HO2 188 reactionData = new G4DNAMolecularReactionDat 189 reactionData->AddProduct(HO2); 190 pReactionTable->SetReaction(reactionData); 191 //------------------------------------------ 192 // H3O+ + HO2- -> H2O2 193 reactionData = new G4DNAMolecularReactionDat 194 reactionData->AddProduct(H2O2); 195 pReactionTable->SetReaction(reactionData); 196 //------------------------------------------ 197 // H3O+ + O- -> OH 198 reactionData = new G4DNAMolecularReactionDat 199 reactionData->AddProduct(OH); 200 pReactionTable->SetReaction(reactionData); 201 //------------------------------------------ 202 // eaq + HO2 -> HO2- 203 reactionData = new G4DNAMolecularReactionDat 204 reactionData->AddProduct(HO2m); 205 pReactionTable->SetReaction(reactionData); 206 //------------------------------------------ 207 // OH + OH- -> O- 208 reactionData = new G4DNAMolecularReactionDat 209 reactionData->AddProduct(Om); 210 pReactionTable->SetReaction(reactionData); 211 //------------------------------------------ 212 // OH + HO2 -> O2 213 reactionData = new G4DNAMolecularReactionDat 214 reactionData->AddProduct(O2); // added to S 215 pReactionTable->SetReaction(reactionData); 216 //------------------------------------------ 217 // OH + HO2- -> HO2 + OH- 218 reactionData = new G4DNAMolecularReactionDat 219 reactionData->AddProduct(HO2); 220 reactionData->AddProduct(OHm); 221 pReactionTable->SetReaction(reactionData); 222 //------------------------------------------ 223 // OH + O- -> HO2- 224 reactionData = new G4DNAMolecularReactionDat 225 reactionData->AddProduct(HO2m); 226 pReactionTable->SetReaction(reactionData); 227 //------------------------------------------ 228 // OH + O3- -> O2- + HO2 229 reactionData = new G4DNAMolecularReactionDat 230 reactionData->AddProduct(O2m); 231 reactionData->AddProduct(HO2); 232 pReactionTable->SetReaction(reactionData); 233 //------------------------------------------ 234 // OH- + HO2 -> O2- 235 reactionData = new G4DNAMolecularReactionDat 236 237 reactionData->AddProduct(O2m); 238 pReactionTable->SetReaction(reactionData); 239 //------------------------------------------ 240 // H2O2 + OH- -> HO2- 241 reactionData = new G4DNAMolecularReactionDat 242 243 reactionData->AddProduct(HO2m); 244 pReactionTable->SetReaction(reactionData); 245 //------------------------------------------ 246 // H2O2 + O- -> HO2 + OH- 247 reactionData = new G4DNAMolecularReactionDat 248 reactionData->AddProduct(HO2); 249 reactionData->AddProduct(OHm); 250 pReactionTable->SetReaction(reactionData); 251 //------------------------------------------ 252 // H2 + O- -> H + OH- 253 reactionData = new G4DNAMolecularReactionDat 254 reactionData->AddProduct(H); 255 reactionData->AddProduct(OHm); 256 pReactionTable->SetReaction(reactionData); 257 //------------------------------------------ 258 // O2- + O- -> O2 + OH- + OH- 259 reactionData = new G4DNAMolecularReactionDat 260 reactionData->AddProduct(O2); 261 reactionData->AddProduct(OHm); 262 reactionData->AddProduct(OHm); 263 pReactionTable->SetReaction(reactionData); 264 //------------------------------------------ 265 // HO2- + O- -> O2- + OH- 266 reactionData = new G4DNAMolecularReactionDat 267 reactionData->AddProduct(O2m); 268 reactionData->AddProduct(OHm); 269 pReactionTable->SetReaction(reactionData); 270 //------------------------------------------ 271 // O- + O- -> H2O2 + OH- + OH- 272 reactionData = new G4DNAMolecularReactionDat 273 reactionData->AddProduct(H2O2); 274 reactionData->AddProduct(OHm); 275 reactionData->AddProduct(OHm); 276 pReactionTable->SetReaction(reactionData); 277 //------------------------------------------ 278 // O- + O3- -> O2- + O2- 279 reactionData = new G4DNAMolecularReactionDat 280 reactionData->AddProduct(O2m); 281 reactionData->AddProduct(O2m); 282 pReactionTable->SetReaction(reactionData); 283 //------------------------------------------ 284 // H + OH- -> eaq- 285 reactionData = new G4DNAMolecularReactionDat 286 reactionData->AddProduct(e_aq); 287 pReactionTable->SetReaction(reactionData); 288 //------------------------------------------ 289 // H + H2O2 -> OH 290 reactionData = new G4DNAMolecularReactionDat 291 reactionData->AddProduct(OH); 292 pReactionTable->SetReaction(reactionData); 293 //------------------------------------------ 294 // OH + H2O2 -> HO2 295 reactionData = new G4DNAMolecularReactionDat 296 reactionData->AddProduct(HO2); 297 pReactionTable->SetReaction(reactionData); 298 //------------------------------------------ 299 // OH + H2 -> H 300 reactionData = new G4DNAMolecularReactionDat 301 reactionData->AddProduct(H); 302 pReactionTable->SetReaction(reactionData); 303 //------------------------------------------ 304 // HO2 + HO2 -> H2O2 + O2 305 reactionData = new G4DNAMolecularReactionDat 306 reactionData->AddProduct(H2O2); 307 reactionData->AddProduct(O2); 308 pReactionTable->SetReaction(reactionData); 309 //------------------------------------------ 310 // HO2 + O2- -> HO2- + O2 + 311 reactionData = new G4DNAMolecularReactionDat 312 reactionData->AddProduct(HO2m); 313 reactionData->AddProduct(O2); 314 pReactionTable->SetReaction(reactionData); 315 //------------------------------------------ 316 // hoang added. this must be rare 317 // O2- + O2- -> H2O2 + O2 + 2 OH- 318 reactionData = new G4DNAMolecularReactionDat 319 reactionData->AddProduct(H2O2); 320 reactionData->AddProduct(O2); 321 reactionData->AddProduct(OHm); 322 reactionData->AddProduct(OHm); 323 pReactionTable->SetReaction(reactionData); 324 } 325 //....oooOO0OOooo........oooOO0OOooo........oo 326