Geant4  9.6.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4EmDNAPhysicsChemistry.cc
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
27 
28 #include "G4PhysicalConstants.hh"
29 #include "G4SystemOfUnits.hh"
30 
32 #include "G4DNAChemistryManager.hh"
34 #include "G4ProcessManager.hh"
35 
37 
38 // *** Processes and models for Geant4-DNA
39 
40 #include "G4DNAElastic.hh"
44 
45 #include "G4DNAExcitation.hh"
46 #include "G4DNAAttachment.hh"
47 #include "G4DNAVibExcitation.hh"
48 #include "G4DNAIonisation.hh"
49 #include "G4DNAChargeDecrease.hh"
50 #include "G4DNAChargeIncrease.hh"
51 
52 #include "G4DNAMolecularDecay.hh"
56 #include "G4VDNAReactionModel.hh"
57 
58 // particles
59 
60 #include "G4Electron.hh"
61 #include "G4Proton.hh"
62 #include "G4GenericIon.hh"
63 
64 #include "G4H2O.hh"
65 #include "G4H2.hh"
66 #include "G4Hydrogen.hh"
67 #include "G4OH.hh"
68 #include "G4H3O.hh"
69 #include "G4Electron_aq.hh"
70 #include "G4H2O2.hh"
71 
72 // Warning : the following is needed in order to use EM Physics builders
73 // e+
74 #include "G4Positron.hh"
75 #include "G4eMultipleScattering.hh"
76 #include "G4UrbanMscModel95.hh"
77 #include "G4eIonisation.hh"
78 #include "G4eBremsstrahlung.hh"
79 #include "G4eplusAnnihilation.hh"
80 // gamma
81 #include "G4Gamma.hh"
82 #include "G4PhotoElectricEffect.hh"
84 #include "G4ComptonScattering.hh"
86 #include "G4GammaConversion.hh"
88 #include "G4RayleighScattering.hh"
90 // end of warning
91 
92 #include "G4LossTableManager.hh"
93 #include "G4UAtomicDeexcitation.hh"
94 #include "G4PhysicsListHelper.hh"
95 #include "G4BuilderType.hh"
96 
97 // factory
99 //
101 
102 using namespace std;
103 
105  : G4VPhysicsConstructor("G4EmDNAPhysicsChemistry"), verbose(ver)
106 {
108 }
109 
111 {
119 }
120 
121 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
122 
124 {
125  // bosons
126  G4Gamma::Gamma();
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 }
145 {
146  //-----------------------------------
147  // Create the definition
155 
157 }
158 
160 {
161  //-----------------------------------
162  //Create the dynamic objects
163  G4Molecule * H3O = new G4Molecule(G4H3O::Definition());
164  H3O -> RemoveElectron(4,1);
165 
166  G4Molecule * OH = new G4Molecule(G4OH::Definition());
168 
170  G4Molecule * H2 = new G4Molecule(G4H2::Definition());
171 
172  G4Molecule* OHm = new G4Molecule(G4OH::Definition());
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
180  G4MolecularDecayChannel* decCh1;
181  G4MolecularDecayChannel* decCh2;
182 
184 
186  // EXCITATIONS //
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 
330  // IONISATION //
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 
367  // Dissociative Attachment //
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 }
386 
388 {
390 
391  G4Molecule* OHm = new G4Molecule(G4OH::Definition());
392  OHm->AddElectron(3);
393  OHm->SetMass(17.0079*g/Avogadro * c_squared);
394  OHm->SetDiffusionCoefficient(5.0e-9*(m2/s));
398  G4Molecule* H3Op = new G4Molecule(G4H3O::Definition());
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 }
456 
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");
496  G4DNASancheExcitationModel* sancheExcitationMod = new G4DNASancheExcitationModel;
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 
647 }