Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4EmDNAChemistry_option3 Class Reference

#include <G4EmDNAChemistry_option3.hh>

+ Inheritance diagram for G4EmDNAChemistry_option3:

Public Member Functions

 G4EmDNAChemistry_option3 ()
 
virtual ~G4EmDNAChemistry_option3 ()
 
virtual void ConstructParticle ()
 
virtual void ConstructMolecule ()
 
virtual void ConstructProcess ()
 
virtual void ConstructDissociationChannels ()
 
virtual void ConstructReactionTable (G4DNAMolecularReactionTable *reactionTable)
 
virtual void ConstructTimeStepModel (G4DNAMolecularReactionTable *reactionTable)
 
void SetTimeStepModel (const TimeStepModel &model)
 
- Public Member Functions inherited from G4VUserChemistryList
 G4VUserChemistryList (G4bool flag=true)
 
virtual ~G4VUserChemistryList ()
 
bool IsPhysicsConstructor ()
 
void ThisIsAPhysicsConstructor (G4bool flag=true)
 
virtual void ConstructMolecule ()
 
virtual void ConstructProcess ()
 
virtual void ConstructDissociationChannels ()
 
virtual void ConstructReactionTable (G4DNAMolecularReactionTable *reactionTable)=0
 
virtual void ConstructTimeStepModel (G4DNAMolecularReactionTable *reactionTable)=0
 
void BuildPhysicsTable ()
 
- Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
 
virtual ~G4VPhysicsConstructor ()
 
virtual void ConstructParticle ()=0
 
virtual void ConstructProcess ()=0
 
void SetPhysicsName (const G4String &="")
 
const G4StringGetPhysicsName () const
 
void SetPhysicsType (G4int)
 
G4int GetPhysicsType () const
 
G4int GetInstanceID () const
 
virtual void TerminateWorker ()
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManagerGetSubInstanceManager ()
 
- Protected Types inherited from G4VPhysicsConstructor
using PhysicsBuilder_V = G4VPCData::PhysicsBuilders_V
 
- Protected Member Functions inherited from G4VUserChemistryList
void BuildPhysicsTable (G4MoleculeDefinition *)
 
void RegisterTimeStepModel (G4VITStepModel *timeStepModel, G4double startingTime=0)
 
- Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
 
PhysicsBuilder_V GetBuilders () const
 
void AddBuilder (G4PhysicsBuilderInterface *bld)
 
- Protected Attributes inherited from G4VUserChemistryList
G4int verboseLevel
 
G4bool fIsPhysicsConstructor
 
- Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel = 0
 
G4String namePhysics = ""
 
G4int typePhysics = 0
 
G4ParticleTabletheParticleTable = nullptr
 
G4int g4vpcInstanceID = 0
 
- Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager
 

Detailed Description

Definition at line 43 of file G4EmDNAChemistry_option3.hh.

Constructor & Destructor Documentation

◆ G4EmDNAChemistry_option3()

G4EmDNAChemistry_option3::G4EmDNAChemistry_option3 ( )

Definition at line 116 of file G4EmDNAChemistry_option3.cc.

116 :
118{
120}
static G4DNAChemistryManager * Instance()
void SetChemistryList(G4VUserChemistryList &)

◆ ~G4EmDNAChemistry_option3()

G4EmDNAChemistry_option3::~G4EmDNAChemistry_option3 ( )
virtual

Definition at line 124 of file G4EmDNAChemistry_option3.cc.

125{
126}

Member Function Documentation

◆ ConstructDissociationChannels()

void G4EmDNAChemistry_option3::ConstructDissociationChannels ( )
virtual

Reimplemented from G4VUserChemistryList.

Definition at line 271 of file G4EmDNAChemistry_option3.cc.

