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 "ChemPureWaterBuilder.hh" 28 29 #include "G4DNAMolecularReactionTable.hh" 30 #include "G4MoleculeTable.hh" 31 #include "G4SystemOfUnits.hh" 32 //....oooOO0OOooo........oooOO0OOooo........oo 33 34 void ChemPureWaterBuilder::WaterScavengerReact 35 { 36 // Get the molecular configuration 37 auto table = G4MoleculeTable::Instance(); 38 39 G4MolecularConfiguration* OH = table->GetCon 40 G4MolecularConfiguration* OHm = table->GetCo 41 G4MolecularConfiguration* H3Op = table->GetC 42 G4MolecularConfiguration* e_aq = table->GetC 43 G4MolecularConfiguration* H = table->GetConf 44 G4MolecularConfiguration* H2O2 = table->GetC 45 G4MolecularConfiguration* HO2 = table->GetCo 46 G4MolecularConfiguration* HO2m = table->GetC 47 G4MolecularConfiguration* Om = table->GetCon 48 G4MolecularConfiguration* O2 = table->GetCon 49 G4MolecularConfiguration* O2m = table->GetCo 50 G4MolecularConfiguration* O3m = table->GetCo 51 G4MolecularConfiguration* H2O = table->GetCo 52 G4MolecularConfiguration* H3OpB = table->Get 53 G4MolecularConfiguration* OHmB = table->GetC 54 //---------------1-------------------------- 55 //------------------------------------------ 56 // HO2 + H2O -> H3O+ + O2- 57 // 4.78e10*std::pow(10, -pka (4.8257) = 7575 58 auto reactionData = new G4DNAMolecularReacti 59 reactionData->AddProduct(H3OpB); 60 reactionData->AddProduct(O2m); 61 reactionData->SetReactionType(6); // Equili 62 pReactionTable->SetReaction(reactionData); 63 64 //------------------------------------------ 65 // O2- + H3O+(B) -> HO2 + H2O 4.73e3 / s 66 reactionData = new G4DNAMolecularReactionDat 67 68 reactionData->AddProduct(HO2); 69 reactionData->SetReactionType(6); // Equili 70 pReactionTable->SetReaction(reactionData); 71 72 //------------------------------------------ 73 //--------------2--------------------------- 74 // H + H2O -> eaq- + H3O+ 5.94 / s pkA = 9.5 75 reactionData = new G4DNAMolecularReactionDat 76 reactionData->AddProduct(e_aq); 77 reactionData->AddProduct(H3OpB); 78 pReactionTable->SetReaction(reactionData); 79 //------------------------------------------ 80 // eaq- + H3O+(B) -> H + H2O 2.09e3 / s 81 reactionData = new G4DNAMolecularReactionDat 82 reactionData->AddProduct(H); 83 pReactionTable->SetReaction(reactionData); 84 85 //------------------------------------------ 86 //--------------3--------------------------- 87 // eaq- + H2O -> H + OH- 15.7 / M * s pKa = 88 reactionData = new G4DNAMolecularReactionDat 89 reactionData->AddProduct(H); 90 reactionData->AddProduct(OHmB); 91 pReactionTable->SetReaction(reactionData); 92 //------------------------------------------ 93 // H + OH-(B) -> H2O + eaq- 2.49e3 / s 94 reactionData = new G4DNAMolecularReactionDat 95 96 reactionData->AddProduct(e_aq); 97 pReactionTable->SetReaction(reactionData); 98 99 //------------4----------------------------- 100 //------------------------------------------ 101 // O2- + H2O -> HO2 + OH- 0.15 / s 102 reactionData = new G4DNAMolecularReactionDat 103 reactionData->AddProduct(HO2); 104 reactionData->AddProduct(OHmB); 105 pReactionTable->SetReaction(reactionData); 106 //------------------------------------------ 107 // HO2 + OH-(B) -> O2- + H2O 108 reactionData = new G4DNAMolecularReactionDat 109 reactionData->AddProduct(O2m); 110 pReactionTable->SetReaction(reactionData); 111 //-----------5------------------------------ 112 //------------------------------------------ 113 // HO2- + H2O -> H2O2 + OH- 1.36e6 / M * s p 114 reactionData = new G4DNAMolecularReactionDat 115 reactionData->AddProduct(H2O2); 116 reactionData->AddProduct(OHmB); 117 reactionData->SetReactionType(7); // Equili 118 pReactionTable->SetReaction(reactionData); 119 //------------------------------------------ 120 // H2O2 + OH-(B) -> HO2- + H2O 4.66e2 / s 121 reactionData = new G4DNAMolecularReactionDat 122 reactionData->AddProduct(HO2m); 123 reactionData->SetReactionType(7); // Equili 124 pReactionTable->SetReaction(reactionData); 125 //-------------6---------------------------- 126 //------------------------------------------ 127 // O- + H2O -> OH + OH- 1.8e6 / s pka = 11.9 128 reactionData = new G4DNAMolecularReactionDat 129 reactionData->AddProduct(OH); 130 reactionData->AddProduct(OHmB); 131 reactionData->SetReactionType(8); // Equili 132 pReactionTable->SetReaction(reactionData); 133 //------------------------------------------ 134 // OH + OH-(B) -> O- + H2O 6.24e2 / s 135 reactionData = new G4DNAMolecularReactionDat 136 reactionData->AddProduct(Om); 137 reactionData->SetReactionType(8); // Equili 138 pReactionTable->SetReaction(reactionData); 139 //------------------------------------------ 140 //-------------7---------------------------- 141 // H2O2 + H2O -> H+ + HO2- First order pka = 142 reactionData = new G4DNAMolecularReactionDat 143 reactionData->AddProduct(HO2m); 144 reactionData->AddProduct(H3OpB); 145 pReactionTable->SetReaction(reactionData); 146 147 //------------------------------------------ 148 // HO2- + H3O+(B) -> H2O2 + H2O 4.98e3 / s 149 reactionData = new G4DNAMolecularReactionDat 150 151 reactionData->AddProduct(H2O2); 152 pReactionTable->SetReaction(reactionData); 153 154 //-------------8---------------------------- 155 //------------------------------------------ 156 // O- + H3O+(B) -> OH + H2O 4.73e3 / s * 157 reactionData = new G4DNAMolecularReactionDat 158 159 reactionData->AddProduct(OH); 160 pReactionTable->SetReaction(reactionData); 161 162 //------------------------------------------ 163 // OH -> O- + H3O+(B) 164 reactionData = new G4DNAMolecularReactionDat 165 166 reactionData->AddProduct(Om); 167 reactionData->AddProduct(H3OpB); 168 pReactionTable->SetReaction(reactionData); 169 170 // end Acid - Base Reactions 171 //------------------------------------------ 172 // OH- + H3O+(B) -> 2H2O 1.11e4 / s 173 reactionData = new G4DNAMolecularReactionDat 174 175 pReactionTable->SetReaction(reactionData); 176 177 //------------------------------------------ 178 // O3- + H3O+(B) -> OH + O2 + H2O 8.91e3 / s 179 reactionData = new G4DNAMolecularReactionDat 180 181 reactionData->AddProduct(OH); 182 reactionData->AddProduct(O2); 183 pReactionTable->SetReaction(reactionData); 184 //------------------------------------------ 185 // H3O+ + OH-(B) -> 2H2O 1.11e4 / s 186 // opposite description of OH- + H3O+(B) -> 187 reactionData = new G4DNAMolecularReactionDat 188 189 pReactionTable->SetReaction(reactionData); 190 191 //------------------------------------------ 192 // O3- + H2OB -> O- + O2 193 reactionData = new G4DNAMolecularReactionDat 194 reactionData->AddProduct(Om); 195 reactionData->AddProduct(O2); 196 pReactionTable->SetReaction(reactionData); 197 198 //------------------------------------------ 199 // O(3p) + OH-(B) -> HO2- 4.16e1 / s 200 // reactionData = new G4DNAMolecularReact 201 // 4.16e1 / s, O,OHmB);// 202 // reactionData->AddProduct(HO2m); 203 // pReactionTable->SetReaction(reactionDa 204 //------------------------------------------ 205 } 206 207 //....oooOO0OOooo........oooOO0OOooo........oo 208