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

#include <G4EmDNAPhysicsChemistry.hh>

+ Inheritance diagram for G4EmDNAPhysicsChemistry:

Public Member Functions

 G4EmDNAPhysicsChemistry (G4int ver=1)
 
virtual ~G4EmDNAPhysicsChemistry ()
 
virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 
- 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
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 

Protected Member Functions

void ConstructMolecules ()
 
void ConstructDecayChannels ()
 
void ConstructReactionTable ()
 
- Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 

Additional Inherited Members

- Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4ParticleTable::G4PTblDicIteratortheParticleIterator
 
G4PhysicsListHelperthePLHelper
 

Detailed Description

Definition at line 34 of file G4EmDNAPhysicsChemistry.hh.

Constructor & Destructor Documentation

◆ G4EmDNAPhysicsChemistry()

G4EmDNAPhysicsChemistry::G4EmDNAPhysicsChemistry ( G4int  ver = 1)

Definition at line 104 of file G4EmDNAPhysicsChemistry.cc.

105 : G4VPhysicsConstructor("G4EmDNAPhysicsChemistry"), verbose(ver)
106{
108}
@ bElectromagnetic

◆ ~G4EmDNAPhysicsChemistry()

G4EmDNAPhysicsChemistry::~G4EmDNAPhysicsChemistry ( )
virtual

It should not be useful to delete those singletons since they are based on auto_ptr. But to make sure that it won't cause any trouble, we explicitly call the following methods responsible for the destruction of the singletons.

Definition at line 110 of file G4EmDNAPhysicsChemistry.cc.

111{
112 /** It should not be useful to delete those singletons
113 * since they are based on auto_ptr. But to make sure
114 * that it won't cause any trouble, we explicitly call
115 * the following methods responsible for the destruction
116 * of the singletons.
117 */
119}

Member Function Documentation

◆ ConstructDecayChannels()

void G4EmDNAPhysicsChemistry::ConstructDecayChannels ( )
protected

Definition at line 159 of file G4EmDNAPhysicsChemistry.cc.

