Geant4 11.4.0
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 ()
 ~G4EmDNAChemistry_option3 () override=default
void ConstructParticle () override
void ConstructMolecule () override
void ConstructProcess () override
void ConstructDissociationChannels () override
void ConstructReactionTable (G4DNAMolecularReactionTable *reactionTable) override
void ConstructTimeStepModel (G4DNAMolecularReactionTable *reactionTable) override
Public Member Functions inherited from G4VUserChemistryList
 G4VUserChemistryList (G4bool flag=true)
virtual ~G4VUserChemistryList ()
bool IsPhysicsConstructor ()
void ThisIsAPhysicsConstructor (G4bool flag=true)
void BuildPhysicsTable ()
Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
virtual ~G4VPhysicsConstructor ()
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 44 of file G4EmDNAChemistry_option3.hh.

Constructor & Destructor Documentation

◆ G4EmDNAChemistry_option3()

G4EmDNAChemistry_option3::G4EmDNAChemistry_option3 ( )

Definition at line 74 of file G4EmDNAChemistry_option3.cc.

74 :
76{
78}
static G4DNAChemistryManager * Instance()
void SetChemistryList(G4VUserChemistryList &)
G4VUserChemistryList(G4bool flag=true)

◆ ~G4EmDNAChemistry_option3()

G4EmDNAChemistry_option3::~G4EmDNAChemistry_option3 ( )
overridedefault

Member Function Documentation

◆ ConstructDissociationChannels()

void G4EmDNAChemistry_option3::ConstructDissociationChannels ( )
overridevirtual

◆ ConstructMolecule()

void G4EmDNAChemistry_option3::ConstructMolecule ( )
overridevirtual

◆ ConstructParticle()

void G4EmDNAChemistry_option3::ConstructParticle ( )
inlineoverridevirtual

Implements G4VPhysicsConstructor.

Definition at line 53 of file G4EmDNAChemistry_option3.hh.

54 {
56 }

◆ ConstructProcess()

void G4EmDNAChemistry_option3::ConstructProcess ( )
overridevirtual

Reimplemented from G4VUserChemistryList.

Definition at line 670 of file G4EmDNAChemistry_option3.cc.