272{
273 //-----------------------------------
274 //Get the molecular configuration
289
290 //-------------------------------------
291 //Define the decay channels
298
301
302 //////////////////////////////////////////////////////////
303 // EXCITATIONS //
304 //////////////////////////////////////////////////////////
305 G4DNAWaterExcitationStructure waterExcitation;
306 //--------------------------------------------------------
307 //---------------Excitation on the fifth layer------------
308
309 decCh1 = new G4MolecularDissociationChannel("A^1B_1_Relaxation");
310 decCh2 = new G4MolecularDissociationChannel("A^1B_1_DissociativeDecay");
311 //Decay 1 : OH + H
312 decCh1->SetEnergy(waterExcitation.ExcitationEnergy(0));
313 decCh1->SetProbability(0.35);
314 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::NoDisplacement);
315
316 decCh2->AddProduct(OH);
317 decCh2->AddProduct(H);
318 decCh2->SetProbability(0.65);
319 decCh2->SetDisplacementType(
320 G4DNAWaterDissociationDisplacer::A1B1_DissociationDecay);
321
322 occ->RemoveElectron(4, 1); // this is the transition form ground state to
323 occ->AddElectron(5, 1); // the first unoccupied orbital: A^1B_1
324
325 water->NewConfigurationWithElectronOccupancy("A^1B_1", *occ);
326 water->AddDecayChannel("A^1B_1", decCh1);
327 water->AddDecayChannel("A^1B_1", decCh2);
328
329 //--------------------------------------------------------
330 //---------------Excitation on the fourth layer-----------
331 decCh1 = new G4MolecularDissociationChannel("B^1A_1_Relaxation_Channel");
332 decCh2 = new G4MolecularDissociationChannel("B^1A_1_DissociativeDecay");
333 decCh3 = new G4MolecularDissociationChannel("B^1A_1_AutoIonisation_Channel");
334 decCh4 = new G4MolecularDissociationChannel("A^1B_1_DissociativeDecay");
335 decCh5 = new G4MolecularDissociationChannel("B^1A_1_DissociativeDecay2");
336
337
338 //Decay 1 : energy
339 decCh1->SetEnergy(waterExcitation.ExcitationEnergy(1));
340 decCh1->SetProbability(0.175);
341
342 //Decay 2 : 2OH + H_2
343 decCh2->AddProduct(H2);
344 decCh2->AddProduct(OH);
345 decCh2->AddProduct(OH);
346 decCh2->SetProbability(0.0325);
347 decCh2->SetDisplacementType(
348 G4DNAWaterDissociationDisplacer::B1A1_DissociationDecay);
349
350 //Decay 3 : OH + H_3Op + e_aq
351 decCh3->AddProduct(OH);
352 decCh3->AddProduct(H3O);
353 decCh3->AddProduct(e_aq);
354 decCh3->SetProbability(0.50);
355 decCh3->SetDisplacementType(G4DNAWaterDissociationDisplacer::AutoIonisation);
356
357 //Decay 4 : H + OH
358 decCh4->AddProduct(H);
359 decCh4->AddProduct(OH);
360 decCh4->SetProbability(0.2535);
361 decCh4->SetDisplacementType(G4DNAWaterDissociationDisplacer::A1B1_DissociationDecay);
362
363 //Decay 5 : 2H + O
364 decCh5->AddProduct(O);
365 decCh5->AddProduct(H);
366 decCh5->AddProduct(H);
367 decCh5->SetProbability(0.039);
368 decCh5->SetDisplacementType(G4DNAWaterDissociationDisplacer::B1A1_DissociationDecay2);
369
370 *occ = *(water->GetGroundStateElectronOccupancy());
371 occ->RemoveElectron(3); // this is the transition form ground state to
372 occ->AddElectron(5, 1); // the first unoccupied orbital: B^1A_1
373
374 water->NewConfigurationWithElectronOccupancy("B^1A_1", *occ);
375 water->AddDecayChannel("B^1A_1", decCh1);
376 water->AddDecayChannel("B^1A_1", decCh2);
377 water->AddDecayChannel("B^1A_1", decCh3);
378 water->AddDecayChannel("B^1A_1", decCh4);
379 water->AddDecayChannel("B^1A_1", decCh5);
380
381 //-------------------------------------------------------
382 //-------------------Excitation of 3rd layer-----------------
384 "Excitation3rdLayer_AutoIonisation_Channel");
386 "Excitation3rdLayer_Relaxation_Channel");
387
388 //Decay channel 1 : : OH + H_3Op + e_aq
389 decCh1->AddProduct(OH);
390 decCh1->AddProduct(H3O);
391 decCh1->AddProduct(e_aq);
392
393 decCh1->SetProbability(0.5);
394 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::AutoIonisation);
395
396 //Decay channel 2 : energy
397 decCh2->SetEnergy(waterExcitation.ExcitationEnergy(2));
398 decCh2->SetProbability(0.5);
399
400 //Electronic configuration of this decay
401 *occ = *(water->GetGroundStateElectronOccupancy());
402 occ->RemoveElectron(2, 1);
403 occ->AddElectron(5, 1);
404
405 //Configure the water molecule
406 water->NewConfigurationWithElectronOccupancy("Excitation3rdLayer", *occ);
407 water->AddDecayChannel("Excitation3rdLayer", decCh1);
408 water->AddDecayChannel("Excitation3rdLayer", decCh2);
409
410 //-------------------------------------------------------
411 //-------------------Excitation of 2nd layer-----------------
413 "Excitation2ndLayer_AutoIonisation_Channel");
415 "Excitation2ndLayer_Relaxation_Channel");
416
417 //Decay Channel 1 : : OH + H_3Op + e_aq
418 decCh1->AddProduct(OH);
419 decCh1->AddProduct(H3O);
420 decCh1->AddProduct(e_aq);
421
422 decCh1->SetProbability(0.5);
423 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::AutoIonisation);
424
425 //Decay channel 2 : energy
426 decCh2->SetEnergy(waterExcitation.ExcitationEnergy(3));
427 decCh2->SetProbability(0.5);
428
429 *occ = *(water->GetGroundStateElectronOccupancy());
430 occ->RemoveElectron(1, 1);
431 occ->AddElectron(5, 1);
432
433 water->NewConfigurationWithElectronOccupancy("Excitation2ndLayer", *occ);
434 water->AddDecayChannel("Excitation2ndLayer", decCh1);
435 water->AddDecayChannel("Excitation2ndLayer", decCh2);
436
437 //-------------------------------------------------------
438 //-------------------Excitation of 1st layer-----------------
440 "Excitation1stLayer_AutoIonisation_Channel");
442 "Excitation1stLayer_Relaxation_Channel");
443
444 *occ = *(water->GetGroundStateElectronOccupancy());
445 occ->RemoveElectron(0, 1);
446 occ->AddElectron(5, 1);
447
448 //Decay Channel 1 : : OH + H_3Op + e_aq
449 decCh1->AddProduct(OH);
450 decCh1->AddProduct(H3O);
451 decCh1->AddProduct(e_aq);
452 decCh1->SetProbability(0.5);
453 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::AutoIonisation);
454
455 //Decay channel 2 : energy
456 decCh2->SetEnergy(waterExcitation.ExcitationEnergy(4));
457 decCh2->SetProbability(0.5);
458
459 water->NewConfigurationWithElectronOccupancy("Excitation1stLayer", *occ);
460 water->AddDecayChannel("Excitation1stLayer", decCh1);
461 water->AddDecayChannel("Excitation1stLayer", decCh2);
462
463 /////////////////////////////////////////////////////////
464 // IONISATION //
465 /////////////////////////////////////////////////////////
466 //--------------------------------------------------------
467 //------------------- Ionisation -------------------------
468
469 decCh1 = new G4MolecularDissociationChannel("Ionisation_Channel");
470
471 //Decay Channel 1 : : OH + H_3Op
472 decCh1->AddProduct(H3O);
473 decCh1->AddProduct(OH);
474 decCh1->SetProbability(1);
475 decCh1->SetDisplacementType(
476 G4DNAWaterDissociationDisplacer::Ionisation_DissociationDecay);
477
478 *occ = *(water->GetGroundStateElectronOccupancy());
479 occ->RemoveElectron(4, 1);
480 // this is a ionized h2O with a hole in its last orbital
481 water->NewConfigurationWithElectronOccupancy("Ionisation5", *occ);
482 water->AddDecayChannel("Ionisation5",
483 decCh1);
484
485 *occ = *(water->GetGroundStateElectronOccupancy());
486 occ->RemoveElectron(3, 1);
487 water->NewConfigurationWithElectronOccupancy("Ionisation4", *occ);
488 water->AddDecayChannel("Ionisation4",
489 new G4MolecularDissociationChannel(*decCh1));
490
491 *occ = *(water->GetGroundStateElectronOccupancy());
492 occ->RemoveElectron(2, 1);
493 water->NewConfigurationWithElectronOccupancy("Ionisation3", *occ);
494 water->AddDecayChannel("Ionisation3",
495 new G4MolecularDissociationChannel(*decCh1));
496
497 *occ = *(water->GetGroundStateElectronOccupancy());
498 occ->RemoveElectron(1, 1);
499 water->NewConfigurationWithElectronOccupancy("Ionisation2", *occ);
500 water->AddDecayChannel("Ionisation2",
501 new G4MolecularDissociationChannel(*decCh1));
502
503 *occ = *(water->GetGroundStateElectronOccupancy());
504 occ->RemoveElectron(0, 1);
505 water->NewConfigurationWithElectronOccupancy("Ionisation1", *occ);
506 water->AddDecayChannel("Ionisation1",
507 new G4MolecularDissociationChannel(*decCh1));
508
509 //////////////////////////////////////////////////////////
510 // Dissociative Attachment //
511 //////////////////////////////////////////////////////////
512 decCh1 = new G4MolecularDissociationChannel("DissociativeAttachment_ch1");
513
514 //Decay 1 : OHm + H
515 decCh1->AddProduct(H2);
516 decCh1->AddProduct(OHm);
517 decCh1->AddProduct(OH);
518 decCh1->SetProbability(1);
520 DissociativeAttachment);
521
522 *occ = *(water->GetGroundStateElectronOccupancy());
523 occ->AddElectron(5,1); // H_2O^-
524
525 water->NewConfigurationWithElectronOccupancy("DissociativeAttachment_ch1", *occ);
526 water->AddDecayChannel("DissociativeAttachment_ch1", decCh1);
527
528 //////////////////////////////////////////////////////////
529 // Electron-hole recombination //
530 //////////////////////////////////////////////////////////
531 decCh1 = new G4MolecularDissociationChannel("H2Ovib_DissociationDecay1");
532 decCh2 = new G4MolecularDissociationChannel("H2Ovib_DissociationDecay2");
533 decCh3 = new G4MolecularDissociationChannel("H2Ovib_DissociationDecay3");
534 decCh4 = new G4MolecularDissociationChannel("H2Ovib_DissociationDecay4");
535
536 //Decay 1 : 2OH + H_2
537 decCh1->AddProduct(H2);
538 decCh1->AddProduct(OH);
539 decCh1->AddProduct(OH);
540 decCh1->SetProbability(0.1365);
542 B1A1_DissociationDecay);
543
544 //Decay 2 : OH + H
545 decCh2->AddProduct(OH);
546 decCh2->AddProduct(H);
547 decCh2->SetProbability(0.3575);
549 A1B1_DissociationDecay);
550
551 //Decay 3 : 2H + O(3p)
552 decCh3->AddProduct(O);
553 decCh3->AddProduct(H);
554 decCh3->AddProduct(H);
555 decCh3->SetProbability(0.156);
557 B1A1_DissociationDecay2);
558
559 //Decay 4 : relaxation
560 decCh4->SetProbability(0.35);
561
562 const auto pH2Ovib = G4H2O::Definition()->NewConfiguration("H2Ovib");
563 assert(pH2Ovib != nullptr);
564
565 water->AddDecayChannel(pH2Ovib, decCh1);
566 water->AddDecayChannel(pH2Ovib, decCh2);
567 water->AddDecayChannel(pH2Ovib, decCh3);
568 water->AddDecayChannel(pH2Ovib, decCh4);
569
570 delete occ;
571}
G4int AddElectron(G4int orbit, G4int number=1)
G4int RemoveElectron(G4int orbit, G4int number=1)
static G4H2O * Definition()
Definition: G4H2O.cc:42
void AddProduct(Product *, G4double displacement=0.)
const G4ElectronOccupancy * GetGroundStateElectronOccupancy() const
void AddDecayChannel(const G4MolecularConfiguration *molConf, const G4MolecularDissociationChannel *channel)
G4MolecularConfiguration * NewConfiguration(const G4String &excitedStateLabel)
G4MolecularConfiguration * NewConfigurationWithElectronOccupancy(const G4String &excitedStateLabel, const G4ElectronOccupancy &, double decayTime=0.)
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)
static G4MoleculeTable * Instance()