160{
161 //-----------------------------------
162 //Create the dynamic objects
164 H3O -> RemoveElectron(4,1);
165
168
171
173 OHm->AddElectron(3);
174 OHm->SetMass(17.0079*g/Avogadro * c_squared);
175 OHm->SetDiffusionCoefficient(5.0e-9*(m2/s));
176
177 //-------------------------------------
178 //Define the decay channels
182
184
185 //////////////////////////////////////////////////////////
186 // EXCITATIONS //
187 //////////////////////////////////////////////////////////
188 G4DNAWaterExcitationStructure waterExcitation;
189 //--------------------------------------------------------
190 //---------------Excitation on the fifth layer------------
191
192 decCh1 = new G4MolecularDecayChannel("A^1B_1_Relaxation");
193 decCh2 = new G4MolecularDecayChannel("A^1B_1_DissociativeDecay");
194 //Decay 1 : OH + H
195 decCh1->SetEnergy(waterExcitation.ExcitationEnergy(0));
196 decCh1->SetProbability(0.35);
197 decCh1 -> SetDisplacementType(G4DNAMolecularDecayDisplacer::NoDisplacement);
198
199 decCh2->AddProduct(OH);
200 decCh2->AddProduct(H);
201 decCh2->SetProbability(0.65);
202 decCh2 -> SetDisplacementType(G4DNAMolecularDecayDisplacer::A1B1_DissociationDecay);
203
204 water->AddExcitedState("A^1B_1");
205 water->AddDecayChannel("A^1B_1",decCh1);
206 water->AddDecayChannel("A^1B_1",decCh2);
207
208 occ->RemoveElectron(4,1); // this is the transition form ground state to
209 occ->AddElectron(5,1); // the first unoccupied orbital: A^1B_1
210
211 water->AddeConfToExcitedState("A^1B_1", *occ);
212
213 //--------------------------------------------------------
214 //---------------Excitation on the fourth layer-----------
215 decCh1 = new G4MolecularDecayChannel("B^1A_1_Relaxation_Channel");
216 decCh2 = new G4MolecularDecayChannel("B^1A_1_DissociativeDecay");
217 G4MolecularDecayChannel* decCh3 = new G4MolecularDecayChannel("B^1A_1_AutoIonisation_Channel");
218
219 water->AddExcitedState("B^1A_1");
220
221 //Decay 1 : energy
222 decCh1->SetEnergy(waterExcitation.ExcitationEnergy(1));
223 decCh1->SetProbability(0.3);
224
225 //Decay 2 : 2OH + H_2
226 decCh2->AddProduct(H2);
227 decCh2->AddProduct(OH);
228 decCh2->AddProduct(OH);
229 decCh2->SetProbability(0.15);
231
232 //Decay 3 : OH + H_3Op + e_aq
233 decCh3->AddProduct(OH);
234 decCh3->AddProduct(H3O);
235 decCh3->AddProduct(e_aq);
236 decCh3->SetProbability(0.55);
238
239 *occ = *(water->GetGroundStateElectronOccupancy());
240 occ->RemoveElectron(3); // this is the transition form ground state to
241 occ->AddElectron(5,1); // the first unoccupied orbital: B^1A_1
242
243 water->AddeConfToExcitedState("B^1A_1", *occ);
244 water->AddDecayChannel("B^1A_1",decCh1);
245 water->AddDecayChannel("B^1A_1",decCh2);
246 water->AddDecayChannel("B^1A_1",decCh3);
247
248 //-------------------------------------------------------
249 //-------------------Excitation of 3rd layer-----------------
250 decCh1 = new G4MolecularDecayChannel("Excitation3rdLayer_AutoIonisation_Channel");
251 decCh2 = new G4MolecularDecayChannel("Excitation3rdLayer_Relaxation_Channel");
252
253 water->AddExcitedState("Excitation3rdLayer");
254
255 //Decay channel 1 : : OH + H_3Op + e_aq
256 decCh1->AddProduct(OH);
257 decCh1->AddProduct(H3O);
258 decCh1->AddProduct(e_aq);
259
260 decCh1->SetProbability(0.5);
262
263 //Decay channel 2 : energy
264 decCh2->SetEnergy(waterExcitation.ExcitationEnergy(2));
265 decCh2->SetProbability(0.5);
266
267 //Electronic configuration of this decay
268 *occ = *(water->GetGroundStateElectronOccupancy());
269 occ->RemoveElectron(2,1);
270 occ->AddElectron(5,1);
271
272 //Configure the water molecule
273 water->AddeConfToExcitedState("Excitation3rdLayer", *occ);
274 water->AddDecayChannel("Excitation3rdLayer",decCh1);
275 water->AddDecayChannel("Excitation3rdLayer",decCh2);
276
277 //-------------------------------------------------------
278 //-------------------Excitation of 2nd layer-----------------
279 decCh1 = new G4MolecularDecayChannel("Excitation2ndLayer_AutoIonisation_Channel");
280 decCh2 = new G4MolecularDecayChannel("Excitation2ndLayer_Relaxation_Channel");
281
282 water->AddExcitedState("Excitation2ndLayer");
283
284 //Decay Channel 1 : : OH + H_3Op + e_aq
285 decCh1->AddProduct(OH);
286 decCh1->AddProduct(H3O);
287 decCh1->AddProduct(e_aq);
288
289 decCh1->SetProbability(0.5);
291
292 //Decay channel 2 : energy
293 decCh2->SetEnergy(waterExcitation.ExcitationEnergy(3));
294 decCh2->SetProbability(0.5);
295
296 *occ = *(water->GetGroundStateElectronOccupancy());
297 occ->RemoveElectron(1,1);
298 occ->AddElectron(5,1);
299
300 water->AddeConfToExcitedState("Excitation2ndLayer", *occ);
301 water->AddDecayChannel("Excitation2ndLayer",decCh1);
302 water->AddDecayChannel("Excitation2ndLayer",decCh2);
303
304 //-------------------------------------------------------
305 //-------------------Excitation of 1st layer-----------------
306 decCh1 = new G4MolecularDecayChannel("Excitation1stLayer_AutoIonisation_Channel");
307 decCh2 = new G4MolecularDecayChannel("Excitation1stLayer_Relaxation_Channel");
308
309 *occ = *(water->GetGroundStateElectronOccupancy());
310 occ->RemoveElectron(0,1);
311 occ->AddElectron(5,1);
312
313 water->AddExcitedState("Excitation1stLayer");
314 water->AddeConfToExcitedState("Excitation1stLayer", *occ);
315
316 //Decay Channel 1 : : OH + H_3Op + e_aq
317 decCh1->AddProduct(OH);
318 decCh1->AddProduct(H3O);
319 decCh1->AddProduct(e_aq);
320 decCh1->SetProbability(0.5);
322
323 //Decay channel 2 : energy
324 decCh2->SetEnergy(waterExcitation.ExcitationEnergy(4));
325 decCh2->SetProbability(0.5);
326 water->AddDecayChannel("Excitation1stLayer",decCh1);
327 water->AddDecayChannel("Excitation1stLayer",decCh2);
328
329 /////////////////////////////////////////////////////////
330 // IONISATION //
331 /////////////////////////////////////////////////////////
332 //--------------------------------------------------------
333 //------------------- Ionisation -------------------------
334 water->AddExcitedState("Ionisation");
335
336 decCh1 = new G4MolecularDecayChannel("Ionisation_Channel");
337
338 //Decay Channel 1 : : OH + H_3Op
339 decCh1->AddProduct(H3O);
340 decCh1->AddProduct(OH);
341 decCh1->SetProbability(1);
343
344 *occ = *(water->GetGroundStateElectronOccupancy());
345 occ->RemoveElectron(4,1); // this is a ionized h2O with a hole in its last orbital
346 water->AddeConfToExcitedState("Ionisation", *occ);
347
348 *occ = *(water->GetGroundStateElectronOccupancy());
349 occ->RemoveElectron(3,1);
350 water->AddeConfToExcitedState("Ionisation", *occ);
351
352 *occ = *(water->GetGroundStateElectronOccupancy());
353 occ->RemoveElectron(2,1);
354 water->AddeConfToExcitedState("Ionisation", *occ);
355
356 *occ = *(water->GetGroundStateElectronOccupancy());
357 occ->RemoveElectron(1,1);
358 water->AddeConfToExcitedState("Ionisation", *occ);
359
360 *occ = *(water->GetGroundStateElectronOccupancy());
361 occ->RemoveElectron(0,1);
362 water->AddeConfToExcitedState("Ionisation", *occ);
363 water->AddDecayChannel("Ionisation",decCh1);
364 // to this electronic configuration should be associated a decay time of 10e-15 s should the process do it on the dynamic object? the dyn object.
365
366 //////////////////////////////////////////////////////////
367 // Dissociative Attachment //
368 //////////////////////////////////////////////////////////
369 decCh1 = new G4MolecularDecayChannel("DissociativeAttachment");
370
371 //Decay 1 : 2OH + H_2
372 decCh1->AddProduct(H2);
373 decCh1->AddProduct(OHm);
374 decCh1->AddProduct(OH);
375 decCh1->SetProbability(1);
376 //decCh1->SetDisplacementType(G4DNAMolecularDecayDisplacer::DissociativeAttachment);
377
378 *occ = *(water->GetGroundStateElectronOccupancy());
379 occ->AddElectron(5,1); // H_2O^-
380 water->AddExcitedState("DissociativeAttachment");
381 water->AddeConfToExcitedState("DissociativeAttachment", *occ);
382 water->AddDecayChannel("DissociativeAttachment",decCh1);
383
384 delete occ;
385}
static G4DLLIMPORT const DisplacementType A1B1_DissociationDecay
static G4DLLIMPORT const DisplacementType Ionisation_DissociationDecay
static G4DLLIMPORT const DisplacementType B1A1_DissociationDecay
static G4DLLIMPORT const DisplacementType AutoIonisation
G4int AddElectron(G4int orbit, G4int number=1)
G4int RemoveElectron(G4int orbit, G4int number=1)
static G4Electron_aq * Definition()
static G4H2O * Definition()
Definition: G4H2O.cc:46
static G4H2 * Definition()
Definition: G4H2.cc:46
static G4H3O * Definition()
Definition: G4H3O.cc:47
static G4Hydrogen * Definition()
Definition: G4Hydrogen.cc:46
void SetDisplacementType(DisplacementType)
void AddProduct(const G4Molecule *, G4double=0)
const G4ElectronOccupancy * GetGroundStateElectronOccupancy() const
void AddExcitedState(const G4String &)
void AddeConfToExcitedState(const G4String &, const G4ElectronOccupancy &, double decayTime=0.)
void AddDecayChannel(const G4String &, const G4MolecularDecayChannel *)
void AddElectron(G4int orbit, G4int n=1)
Definition: G4Molecule.cc:244
void SetMass(G4double)
Definition: G4Molecule.cc:380
void SetDiffusionCoefficient(G4double)
Definition: G4Molecule.cc:400
static G4OH * Definition()
Definition: G4OH.cc:46
static G4DLLIMPORT const DisplacementType NoDisplacement

