98 G4Hydrogen::Definition();
101 G4Electron_aq::Definition();
102 G4H2O2::Definition();
104 G4Oxygen::Definition();
110 46.0055 * g / Avogadro * c_squared,
111 1.7e-9 * (m * m / s),
117 62.0049 * g / Avogadro * c_squared,
118 1.7e-9 * (m * m / s),
125 G4MoleculeTable::Instance()->CreateConfiguration(
"H3Op", G4H3O::Definition());
126 G4MoleculeTable::Instance()->GetConfiguration(
"H3Op")->SetDiffusionCoefficient(9.46e-9 * (m2 / s));
127 G4MoleculeTable::Instance()->GetConfiguration(
"H3Op")->SetVanDerVaalsRadius(0.25 * nm);
129 G4MoleculeTable::Instance()->CreateConfiguration(
"OH", G4OH::Definition());
130 G4MoleculeTable::Instance()->GetConfiguration(
"OH")->SetDiffusionCoefficient(2.2e-9 * (m2 / s));
131 G4MoleculeTable::Instance()->GetConfiguration(
"OH")->SetVanDerVaalsRadius(0.22 * nm);
134 CreateConfiguration(
"OHm",
139 OHm->
SetMass(17.0079 * g / Avogadro * c_squared);
142 G4MoleculeTable::Instance()->CreateConfiguration(
"e_aq", G4Electron_aq::Definition());
143 G4MoleculeTable::Instance()->GetConfiguration(
"e_aq")->SetVanDerVaalsRadius(0.50 * nm);
145 G4MoleculeTable::Instance()->CreateConfiguration(
"H", G4Hydrogen::Definition());
146 G4MoleculeTable::Instance()->GetConfiguration(
"H")->SetVanDerVaalsRadius(0.19 * nm);
148 G4MoleculeTable::Instance()->CreateConfiguration(
"H2", G4H2::Definition());
149 G4MoleculeTable::Instance()->GetConfiguration(
"H2")->SetDiffusionCoefficient(4.8e-9 * (m2 / s));
150 G4MoleculeTable::Instance()->GetConfiguration(
"H2")->SetVanDerVaalsRadius(0.14 * nm);
152 G4MoleculeTable::Instance()->CreateConfiguration(
"H2O2", G4H2O2::Definition());
153 G4MoleculeTable::Instance()->GetConfiguration(
"H2O2")->SetDiffusionCoefficient(2.3e-9 * (m2 / s));
154 G4MoleculeTable::Instance()->GetConfiguration(
"H2O2")->SetVanDerVaalsRadius(0.21 * nm);
158 G4MoleculeTable::Instance()->CreateConfiguration(
"HO2", G4HO2::Definition());
159 G4MoleculeTable::Instance()->GetConfiguration(
"HO2")->SetVanDerVaalsRadius(0.21 * nm);
161 auto HO2m = G4MoleculeTable::Instance()->
162 CreateConfiguration(
"HO2m",
167 HO2m->SetMass(33.00396 * g / Avogadro * c_squared);
168 HO2m->SetVanDerVaalsRadius(0.25 * nm);
171 G4MoleculeTable::Instance()->CreateConfiguration(
"Oxy", G4Oxygen::Definition());
172 G4MoleculeTable::Instance()->GetConfiguration(
"Oxy")->SetVanDerVaalsRadius(0.20 * nm);
175 CreateConfiguration(
"Om",
177 G4Oxygen::Definition(),
180 Om->
SetMass(15.99829 * g / Avogadro * c_squared);
183 G4MoleculeTable::Instance()->CreateConfiguration(
"O2", G4O2::Definition());
184 G4MoleculeTable::Instance()->GetConfiguration(
"O2")->SetVanDerVaalsRadius(0.17 * nm);
186 auto O2m = G4MoleculeTable::Instance()->
187 CreateConfiguration(
"O2m",
192 O2m->SetMass(31.99602 * g / Avogadro * c_squared);
193 O2m->SetVanDerVaalsRadius(0.22 * nm);
195 G4MoleculeTable::Instance()->CreateConfiguration(
"O3", G4O3::Definition());
196 G4MoleculeTable::Instance()->GetConfiguration(
"O3")->SetVanDerVaalsRadius(0.20 * nm);
198 auto O3m = G4MoleculeTable::Instance()->
199 CreateConfiguration(
"O3m",
204 O3m->SetMass(47.99375 * g / Avogadro * c_squared);
205 O3m->SetVanDerVaalsRadius(0.20 * nm);
207 G4MoleculeTable::Instance()->CreateConfiguration(
"H2O(B)",
213 G4MoleculeTable::Instance()->CreateConfiguration(
"H3Op(B)",
219 G4MoleculeTable::Instance()->CreateConfiguration(
"OHm(B)",
225 G4MoleculeTable::Instance()->CreateConfiguration(
"O2(B)",
231 G4MoleculeTable::Instance()->CreateConfiguration(
"NO2m(B)",
237 G4MoleculeTable::Instance()->CreateConfiguration(
"NO3m(B)",
244 G4MoleculeTable::Instance()->CreateConfiguration(
"NoneM", G4FakeMolecule::Definition());
252 auto OH = G4MoleculeTable::Instance()->GetConfiguration(
"OH");
253 auto OHm = G4MoleculeTable::Instance()->GetConfiguration(
"OHm");
254 auto e_aq = G4MoleculeTable::Instance()->GetConfiguration(
"e_aq");
255 auto H2 = G4MoleculeTable::Instance()->GetConfiguration(
"H2");
256 auto H3O = G4MoleculeTable::Instance()->GetConfiguration(
"H3Op");
257 auto H = G4MoleculeTable::Instance()->GetConfiguration(
"H");
261 auto *water = G4H2O::Definition();
277 decCh1->SetEnergy(waterExcitation.ExcitationEnergy(0));
278 decCh1->SetProbability(0.35);
279 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::NoDisplacement);
281 decCh2->AddProduct(OH);
282 decCh2->AddProduct(H);
283 decCh2->SetProbability(0.65);
284 decCh2->SetDisplacementType(
285 G4DNAWaterDissociationDisplacer::A1B1_DissociationDecay);
288 occ->RemoveElectron(4, 1);
289 occ->AddElectron(5, 1);
291 water->NewConfigurationWithElectronOccupancy(
"A^1B_1", *occ);
292 water->AddDecayChannel(
"A^1B_1", decCh1);
293 water->AddDecayChannel(
"A^1B_1", decCh2);
302 decCh1->SetEnergy(waterExcitation.ExcitationEnergy(1));
303 decCh1->SetProbability(0.3);
306 decCh2->AddProduct(H2);
307 decCh2->AddProduct(OH);
308 decCh2->AddProduct(OH);
309 decCh2->SetProbability(0.15);
310 decCh2->SetDisplacementType(
311 G4DNAWaterDissociationDisplacer::B1A1_DissociationDecay);
314 decCh3->AddProduct(OH);
315 decCh3->AddProduct(H3O);
316 decCh3->AddProduct(e_aq);
317 decCh3->SetProbability(0.55);
318 decCh3->SetDisplacementType(G4DNAWaterDissociationDisplacer::AutoIonisation);
320 *occ = *(water->GetGroundStateElectronOccupancy());
321 occ->RemoveElectron(3);
322 occ->AddElectron(5, 1);
324 water->NewConfigurationWithElectronOccupancy(
"B^1A_1", *occ);
325 water->AddDecayChannel(
"B^1A_1", decCh1);
326 water->AddDecayChannel(
"B^1A_1", decCh2);
327 water->AddDecayChannel(
"B^1A_1", decCh3);
332 "Excitation3rdLayer_AutoIonisation_Channel");
334 "Excitation3rdLayer_Relaxation_Channel");
337 decCh1->AddProduct(OH);
338 decCh1->AddProduct(H3O);
339 decCh1->AddProduct(e_aq);
341 decCh1->SetProbability(0.5);
342 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::AutoIonisation);
345 decCh2->SetEnergy(waterExcitation.ExcitationEnergy(2));
346 decCh2->SetProbability(0.5);
349 *occ = *(water->GetGroundStateElectronOccupancy());
350 occ->RemoveElectron(2, 1);
351 occ->AddElectron(5, 1);
354 water->NewConfigurationWithElectronOccupancy(
"Excitation3rdLayer", *occ);
355 water->AddDecayChannel(
"Excitation3rdLayer", decCh1);
356 water->AddDecayChannel(
"Excitation3rdLayer", decCh2);
361 "Excitation2ndLayer_AutoIonisation_Channel");
363 "Excitation2ndLayer_Relaxation_Channel");
366 decCh1->AddProduct(OH);
367 decCh1->AddProduct(H3O);
368 decCh1->AddProduct(e_aq);
370 decCh1->SetProbability(0.5);
371 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::AutoIonisation);
374 decCh2->SetEnergy(waterExcitation.ExcitationEnergy(3));
375 decCh2->SetProbability(0.5);
377 *occ = *(water->GetGroundStateElectronOccupancy());
378 occ->RemoveElectron(1, 1);
379 occ->AddElectron(5, 1);
381 water->NewConfigurationWithElectronOccupancy(
"Excitation2ndLayer", *occ);
382 water->AddDecayChannel(
"Excitation2ndLayer", decCh1);
383 water->AddDecayChannel(
"Excitation2ndLayer", decCh2);
388 "Excitation1stLayer_AutoIonisation_Channel");
390 "Excitation1stLayer_Relaxation_Channel");
392 *occ = *(water->GetGroundStateElectronOccupancy());
393 occ->RemoveElectron(0, 1);
394 occ->AddElectron(5, 1);
397 decCh1->AddProduct(OH);
398 decCh1->AddProduct(H3O);
399 decCh1->AddProduct(e_aq);
400 decCh1->SetProbability(0.5);
401 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::AutoIonisation);
404 decCh2->SetEnergy(waterExcitation.ExcitationEnergy(4));
405 decCh2->SetProbability(0.5);
407 water->NewConfigurationWithElectronOccupancy(
"Excitation1stLayer", *occ);
408 water->AddDecayChannel(
"Excitation1stLayer", decCh1);
409 water->AddDecayChannel(
"Excitation1stLayer", decCh2);
420 decCh1->AddProduct(H3O);
421 decCh1->AddProduct(OH);
422 decCh1->SetProbability(1);
423 decCh1->SetDisplacementType(
424 G4DNAWaterDissociationDisplacer::Ionisation_DissociationDecay);
426 *occ = *(water->GetGroundStateElectronOccupancy());
427 occ->RemoveElectron(4, 1);
429 water->NewConfigurationWithElectronOccupancy(
"Ionisation5", *occ);
430 water->AddDecayChannel(
"Ionisation5",
433 *occ = *(water->GetGroundStateElectronOccupancy());
434 occ->RemoveElectron(3, 1);
435 water->NewConfigurationWithElectronOccupancy(
"Ionisation4", *occ);
436 water->AddDecayChannel(
"Ionisation4",
439 *occ = *(water->GetGroundStateElectronOccupancy());
440 occ->RemoveElectron(2, 1);
441 water->NewConfigurationWithElectronOccupancy(
"Ionisation3", *occ);
442 water->AddDecayChannel(
"Ionisation3",
445 *occ = *(water->GetGroundStateElectronOccupancy());
446 occ->RemoveElectron(1, 1);
447 water->NewConfigurationWithElectronOccupancy(
"Ionisation2", *occ);
448 water->AddDecayChannel(
"Ionisation2",
451 *occ = *(water->GetGroundStateElectronOccupancy());
452 occ->RemoveElectron(0, 1);
453 water->NewConfigurationWithElectronOccupancy(
"Ionisation1", *occ);
454 water->AddDecayChannel(
"Ionisation1",
463 decCh1->AddProduct(H2);
464 decCh1->AddProduct(OHm);
465 decCh1->AddProduct(OH);
466 decCh1->SetProbability(1);
468 DissociativeAttachment);
470 *occ = *(water->GetGroundStateElectronOccupancy());
471 occ->AddElectron(5, 1);
472 water->NewConfigurationWithElectronOccupancy(
"DissociativeAttachment", *occ);
473 water->AddDecayChannel(
"DissociativeAttachment", decCh1);
483 decCh1->AddProduct(H2);
484 decCh1->AddProduct(OH);
485 decCh1->AddProduct(OH);
486 decCh1->SetProbability(0.15);
488 B1A1_DissociationDecay);
491 decCh2->AddProduct(OH);
492 decCh2->AddProduct(H);
493 decCh2->SetProbability(0.55);
495 A1B1_DissociationDecay);
498 decCh3->SetProbability(0.30);
500 const auto pH2Ovib = G4H2O::Definition()->NewConfiguration(
"H2Ovib");
501 assert(pH2Ovib !=
nullptr);
503 water->AddDecayChannel(pH2Ovib, decCh1);
504 water->AddDecayChannel(pH2Ovib, decCh2);
505 water->AddDecayChannel(pH2Ovib, decCh3);
552 auto ph = G4PhysicsListHelper::GetPhysicsListHelper();
553 G4VProcess *process = G4ProcessTable::GetProcessTable()->
554 FindProcess(
"e-_G4DNAVibExcitation",
"e-");
559 if (sancheExcitationMod) {
560 sancheExcitationMod->ExtendLowEnergyLimit(0.025 * eV);
564 G4ProcessTable::GetProcessTable()->
565 FindProcess(
"e-_G4DNAElectronSolvation",
"e-");
567 if (process ==
nullptr) {
570 G4Electron::Definition());
572 auto *theMoleculeTable = G4MoleculeTable::Instance();
573 G4MoleculeDefinitionIterator iterator =
574 theMoleculeTable->GetDefintionIterator();
578 if (moleculeDef == G4H2O::Definition()) {
584 moleculeDef->GetProcessManager()->AddRestProcess(dissociationProcess, 1);
587 G4DNAChemistryManager::Instance()->Initialize();