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

#include <G4ChemDissociationChannels_option1.hh>

Public Member Functions

 ~G4ChemDissociationChannels_option1 ()=default
 

Static Public Member Functions

static void ConstructDissociationChannels ()
 
static void ConstructMolecule ()
 

Detailed Description

Definition at line 35 of file G4ChemDissociationChannels_option1.hh.

Constructor & Destructor Documentation

◆ ~G4ChemDissociationChannels_option1()

G4ChemDissociationChannels_option1::~G4ChemDissociationChannels_option1 ( )
default

Member Function Documentation

◆ ConstructDissociationChannels()

void G4ChemDissociationChannels_option1::ConstructDissociationChannels ( )
static

Definition at line 182 of file G4ChemDissociationChannels_option1.cc.

183{
184 //-----------------------------------
185 // Get the molecular configuration
186 auto molTable = G4MoleculeTable::Instance();
187 G4MolecularConfiguration* OH = molTable->GetConfiguration("OH");
188 G4MolecularConfiguration* OHm = molTable->GetConfiguration("OHm");
189 G4MolecularConfiguration* e_aq = molTable->GetConfiguration("e_aq");
190 G4MolecularConfiguration* H2 = molTable->GetConfiguration("H2");
191 G4MolecularConfiguration* H3O = molTable->GetConfiguration("H3Op");
192 G4MolecularConfiguration* H = molTable->GetConfiguration("H");
193 G4MolecularConfiguration* O = molTable->GetConfiguration("Oxy");
194
195 //-------------------------------------
196 // Define the decay channels
203
205
206 //////////////////////////////////////////////////////////
207 // EXCITATIONS //
208 //////////////////////////////////////////////////////////
209 G4DNAWaterExcitationStructure waterExcitation;
210 //--------------------------------------------------------
211 //---------------Excitation on the fifth layer------------
212
213 decCh1 = new G4MolecularDissociationChannel("A^1B_1_Relax");
214 decCh2 = new G4MolecularDissociationChannel("A^1B_1_DissociDecay");
215 // Decay 1 : OH + H
216 decCh1->SetEnergy(waterExcitation.ExcitationEnergy(0));
217 decCh1->SetProbability(0.35);
218 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::NoDisplacement);
219
220 decCh2->AddProduct(OH);
221 decCh2->AddProduct(H);
222 decCh2->SetProbability(0.65);
223 decCh2->SetDisplacementType(G4DNAWaterDissociationDisplacer::A1B1_DissociationDecay);
224
225 occ->RemoveElectron(4, 1); // this is the transition form ground state to
226 occ->AddElectron(5, 1); // the first unoccupied orbital: A^1B_1
227
228 water->NewConfigurationWithElectronOccupancy("A^1B_1", *occ);
229 water->AddDecayChannel("A^1B_1", decCh1);
230 water->AddDecayChannel("A^1B_1", decCh2);
231
232 //--------------------------------------------------------
233 //---------------Excitation on the fourth layer-----------
234 decCh1 = new G4MolecularDissociationChannel("B^1A_1_Relax_Channel");
235 decCh2 = new G4MolecularDissociationChannel("B^1A_1_DissociDecay");
236 decCh3 = new G4MolecularDissociationChannel("B^1A_1_AutoIoni_Channel");
237 decCh4 = new G4MolecularDissociationChannel("A^1B_1_DissociDecay");
238 decCh5 = new G4MolecularDissociationChannel("B^1A_1_DissociDecay2");
239
240 // Decay 1 : energy
241 decCh1->SetEnergy(waterExcitation.ExcitationEnergy(1));
242 decCh1->SetProbability(0.175);
243
244 // Decay 2 : 2OH + H_2
245 decCh2->AddProduct(H2);
246 decCh2->AddProduct(OH);
247 decCh2->AddProduct(OH);
248 decCh2->SetProbability(0.0325);
249 decCh2->SetDisplacementType(G4DNAWaterDissociationDisplacer::B1A1_DissociationDecay);
250
251 // Decay 3 : OH + H_3Op + e_aq
252 decCh3->AddProduct(OH);
253 decCh3->AddProduct(H3O);
254 decCh3->AddProduct(e_aq);
255 decCh3->SetProbability(0.50);
256 decCh3->SetDisplacementType(G4DNAWaterDissociationDisplacer::AutoIonisation);
257
258 // Decay 4 : H + OH
259 decCh4->AddProduct(H);
260 decCh4->AddProduct(OH);
261 decCh4->SetProbability(0.2535);
262 decCh4->SetDisplacementType(G4DNAWaterDissociationDisplacer::A1B1_DissociationDecay);
263
264 // Decay 5 : 2H + O
265 decCh5->AddProduct(O);
266 decCh5->AddProduct(H);
267 decCh5->AddProduct(H);
268 decCh5->SetProbability(0.039);
269 decCh5->SetDisplacementType(G4DNAWaterDissociationDisplacer::B1A1_DissociationDecay2);
270
271 *occ = *(water->GetGroundStateElectronOccupancy());
272 occ->RemoveElectron(3); // this is the transition form ground state to
273 occ->AddElectron(5, 1); // the first unoccupied orbital: B^1A_1
274
275 water->NewConfigurationWithElectronOccupancy("B^1A_1", *occ);
276 water->AddDecayChannel("B^1A_1", decCh1);
277 water->AddDecayChannel("B^1A_1", decCh2);
278 water->AddDecayChannel("B^1A_1", decCh3);
279 water->AddDecayChannel("B^1A_1", decCh4);
280 water->AddDecayChannel("B^1A_1", decCh5);
281
282 //-------------------------------------------------------
283 //-------------------Excitation of 3rd layer-----------------
284 decCh1 = new G4MolecularDissociationChannel("Exci3rdLayer_AutoIoni_Channel");
285 decCh2 = new G4MolecularDissociationChannel("Exci3rdLayer_Relax_Channel");
286
287 // Decay channel 1 : : OH + H_3Op + e_aq
288 decCh1->AddProduct(OH);
289 decCh1->AddProduct(H3O);
290 decCh1->AddProduct(e_aq);
291
292 decCh1->SetProbability(0.5);
293 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::AutoIonisation);
294
295 // Decay channel 2 : energy
296 decCh2->SetEnergy(waterExcitation.ExcitationEnergy(2));
297 decCh2->SetProbability(0.5);
298
299 // Electronic configuration of this decay
300 *occ = *(water->GetGroundStateElectronOccupancy());
301 occ->RemoveElectron(2, 1);
302 occ->AddElectron(5, 1);
303
304 // Configure the water molecule
305 water->NewConfigurationWithElectronOccupancy("Exci3rdLayer", *occ);
306 water->AddDecayChannel("Exci3rdLayer", decCh1);
307 water->AddDecayChannel("Exci3rdLayer", decCh2);
308
309 //-------------------------------------------------------
310 //-------------------Excitation of 2nd layer-----------------
311 decCh1 = new G4MolecularDissociationChannel("Exci2ndLayer_AutoIoni_Channel");
312 decCh2 = new G4MolecularDissociationChannel("Exci2ndLayer_Relax_Channel");
313
314 // Decay Channel 1 : : OH + H_3Op + e_aq
315 decCh1->AddProduct(OH);
316 decCh1->AddProduct(H3O);
317 decCh1->AddProduct(e_aq);
318
319 decCh1->SetProbability(0.5);
320 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::AutoIonisation);
321
322 // Decay channel 2 : energy
323 decCh2->SetEnergy(waterExcitation.ExcitationEnergy(3));
324 decCh2->SetProbability(0.5);
325
326 *occ = *(water->GetGroundStateElectronOccupancy());
327 occ->RemoveElectron(1, 1);
328 occ->AddElectron(5, 1);
329
330 water->NewConfigurationWithElectronOccupancy("Exci2ndLayer", *occ);
331 water->AddDecayChannel("Exci2ndLayer", decCh1);
332 water->AddDecayChannel("Exci2ndLayer", decCh2);
333
334 //-------------------------------------------------------
335 //-------------------Excitation of 1st layer-----------------
336 decCh1 = new G4MolecularDissociationChannel("Exci1stLayer_AutoIoni_Channel");
337 decCh2 = new G4MolecularDissociationChannel("Exci1stLayer_Relax_Channel");
338
339 *occ = *(water->GetGroundStateElectronOccupancy());
340 occ->RemoveElectron(0, 1);
341 occ->AddElectron(5, 1);
342
343 // Decay Channel 1 : : OH + H_3Op + e_aq
344 decCh1->AddProduct(OH);
345 decCh1->AddProduct(H3O);
346 decCh1->AddProduct(e_aq);
347 decCh1->SetProbability(0.5);
348 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::AutoIonisation);
349
350 // Decay channel 2 : energy
351 decCh2->SetEnergy(waterExcitation.ExcitationEnergy(4));
352 decCh2->SetProbability(0.5);
353
354 water->NewConfigurationWithElectronOccupancy("Exci1stLayer", *occ);
355 water->AddDecayChannel("Exci1stLayer", decCh1);
356 water->AddDecayChannel("Exci1stLayer", decCh2);
357
358 /////////////////////////////////////////////////////////
359 // IONISATION //
360 /////////////////////////////////////////////////////////
361 //--------------------------------------------------------
362 //------------------- Ionisation -------------------------
363
364 decCh1 = new G4MolecularDissociationChannel("Ioni_Channel");
365
366 // Decay Channel 1 : : OH + H_3Op
367 decCh1->AddProduct(H3O);
368 decCh1->AddProduct(OH);
369 decCh1->SetProbability(1);
370 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::Ionisation_DissociationDecay);
371
372 *occ = *(water->GetGroundStateElectronOccupancy());
373 occ->RemoveElectron(4, 1);
374 // this is a ionized h2O with a hole in its last orbital
375 water->NewConfigurationWithElectronOccupancy("Ioni5", *occ);
376 water->AddDecayChannel("Ioni5", decCh1);
377
378 *occ = *(water->GetGroundStateElectronOccupancy());
379 occ->RemoveElectron(3, 1);
380 water->NewConfigurationWithElectronOccupancy("Ioni4", *occ);
381 water->AddDecayChannel("Ioni4", new G4MolecularDissociationChannel(*decCh1));
382
383 *occ = *(water->GetGroundStateElectronOccupancy());
384 occ->RemoveElectron(2, 1);
385 water->NewConfigurationWithElectronOccupancy("Ioni3", *occ);
386 water->AddDecayChannel("Ioni3", new G4MolecularDissociationChannel(*decCh1));
387
388 *occ = *(water->GetGroundStateElectronOccupancy());
389 occ->RemoveElectron(1, 1);
390 water->NewConfigurationWithElectronOccupancy("Ioni2", *occ);
391 water->AddDecayChannel("Ioni2", new G4MolecularDissociationChannel(*decCh1));
392
393 *occ = *(water->GetGroundStateElectronOccupancy());
394 occ->RemoveElectron(0, 1);
395 water->NewConfigurationWithElectronOccupancy("Ioni1", *occ);
396 water->AddDecayChannel("Ioni1", new G4MolecularDissociationChannel(*decCh1));
397
398 //////////////////////////////////////////////////////////
399 // Dissociative Attachment //
400 //////////////////////////////////////////////////////////
401 decCh1 = new G4MolecularDissociationChannel("DissociAttachment_ch1");
402
403 // Decay 1 : OHm + H
404 decCh1->AddProduct(H2);
405 decCh1->AddProduct(OHm);
406 decCh1->AddProduct(OH);
407 decCh1->SetProbability(1);
408 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::DissociativeAttachment);
409
410 *occ = *(water->GetGroundStateElectronOccupancy());
411 occ->AddElectron(5, 1); // H_2O^-
412
413 water->NewConfigurationWithElectronOccupancy("DissociAttachment_ch1", *occ);
414 water->AddDecayChannel("DissociAttachment_ch1", decCh1);
415
416 //////////////////////////////////////////////////////////
417 // Electron-hole recombination //
418 //////////////////////////////////////////////////////////
419 decCh1 = new G4MolecularDissociationChannel("H2Ovib_DissociDecay1");
420 decCh2 = new G4MolecularDissociationChannel("H2Ovib_DissociDecay2");
421 decCh3 = new G4MolecularDissociationChannel("H2Ovib_DissociDecay3");
422 decCh4 = new G4MolecularDissociationChannel("H2Ovib_DissociDecay4");
423
424 // Decay 1 : 2OH + H_2
425 decCh1->AddProduct(H2);
426 decCh1->AddProduct(OH);
427 decCh1->AddProduct(OH);
428 decCh1->SetProbability(0.1365);
429 decCh1->SetDisplacementType(G4DNAWaterDissociationDisplacer::B1A1_DissociationDecay);
430
431 // Decay 2 : OH + H
432 decCh2->AddProduct(OH);
433 decCh2->AddProduct(H);
434 decCh2->SetProbability(0.3575);
435 decCh2->SetDisplacementType(G4DNAWaterDissociationDisplacer::A1B1_DissociationDecay);
436
437 // Decay 3 : 2H + O(3p)
438 decCh3->AddProduct(O);
439 decCh3->AddProduct(H);
440 decCh3->AddProduct(H);
441 decCh3->SetProbability(0.156);
442 decCh3->SetDisplacementType(G4DNAWaterDissociationDisplacer::B1A1_DissociationDecay2);
443
444 // Decay 4 : relaxation
445 decCh4->SetProbability(0.35);
446
447 const auto pH2Ovib = G4H2O::Definition()->NewConfiguration("H2Ovib");
448 assert(pH2Ovib != nullptr);
449
450 water->AddDecayChannel(pH2Ovib, decCh1);
451 water->AddDecayChannel(pH2Ovib, decCh2);
452 water->AddDecayChannel(pH2Ovib, decCh3);
453 water->AddDecayChannel(pH2Ovib, decCh4);
454
455 delete occ;
456}
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.)
static G4MoleculeTable * Instance()