671{
672 auto ChemModel = G4EmParameters::Instance()->GetTimeStepModel();
673 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
674
675 //===============================================================
676 // Extend vibrational to low energy
677 // Anyway, solvation of electrons is taken into account from 7.4 eV
678 // So below this threshold, for now, no accurate modeling is done
679 //
680 G4VProcess* process =
682 FindProcess("e-_G4DNAVibExcitation", "e-");
683
684 if (process)
685 {
686 G4DNAVibExcitation* vibExcitation = (G4DNAVibExcitation*) process;
687 G4VEmModel* model = vibExcitation->EmModel();
688 G4DNASancheExcitationModel* sancheExcitationMod =
689 dynamic_cast<G4DNASancheExcitationModel*>(model);
690 if(sancheExcitationMod)
691 {
692 sancheExcitationMod->ExtendLowEnergyLimit(0.025 * eV);
693 }
694 }
695
696 //===============================================================
697 // *** Electron Solvatation ***
698 //
699 process =
701 FindProcess("e-_G4DNAElectronSolvation", "e-");
702
703 if (process == 0)
704 {
705 ph->RegisterProcess(
706 new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"),
708 }
709
710
711 //===============================================================
712 // Define processes for molecules
713 //
714 G4MoleculeTable* theMoleculeTable = G4MoleculeTable::Instance();
716 theMoleculeTable->GetDefintionIterator();
717 iterator.reset();
718 while (iterator())
719 {
720 G4MoleculeDefinition* moleculeDef = iterator.value();
721
722 if (moleculeDef != G4H2O::Definition())
723 {
724 if(ChemModel != G4ChemTimeStepModel::IRT)
725 {
726 auto* brown = new G4DNABrownianTransportation();
727 ph->RegisterProcess(brown, moleculeDef);
728 }
729 }
730 else
731 {
732 moleculeDef->GetProcessManager()
733 ->AddRestProcess(new G4DNAElectronHoleRecombination(), 2);
734 auto* dissociationProcess =
735 new G4DNAMolecularDissociation("H2O_DNAMolecularDecay");
736 dissociationProcess->SetDisplacer(
737 moleculeDef, new G4DNAWaterDissociationDisplacer);
738 dissociationProcess->SetVerboseLevel(3);
739
740 moleculeDef->GetProcessManager()
741 ->AddRestProcess(dissociationProcess, 1);
742 }
743 /*
744 * Warning : end of particles and processes are needed by
745 * EM Physics builders
746 */
747 }
748
750}
G4MoleculeIterator< G4MoleculeDefinition > G4MoleculeDefinitionIterator
static G4Electron * Definition()
Definition G4Electron.cc:45
static G4EmParameters * Instance()
G4ChemTimeStepModel GetTimeStepModel() const
static G4H2O * Definition()
Definition G4H2O.cc:42
G4MoleculeDefinitionIterator GetDefintionIterator()
static G4MoleculeTable * Instance()
G4ProcessManager * GetProcessManager() const
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4PhysicsListHelper * GetPhysicsListHelper()
G4int AddRestProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4ProcessTable * GetProcessTable()
G4VEmModel * EmModel(std::size_t index=0) const

◆ ConstructReactionTable()

void G4EmDNAChemistry_option3::ConstructReactionTable ( G4DNAMolecularReactionTable * reactionTable)
overridevirtual

Implements G4VUserChemistryList.

Definition at line 96 of file G4EmDNAChemistry_option3.cc.

98{
100 //-----------------------------------
101 //Get the molecular configuration
102 G4MolecularConfiguration* OH =
104 G4MolecularConfiguration* OHm =
106 G4MolecularConfiguration* e_aq =
108 G4MolecularConfiguration* H2 =
110 G4MolecularConfiguration* H3Op =
112 G4MolecularConfiguration* H =
114 G4MolecularConfiguration* H2O2 =
116 G4MolecularConfiguration* HO2 =
118 G4MolecularConfiguration* HO2m =
120 G4MolecularConfiguration* O =
122 G4MolecularConfiguration* Om =
124 G4MolecularConfiguration* O2 =
126 G4MolecularConfiguration* O2m =
128 G4MolecularConfiguration* O3 =
130 G4MolecularConfiguration* O3m =
132
133 G4MolecularConfiguration* H2OB =
135 G4MolecularConfiguration* H3OpB =
137 G4MolecularConfiguration* OHmB =
139
140 G4MolecularConfiguration* None =
142
143 // Type I //
144 //------------------------------------------------------------------
145 // *H + *H -> H2
146 G4DNAMolecularReactionData* reactionData = new G4DNAMolecularReactionData(
147 0.503e10 * (1e-3 * m3 / (mole * s)), H, H);
148 reactionData->AddProduct(H2);
149 theReactionTable->SetReaction(reactionData);
150 //------------------------------------------------------------------
151 // e_aq + H* + H2O -> H2 + OH-
152 reactionData = new G4DNAMolecularReactionData(
153 2.50e10 * (1e-3 * m3 / (mole * s)), e_aq, H);
154 reactionData->AddProduct(OHm);
155 reactionData->AddProduct(H2);
156 theReactionTable->SetReaction(reactionData);
157
158 // H + O(3p) -> OH
159 reactionData = new G4DNAMolecularReactionData(
160 2.02e10 * (1e-3 * m3 / (mole * s)), H, O);
161 reactionData->AddProduct(OH);
162 theReactionTable->SetReaction(reactionData);
163 //------------------------------------------------------------------
164 // H + O- -> OH-
165 reactionData = new G4DNAMolecularReactionData(
166 2.00e10 * (1e-3 * m3 / (mole * s)), H, Om);
167 reactionData->AddProduct(OHm);
168 theReactionTable->SetReaction(reactionData);
169 //------------------------------------------------------------------
170 // OH + O(3p) -> HO2
171 reactionData = new G4DNAMolecularReactionData(
172 2.02e10 * (1e-3 * m3 / (mole * s)), OH, O);
173 reactionData->AddProduct(HO2);
174 theReactionTable->SetReaction(reactionData);
175 //------------------------------------------------------------------
176 // HO2 + O(3p) -> O2
177 reactionData = new G4DNAMolecularReactionData(
178 2.02e10 * (1e-3 * m3 / (mole * s)), HO2, O);
179 reactionData->AddProduct(O2);
180 reactionData->AddProduct(OH);
181 theReactionTable->SetReaction(reactionData);
182 //------------------------------------------------------------------
183 // O(3p) + O(3p) -> O2
184 reactionData = new G4DNAMolecularReactionData(
185 2.20e10 * (1e-3 * m3 / (mole * s)), O, O);
186 reactionData->AddProduct(O2);
187 theReactionTable->SetReaction(reactionData);
188
189 // Type III //
190 //------------------------------------------------------------------
191 // e_aq + e_aq + 2H2O -> H2 + 2OH-
192 reactionData = new G4DNAMolecularReactionData(
193 0.636e10 * (1e-3 * m3 / (mole * s)), e_aq, e_aq);
194 reactionData->AddProduct(OHm);
195 reactionData->AddProduct(OHm);
196 reactionData->AddProduct(H2);
197 theReactionTable->SetReaction(reactionData);
198 //------------------------------------------------------------------
199 // H3O+ + OH- -> 2H2O
200 reactionData = new G4DNAMolecularReactionData(
201 1.13e11 * (1e-3 * m3 / (mole * s)), H3Op, OHm);
202 theReactionTable->SetReaction(reactionData);
203 //------------------------------------------------------------------
204 // H3O+ + O3- -> OH + O2
205 reactionData = new G4DNAMolecularReactionData(
206 9.0e10 * (1e-3 * m3 / (mole * s)), H3Op, O3m);
207 reactionData->AddProduct(OH);
208 reactionData->AddProduct(O2);
209 theReactionTable->SetReaction(reactionData);
210
211 // Type II //
212
213 //------------------------------------------------------------------
214 // *OH + *H -> H2O
215 reactionData = new G4DNAMolecularReactionData(
216 1.55e10 * (1e-3 * m3 / (mole * s)), OH, H);
217 SetReactionType(reactionData,model);//partially diffusion-controlled
218 theReactionTable->SetReaction(reactionData);
219 //------------------------------------------------------------------
220 // H + H2O2 -> OH
221 reactionData = new G4DNAMolecularReactionData(
222 3.50e7 * (1e-3 * m3 / (mole * s)), H, H2O2);
223 reactionData->AddProduct(OH);
224 SetReactionType(reactionData,model);//partially diffusion-controlled
225 theReactionTable->SetReaction(reactionData);
226 //------------------------------------------------------------------
227 // H + OH- -> eaq-
228 reactionData = new G4DNAMolecularReactionData(
229 2.51e7 * (1e-3 * m3 / (mole * s)), H, OHm);
230 reactionData->AddProduct(e_aq);
231 SetReactionType(reactionData,model);//partially diffusion-controlled
232 theReactionTable->SetReaction(reactionData);
233 //------------------------------------------------------------------
234 // H + O2 -> HO2
235 reactionData = new G4DNAMolecularReactionData(
236 2.10e10 * (1e-3 * m3 / (mole * s)), H, O2);
237 reactionData->AddProduct(HO2);
238 SetReactionType(reactionData,model);//partially diffusion-controlled
239 theReactionTable->SetReaction(reactionData);
240 //------------------------------------------------------------------
241 // H + HO2 -> H2O2
242 reactionData = new G4DNAMolecularReactionData(
243 1.00e10 * (1e-3 * m3 / (mole * s)), H, HO2);
244 reactionData->AddProduct(H2O2);
245 SetReactionType(reactionData,model);//partially diffusion-controlled
246 theReactionTable->SetReaction(reactionData);
247 //------------------------------------------------------------------
248 // H + O2- -> HO2-
249 reactionData = new G4DNAMolecularReactionData(
250 1.00e10 * (1e-3 * m3 / (mole * s)), H, O2m);
251 reactionData->AddProduct(HO2m);
252 SetReactionType(reactionData,model);//partially diffusion-controlled
253 theReactionTable->SetReaction(reactionData);
254 //------------------------------------------------------------------
255 // *OH + *OH -> H2O2
256 reactionData = new G4DNAMolecularReactionData(
257 0.55e10 * (1e-3 * m3 / (mole * s)), OH, OH);
258 reactionData->AddProduct(H2O2);
259 SetReactionType(reactionData,model);//partially diffusion-controlled
260 theReactionTable->SetReaction(reactionData);
261 //------------------------------------------------------------------
262 // OH + H2O2 -> HO2
263 reactionData = new G4DNAMolecularReactionData(
264 2.88e7 * (1e-3 * m3 / (mole * s)), OH, H2O2);
265 reactionData->AddProduct(HO2);
266 SetReactionType(reactionData,model);//partially diffusion-controlled
267 theReactionTable->SetReaction(reactionData);
268 //------------------------------------------------------------------
269 // OH + H2 -> H
270 reactionData = new G4DNAMolecularReactionData(
271 3.28e7 * (1e-3 * m3 / (mole * s)), OH, H2);
272 reactionData->AddProduct(H);
273 SetReactionType(reactionData,model);//partially diffusion-controlled
274 theReactionTable->SetReaction(reactionData);
275 //------------------------------------------------------------------
276 // e_aq + *OH -> OH-
277 reactionData = new G4DNAMolecularReactionData(
278 2.95e10 * (1e-3 * m3 / (mole * s)), e_aq, OH);
279 reactionData->AddProduct(OHm);
280 SetReactionType(reactionData,model);//partially diffusion-controlled
281 theReactionTable->SetReaction(reactionData);
282 //------------------------------------------------------------------
283 // OH + OH- -> O-
284 reactionData = new G4DNAMolecularReactionData(
285 6.30e9 * (1e-3 * m3 / (mole * s)), OH, OHm);
286 reactionData->AddProduct(Om);
287 SetReactionType(reactionData,model);//partially diffusion-controlled
288 theReactionTable->SetReaction(reactionData);
289 //------------------------------------------------------------------
290 // OH + HO2 -> O2
291 reactionData = new G4DNAMolecularReactionData(
292 7.90e9 * (1e-3 * m3 / (mole * s)), OH, HO2);
293 reactionData->AddProduct(O2);
294 SetReactionType(reactionData,model);//partially diffusion-controlled
295 theReactionTable->SetReaction(reactionData);
296 //------------------------------------------------------------------
297 // OH + O2- -> O2 + OH-
298 reactionData = new G4DNAMolecularReactionData(
299 1.07e10 * (1e-3 * m3 / (mole * s)), OH, O2m);
300 reactionData->AddProduct(O2);
301 reactionData->AddProduct(OHm);
302 SetReactionType(reactionData,model);//partially diffusion-controlled
303 theReactionTable->SetReaction(reactionData);
304 //------------------------------------------------------------------
305 // OH + HO2- -> HO2 + OH-
306 reactionData = new G4DNAMolecularReactionData(
307 8.32e9 * (1e-3 * m3 / (mole * s)), OH, HO2m);
308 reactionData->AddProduct(HO2);
309 reactionData->AddProduct(OHm);
310 SetReactionType(reactionData,model);//partially diffusion-controlled
311 theReactionTable->SetReaction(reactionData);
312 //------------------------------------------------------------------
313 // OH + O- -> HO2-
314 reactionData = new G4DNAMolecularReactionData(
315 1.00e9 * (1e-3 * m3 / (mole * s)), OH, Om);
316 reactionData->AddProduct(HO2m);
317 SetReactionType(reactionData,model);//partially diffusion-controlled
318 theReactionTable->SetReaction(reactionData);
319 //------------------------------------------------------------------
320 // OH + O3- -> O2- + HO2
321 reactionData = new G4DNAMolecularReactionData(
322 8.50e9 * (1e-3 * m3 / (mole * s)), OH, O3m);
323 reactionData->AddProduct(O2m);
324 reactionData->AddProduct(HO2);
325 SetReactionType(reactionData,model);//partially diffusion-controlled
326 theReactionTable->SetReaction(reactionData);
327 //------------------------------------------------------------------
328 // e_aq + H2O2 -> OH- + *OH
329 reactionData = new G4DNAMolecularReactionData(
330 1.10e10 * (1e-3 * m3 / (mole * s)), e_aq, H2O2);
331 reactionData->AddProduct(OHm);
332 reactionData->AddProduct(OH);
333 SetReactionType(reactionData,model);//partially diffusion-controlled
334 theReactionTable->SetReaction(reactionData);
335 //------------------------------------------------------------------
336 // H2O2 + OH- -> HO2-
337 reactionData = new G4DNAMolecularReactionData(
338 4.71e8 * (1e-3 * m3 / (mole * s)), H2O2, OHm);
339 reactionData->AddProduct(HO2m);
340 SetReactionType(reactionData,model);//partially diffusion-controlled
341 theReactionTable->SetReaction(reactionData);
342 //------------------------------------------------------------------
343 // H2O2 + O(3p) -> HO2 + OH
344 reactionData = new G4DNAMolecularReactionData(
345 1.60e9 * (1e-3 * m3 / (mole * s)), H2O2, O);
346 reactionData->AddProduct(HO2);
347 reactionData->AddProduct(OH);
348 SetReactionType(reactionData,model);//partially diffusion-controlled
349 theReactionTable->SetReaction(reactionData);
350 //------------------------------------------------------------------
351 // H2O2 + O- -> HO2 + OH-
352 reactionData = new G4DNAMolecularReactionData(
353 5.55e8 * (1e-3 * m3 / (mole * s)), H2O2, Om);
354 reactionData->AddProduct(HO2);
355 reactionData->AddProduct(OHm);
356 SetReactionType(reactionData,model);//partially diffusion-controlled
357 theReactionTable->SetReaction(reactionData);
358 //------------------------------------------------------------------
359 // H2 + O(3p) -> H + OH
360 reactionData = new G4DNAMolecularReactionData(
361 4.77e3 * (1e-3 * m3 / (mole * s)), H2, O);
362 reactionData->AddProduct(H);
363 reactionData->AddProduct(OH);
364 SetReactionType(reactionData,model);//partially diffusion-controlled
365 theReactionTable->SetReaction(reactionData);
366 //------------------------------------------------------------------
367 // H2 + O- -> H + OH-
368 reactionData = new G4DNAMolecularReactionData(
369 1.21e8 * (1e-3 * m3 / (mole * s)), H2, Om);
370 reactionData->AddProduct(H);
371 reactionData->AddProduct(OHm);
372 SetReactionType(reactionData,model);//partially diffusion-controlled
373 theReactionTable->SetReaction(reactionData);
374 //------------------------------------------------------------------
375 // eaq- + O2 -> O2-
376 reactionData = new G4DNAMolecularReactionData(
377 1.74e10 * (1e-3 * m3 / (mole * s)), e_aq, O2);
378 reactionData->AddProduct(O2m);
379 SetReactionType(reactionData,model);//partially diffusion-controlled
380 theReactionTable->SetReaction(reactionData);
381 //------------------------------------------------------------------
382 // eaq + HO2 -> HO2-
383 reactionData = new G4DNAMolecularReactionData(
384 1.29e10 * (1e-3 * m3 / (mole * s)), e_aq, HO2);
385 reactionData->AddProduct(HO2m);
386 SetReactionType(reactionData,model);//partially diffusion-controlled
387 theReactionTable->SetReaction(reactionData);
388 //------------------------------------------------------------------
389 // OH- + HO2 -> O2-
390 reactionData = new G4DNAMolecularReactionData(
391 6.30e9 * (1e-3 * m3 / (mole * s)), OHm, HO2);
392 reactionData->AddProduct(O2m);
393 SetReactionType(reactionData,model);//partially diffusion-controlled
394 theReactionTable->SetReaction(reactionData);
395 //------------------------------------------------------------------
396 // OH- + O(3p) -> HO2-
397 reactionData = new G4DNAMolecularReactionData(
398 4.20e8 * (1e-3 * m3 / (mole * s)), OHm, O);
399 reactionData->AddProduct(HO2m);
400 SetReactionType(reactionData,model);//partially diffusion-controlled
401 theReactionTable->SetReaction(reactionData);
402 //------------------------------------------------------------------
403 // O2 + O(3p) -> O3
404 reactionData = new G4DNAMolecularReactionData(
405 4.00e9 * (1e-3 * m3 / (mole * s)), O2, O);
406 reactionData->AddProduct(O3);
407 SetReactionType(reactionData,model);//partially diffusion-controlled
408 theReactionTable->SetReaction(reactionData);
409 //------------------------------------------------------------------
410 // O2 + O- -> O3-
411 reactionData = new G4DNAMolecularReactionData(
412 3.70e9 * (1e-3 * m3 / (mole * s)), O2, Om);
413 reactionData->AddProduct(O3m);
414 SetReactionType(reactionData,model);//partially diffusion-controlled
415 theReactionTable->SetReaction(reactionData);
416 //------------------------------------------------------------------
417 // HO2 + HO2 -> H2O2 + O2
418 reactionData = new G4DNAMolecularReactionData(
419 9.80e5 * (1e-3 * m3 / (mole * s)), HO2, HO2);
420 reactionData->AddProduct(H2O2);
421 reactionData->AddProduct(O2);
422 SetReactionType(reactionData,model);//partially diffusion-controlled
423 theReactionTable->SetReaction(reactionData);
424 //------------------------------------------------------------------
425 // HO2 + O2- -> HO2- + O2
426 reactionData = new G4DNAMolecularReactionData(
427 9.70e7 * (1e-3 * m3 / (mole * s)), HO2, O2m);
428 reactionData->AddProduct(HO2m);
429 reactionData->AddProduct(O2);
430 SetReactionType(reactionData,model);//partially diffusion-controlled
431 theReactionTable->SetReaction(reactionData);
432 //------------------------------------------------------------------
433 // HO2- + O(3p) -> O2- + OH
434 reactionData = new G4DNAMolecularReactionData(
435 5.30e9 * (1e-3 * m3 / (mole * s)), HO2m, O);
436 reactionData->AddProduct(O2m);
437 reactionData->AddProduct(OH);
438 SetReactionType(reactionData,model);//partially diffusion-controlled
439 theReactionTable->SetReaction(reactionData);
440
441 // Type IV //
442 //------------------------------------------------------------------
443 // e_aq + H3O+ -> H* + H2O
444 reactionData = new G4DNAMolecularReactionData(
445 2.11e10 * (1e-3 * m3 / (mole * s)), e_aq, H3Op);
446 reactionData->AddProduct(H);
447 SetReactionType(reactionData,model);//partially diffusion-controlled
448 theReactionTable->SetReaction(reactionData);
449 //------------------------------------------------------------------
450 // e_aq + O2- -> H2O2 + OH- + OH-
451 reactionData = new G4DNAMolecularReactionData(
452 1.29e10 * (1e-3 * m3 / (mole * s)), e_aq, O2m);
453 reactionData->AddProduct(H2O2);
454 reactionData->AddProduct(OHm);
455 reactionData->AddProduct(OHm);
456 SetReactionType(reactionData,model);//partially diffusion-controlled
457 theReactionTable->SetReaction(reactionData);
458 //------------------------------------------------------------------
459 // e_aq + HO2- -> O- + OH-
460 reactionData = new G4DNAMolecularReactionData(
461 3.51e9 * (1e-3 * m3 / (mole * s)), e_aq, HO2m);
462 reactionData->AddProduct(Om);
463 reactionData->AddProduct(OHm);
464 SetReactionType(reactionData,model);//partially diffusion-controlled
465 theReactionTable->SetReaction(reactionData);
466 //------------------------------------------------------------------
467 // e_aq + O- -> OH- + OH-
468 reactionData = new G4DNAMolecularReactionData(
469 2.31e10 * (1e-3 * m3 / (mole * s)), e_aq, Om);
470 reactionData->AddProduct(OHm);
471 reactionData->AddProduct(OHm);
472 SetReactionType(reactionData,model);//partially diffusion-controlled
473 theReactionTable->SetReaction(reactionData);
474 //------------------------------------------------------------------
475 // H3O+ + O2- -> HO2
476 reactionData = new G4DNAMolecularReactionData(
477 4.78e10 * (1e-3 * m3 / (mole * s)), H3Op, O2m);
478 reactionData->AddProduct(HO2);
479 SetReactionType(reactionData,model);//partially diffusion-controlled
480 theReactionTable->SetReaction(reactionData);
481 //------------------------------------------------------------------
482 // H3O+ + HO2- -> H2O2
483 reactionData = new G4DNAMolecularReactionData(
484 5.00e10 * (1e-3 * m3 / (mole * s)), H3Op, HO2m);
485 reactionData->AddProduct(H2O2);
486 SetReactionType(reactionData,model);//partially diffusion-controlled
487 theReactionTable->SetReaction(reactionData);
488 //------------------------------------------------------------------
489 // H3O+ + O- -> OH
490 reactionData = new G4DNAMolecularReactionData(
491 4.78e10 * (1e-3 * m3 / (mole * s)), H3Op, Om);
492 reactionData->AddProduct(OH);
493 SetReactionType(reactionData,model);//partially diffusion-controlled
494 theReactionTable->SetReaction(reactionData);
495 //------------------------------------------------------------------
496 // O2- + O- -> O2 + OH- + OH-
497 reactionData = new G4DNAMolecularReactionData(
498 6.00e8 * (1e-3 * m3 / (mole * s)), O2m, Om);
499 reactionData->AddProduct(O2);
500 reactionData->AddProduct(OHm);
501 reactionData->AddProduct(OHm);
502 SetReactionType(reactionData,model);//partially diffusion-controlled
503 theReactionTable->SetReaction(reactionData);
504 //------------------------------------------------------------------
505 // HO2- + O- -> O2- + OH-
506 reactionData = new G4DNAMolecularReactionData(
507 3.50e8 * (1e-3 * m3 / (mole * s)), HO2m, Om);
508 reactionData->AddProduct(O2m);
509 reactionData->AddProduct(OHm);
510 SetReactionType(reactionData,model);//partially diffusion-controlled
511 theReactionTable->SetReaction(reactionData);
512 //------------------------------------------------------------------
513 // O- + O- -> H2O2 + OH- + OH-
514 reactionData = new G4DNAMolecularReactionData(
515 1.00e8 * (1e-3 * m3 / (mole * s)), Om, Om);
516 reactionData->AddProduct(H2O2);
517 reactionData->AddProduct(OHm);
518 reactionData->AddProduct(OHm);
519 SetReactionType(reactionData,model);//partially diffusion-controlled
520 theReactionTable->SetReaction(reactionData);
521 //------------------------------------------------------------------
522 // O- + O3- -> O2- + O2-
523 reactionData = new G4DNAMolecularReactionData(
524 7.00e8 * (1e-3 * m3 / (mole * s)), Om, O3m);
525 reactionData->AddProduct(O2m);
526 reactionData->AddProduct(O2m);
527 SetReactionType(reactionData,model);//partially diffusion-controlled
528 theReactionTable->SetReaction(reactionData);
529
530 // Type VI
531 // First order reaction
532 //------------------------------------------------------------------
533 // O3- -> O- + O2
534 reactionData = new G4DNAMolecularReactionData(
535 2.66e3 / s, O3m,None);
536 reactionData->AddProduct(H3Op);
537 reactionData->AddProduct(O2m);
538 theReactionTable->SetReaction(reactionData);
539
540 // Scavenging reactions
541
542 //------------------------------------------------------------------
543 // HO2 + H2O -> H3O+ + O2-
544 reactionData = new G4DNAMolecularReactionData(
545 7.15e5 / s, HO2,H2OB);
546 reactionData->AddProduct(H3Op);
547 reactionData->AddProduct(O2m);
548 theReactionTable->SetReaction(reactionData);
549 //------------------------------------------------------------------
550 // H + H2O -> eaq- + H3O+ 5.94 / s
551 reactionData = new G4DNAMolecularReactionData(
552 5.94e0 / s, H,H2OB);
553 reactionData->AddProduct(e_aq);
554 reactionData->AddProduct(H3Op);
555 theReactionTable->SetReaction(reactionData);
556 //------------------------------------------------------------------
557 // eaq- + H2O -> H + OH- 15.8 / s
558 reactionData = new G4DNAMolecularReactionData(
559 1.58e1 / s, e_aq,H2OB);
560 reactionData->AddProduct(H);
561 reactionData->AddProduct(OHm);
562 theReactionTable->SetReaction(reactionData);
563 //------------------------------------------------------------------
564 // O2- + H2O -> HO2 + OH- 0.15 / s
565 reactionData = new G4DNAMolecularReactionData(
566 1.50e-1 / s, O2m,H2OB);
567 reactionData->AddProduct(HO2);
568 reactionData->AddProduct(OHm);
569 theReactionTable->SetReaction(reactionData);
570 //------------------------------------------------------------------
571 // HO2- + H2O -> H2O2 + OH- 1.36e6 / s
572 reactionData = new G4DNAMolecularReactionData(
573 1.36e6 / s, HO2m,H2OB);
574 reactionData->AddProduct(H2O2);
575 reactionData->AddProduct(OHm);
576 theReactionTable->SetReaction(reactionData);
577 //------------------------------------------------------------------
578 // O(3p) + H2O -> OH + OH 1.90e3 / s
579 reactionData = new G4DNAMolecularReactionData(
580 1.00e3 / s, O,H2OB);
581 reactionData->AddProduct(OH);
582 reactionData->AddProduct(OH);
583 theReactionTable->SetReaction(reactionData);
584 //------------------------------------------------------------------
585 // O- + H2O -> OH + OH- 1.36e6 / s
586 reactionData = new G4DNAMolecularReactionData(
587 1.36e6 / s, Om,H2OB);
588 reactionData->AddProduct(OH);
589 reactionData->AddProduct(OHm);
590 theReactionTable->SetReaction(reactionData);
591 //------------------------------------------------------------------
592 // eaq- + H3O+(B) -> H + H2O 2.09e3 / s
593 reactionData = new G4DNAMolecularReactionData(
594 2.09e3 / s, e_aq,H3OpB);
595 reactionData->AddProduct(H);
596 theReactionTable->SetReaction(reactionData);
597 //------------------------------------------------------------------
598 // O2- + H3O+(B) -> HO2 + H2O 4.73e3 / s
599 reactionData = new G4DNAMolecularReactionData(
600 4.73e3 / s, O2m,H3OpB);
601 reactionData->AddProduct(HO2);
602 theReactionTable->SetReaction(reactionData);
603 //------------------------------------------------------------------
604 // OH- + H3O+(B) -> 2H2O 1.11e4 / s
605 reactionData = new G4DNAMolecularReactionData(
606 1.12e4 / s, OHm,H3OpB);
607 theReactionTable->SetReaction(reactionData);
608
609 //------------------------------------------------------------------
610 // H3O+ + OH-(B) -> 2H2O 1.11e4 / s
611 // opposite description of OH- + H3O+(B) -> 2H2O
612 reactionData = new G4DNAMolecularReactionData(
613 1.12e4 / s, H3Op,OHmB);
614 theReactionTable->SetReaction(reactionData);
615 //------------------------------------------------------------------
616 // HO2- + H3O+(B) -> H2O2 + H2O 4.98e3 / s
617 reactionData = new G4DNAMolecularReactionData(
618 4.95e3 / s, HO2m,H3OpB);
619 reactionData->AddProduct(H2O2);
620 theReactionTable->SetReaction(reactionData);
621 //------------------------------------------------------------------
622 // O- + H3O+(B) -> OH + H2O 4.73e3 / s
623 reactionData = new G4DNAMolecularReactionData(
624 4.73e3 / s, Om,H3OpB);
625 reactionData->AddProduct(OH);
626 theReactionTable->SetReaction(reactionData);
627 //------------------------------------------------------------------
628 // O3- + H3O+(B) -> OH + O2 + H2O 8.91e3 / s
629 reactionData = new G4DNAMolecularReactionData(
630 8.91e3 / s, O3m,H3OpB);
631 reactionData->AddProduct(OH);
632 reactionData->AddProduct(O2);
633 theReactionTable->SetReaction(reactionData);
634 //------------------------------------------------------------------
635 // H + OH-(B) -> H2O + eaq- 2.49e3 / s
636 reactionData = new G4DNAMolecularReactionData(
637 2.48e0 / s, H,OHmB);
638 reactionData->AddProduct(e_aq);
639 theReactionTable->SetReaction(reactionData);
640 //------------------------------------------------------------------
641 // OH + OH-(B) -> O- + H2O 6.24e2 / s
642 reactionData = new G4DNAMolecularReactionData(
643 6.24e2 / s, OH,OHmB);
644 reactionData->AddProduct(Om);
645 theReactionTable->SetReaction(reactionData);
646 //------------------------------------------------------------------
647 // H2O2 + OH-(B) -> HO2- + H2O 4.66e2 / s
648 reactionData = new G4DNAMolecularReactionData(
649 4.66e1 / s, H2O2,OHmB);
650 reactionData->AddProduct(HO2m);
651 theReactionTable->SetReaction(reactionData);
652 //------------------------------------------------------------------
653 // HO2 + OH-(B) -> O2- + H2O 6.24e2 / s
654 reactionData = new G4DNAMolecularReactionData(
655 6.24e2 / s, HO2,OHmB);
656 reactionData->AddProduct(O2m);
657 theReactionTable->SetReaction(reactionData);
658 //------------------------------------------------------------------
659 // O(3p) + OH-(B) -> HO2- 4.16e1 / s
660 reactionData = new G4DNAMolecularReactionData(
661 4.16e1 / s, O,OHmB);
662 reactionData->AddProduct(HO2m);
663 theReactionTable->SetReaction(reactionData);
664 //------------------------------------------------------------------
665
666}
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)

◆ ConstructTimeStepModel()

void G4EmDNAChemistry_option3::ConstructTimeStepModel ( G4DNAMolecularReactionTable * reactionTable)
overridevirtual

Implements G4VUserChemistryList.

Definition at line 754 of file G4EmDNAChemistry_option3.cc.

756{
758 if(model == G4ChemTimeStepModel::IRT)
759 {
760 RegisterTimeStepModel(new G4DNAMolecularIRTModel(), 0);
761 }else if(model == G4ChemTimeStepModel::SBS)
762 {
763 RegisterTimeStepModel(new G4DNAMolecularStepByStepModel(), 0);
764 }else if(model == G4ChemTimeStepModel::IRT_syn)
765 {
766 RegisterTimeStepModel(new G4DNAIndependentReactionTimeModel(), 0);
767 }
768}
void RegisterTimeStepModel(G4VITStepModel *timeStepModel, G4double startingTime=0)

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