Referenced by ConstructMolecules().

◆ ConstructMolecules()

void G4EmDNAPhysicsChemistry::ConstructMolecules ( )
protected

Definition at line 144 of file G4EmDNAPhysicsChemistry.cc.

145{
146 //-----------------------------------
147 // Create the definition
155
157}
static G4H2O2 * Definition()
Definition: G4H2O2.cc:46

Referenced by ConstructProcess().

◆ ConstructParticle()

void G4EmDNAPhysicsChemistry::ConstructParticle ( )
virtual

Implements G4VPhysicsConstructor.

Definition at line 123 of file G4EmDNAPhysicsChemistry.cc.

124{
125 // bosons
127
128 // leptons
131
132 // baryons
134
136
137 G4DNAGenericIonsManager * genericIonsManager;
138 genericIonsManager=G4DNAGenericIonsManager::Instance();
139 genericIonsManager->GetIon("alpha++");
140 genericIonsManager->GetIon("alpha+");
141 genericIonsManager->GetIon("helium");
142 genericIonsManager->GetIon("hydrogen");
143}
static G4DNAGenericIonsManager * Instance(void)
G4ParticleDefinition * GetIon(const G4String &name)
static G4Electron * Electron()
Definition: G4Electron.cc:94
static G4Gamma * Gamma()
Definition: G4Gamma.cc:86
static G4GenericIon * GenericIonDefinition()
Definition: G4GenericIon.cc:87
static G4Positron * Positron()
Definition: G4Positron.cc:94
static G4Proton * Proton()
Definition: G4Proton.cc:93

