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 "ChemistryList.hh" 28 29 #include "G4DNAChemistryManager.hh" 30 #include "G4DNAWaterDissociationDisplacer.hh" 31 #include "G4DNAWaterExcitationStructure.hh" 32 #include "G4PhysicalConstants.hh" 33 #include "G4ProcessManager.hh" 34 #include "G4SystemOfUnits.hh" 35 // *** Processes and models for Geant4-DNA 36 #include "DetectorConstruction.hh" 37 #include "IRTDamageReactionModel.hh" 38 39 #include "G4ChemicalMoleculeFinder.hh" 40 #include "G4DNABrownianTransportation.hh" 41 #include "G4DNAElectronHoleRecombination.hh" 42 #include "G4DNAElectronSolvation.hh" 43 #include "G4DNAIndependentReactionTimeModel.hh 44 #include "G4DNAMolecularDissociation.hh" 45 #include "G4DNAMolecularReactionTable.hh" 46 #include "G4DNAMoleculeEncounterStepper.hh" 47 #include "G4DNAPolyNucleotideReactionProcess.h 48 #include "G4DNASancheExcitationModel.hh" 49 #include "G4DNAUeharaScreenedRutherfordElastic 50 #include "G4DNAVibExcitation.hh" 51 #include "G4Electron.hh" 52 #include "G4Electron_aq.hh" 53 #include "G4H2.hh" 54 #include "G4H2O.hh" 55 #include "G4H2O2.hh" 56 #include "G4H3O.hh" 57 #include "G4HO2.hh" 58 #include "G4Hydrogen.hh" 59 #include "G4MolecularConfiguration.hh" 60 #include "G4MoleculeTable.hh" 61 #include "G4O2.hh" 62 #include "G4O3.hh" 63 #include "G4OH.hh" 64 #include "G4Oxygen.hh" 65 #include "G4PhysicsListHelper.hh" 66 #include "G4ProcessTable.hh" 67 #include "G4RunManager.hh" 68 #include "G4VDNAHitModel.hh" 69 #include "G4VDNAReactionModel.hh" 70 #include "G4ChemDissociationChannels_option1.h 71 72 ChemistryList::ChemistryList() : G4VUserChemis 73 { 74 G4DNAChemistryManager::Instance()->SetChemis 75 } 76 77 //....oooOO0OOooo........oooOO0OOooo........oo 78 79 void ChemistryList::ConstructMolecule() 80 { 81 //----------------------------------- 82 // Create the definition 83 84 G4H2O::Definition(); 85 G4Hydrogen::Definition(); 86 G4H3O::Definition(); 87 G4OH::Definition(); 88 G4Electron_aq::Definition(); 89 G4H2O2::Definition(); 90 G4H2::Definition(); 91 92 G4O2::Definition(); 93 G4HO2::Definition(); 94 G4Oxygen::Definition(); 95 G4O3::Definition(); 96 97 auto G4OHm = new G4MoleculeDefinition("OH",/ 98 2.8e-9 99 5, 0.9 100 2 // n 101 ); 102 103 auto G4HO2m = new G4MoleculeDefinition("HO_2 104 2.3e- 105 2.1 * 106 //__________________________________________ 107 108 G4MoleculeTable::Instance()->CreateConfigura 109 G4MolecularConfiguration* OHm = 110 G4MoleculeTable::Instance()->CreateConfigu 111 112 113 114 115 OHm->SetMass(17.0079 * g / Avogadro * c_squa 116 G4MoleculeTable::Instance()->CreateConfigura 117 G4MoleculeTable::Instance()->CreateConfigura 118 G4MoleculeTable::Instance()->CreateConfigura 119 G4MoleculeTable::Instance()->CreateConfigura 120 G4MoleculeTable::Instance()->CreateConfigura 121 122 // molecules extension (RITRACKS) 123 124 G4MoleculeTable::Instance()->CreateConfigura 125 G4MoleculeTable::Instance()->GetConfiguratio 126 127 G4MolecularConfiguration* HO2m = 128 G4MoleculeTable::Instance()->CreateConfigu 129 130 131 132 133 HO2m->SetMass(33.00396 * g / Avogadro * c_sq 134 HO2m->SetVanDerVaalsRadius(0.25 * nm); 135 136 G4MoleculeTable::Instance()->CreateConfigura 137 G4MoleculeTable::Instance()->GetConfiguratio 138 139 G4MolecularConfiguration* Om = 140 G4MoleculeTable::Instance()->CreateConfigu 141 142 143 144 145 Om->SetMass(15.99829 * g / Avogadro * c_squa 146 Om->SetVanDerVaalsRadius(0.25 * nm); 147 148 G4MoleculeTable::Instance()->CreateConfigura 149 G4MoleculeTable::Instance()->GetConfiguratio 150 151 G4MolecularConfiguration* O2m = 152 G4MoleculeTable::Instance()->CreateConfigu 153 154 155 156 157 O2m->SetMass(31.99602 * g / Avogadro * c_squ 158 O2m->SetVanDerVaalsRadius(0.22 * nm); 159 160 G4MoleculeTable::Instance()->CreateConfigura 161 G4MoleculeTable::Instance()->GetConfiguratio 162 163 G4MolecularConfiguration* O3m = 164 G4MoleculeTable::Instance()->CreateConfigu 165 166 167 168 169 O3m->SetMass(47.99375 * g / Avogadro * c_squ 170 O3m->SetVanDerVaalsRadius(0.20 * nm); 171 172 G4MoleculeDefinition* A = G4MoleculeTable::I 173 G4MoleculeTable::Instance()->CreateConfigura 174 175 G4MoleculeDefinition* T = G4MoleculeTable::I 176 G4MoleculeTable::Instance()->CreateConfigura 177 178 G4MoleculeDefinition* G = G4MoleculeTable::I 179 G4MoleculeTable::Instance()->CreateConfigura 180 181 G4MoleculeDefinition* C = G4MoleculeTable::I 182 G4MoleculeTable::Instance()->CreateConfigura 183 184 G4MoleculeDefinition* S = G4MoleculeTable::I 185 G4MoleculeTable::Instance()->CreateConfigura 186 187 G4DNAMolecularMaterial* molMaterialManager = 188 189 molMaterialManager->SetMolecularConfiguratio 190 191 molMaterialManager->SetMolecularConfiguratio 192 molMaterialManager->SetMolecularConfiguratio 193 molMaterialManager->SetMolecularConfiguratio 194 molMaterialManager->SetMolecularConfiguratio 195 molMaterialManager->SetMolecularConfiguratio 196 } 197 198 //....oooOO0OOooo........oooOO0OOooo........oo 199 200 void ChemistryList::ConstructDissociationChann 201 { 202 G4ChemDissociationChannels_option1::Construc 203 } 204 205 //....oooOO0OOooo........oooOO0OOooo........oo 206 207 void ChemistryList::ConstructReactionTable(G4D 208 { 209 //----------------------------------- 210 // Get the molecular configuration 211 G4MolecularConfiguration* OH = G4MoleculeTab 212 G4MolecularConfiguration* OHm = G4MoleculeTa 213 G4MolecularConfiguration* e_aq = G4MoleculeT 214 G4MolecularConfiguration* H2 = G4MoleculeTab 215 G4MolecularConfiguration* H3Op = G4MoleculeT 216 G4MolecularConfiguration* H = G4MoleculeTabl 217 G4MolecularConfiguration* H2O2 = G4MoleculeT 218 G4MolecularConfiguration* HO2 = G4MoleculeTa 219 G4MolecularConfiguration* HO2m = G4MoleculeT 220 G4MolecularConfiguration* O = G4MoleculeTabl 221 G4MolecularConfiguration* Om = G4MoleculeTab 222 G4MolecularConfiguration* O2 = G4MoleculeTab 223 G4MolecularConfiguration* O2m = G4MoleculeTa 224 G4MolecularConfiguration* O3 = G4MoleculeTab 225 G4MolecularConfiguration* O3m = G4MoleculeTa 226 227 // Type I // 228 //------------------------------------------ 229 // *H + *H -> H2 230 auto* reactionData = new G4DNAMolecularReact 231 reactionData->AddProduct(H2); 232 theReactionTable->SetReaction(reactionData); 233 //------------------------------------------ 234 // e_aq + H* + H2O -> H2 + OH- 235 reactionData = new G4DNAMolecularReactionDat 236 reactionData->AddProduct(OHm); 237 reactionData->AddProduct(H2); 238 theReactionTable->SetReaction(reactionData); 239 240 // H + O(3p) -> OH 241 reactionData = new G4DNAMolecularReactionDat 242 reactionData->AddProduct(OH); 243 theReactionTable->SetReaction(reactionData); 244 //------------------------------------------ 245 // H + O- -> OH- 246 reactionData = new G4DNAMolecularReactionDat 247 reactionData->AddProduct(OHm); 248 theReactionTable->SetReaction(reactionData); 249 //------------------------------------------ 250 // OH + O(3p) -> HO2 251 reactionData = new G4DNAMolecularReactionDat 252 reactionData->AddProduct(HO2); 253 theReactionTable->SetReaction(reactionData); 254 //------------------------------------------ 255 // HO2 + O(3p) -> O2 256 reactionData = new G4DNAMolecularReactionDat 257 reactionData->AddProduct(O2); 258 reactionData->AddProduct(OH); 259 theReactionTable->SetReaction(reactionData); 260 //------------------------------------------ 261 // O(3p) + O(3p) -> O2 262 reactionData = new G4DNAMolecularReactionDat 263 reactionData->AddProduct(O2); 264 theReactionTable->SetReaction(reactionData); 265 266 // Type III // 267 //------------------------------------------ 268 // e_aq + e_aq + 2H2O -> H2 + 2OH- 269 reactionData = new G4DNAMolecularReactionDat 270 reactionData->AddProduct(OHm); 271 reactionData->AddProduct(OHm); 272 reactionData->AddProduct(H2); 273 theReactionTable->SetReaction(reactionData); 274 //------------------------------------------ 275 // H3O+ + OH- -> 2H2O 276 reactionData = new G4DNAMolecularReactionDat 277 theReactionTable->SetReaction(reactionData); 278 //------------------------------------------ 279 // H3O+ + O3- -> OH + O2 280 reactionData = new G4DNAMolecularReactionDat 281 reactionData->AddProduct(OH); 282 reactionData->AddProduct(O2); 283 theReactionTable->SetReaction(reactionData); 284 285 // Type II // 286 287 //------------------------------------------ 288 // *OH + *H -> H2O 289 reactionData = new G4DNAMolecularReactionDat 290 reactionData->SetReactionType(1); 291 theReactionTable->SetReaction(reactionData); 292 //------------------------------------------ 293 // H + H2O2 -> OH 294 reactionData = new G4DNAMolecularReactionDat 295 reactionData->AddProduct(OH); 296 reactionData->SetReactionType(1); 297 theReactionTable->SetReaction(reactionData); 298 //------------------------------------------ 299 // H + OH- -> eaq- 300 reactionData = new G4DNAMolecularReactionDat 301 reactionData->AddProduct(e_aq); 302 reactionData->SetReactionType(1); 303 theReactionTable->SetReaction(reactionData); 304 //------------------------------------------ 305 // H + O2 -> HO2 306 reactionData = new G4DNAMolecularReactionDat 307 reactionData->AddProduct(HO2); 308 reactionData->SetReactionType(1); 309 theReactionTable->SetReaction(reactionData); 310 //------------------------------------------ 311 // H + HO2 -> H2O2 312 reactionData = new G4DNAMolecularReactionDat 313 reactionData->AddProduct(H2O2); 314 reactionData->SetReactionType(1); 315 theReactionTable->SetReaction(reactionData); 316 //------------------------------------------ 317 // H + O2- -> HO2- 318 reactionData = new G4DNAMolecularReactionDat 319 reactionData->AddProduct(HO2m); 320 reactionData->SetReactionType(1); 321 theReactionTable->SetReaction(reactionData); 322 //------------------------------------------ 323 // *OH + *OH -> H2O2 324 reactionData = new G4DNAMolecularReactionDat 325 reactionData->AddProduct(H2O2); 326 reactionData->SetReactionType(1); 327 theReactionTable->SetReaction(reactionData); 328 //------------------------------------------ 329 // OH + H2O2 -> HO2 330 reactionData = new G4DNAMolecularReactionDat 331 reactionData->AddProduct(HO2); 332 reactionData->SetReactionType(1); 333 theReactionTable->SetReaction(reactionData); 334 //------------------------------------------ 335 // OH + H2 -> H 336 reactionData = new G4DNAMolecularReactionDat 337 reactionData->AddProduct(H); 338 reactionData->SetReactionType(1); 339 theReactionTable->SetReaction(reactionData); 340 //------------------------------------------ 341 // e_aq + *OH -> OH- 342 reactionData = new G4DNAMolecularReactionDat 343 reactionData->AddProduct(OHm); 344 reactionData->SetReactionType(1); 345 theReactionTable->SetReaction(reactionData); 346 //------------------------------------------ 347 // OH + OH- -> O- 348 reactionData = new G4DNAMolecularReactionDat 349 reactionData->AddProduct(Om); 350 reactionData->SetReactionType(1); 351 theReactionTable->SetReaction(reactionData); 352 //------------------------------------------ 353 // OH + HO2 -> O2 354 reactionData = new G4DNAMolecularReactionDat 355 reactionData->AddProduct(O2); 356 reactionData->SetReactionType(1); 357 theReactionTable->SetReaction(reactionData); 358 //------------------------------------------ 359 // OH + O2- -> O2 + OH- 360 reactionData = new G4DNAMolecularReactionDat 361 reactionData->AddProduct(O2); 362 reactionData->AddProduct(OHm); 363 reactionData->SetReactionType(1); 364 theReactionTable->SetReaction(reactionData); 365 //------------------------------------------ 366 // OH + HO2- -> HO2 + OH- 367 reactionData = new G4DNAMolecularReactionDat 368 reactionData->AddProduct(HO2); 369 reactionData->AddProduct(OHm); 370 reactionData->SetReactionType(1); 371 theReactionTable->SetReaction(reactionData); 372 //------------------------------------------ 373 // OH + O- -> HO2- 374 reactionData = new G4DNAMolecularReactionDat 375 reactionData->AddProduct(HO2m); 376 reactionData->SetReactionType(1); 377 theReactionTable->SetReaction(reactionData); 378 //------------------------------------------ 379 // OH + O3- -> O2- + HO2 380 reactionData = new G4DNAMolecularReactionDat 381 reactionData->AddProduct(O2m); 382 reactionData->AddProduct(HO2); 383 reactionData->SetReactionType(1); 384 theReactionTable->SetReaction(reactionData); 385 //------------------------------------------ 386 // e_aq + H2O2 -> OH- + *OH 387 reactionData = new G4DNAMolecularReactionDat 388 reactionData->AddProduct(OHm); 389 reactionData->AddProduct(OH); 390 reactionData->SetReactionType(1); 391 theReactionTable->SetReaction(reactionData); 392 //------------------------------------------ 393 // H2O2 + OH- -> HO2- 394 reactionData = new G4DNAMolecularReactionDat 395 reactionData->AddProduct(HO2m); 396 reactionData->SetReactionType(1); 397 theReactionTable->SetReaction(reactionData); 398 //------------------------------------------ 399 // H2O2 + O(3p) -> HO2 + OH 400 reactionData = new G4DNAMolecularReactionDat 401 reactionData->AddProduct(HO2); 402 reactionData->AddProduct(OH); 403 reactionData->SetReactionType(1); 404 theReactionTable->SetReaction(reactionData); 405 //------------------------------------------ 406 // H2O2 + O- -> HO2 + OH- 407 reactionData = new G4DNAMolecularReactionDat 408 reactionData->AddProduct(HO2); 409 reactionData->AddProduct(OHm); 410 reactionData->SetReactionType(1); 411 theReactionTable->SetReaction(reactionData); 412 //------------------------------------------ 413 // H2 + O(3p) -> H + OH 414 reactionData = new G4DNAMolecularReactionDat 415 reactionData->AddProduct(H); 416 reactionData->AddProduct(OH); 417 reactionData->SetReactionType(1); 418 theReactionTable->SetReaction(reactionData); 419 //------------------------------------------ 420 // H2 + O- -> H + OH- 421 reactionData = new G4DNAMolecularReactionDat 422 reactionData->AddProduct(H); 423 reactionData->AddProduct(OHm); 424 reactionData->SetReactionType(1); 425 theReactionTable->SetReaction(reactionData); 426 //------------------------------------------ 427 // eaq- + O2 -> O2- 428 reactionData = new G4DNAMolecularReactionDat 429 reactionData->AddProduct(O2m); 430 reactionData->SetReactionType(1); 431 theReactionTable->SetReaction(reactionData); 432 //------------------------------------------ 433 // eaq + HO2 -> HO2- 434 reactionData = new G4DNAMolecularReactionDat 435 reactionData->AddProduct(HO2m); 436 reactionData->SetReactionType(1); 437 theReactionTable->SetReaction(reactionData); 438 //------------------------------------------ 439 // OH- + HO2 -> O2- 440 reactionData = new G4DNAMolecularReactionDat 441 reactionData->AddProduct(O2m); 442 reactionData->SetReactionType(1); 443 theReactionTable->SetReaction(reactionData); 444 //------------------------------------------ 445 // OH- + O(3p) -> HO2- 446 reactionData = new G4DNAMolecularReactionDat 447 reactionData->AddProduct(HO2m); 448 reactionData->SetReactionType(1); 449 theReactionTable->SetReaction(reactionData); 450 //------------------------------------------ 451 // O2 + O(3p) -> O3 452 reactionData = new G4DNAMolecularReactionDat 453 reactionData->AddProduct(O3); 454 reactionData->SetReactionType(1); 455 theReactionTable->SetReaction(reactionData); 456 //------------------------------------------ 457 // O2 + O- -> O3- 458 reactionData = new G4DNAMolecularReactionDat 459 reactionData->AddProduct(O3m); 460 reactionData->SetReactionType(1); 461 theReactionTable->SetReaction(reactionData); 462 //------------------------------------------ 463 // HO2 + HO2 -> H2O2 + O2 464 reactionData = new G4DNAMolecularReactionDat 465 reactionData->AddProduct(H2O2); 466 reactionData->AddProduct(O2); 467 reactionData->SetReactionType(1); 468 theReactionTable->SetReaction(reactionData); 469 //------------------------------------------ 470 // HO2 + O2- -> HO2- + O2 471 reactionData = new G4DNAMolecularReactionDat 472 reactionData->AddProduct(HO2m); 473 reactionData->AddProduct(O2); 474 reactionData->SetReactionType(1); 475 theReactionTable->SetReaction(reactionData); 476 //------------------------------------------ 477 // HO2- + O(3p) -> O2- + OH 478 reactionData = new G4DNAMolecularReactionDat 479 reactionData->AddProduct(O2m); 480 reactionData->AddProduct(OH); 481 reactionData->SetReactionType(1); 482 theReactionTable->SetReaction(reactionData); 483 484 // Type IV // 485 //------------------------------------------ 486 // e_aq + H3O+ -> H* + H2O 487 reactionData = new G4DNAMolecularReactionDat 488 reactionData->AddProduct(H); 489 reactionData->SetReactionType(1); 490 theReactionTable->SetReaction(reactionData); 491 //------------------------------------------ 492 // e_aq + O2- -> H2O2 + OH- + OH- 493 reactionData = new G4DNAMolecularReactionDat 494 reactionData->AddProduct(H2O2); 495 reactionData->AddProduct(OHm); 496 reactionData->AddProduct(OHm); 497 reactionData->SetReactionType(1); 498 theReactionTable->SetReaction(reactionData); 499 //------------------------------------------ 500 // e_aq + HO2- -> O- + OH- 501 reactionData = new G4DNAMolecularReactionDat 502 reactionData->AddProduct(Om); 503 reactionData->AddProduct(OHm); 504 reactionData->SetReactionType(1); 505 theReactionTable->SetReaction(reactionData); 506 //------------------------------------------ 507 // e_aq + O- -> OH- + OH- 508 reactionData = new G4DNAMolecularReactionDat 509 reactionData->AddProduct(OHm); 510 reactionData->AddProduct(OHm); 511 reactionData->SetReactionType(1); 512 theReactionTable->SetReaction(reactionData); 513 //------------------------------------------ 514 // H3O+ + O2- -> HO2 515 reactionData = new G4DNAMolecularReactionDat 516 reactionData->AddProduct(HO2); 517 reactionData->SetReactionType(1); 518 theReactionTable->SetReaction(reactionData); 519 //------------------------------------------ 520 // H3O+ + HO2- -> H2O2 521 reactionData = new G4DNAMolecularReactionDat 522 reactionData->AddProduct(H2O2); 523 reactionData->SetReactionType(1); 524 theReactionTable->SetReaction(reactionData); 525 //------------------------------------------ 526 // H3O+ + O- -> OH 527 reactionData = new G4DNAMolecularReactionDat 528 reactionData->AddProduct(OH); 529 reactionData->SetReactionType(1); 530 theReactionTable->SetReaction(reactionData); 531 //------------------------------------------ 532 // O2- + O- -> O2 + OH- + OH- 533 reactionData = new G4DNAMolecularReactionDat 534 reactionData->AddProduct(O2); 535 reactionData->AddProduct(OHm); 536 reactionData->AddProduct(OHm); 537 reactionData->SetReactionType(1); 538 theReactionTable->SetReaction(reactionData); 539 //------------------------------------------ 540 // HO2- + O- -> O2- + OH- 541 reactionData = new G4DNAMolecularReactionDat 542 reactionData->AddProduct(O2m); 543 reactionData->AddProduct(OHm); 544 reactionData->SetReactionType(1); 545 theReactionTable->SetReaction(reactionData); 546 //------------------------------------------ 547 // O- + O- -> H2O2 + OH- + OH- 548 reactionData = new G4DNAMolecularReactionDat 549 reactionData->AddProduct(H2O2); 550 reactionData->AddProduct(OHm); 551 reactionData->AddProduct(OHm); 552 reactionData->SetReactionType(1); 553 theReactionTable->SetReaction(reactionData); 554 //------------------------------------------ 555 // O- + O3- -> O2- + O2- 556 reactionData = new G4DNAMolecularReactionDat 557 reactionData->AddProduct(O2m); 558 reactionData->AddProduct(O2m); 559 reactionData->SetReactionType(1); 560 theReactionTable->SetReaction(reactionData); 561 562 //------------------------------------------ 563 // Get the DNA entites 564 G4MolecularConfiguration* A = G4MoleculeTabl 565 G4MolecularConfiguration* T = G4MoleculeTabl 566 G4MolecularConfiguration* G = G4MoleculeTabl 567 G4MolecularConfiguration* C = G4MoleculeTabl 568 G4MolecularConfiguration* Sugar = G4Molecule 569 570 // From Buxton et al., J. Phys. Chern. Ref. 571 theReactionTable->SetReaction(0.61e10 * (1e- 572 theReactionTable->SetReaction(0.64e10 * (1e- 573 theReactionTable->SetReaction(0.92e10 * (1e- 574 theReactionTable->SetReaction(0.61e10 * (1e- 575 theReactionTable->SetReaction(0.18e10 * (1e- 576 577 theReactionTable->SetReaction(0.9e10 * (1e-3 578 theReactionTable->SetReaction(1.8e10 * (1e-3 579 theReactionTable->SetReaction(1.4e10 * (1e-3 580 theReactionTable->SetReaction(1.3e10 * (1e-3 581 theReactionTable->SetReaction(1.0e7 * (1e-3 582 583 theReactionTable->SetReaction(1.0e8 * (1e-3 584 theReactionTable->SetReaction(5.7e8 * (1e-3 585 theReactionTable->SetReaction(9.2e7 * (1e-3 586 theReactionTable->SetReaction(2.9e7 * (1e-3 587 } 588 589 //....oooOO0OOooo........oooOO0OOooo........oo 590 591 void ChemistryList::ConstructProcess() 592 { 593 G4PhysicsListHelper* ph = G4PhysicsListHelpe 594 595 //========================================== 596 // Extend vibrational to low energy 597 // Anyway, solvation of electrons is taken i 598 // So below this threshold, for now, no accu 599 // 600 G4VProcess* process = 601 G4ProcessTable::GetProcessTable()->FindPro 602 603 if (process != nullptr) { 604 auto* vibExcitation = (G4DNAVibExcitation* 605 G4VEmModel* model = vibExcitation->EmModel 606 auto* sancheExcitationMod = dynamic_cast<G 607 if (sancheExcitationMod != nullptr) { 608 sancheExcitationMod->ExtendLowEnergyLimi 609 } 610 } 611 612 //========================================== 613 // *** Electron Solvatation *** 614 // 615 process = G4ProcessTable::GetProcessTable()- 616 617 if (process == nullptr) { 618 ph->RegisterProcess(new G4DNAElectronSolva 619 G4Electron::Definition 620 } 621 622 //========================================== 623 // Define processes for molecules 624 // 625 G4MoleculeTable* theMoleculeTable = G4Molecu 626 G4MoleculeDefinitionIterator iterator = theM 627 iterator.reset(); 628 while (iterator()) { 629 G4MoleculeDefinition* moleculeDef = iterat 630 631 if (moleculeDef != G4H2O::Definition()) { 632 auto brown = new G4DNABrownianTransporta 633 ph->RegisterProcess(brown, moleculeDef); 634 635 if (moleculeDef == G4Electron_aq::Defini 636 || moleculeDef == G4Hydrogen::Defini 637 { 638 G4VDNAHitModel* pDamageModel = new IRT 639 auto staticMoleculeReactionProcess = 640 new G4DNAPolyNucleotideReactionProce 641 staticMoleculeReactionProcess->SetVerb 642 staticMoleculeReactionProcess->SetDNAD 643 ph->RegisterProcess(staticMoleculeReac 644 } 645 } 646 else { 647 moleculeDef->GetProcessManager()->AddRes 648 auto* dissociationProcess = new G4DNAMol 649 dissociationProcess->SetDisplacer(molecu 650 dissociationProcess->SetVerboseLevel(3); 651 652 moleculeDef->GetProcessManager()->AddRes 653 } 654 } 655 } 656 657 //....oooOO0OOooo........oooOO0OOooo........oo 658 659 void ChemistryList::ConstructTimeStepModel(G4D 660 /*r 661 { 662 auto model = G4EmParameters::Instance()->Get 663 if(model == G4ChemTimeStepModel::IRT_syn) 664 { 665 RegisterTimeStepModel(new G4DNAIndependent 666 }else 667 { 668 G4ExceptionDescription exceptionDescriptio 669 exceptionDescription << "This example uses 670 G4Exception( 671 "ChemistryList" 672 "ConstructTimeStepModel", 673 "ConstructTimeStepModel", FatalExcepti 674 } 675 } 676 677 void ChemistryList::ConstructParticle() 678 { 679 ConstructMolecule(); 680 } 681