◆ ConstructMolecule()

void G4EmDNAChemistry_option3::ConstructMolecule ( )
virtual

Reimplemented from G4VUserChemistryList.

Definition at line 130 of file G4EmDNAChemistry_option3.cc.

131{
132 //-----------------------------------
133 // G4Electron::Definition(); // safety
134
135 //-----------------------------------
136 // Create the definition
137
145
150
151 //____________________________________________________________________________
152
155 9.46e-9 * (m2/s));
157
160 2.2e-9 * (m2/s));
162
164 CreateConfiguration("OHm", // just a tag to store and retrieve from
165 // G4MoleculeTable
167 -1, // charge
168 5.3e-9 * (m2 / s));
169 OHm->SetMass(17.0079 * g / Avogadro * c_squared);
170 OHm->SetVanDerVaalsRadius(0.33*nm);
171
172
173
174
178
182
183 G4MoleculeTable::Instance()->CreateConfiguration("H2", G4H2::Definition());
185 4.8e-9 * (m2/s));
187
188
191 2.3e-9 * (m2/s));
193
194 // molecules extension (RITRACKS)
195
198
200 CreateConfiguration("HO2m", // just a tag to store and retrieve from
201 // G4MoleculeTable
203 -1, // charge
204 1.4e-9 * (m2 / s));
205 HO2m->SetMass(33.00396 * g / Avogadro * c_squared);
206 HO2m->SetVanDerVaalsRadius(0.25*nm);
207
210
212 CreateConfiguration("Om", // just a tag to store and retrieve from
213 // G4MoleculeTable
215 -1, // charge
216 2.0e-9 * (m2 / s));
217 Om->SetMass(15.99829 * g / Avogadro * c_squared);
218 Om->SetVanDerVaalsRadius(0.25*nm);
219
222
224 CreateConfiguration("O2m", // just a tag to store and retrieve from
225 // G4MoleculeTable
227 -1, // charge
228 1.75e-9 * (m2 / s));
229 O2m->SetMass(31.99602 * g / Avogadro * c_squared);
230 O2m->SetVanDerVaalsRadius(0.22*nm);
231
234
236 CreateConfiguration("O3m", // just a tag to store and retrieve from
237 // G4MoleculeTable
239 -1, // charge
240 2.0e-9 * (m2 / s));
241 O3m->SetMass(47.99375 * g / Avogadro * c_squared);
242 O3m->SetVanDerVaalsRadius(0.20*nm);
243
245 CreateConfiguration("H2O(B)", // just a tag to store and retrieve from
246 // G4MoleculeTable
248 0, // charge
249 0 * (m2 / s));
250
252 CreateConfiguration("H3Op(B)", // just a tag to store and retrieve from
253 // G4MoleculeTable
255 1, // charge
256 0 * (m2 / s));
257
259 CreateConfiguration("OHm(B)", // just a tag to store and retrieve from
260 // G4MoleculeTable
262 -1, // charge
263 0 * (m2 / s));
264
266
267}
static G4Electron_aq * Definition()
static G4FakeMolecule * Definition()
static G4H2O2 * Definition()
Definition: G4H2O2.cc:45
static G4H2 * Definition()
Definition: G4H2.cc:45
static G4H3O * Definition()
Definition: G4H3O.cc:46
static G4HO2 * Definition()
Definition: G4HO2.cc:45
static G4Hydrogen * Definition()
Definition: G4Hydrogen.cc:45
G4MolecularConfiguration * CreateConfiguration(const G4String &userIdentifier, const G4MoleculeDefinition *molDef, const G4String &configurationLabel, const G4ElectronOccupancy &eOcc)
static G4O2 * Definition()
Definition: G4O2.cc:45
static G4O3 * Definition()
Definition: G4O3.cc:45
static G4OH * Definition()
Definition: G4OH.cc:45
static G4Oxygen * Definition()
Definition: G4Oxygen.cc:44

Referenced by ConstructParticle().

◆ ConstructParticle()

virtual void G4EmDNAChemistry_option3::ConstructParticle ( )
inlinevirtual