Referenced by G4EmDNAChemistry_option3::ConstructDissociationChannels().

◆ ConstructMolecule()

void G4ChemDissociationChannels_option1::ConstructMolecule ( )
static

Definition at line 54 of file G4ChemDissociationChannels_option1.cc.

55{
56 //-----------------------------------
57 // G4Electron::Definition(); // safety
58
59 //-----------------------------------
60 // Create the definition
61
69
74
75 //____________________________________________________________________________
76 auto molTable = G4MoleculeTable::Instance();
77 molTable->CreateConfiguration("H3Op", G4H3O::Definition());
78 molTable->GetConfiguration("H3Op")->SetDiffusionCoefficient(9.46e-9
79 * (m2 / s));
80 molTable->GetConfiguration("H3Op")->SetVanDerVaalsRadius(0.25 * nm);
81
82 molTable->CreateConfiguration("OH", G4OH::Definition());
83 molTable->GetConfiguration("OH")->SetDiffusionCoefficient(2.2e-9 * (m2 / s));
84 molTable->GetConfiguration("OH")->SetVanDerVaalsRadius(0.22 * nm);
85
87 molTable->CreateConfiguration("OHm", // just a tag to store and retrieve
88 // from G4MoleculeTable
90 -1, // charge
91 5.3e-9 * (m2 / s));
92 OHm->SetMass(17.0079 * g / Avogadro * c_squared);
93 OHm->SetVanDerVaalsRadius(0.33 * nm);
94
95 molTable->CreateConfiguration("e_aq", G4Electron_aq::Definition());
96 molTable->GetConfiguration("e_aq")->SetVanDerVaalsRadius(0.50 * nm);
97
98 molTable->CreateConfiguration("H", G4Hydrogen::Definition());
99 molTable->GetConfiguration("H")->SetVanDerVaalsRadius(0.19 * nm);
100
101 molTable->CreateConfiguration("H2", G4H2::Definition());
102 molTable->GetConfiguration("H2")->SetDiffusionCoefficient(4.8e-9 * (m2 / s));
103 molTable->GetConfiguration("H2")->SetVanDerVaalsRadius(0.14 * nm);
104
105 molTable->CreateConfiguration("H2O2", G4H2O2::Definition());
106 molTable->GetConfiguration("H2O2")->SetDiffusionCoefficient(2.3e-9 * (m2 / s));
107 molTable->GetConfiguration("H2O2")->SetVanDerVaalsRadius(0.21 * nm);
108
109 // molecules extension (RITRACKS)
110
111 molTable->CreateConfiguration("HO2", G4HO2::Definition());
112 molTable->GetConfiguration("HO2")->SetVanDerVaalsRadius(0.21 * nm);
113
115 molTable->CreateConfiguration("HO2m", // just a tag to store and retrieve
116 // from G4MoleculeTable
118 -1, // charge
119 1.4e-9 * (m2 / s));
120 HO2m->SetMass(33.00396 * g / Avogadro * c_squared);
121 HO2m->SetVanDerVaalsRadius(0.25 * nm);
122
123 molTable->CreateConfiguration("Oxy", G4Oxygen::Definition());
124 molTable->GetConfiguration("Oxy")->SetVanDerVaalsRadius(0.20 * nm);
125
127 molTable->CreateConfiguration("Om", // just a tag to store and retrieve from
128 // G4MoleculeTable
130 -1, // charge
131 2.0e-9 * (m2 / s));
132 Om->SetMass(15.99829 * g / Avogadro * c_squared);
133 Om->SetVanDerVaalsRadius(0.25 * nm);
134
135 molTable->CreateConfiguration("O2", G4O2::Definition());
136 molTable->GetConfiguration("O2")->SetVanDerVaalsRadius(0.17 * nm);
137
139 molTable->CreateConfiguration("O2m", // just a tag to store and retrieve
140 // from G4MoleculeTable
142 -1, // charge
143 1.75e-9 * (m2 / s));
144 O2m->SetMass(31.99602 * g / Avogadro * c_squared);
145 O2m->SetVanDerVaalsRadius(0.22 * nm);
146
147 molTable->CreateConfiguration("O3", G4O3::Definition());
148 molTable->GetConfiguration("O3")->SetVanDerVaalsRadius(0.20 * nm);
149
151 molTable->CreateConfiguration("O3m", // just a tag to store and retrieve
152 // from G4MoleculeTable
154 -1, // charge
155 2.0e-9 * (m2 / s));
156 O3m->SetMass(47.99375 * g / Avogadro * c_squared);
157 O3m->SetVanDerVaalsRadius(0.20 * nm);
158
159 molTable->CreateConfiguration("H2O(B)", // just a tag to store and retrieve
160 // from G4MoleculeTable
162 0, // charge
163 0 * (m2 / s));
164
165 molTable->CreateConfiguration("H3Op(B)", // just a tag to store and retrieve
166 // from G4MoleculeTable
168 1, // charge
169 0 * (m2 / s));
170
171 molTable->CreateConfiguration("OHm(B)", // just a tag to store and retrieve
172 // from G4MoleculeTable
174 -1, // charge
175 0 * (m2 / s));
176
177 molTable->CreateConfiguration("NoneM", G4FakeMolecule::Definition());
178}
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
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 G4EmDNAChemistry_option3::ConstructMolecule().


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