◆ ConstructProcess()

void G4EmDNAPhysicsChemistry::ConstructProcess ( )
virtual

Tells to the chemistry manager whether the chemistry needs to be activated. WARNING : if you don't use the chemistry do not activate it otherwise it might generate memory leaks with tracks created but not destroyed.

Implements G4VPhysicsConstructor.

Definition at line 457 of file G4EmDNAPhysicsChemistry.cc.

458{
459
461 // Is placed outside ConstructParticles to avoid
462 // the transportation process to be added to the molecules
463
465
467 while( (*theParticleIterator)() )
468 {
470 G4String particleName = particle->GetParticleName();
471 G4String particleType = particle->GetParticleType();
472 G4ProcessManager* pmanager = particle->GetProcessManager();
473
474 if (particleName == "e-") {
475
476 // *** Elastic scattering (two alternative models available) ***
477
478 G4DNAElastic* theDNAElasticProcess = new G4DNAElastic("e-_G4DNAElastic");
479 G4DNAChampionElasticModel * championElasticModel = new G4DNAChampionElasticModel();
480 championElasticModel->SetKillBelowThreshold(0.*eV);
481 theDNAElasticProcess->SetModel(championElasticModel);
482
483 // or alternative model
484 //theDNAElasticProcess->SetModel(new G4DNAScreenedRutherfordElasticModel());
485
486 ph->RegisterProcess(theDNAElasticProcess, particle);
487
488 // *** Excitation ***
489 ph->RegisterProcess(new G4DNAExcitation("e-_G4DNAExcitation"), particle);
490
491 // *** Ionisation ***
492 ph->RegisterProcess(new G4DNAIonisation("e-_G4DNAIonisation"), particle);
493
494 // *** Vibrational excitation ***
495 G4DNAVibExcitation* vibExcitation = new G4DNAVibExcitation("e-_G4DNAVibExcitation");
497 vibExcitation -> SetModel(sancheExcitationMod);
498 sancheExcitationMod->ExtendLowEnergyLimit(0.025*eV);
499 ph->RegisterProcess(vibExcitation, particle);
500
501 // *** Attachment ***
502 ph->RegisterProcess(new G4DNAAttachment("e-_G4DNAAttachment"), particle);
503
504 // *** Electron Solvatation ***
505 ph->RegisterProcess(new G4DNAElectronSolvatation("e-_G4DNAElectronSolvatation"), particle);
506 } else if ( particleName == "proton" ) {
507 ph->RegisterProcess(new G4DNAExcitation("proton_G4DNAExcitation"), particle);
508 ph->RegisterProcess(new G4DNAIonisation("proton_G4DNAIonisation"), particle);
509 ph->RegisterProcess(new G4DNAChargeDecrease("proton_G4DNAChargeDecrease"), particle);
510
511 } else if ( particleName == "hydrogen" ) {
512 ph->RegisterProcess(new G4DNAExcitation("hydrogen_G4DNAExcitation"), particle);
513 ph->RegisterProcess(new G4DNAIonisation("hydrogen_G4DNAIonisation"), particle);
514 ph->RegisterProcess(new G4DNAChargeIncrease("hydrogen_G4DNAChargeIncrease"), particle);
515
516 } else if ( particleName == "alpha" ) {
517 ph->RegisterProcess(new G4DNAExcitation("alpha_G4DNAExcitation"), particle);
518 ph->RegisterProcess(new G4DNAIonisation("alpha_G4DNAIonisation"), particle);
519 ph->RegisterProcess(new G4DNAChargeDecrease("alpha_G4DNAChargeDecrease"), particle);
520
521 } else if ( particleName == "alpha+" ) {
522 ph->RegisterProcess(new G4DNAExcitation("alpha+_G4DNAExcitation"), particle);
523 ph->RegisterProcess(new G4DNAIonisation("alpha+_G4DNAIonisation"), particle);
524 ph->RegisterProcess(new G4DNAChargeDecrease("alpha+_G4DNAChargeDecrease"), particle);
525 ph->RegisterProcess(new G4DNAChargeIncrease("alpha+_G4DNAChargeIncrease"), particle);
526
527 } else if ( particleName == "helium" ) {
528 ph->RegisterProcess(new G4DNAExcitation("helium_G4DNAExcitation"), particle);
529 ph->RegisterProcess(new G4DNAIonisation("helium_G4DNAIonisation"), particle);
530 ph->RegisterProcess(new G4DNAChargeIncrease("helium_G4DNAChargeIncrease"), particle);
531
532 }
533 // Extension to HZE proposed by Z. Francis
534
535 else if ( particleName == "carbon" ) {
536 ph->RegisterProcess(new G4DNAIonisation("carbon_G4DNAIonisation"), particle);
537
538 } else if ( particleName == "nitrogen" ) {
539 ph->RegisterProcess(new G4DNAIonisation("nitrogen_G4DNAIonisation"), particle);
540
541 } else if ( particleName == "oxygen" ) {
542 ph->RegisterProcess(new G4DNAIonisation("oxygen_G4DNAIonisation"), particle);
543
544 } else if ( particleName == "iron" ) {
545 ph->RegisterProcess(new G4DNAIonisation("iron_G4DNAIonisation"), particle);
546
547 }
548
549 // Warning : the following particles and processes are needed by EM Physics builders
550 // They are taken from the default Livermore Physics list
551 // These particles are currently not handled by Geant4-DNA
552
553 // e+
554
555 else if (particleName == "e+") {
556
557 // Identical to G4EmStandardPhysics_option3
558
560 msc->AddEmModel(0, new G4UrbanMscModel95());
562 G4eIonisation* eIoni = new G4eIonisation();
563 eIoni->SetStepFunction(0.2, 100*um);
564
565 ph->RegisterProcess(msc, particle);
566 ph->RegisterProcess(eIoni, particle);
567 ph->RegisterProcess(new G4eBremsstrahlung(), particle);
568 ph->RegisterProcess(new G4eplusAnnihilation(), particle);
569
570 }else if (particleName == "gamma") {
571 G4double LivermoreHighEnergyLimit = GeV;
572
573 G4PhotoElectricEffect* thePhotoElectricEffect = new G4PhotoElectricEffect();
574 G4LivermorePhotoElectricModel* theLivermorePhotoElectricModel =
576 theLivermorePhotoElectricModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
577 thePhotoElectricEffect->AddEmModel(0, theLivermorePhotoElectricModel);
578 ph->RegisterProcess(thePhotoElectricEffect, particle);
579
580 G4ComptonScattering* theComptonScattering = new G4ComptonScattering();
581 G4LivermoreComptonModel* theLivermoreComptonModel =
583 theLivermoreComptonModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
584 theComptonScattering->AddEmModel(0, theLivermoreComptonModel);
585 ph->RegisterProcess(theComptonScattering, particle);
586
587 G4GammaConversion* theGammaConversion = new G4GammaConversion();
588 G4LivermoreGammaConversionModel* theLivermoreGammaConversionModel =
590 theLivermoreGammaConversionModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
591 theGammaConversion->AddEmModel(0, theLivermoreGammaConversionModel);
592 ph->RegisterProcess(theGammaConversion, particle);
593
594 G4RayleighScattering* theRayleigh = new G4RayleighScattering();
595 G4LivermoreRayleighModel* theRayleighModel = new G4LivermoreRayleighModel();
596 theRayleighModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
597 theRayleigh->AddEmModel(0, theRayleighModel);
598 ph->RegisterProcess(theRayleigh, particle);
599
600 }
601 else if(particleType == "Molecule" && particleName != "H_{2}O")
602 {
603 if (pmanager==0)
604 {
605 particle->SetProcessManager(new G4ProcessManager(particle));
606 }
607
609 ph->RegisterProcess(brown, particle);
610 }
611 else if (particleName == "H_{2}O")
612 {
613 if (pmanager==0)
614 {
615 particle->SetProcessManager(new G4ProcessManager(particle));
616 }
617
618 G4DNAMolecularDecay* decayProcess = new G4DNAMolecularDecay("H2O_DNAMolecularDecay");
619 decayProcess -> SetDecayDisplacer(particle, new G4DNAMolecularDecayDisplacer);
620 decayProcess -> SetVerboseLevel(1);
621 ph->RegisterProcess(decayProcess, particle);
622
623 }
624
625
626 // Warning : end of particles and processes are needed by EM Physics builders
627
628 }
629
630 // Deexcitation
631 //
634 de->SetFluo(true);
635
636 // Chemistry
638
639 /**
640 * Tells to the chemistry manager whether the chemistry
641 * needs to be activated.
642 * WARNING : if you don't use the chemistry do not activate it
643 * otherwise it might generate memory leaks with tracks created but
644 * not destroyed.
645 */
647}
@ fUseDistanceToBoundary
double G4double
Definition: G4Types.hh:64
{ The transportation method implemented is the one from Ermak-McCammon : J. Chem. Phys....
void SetKillBelowThreshold(G4double threshold)
static G4DNAChemistryManager * Instance()
void SetAtomDeexcitation(G4VAtomDeexcitation *)
static G4LossTableManager * Instance()
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleType() const
const G4String & GetParticleName() const
void SetProcessManager(G4ProcessManager *aProcessManager)
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4PhysicsListHelper * GetPhysicsListHelper()
void SetHighEnergyLimit(G4double)
Definition: G4VEmModel.hh:585
void AddEmModel(G4int, G4VEmModel *, const G4Region *region=0)
void SetModel(G4VEmModel *, G4int index=1)
void SetStepFunction(G4double v1, G4double v2)
void AddEmModel(G4int order, G4VEmModel *, const G4Region *region=0)
void SetStepLimitType(G4MscStepLimitType val)
G4ParticleTable::G4PTblDicIterator * theParticleIterator
void SetVerboseLevel(G4int value)

◆ ConstructReactionTable()

void G4EmDNAPhysicsChemistry::ConstructReactionTable ( )
protected

Definition at line 387 of file G4EmDNAPhysicsChemistry.cc.

388{
390
392 OHm->AddElectron(3);
393 OHm->SetMass(17.0079*g/Avogadro * c_squared);
394 OHm->SetDiffusionCoefficient(5.0e-9*(m2/s));
400 H3Op->RemoveElectron(4,1);
401
403
404 //------------------------------------------------------------------
405 //e_aq + e_aq + 2H2O -> H2 + 2OH-
406 G4DNAMolecularReactionData* reactionData = new G4DNAMolecularReactionData(0.5e10*(1e-3*m3/(mole*s)), e_aq,e_aq);
407 reactionData -> AddProduct(OHm);
408 reactionData -> AddProduct(OHm);
409 reactionData -> AddProduct(H2);
410 theReactionTable -> SetReaction(reactionData);
411 //------------------------------------------------------------------
412 //e_aq + *OH -> OH-
413 reactionData = new G4DNAMolecularReactionData(2.95e10*(1e-3*m3/(mole*s)), e_aq, OH);
414 reactionData->AddProduct(OHm);
415 theReactionTable -> SetReaction(reactionData);
416 //------------------------------------------------------------------
417 //e_aq + H* + H2O -> H2 + OH-
418 reactionData = new G4DNAMolecularReactionData(2.65e10*(1e-3*m3/(mole*s)), e_aq, H);
419 reactionData->AddProduct(OHm);
420 reactionData->AddProduct(H2);
421 theReactionTable -> SetReaction(reactionData);
422 //------------------------------------------------------------------
423 //e_aq + H3O+ -> H* + H2O
424 reactionData = new G4DNAMolecularReactionData(2.11e10*(1e-3*m3/(mole*s)), e_aq, H3Op);
425 reactionData->AddProduct(H);
426 theReactionTable -> SetReaction(reactionData);
427 //------------------------------------------------------------------
428 //e_aq + H2O2 -> OH- + *OH
429 reactionData = new G4DNAMolecularReactionData(1.41e10*(1e-3*m3/(mole*s)), e_aq, H2O2);
430 reactionData->AddProduct(OHm);
431 reactionData->AddProduct(OH);
432 theReactionTable -> SetReaction(reactionData);
433 //------------------------------------------------------------------
434 //*OH + *OH -> H2O2
435 reactionData = new G4DNAMolecularReactionData(0.44e10*(1e-3*m3/(mole*s)), OH, OH);
436 reactionData->AddProduct(H2O2);
437 theReactionTable -> SetReaction(reactionData);
438 //------------------------------------------------------------------
439 //*OH + *H -> H2O
440 theReactionTable -> SetReaction(1.44e10*(1e-3*m3/(mole*s)), OH, H);
441 //------------------------------------------------------------------
442 //*H + *H -> H2
443 reactionData = new G4DNAMolecularReactionData(1.20e10*(1e-3*m3/(mole*s)), H, H);
444 reactionData->AddProduct(H2);
445 theReactionTable -> SetReaction(reactionData);
446 //------------------------------------------------------------------
447 //H3O+ + OH- -> 2H2O
448 theReactionTable -> SetReaction(1.43e11*(1e-3*m3/(mole*s)), H3Op, OHm);
449 //------------------------------------------------------------------
450 //OH + H2 -> H + H2O
451 reactionData = new G4DNAMolecularReactionData(4.17e7*(1e-3*m3/(mole*s)), OH, H2);
452 reactionData->AddProduct(H);
453 theReactionTable -> SetReaction(reactionData);
454 //------------------------------------------------------------------
455}
void AddProduct(const G4Molecule *molecule)
static G4DNAMolecularReactionTable * GetReactionTable()
void RemoveElectron(G4int, G4int number=1)
Definition: G4Molecule.cc:249

Referenced by ConstructProcess().


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