Implements G4VPhysicsConstructor.

Definition at line 52 of file G4EmDNAChemistry_option3.hh.

53 {
55 }

◆ ConstructProcess()

void G4EmDNAChemistry_option3::ConstructProcess ( )
virtual

Reimplemented from G4VUserChemistryList.

Definition at line 1275 of file G4EmDNAChemistry_option3.cc.

1276{
1278
1279 //===============================================================
1280 // Extend vibrational to low energy
1281 // Anyway, solvation of electrons is taken into account from 7.4 eV
1282 // So below this threshold, for now, no accurate modeling is done
1283 //
1284 G4VProcess* process =
1286 FindProcess("e-_G4DNAVibExcitation", "e-");
1287
1288 if (process)
1289 {
1290 G4DNAVibExcitation* vibExcitation = (G4DNAVibExcitation*) process;
1291 G4VEmModel* model = vibExcitation->EmModel();
1292 G4DNASancheExcitationModel* sancheExcitationMod =
1293 dynamic_cast<G4DNASancheExcitationModel*>(model);
1294 if(sancheExcitationMod)
1295 {
1296 sancheExcitationMod->ExtendLowEnergyLimit(0.025 * eV);
1297 }
1298 }
1299
1300 //===============================================================
1301 // *** Electron Solvatation ***
1302 //
1303 process =
1305 FindProcess("e-_G4DNAElectronSolvation", "e-");
1306
1307 if (process == 0)
1308 {
1309 ph->RegisterProcess(
1310 new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"),
1312 }
1313
1314
1315 //===============================================================
1316 // Define processes for molecules
1317 //
1318 G4MoleculeTable* theMoleculeTable = G4MoleculeTable::Instance();
1320 theMoleculeTable->GetDefintionIterator();
1321 iterator.reset();
1322 while (iterator())
1323 {
1324 G4MoleculeDefinition* moleculeDef = iterator.value();
1325
1326 if (moleculeDef != G4H2O::Definition())
1327 {
1328 if(fTimeStepModel != fIRT)
1329 {
1330 auto* brown = new G4DNABrownianTransportation();
1331 ph->RegisterProcess(brown, moleculeDef);
1332 }
1333 }
1334 else
1335 {
1336 moleculeDef->GetProcessManager()
1338 auto* dissociationProcess =
1339 new G4DNAMolecularDissociation("H2O_DNAMolecularDecay");
1340 dissociationProcess->SetDisplacer(
1341 moleculeDef, new G4DNAWaterDissociationDisplacer);
1342 dissociationProcess->SetVerboseLevel(3);
1343
1344 moleculeDef->GetProcessManager()
1345 ->AddRestProcess(dissociationProcess, 1);
1346 }
1347 /*
1348 * Warning : end of particles and processes are needed by
1349 * EM Physics builders
1350 */
1351 }
1352
1354}
static G4Electron * Definition()
Definition: G4Electron.cc:48
G4MoleculeDefinitionIterator GetDefintionIterator()
G4ProcessManager * GetProcessManager() const
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4PhysicsListHelper * GetPhysicsListHelper()
G4int AddRestProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4ProcessTable * GetProcessTable()
G4VEmModel * EmModel(size_t index=0) const

◆ ConstructReactionTable()

void G4EmDNAChemistry_option3::ConstructReactionTable ( G4DNAMolecularReactionTable reactionTable)
virtual

Implements G4VUserChemistryList.

Definition at line 575 of file G4EmDNAChemistry_option3.cc.

577{
578 //-----------------------------------
579 //Get the molecular configuration
610
617
620
621 // Type I //
622 //------------------------------------------------------------------
623 // *H + *H -> H2
625 0.503e10 * (1e-3 * m3 / (mole * s)), H, H);
626 reactionData->AddProduct(H2);
627 theReactionTable->SetReaction(reactionData);
628 //------------------------------------------------------------------
629 // e_aq + H* + H2O -> H2 + OH-
630 reactionData = new G4DNAMolecularReactionData(
631 2.50e10 * (1e-3 * m3 / (mole * s)), e_aq, H);
632 reactionData->AddProduct(OHm);
633 reactionData->AddProduct(H2);
634 theReactionTable->SetReaction(reactionData);
635
636 // H + O(3p) -> OH
637 reactionData = new G4DNAMolecularReactionData(
638 2.02e10 * (1e-3 * m3 / (mole * s)), H, O);
639 reactionData->AddProduct(OH);
640 theReactionTable->SetReaction(reactionData);
641 //------------------------------------------------------------------
642 // H + O- -> OH-
643 reactionData = new G4DNAMolecularReactionData(
644 2.00e10 * (1e-3 * m3 / (mole * s)), H, Om);
645 reactionData->AddProduct(OHm);
646 theReactionTable->SetReaction(reactionData);
647 //------------------------------------------------------------------
648 // OH + O(3p) -> HO2
649 reactionData = new G4DNAMolecularReactionData(
650 2.02e10 * (1e-3 * m3 / (mole * s)), OH, O);
651 reactionData->AddProduct(HO2);
652 theReactionTable->SetReaction(reactionData);
653 //------------------------------------------------------------------
654 // HO2 + O(3p) -> O2
655 reactionData = new G4DNAMolecularReactionData(
656 2.02e10 * (1e-3 * m3 / (mole * s)), HO2, O);
657 reactionData->AddProduct(O2);
658 reactionData->AddProduct(OH);
659 theReactionTable->SetReaction(reactionData);
660 //------------------------------------------------------------------
661 // O(3p) + O(3p) -> O2
662 reactionData = new G4DNAMolecularReactionData(
663 2.20e10 * (1e-3 * m3 / (mole * s)), O, O);
664 reactionData->AddProduct(O2);
665 theReactionTable->SetReaction(reactionData);
666
667 // Type III //
668 //------------------------------------------------------------------
669 // e_aq + e_aq + 2H2O -> H2 + 2OH-
670 reactionData = new G4DNAMolecularReactionData(
671 0.636e10 * (1e-3 * m3 / (mole * s)), e_aq, e_aq);
672 reactionData->AddProduct(OHm);
673 reactionData->AddProduct(OHm);
674 reactionData->AddProduct(H2);
675 theReactionTable->SetReaction(reactionData);
676 //------------------------------------------------------------------
677 // H3O+ + OH- -> 2H2O
678 reactionData = new G4DNAMolecularReactionData(
679 1.13e11 * (1e-3 * m3 / (mole * s)), H3Op, OHm);
680 theReactionTable->SetReaction(reactionData);
681 //------------------------------------------------------------------
682 // H3O+ + O3- -> OH + O2
683 reactionData = new G4DNAMolecularReactionData(
684 9.0e10 * (1e-3 * m3 / (mole * s)), H3Op, O3m);
685 reactionData->AddProduct(OH);
686 reactionData->AddProduct(O2);
687 theReactionTable->SetReaction(reactionData);
688
689 // Type II //
690
691 //------------------------------------------------------------------
692 // *OH + *H -> H2O
693 reactionData = new G4DNAMolecularReactionData(
694 1.55e10 * (1e-3 * m3 / (mole * s)), OH, H);
695 if(fTimeStepModel != fSBS)
696 {
697 reactionData->SetReactionType(1);
698 }
699 theReactionTable->SetReaction(reactionData);
700 //------------------------------------------------------------------
701 // H + H2O2 -> OH
702 reactionData = new G4DNAMolecularReactionData(
703 3.50e7 * (1e-3 * m3 / (mole * s)), H, H2O2);
704 reactionData->AddProduct(OH);
705 if(fTimeStepModel != fSBS)
706 {
707 reactionData->SetReactionType(1);
708 }
709 theReactionTable->SetReaction(reactionData);
710 //------------------------------------------------------------------
711 // H + OH- -> eaq-
712 reactionData = new G4DNAMolecularReactionData(
713 2.51e7 * (1e-3 * m3 / (mole * s)), H, OHm);
714 reactionData->AddProduct(e_aq);
715 if(fTimeStepModel != fSBS)
716 {
717 reactionData->SetReactionType(1);
718 }
719 theReactionTable->SetReaction(reactionData);
720 //------------------------------------------------------------------
721 // H + O2 -> HO2
722 reactionData = new G4DNAMolecularReactionData(
723 2.10e10 * (1e-3 * m3 / (mole * s)), H, O2);
724 reactionData->AddProduct(HO2);
725 if(fTimeStepModel != fSBS)
726 {
727 reactionData->SetReactionType(1);
728 }
729 theReactionTable->SetReaction(reactionData);
730 //------------------------------------------------------------------
731 // H + HO2 -> H2O2
732 reactionData = new G4DNAMolecularReactionData(
733 1.00e10 * (1e-3 * m3 / (mole * s)), H, HO2);
734 reactionData->AddProduct(H2O2);
735 if(fTimeStepModel != fSBS)
736 {
737 reactionData->SetReactionType(1);
738 }
739 theReactionTable->SetReaction(reactionData);
740 //------------------------------------------------------------------
741 // H + O2- -> HO2-
742 reactionData = new G4DNAMolecularReactionData(
743 1.00e10 * (1e-3 * m3 / (mole * s)), H, O2m);
744 reactionData->AddProduct(HO2m);
745 if(fTimeStepModel != fSBS)
746 {
747 reactionData->SetReactionType(1);
748 }
749 theReactionTable->SetReaction(reactionData);
750 //------------------------------------------------------------------
751 // *OH + *OH -> H2O2
752 reactionData = new G4DNAMolecularReactionData(
753 0.55e10 * (1e-3 * m3 / (mole * s)), OH, OH);
754 reactionData->AddProduct(H2O2);
755 if(fTimeStepModel != fSBS)
756 {
757 reactionData->SetReactionType(1);
758 }
759
760 theReactionTable->SetReaction(reactionData);
761 //------------------------------------------------------------------
762 // OH + H2O2 -> HO2
763 reactionData = new G4DNAMolecularReactionData(
764 2.88e7 * (1e-3 * m3 / (mole * s)), OH, H2O2);
765 reactionData->AddProduct(HO2);
766 if(fTimeStepModel != fSBS)
767 {
768 reactionData->SetReactionType(1);
769 }
770 theReactionTable->SetReaction(reactionData);
771 //------------------------------------------------------------------
772 // OH + H2 -> H
773 reactionData = new G4DNAMolecularReactionData(
774 3.28e7 * (1e-3 * m3 / (mole * s)), OH, H2);
775 reactionData->AddProduct(H);
776 if(fTimeStepModel != fSBS)
777 {
778 reactionData->SetReactionType(1);
779 }
780 theReactionTable->SetReaction(reactionData);
781 //------------------------------------------------------------------
782 // e_aq + *OH -> OH-
783 reactionData = new G4DNAMolecularReactionData(
784 2.95e10 * (1e-3 * m3 / (mole * s)), e_aq, OH);
785 reactionData->AddProduct(OHm);
786 if(fTimeStepModel != fSBS)
787 {
788 reactionData->SetReactionType(1);
789 }
790 theReactionTable->SetReaction(reactionData);
791 //------------------------------------------------------------------
792 // OH + OH- -> O-
793 reactionData = new G4DNAMolecularReactionData(
794 6.30e9 * (1e-3 * m3 / (mole * s)), OH, OHm);
795 reactionData->AddProduct(Om);
796 if(fTimeStepModel != fSBS)
797 {
798 reactionData->SetReactionType(1);
799 }
800 theReactionTable->SetReaction(reactionData);
801 //------------------------------------------------------------------
802 // OH + HO2 -> O2
803 reactionData = new G4DNAMolecularReactionData(
804 7.90e9 * (1e-3 * m3 / (mole * s)), OH, HO2);
805 reactionData->AddProduct(O2);
806 if(fTimeStepModel != fSBS)
807 {
808 reactionData->SetReactionType(1);
809 }
810 theReactionTable->SetReaction(reactionData);
811 //------------------------------------------------------------------
812 // OH + O2- -> O2 + OH-
813 reactionData = new G4DNAMolecularReactionData(
814 1.07e10 * (1e-3 * m3 / (mole * s)), OH, O2m);
815 reactionData->AddProduct(O2);
816 reactionData->AddProduct(OHm);
817 if(fTimeStepModel != fSBS)
818 {
819 reactionData->SetReactionType(1);
820 }
821 theReactionTable->SetReaction(reactionData);
822 //------------------------------------------------------------------
823 // OH + HO2- -> HO2 + OH-
824 reactionData = new G4DNAMolecularReactionData(
825 8.32e9 * (1e-3 * m3 / (mole * s)), OH, HO2m);
826 reactionData->AddProduct(HO2);
827 reactionData->AddProduct(OHm);
828 if(fTimeStepModel != fSBS)
829 {
830 reactionData->SetReactionType(1);
831 }
832 theReactionTable->SetReaction(reactionData);
833 //------------------------------------------------------------------
834 // OH + O- -> HO2-
835 reactionData = new G4DNAMolecularReactionData(
836 1.00e9 * (1e-3 * m3 / (mole * s)), OH, Om);
837 reactionData->AddProduct(HO2m);
838 if(fTimeStepModel != fSBS)
839 {
840 reactionData->SetReactionType(1);
841 }
842 theReactionTable->SetReaction(reactionData);
843 //------------------------------------------------------------------
844 // OH + O3- -> O2- + HO2
845 reactionData = new G4DNAMolecularReactionData(
846 8.50e9 * (1e-3 * m3 / (mole * s)), OH, O3m);
847 reactionData->AddProduct(O2m);
848 reactionData->AddProduct(HO2);
849 if(fTimeStepModel != fSBS)
850 {
851 reactionData->SetReactionType(1);
852 }
853 theReactionTable->SetReaction(reactionData);
854 //------------------------------------------------------------------
855 // e_aq + H2O2 -> OH- + *OH
856 reactionData = new G4DNAMolecularReactionData(
857 1.10e10 * (1e-3 * m3 / (mole * s)), e_aq, H2O2);
858 reactionData->AddProduct(OHm);
859 reactionData->AddProduct(OH);
860 if(fTimeStepModel != fSBS)
861 {
862 reactionData->SetReactionType(1);
863 }
864 theReactionTable->SetReaction(reactionData);
865 //------------------------------------------------------------------
866 // H2O2 + OH- -> HO2-
867 reactionData = new G4DNAMolecularReactionData(
868 4.71e8 * (1e-3 * m3 / (mole * s)), H2O2, OHm);
869 reactionData->AddProduct(HO2m);
870 if(fTimeStepModel != fSBS)
871 {
872 reactionData->SetReactionType(1);
873 }
874 theReactionTable->SetReaction(reactionData);
875 //------------------------------------------------------------------
876 // H2O2 + O(3p) -> HO2 + OH
877 reactionData = new G4DNAMolecularReactionData(
878 1.60e9 * (1e-3 * m3 / (mole * s)), H2O2, O);
879 reactionData->AddProduct(HO2);
880 reactionData->AddProduct(OH);
881 if(fTimeStepModel != fSBS)
882 {
883 reactionData->SetReactionType(1);
884 }
885 theReactionTable->SetReaction(reactionData);
886 //------------------------------------------------------------------
887 // H2O2 + O- -> HO2 + OH-
888 reactionData = new G4DNAMolecularReactionData(
889 5.55e8 * (1e-3 * m3 / (mole * s)), H2O2, Om);
890 reactionData->AddProduct(HO2);
891 reactionData->AddProduct(OHm);
892 if(fTimeStepModel != fSBS)
893 {
894 reactionData->SetReactionType(1);
895 }
896 theReactionTable->SetReaction(reactionData);
897 //------------------------------------------------------------------
898 // H2 + O(3p) -> H + OH
899 reactionData = new G4DNAMolecularReactionData(
900 4.77e3 * (1e-3 * m3 / (mole * s)), H2, O);
901 reactionData->AddProduct(H);
902 reactionData->AddProduct(OH);
903 if(fTimeStepModel != fSBS)
904 {
905 reactionData->SetReactionType(1);
906 }
907 theReactionTable->SetReaction(reactionData);
908 //------------------------------------------------------------------
909 // H2 + O- -> H + OH-
910 reactionData = new G4DNAMolecularReactionData(
911 1.21e8 * (1e-3 * m3 / (mole * s)), H2, Om);
912 reactionData->AddProduct(H);
913 reactionData->AddProduct(OHm);
914 if(fTimeStepModel != fSBS)
915 {
916 reactionData->SetReactionType(1);
917 }
918 theReactionTable->SetReaction(reactionData);
919 //------------------------------------------------------------------
920 // eaq- + O2 -> O2-
921 reactionData = new G4DNAMolecularReactionData(
922 1.74e10 * (1e-3 * m3 / (mole * s)), e_aq, O2);
923 reactionData->AddProduct(O2m);
924 if(fTimeStepModel != fSBS)
925 {
926 reactionData->SetReactionType(1);
927 }
928 theReactionTable->SetReaction(reactionData);
929 //------------------------------------------------------------------
930 // eaq + HO2 -> HO2-
931 reactionData = new G4DNAMolecularReactionData(
932 1.29e10 * (1e-3 * m3 / (mole * s)), e_aq, HO2);
933 reactionData->AddProduct(HO2m);
934 if(fTimeStepModel != fSBS)
935 {
936 reactionData->SetReactionType(1);
937 }
938 theReactionTable->SetReaction(reactionData);
939 //------------------------------------------------------------------
940 // OH- + HO2 -> O2-
941 reactionData = new G4DNAMolecularReactionData(
942 6.30e9 * (1e-3 * m3 / (mole * s)), OHm, HO2);
943 reactionData->AddProduct(O2m);
944 if(fTimeStepModel != fSBS)
945 {
946 reactionData->SetReactionType(1);
947 }
948 theReactionTable->SetReaction(reactionData);
949 //------------------------------------------------------------------
950 // OH- + O(3p) -> HO2-
951 reactionData = new G4DNAMolecularReactionData(
952 4.20e8 * (1e-3 * m3 / (mole * s)), OHm, O);
953 reactionData->AddProduct(HO2m);
954 if(fTimeStepModel != fSBS)
955 {
956 reactionData->SetReactionType(1);
957 }
958 theReactionTable->SetReaction(reactionData);
959 //------------------------------------------------------------------
960 // O2 + O(3p) -> O3
961 reactionData = new G4DNAMolecularReactionData(
962 4.00e9 * (1e-3 * m3 / (mole * s)), O2, O);
963 reactionData->AddProduct(O3);
964 if(fTimeStepModel != fSBS)
965 {
966 reactionData->SetReactionType(1);
967 }
968 theReactionTable->SetReaction(reactionData);
969 //------------------------------------------------------------------
970 // O2 + O- -> O3-
971 reactionData = new G4DNAMolecularReactionData(
972 3.70e9 * (1e-3 * m3 / (mole * s)), O2, Om);
973 reactionData->AddProduct(O3m);
974 if(fTimeStepModel != fSBS)
975 {
976 reactionData->SetReactionType(1);
977 }
978 theReactionTable->SetReaction(reactionData);
979 //------------------------------------------------------------------
980 // HO2 + HO2 -> H2O2 + O2
981 reactionData = new G4DNAMolecularReactionData(
982 9.80e5 * (1e-3 * m3 / (mole * s)), HO2, HO2);
983 reactionData->AddProduct(H2O2);
984 reactionData->AddProduct(O2);
985 if(fTimeStepModel != fSBS)
986 {
987 reactionData->SetReactionType(1);
988 }
989 theReactionTable->SetReaction(reactionData);
990 //------------------------------------------------------------------
991 // HO2 + O2- -> HO2- + O2
992 reactionData = new G4DNAMolecularReactionData(
993 9.70e7 * (1e-3 * m3 / (mole * s)), HO2, O2m);
994 reactionData->AddProduct(HO2m);
995 reactionData->AddProduct(O2);
996 if(fTimeStepModel != fSBS)
997 {
998 reactionData->SetReactionType(1);
999 }
1000 theReactionTable->SetReaction(reactionData);
1001 //------------------------------------------------------------------
1002 // HO2- + O(3p) -> O2- + OH
1003 reactionData = new G4DNAMolecularReactionData(
1004 5.30e9 * (1e-3 * m3 / (mole * s)), HO2m, O);
1005 reactionData->AddProduct(O2m);
1006 reactionData->AddProduct(OH);
1007 if(fTimeStepModel != fSBS)
1008 {
1009 reactionData->SetReactionType(1);
1010 }
1011 theReactionTable->SetReaction(reactionData);
1012
1013 // Type IV //
1014 //------------------------------------------------------------------
1015 // e_aq + H3O+ -> H* + H2O
1016 reactionData = new G4DNAMolecularReactionData(
1017 2.11e10 * (1e-3 * m3 / (mole * s)), e_aq, H3Op);
1018 reactionData->AddProduct(H);
1019 if(fTimeStepModel != fSBS)
1020 {
1021 reactionData->SetReactionType(1);
1022 }
1023 theReactionTable->SetReaction(reactionData);
1024 //------------------------------------------------------------------
1025 // e_aq + O2- -> H2O2 + OH- + OH-
1026 reactionData = new G4DNAMolecularReactionData(
1027 1.29e10 * (1e-3 * m3 / (mole * s)), e_aq, O2m);
1028 reactionData->AddProduct(H2O2);
1029 reactionData->AddProduct(OHm);
1030 reactionData->AddProduct(OHm);
1031 if(fTimeStepModel != fSBS)
1032 {
1033 reactionData->SetReactionType(1);
1034 }
1035 theReactionTable->SetReaction(reactionData);
1036 //------------------------------------------------------------------
1037 // e_aq + HO2- -> O- + OH-
1038 reactionData = new G4DNAMolecularReactionData(
1039 3.51e9 * (1e-3 * m3 / (mole * s)), e_aq, HO2m);
1040 reactionData->AddProduct(Om);
1041 reactionData->AddProduct(OHm);
1042 if(fTimeStepModel != fSBS)
1043 {
1044 reactionData->SetReactionType(1);
1045 }
1046 theReactionTable->SetReaction(reactionData);
1047 //------------------------------------------------------------------
1048 // e_aq + O- -> OH- + OH-
1049 reactionData = new G4DNAMolecularReactionData(
1050 2.31e10 * (1e-3 * m3 / (mole * s)), e_aq, Om);
1051 reactionData->AddProduct(OHm);
1052 reactionData->AddProduct(OHm);
1053 if(fTimeStepModel != fSBS)
1054 {
1055 reactionData->SetReactionType(1);
1056 }
1057 theReactionTable->SetReaction(reactionData);
1058 //------------------------------------------------------------------
1059 // H3O+ + O2- -> HO2
1060 reactionData = new G4DNAMolecularReactionData(
1061 4.78e10 * (1e-3 * m3 / (mole * s)), H3Op, O2m);
1062 reactionData->AddProduct(HO2);
1063 if(fTimeStepModel != fSBS)
1064 {
1065 reactionData->SetReactionType(1);
1066 }
1067 theReactionTable->SetReaction(reactionData);
1068 //------------------------------------------------------------------
1069 // H3O+ + HO2- -> H2O2
1070 reactionData = new G4DNAMolecularReactionData(
1071 5.00e10 * (1e-3 * m3 / (mole * s)), H3Op, HO2m);
1072 reactionData->AddProduct(H2O2);
1073 if(fTimeStepModel != fSBS)
1074 {
1075 reactionData->SetReactionType(1);
1076 }
1077 theReactionTable->SetReaction(reactionData);
1078 //------------------------------------------------------------------
1079 // H3O+ + O- -> OH
1080 reactionData = new G4DNAMolecularReactionData(
1081 4.78e10 * (1e-3 * m3 / (mole * s)), H3Op, Om);
1082 reactionData->AddProduct(OH);
1083 if(fTimeStepModel != fSBS)
1084 {
1085 reactionData->SetReactionType(1);
1086 }
1087 theReactionTable->SetReaction(reactionData);
1088 //------------------------------------------------------------------
1089 // O2- + O- -> O2 + OH- + OH-
1090 reactionData = new G4DNAMolecularReactionData(
1091 6.00e8 * (1e-3 * m3 / (mole * s)), O2m, Om);
1092 reactionData->AddProduct(O2);
1093 reactionData->AddProduct(OHm);
1094 reactionData->AddProduct(OHm);
1095 if(fTimeStepModel != fSBS)
1096 {
1097 reactionData->SetReactionType(1);
1098 }
1099 theReactionTable->SetReaction(reactionData);
1100 //------------------------------------------------------------------
1101 // HO2- + O- -> O2- + OH-
1102 reactionData = new G4DNAMolecularReactionData(
1103 3.50e8 * (1e-3 * m3 / (mole * s)), HO2m, Om);
1104 reactionData->AddProduct(O2m);
1105 reactionData->AddProduct(OHm);
1106 if(fTimeStepModel != fSBS)
1107 {
1108 reactionData->SetReactionType(1);
1109 }
1110 theReactionTable->SetReaction(reactionData);
1111 //------------------------------------------------------------------
1112 // O- + O- -> H2O2 + OH- + OH-
1113 reactionData = new G4DNAMolecularReactionData(
1114 1.00e8 * (1e-3 * m3 / (mole * s)), Om, Om);
1115 reactionData->AddProduct(H2O2);
1116 reactionData->AddProduct(OHm);
1117 reactionData->AddProduct(OHm);
1118 if(fTimeStepModel != fSBS)
1119 {
1120 reactionData->SetReactionType(1);
1121 }
1122 theReactionTable->SetReaction(reactionData);
1123 //------------------------------------------------------------------
1124 // O- + O3- -> O2- + O2-
1125 reactionData = new G4DNAMolecularReactionData(
1126 7.00e8 * (1e-3 * m3 / (mole * s)), Om, O3m);
1127 reactionData->AddProduct(O2m);
1128 reactionData->AddProduct(O2m);
1129 if(fTimeStepModel != fSBS)
1130 {
1131 reactionData->SetReactionType(1);
1132 }
1133 theReactionTable->SetReaction(reactionData);
1134
1135 // Type VI
1136 // First order reaction
1137 //------------------------------------------------------------------
1138 // O3- -> O- + O2
1139 reactionData = new G4DNAMolecularReactionData(
1140 2.66e3 / s, O3m,None);
1141 reactionData->AddProduct(H3Op);
1142 reactionData->AddProduct(O2m);
1143 theReactionTable->SetReaction(reactionData);
1144
1145 // Scavenging reactions
1146
1147 //------------------------------------------------------------------
1148 // HO2 + H2O -> H3O+ + O2-
1149 reactionData = new G4DNAMolecularReactionData(
1150 7.15e5 / s, HO2,H2OB);
1151 reactionData->AddProduct(H3Op);
1152 reactionData->AddProduct(O2m);
1153 theReactionTable->SetReaction(reactionData);
1154 //------------------------------------------------------------------
1155 // H + H2O -> eaq- + H3O+ 5.94 / s
1156 reactionData = new G4DNAMolecularReactionData(
1157 5.94e0 / s, H,H2OB);
1158 reactionData->AddProduct(e_aq);
1159 reactionData->AddProduct(H3Op);
1160 theReactionTable->SetReaction(reactionData);
1161 //------------------------------------------------------------------
1162 // eaq- + H2O -> H + OH- 15.8 / s
1163 reactionData = new G4DNAMolecularReactionData(
1164 1.58e1 / s, e_aq,H2OB);
1165 reactionData->AddProduct(H);
1166 reactionData->AddProduct(OHm);
1167 theReactionTable->SetReaction(reactionData);
1168 //------------------------------------------------------------------
1169 // O2- + H2O -> HO2 + OH- 0.15 / s
1170 reactionData = new G4DNAMolecularReactionData(
1171 1.50e-1 / s, O2m,H2OB);
1172 reactionData->AddProduct(HO2);
1173 reactionData->AddProduct(OHm);
1174 theReactionTable->SetReaction(reactionData);
1175 //------------------------------------------------------------------
1176 // HO2- + H2O -> H2O2 + OH- 1.36e6 / s
1177 reactionData = new G4DNAMolecularReactionData(
1178 1.36e6 / s, HO2m,H2OB);
1179 reactionData->AddProduct(H2O2);
1180 reactionData->AddProduct(OHm);
1181 theReactionTable->SetReaction(reactionData);
1182 //------------------------------------------------------------------
1183 // O(3p) + H2O -> OH + OH 1.90e3 / s
1184 reactionData = new G4DNAMolecularReactionData(
1185 1.00e3 / s, O,H2OB);
1186 reactionData->AddProduct(OH);
1187 reactionData->AddProduct(OH);
1188 theReactionTable->SetReaction(reactionData);
1189 //------------------------------------------------------------------
1190 // O- + H2O -> OH + OH- 1.36e6 / s
1191 reactionData = new G4DNAMolecularReactionData(
1192 1.36e6 / s, Om,H2OB);
1193 reactionData->AddProduct(OH);
1194 reactionData->AddProduct(OHm);
1195 theReactionTable->SetReaction(reactionData);
1196 //------------------------------------------------------------------
1197 // eaq- + H3O+(B) -> H + H2O 2.09e3 / s
1198 reactionData = new G4DNAMolecularReactionData(
1199 2.09e3 / s, e_aq,H3OpB);
1200 reactionData->AddProduct(H);
1201 theReactionTable->SetReaction(reactionData);
1202 //------------------------------------------------------------------
1203 // O2- + H3O+(B) -> HO2 + H2O 4.73e3 / s
1204 reactionData = new G4DNAMolecularReactionData(
1205 4.73e3 / s, O2m,H3OpB);
1206 reactionData->AddProduct(HO2);
1207 theReactionTable->SetReaction(reactionData);
1208 //------------------------------------------------------------------
1209 // OH- + H3O+(B) -> 2H2O 1.11e4 / s
1210 reactionData = new G4DNAMolecularReactionData(
1211 1.12e4 / s, OHm,H3OpB);
1212 theReactionTable->SetReaction(reactionData);
1213
1214 //------------------------------------------------------------------
1215 // H3O+ + OH-(B) -> 2H2O 1.11e4 / s
1216 // opposite description of OH- + H3O+(B) -> 2H2O
1217 reactionData = new G4DNAMolecularReactionData(
1218 1.12e4 / s, H3Op,OHmB);
1219 theReactionTable->SetReaction(reactionData);
1220 //------------------------------------------------------------------
1221 // HO2- + H3O+(B) -> H2O2 + H2O 4.98e3 / s
1222 reactionData = new G4DNAMolecularReactionData(
1223 4.95e3 / s, HO2m,H3OpB);
1224 reactionData->AddProduct(H2O2);
1225 theReactionTable->SetReaction(reactionData);
1226 //------------------------------------------------------------------
1227 // O- + H3O+(B) -> OH + H2O 4.73e3 / s
1228 reactionData = new G4DNAMolecularReactionData(
1229 4.73e3 / s, Om,H3OpB);
1230 reactionData->AddProduct(OH);
1231 theReactionTable->SetReaction(reactionData);
1232 //------------------------------------------------------------------
1233 // O3- + H3O+(B) -> OH + O2 + H2O 8.91e3 / s
1234 reactionData = new G4DNAMolecularReactionData(
1235 8.91e3 / s, O3m,H3OpB);
1236 reactionData->AddProduct(OH);
1237 reactionData->AddProduct(O2);
1238 theReactionTable->SetReaction(reactionData);
1239 //------------------------------------------------------------------
1240 // H + OH-(B) -> H2O + eaq- 2.49e3 / s
1241 reactionData = new G4DNAMolecularReactionData(
1242 2.48e0 / s, H,OHmB);
1243 reactionData->AddProduct(e_aq);
1244 theReactionTable->SetReaction(reactionData);
1245 //------------------------------------------------------------------
1246 // OH + OH-(B) -> O- + H2O 6.24e2 / s
1247 reactionData = new G4DNAMolecularReactionData(
1248 6.24e2 / s, OH,OHmB);
1249 reactionData->AddProduct(Om);
1250 theReactionTable->SetReaction(reactionData);
1251 //------------------------------------------------------------------
1252 // H2O2 + OH-(B) -> HO2- + H2O 4.66e2 / s
1253 reactionData = new G4DNAMolecularReactionData(
1254 4.66e1 / s, H2O2,OHmB);
1255 reactionData->AddProduct(HO2m);
1256 theReactionTable->SetReaction(reactionData);
1257 //------------------------------------------------------------------
1258 // HO2 + OH-(B) -> O2- + H2O 6.24e2 / s
1259 reactionData = new G4DNAMolecularReactionData(
1260 6.24e2 / s, HO2,OHmB);
1261 reactionData->AddProduct(O2m);
1262 theReactionTable->SetReaction(reactionData);
1263 //------------------------------------------------------------------
1264 // O(3p) + OH-(B) -> HO2- 4.16e1 / s
1265 reactionData = new G4DNAMolecularReactionData(
1266 4.16e1 / s, O,OHmB);
1267 reactionData->AddProduct(HO2m);
1268 theReactionTable->SetReaction(reactionData);
1269 //------------------------------------------------------------------
1270
1271}

◆ ConstructTimeStepModel()

void G4EmDNAChemistry_option3::ConstructTimeStepModel ( G4DNAMolecularReactionTable reactionTable)
virtual

Implements G4VUserChemistryList.

Definition at line 1358 of file G4EmDNAChemistry_option3.cc.

1360{
1361 if(fTimeStepModel == fIRT)
1362 {
1364 }else if(fTimeStepModel == fSBS)
1365 {
1367 }else if(fTimeStepModel == fIRT_syn)
1368 {
1370 }
1371
1372}
void RegisterTimeStepModel(G4VITStepModel *timeStepModel, G4double startingTime=0)

◆ SetTimeStepModel()

void G4EmDNAChemistry_option3::SetTimeStepModel ( const TimeStepModel model)
inline

Definition at line 62 of file G4EmDNAChemistry_option3.hh.

63 {
64 fTimeStepModel = model;
65 }

The documentation for this class was generated from the following files: