Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/advanced/dna/dsbandrepair/src/G4EmDNAChemistry_option3_Extended.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  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 //
 26 //
 27 /// \file G4EmDNAChemistry_option3_Extended.cc
 28 /// \brief Implementation of the G4EmDNAChemistry_option3_Extended class
 29 
 30 #include "G4EmDNAChemistry_option3_Extended.hh"
 31 
 32 #include "G4DNAMolecule.hh"
 33 #include "G4MoleculeTable.hh"
 34 
 35 // particles
 36 #include "G4H2O.hh"
 37 #include "G4H2.hh"
 38 #include "G4Hydrogen.hh"
 39 #include "G4OH.hh"
 40 #include "G4H3O.hh"
 41 #include "G4Electron_aq.hh"
 42 
 43 #include "G4H2O2.hh"
 44 #include "G4O2.hh"
 45 #include "G4HO2.hh"
 46 
 47 #include "G4PhysicalConstants.hh"
 48 #include "G4SystemOfUnits.hh"
 49 #include "G4DNAIndependentReactionTimeModel.hh"
 50 #include "G4DNAMolecularReactionTable.hh"
 51 
 52 #include "G4ChemicalMoleculeFinder.hh"
 53 // factory
 54 #include "G4PhysicsConstructorFactory.hh"
 55 
 56 G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAChemistry_option3_Extended);
 57 
 58 void G4EmDNAChemistry_option3_Extended::ConstructParticle()
 59 {
 60     ConstructMolecule(); //from G4EmDNAChemistry_option3
 61     //dna molecules 
 62     G4Deoxyribose::Definition();
 63     G4Phosphate::Definition();
 64     G4Adenine::Definition();
 65     G4Guanine::Definition();
 66     G4Thymine::Definition();
 67     G4Cytosine::Definition();
 68     G4Histone::Definition();
 69     //damaged molecules
 70     G4DamagedDeoxyribose::Definition();
 71     G4DamagedAdenine::Definition();
 72     G4DamagedGuanine::Definition();
 73     G4DamagedThymine::Definition();
 74     G4DamagedCytosine::Definition();
 75     G4ModifiedHistone::Definition();
 76     //________________DNA_______________________________________________
 77     auto table = G4MoleculeTable::Instance();
 78     table->CreateConfiguration("Deoxyribose",G4Deoxyribose::Definition());
 79     table->CreateConfiguration("Phosphate",G4Phosphate::Definition());
 80     table->CreateConfiguration("Adenine",G4Adenine::Definition());
 81     table->CreateConfiguration("Thymine",G4Thymine::Definition());
 82     table->CreateConfiguration("Guanine",G4Guanine::Definition());
 83     table->CreateConfiguration("Cytosine",G4Cytosine::Definition());
 84     table->CreateConfiguration("Histone",G4Histone::Definition());
 85   
 86     //damaged DNAElement Configuration
 87 
 88     table->CreateConfiguration("Damaged_Deoxyribose",
 89     G4DamagedDeoxyribose::Definition());
 90     table->CreateConfiguration("Damaged_Adenine",
 91     G4DamagedAdenine::Definition());
 92     table->CreateConfiguration("Damaged_Thymine",
 93     G4DamagedThymine::Definition());
 94     table->CreateConfiguration("Damaged_Guanine",
 95     G4DamagedGuanine::Definition());
 96     table->CreateConfiguration("Damaged_Cytosine",
 97     G4DamagedCytosine::Definition());
 98 }
 99 
100 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
101 
102 void G4EmDNAChemistry_option3_Extended::ConstructReactionTable(
103     G4DNAMolecularReactionTable* theReactionTable)
104 {
105     G4EmDNAChemistry_option3::ConstructReactionTable(theReactionTable);//from G4EmDNAChemistry_option3
106 
107     //Get the molecular configuration
108     auto table = G4MoleculeTable::Instance();
109     G4MolecularConfiguration* OH = table->GetConfiguration("°OH");
110     G4MolecularConfiguration* OHm = table->GetConfiguration("OHm");
111     G4MolecularConfiguration* e_aq = table->GetConfiguration("e_aq");
112     G4MolecularConfiguration* H2 = table->GetConfiguration("H2");
113     G4MolecularConfiguration* H3Op = table->GetConfiguration("H3Op");
114     G4MolecularConfiguration* H = table->GetConfiguration("H");
115     G4MolecularConfiguration* H2O2 = table->GetConfiguration("H2O2");
116 
117     // DNA additions--------------------------------------------------
118     G4MolecularConfiguration* deoxyribose = table->GetConfiguration("Deoxyribose");
119     G4MolecularConfiguration* adenine = table->GetConfiguration("Adenine");
120     G4MolecularConfiguration* guanine = table->GetConfiguration("Guanine");
121     G4MolecularConfiguration* thymine = table->GetConfiguration("Thymine");
122     G4MolecularConfiguration* cytosine = table->GetConfiguration("Cytosine");
123     G4MolecularConfiguration* histone = table->GetConfiguration("Histone");
124 
125     G4MolecularConfiguration* damage_deoxyribose = table->GetConfiguration("Damaged_Deoxyribose");
126     G4MolecularConfiguration* damage_adenine = table->GetConfiguration("Damaged_Adenine");
127     G4MolecularConfiguration* damage_guanine = table->GetConfiguration("Damaged_Guanine");
128     G4MolecularConfiguration* damage_thymine = table->GetConfiguration("Damaged_Thymine");
129     G4MolecularConfiguration* damage_cytosine = table->GetConfiguration("Damaged_Cytosine");
130 
131 
132     // OH and DNA
133 
134     // 2-Deoxyribose + OH -> damagedDeoxyribose
135     G4DNAMolecularReactionData* reactionData = new G4DNAMolecularReactionData(
136     1.80e9*(1e-3*m3/(mole*s)), deoxyribose, OH);
137     reactionData->AddProduct(damage_deoxyribose);
138     reactionData->SetReactionType(1);
139     theReactionTable->SetReaction(reactionData);
140 
141     // adenine + OH -> ...
142     reactionData = new G4DNAMolecularReactionData(
143     6.10e9*(1e-3*m3/(mole*s)), adenine, OH);
144     reactionData->AddProduct(damage_adenine);
145     reactionData->SetReactionType(1);
146     theReactionTable->SetReaction(reactionData);
147 
148     // guanine + OH -> ...
149     reactionData = new G4DNAMolecularReactionData(
150     9.20e9*(1e-3*m3/(mole*s)), guanine, OH);
151     reactionData->AddProduct(damage_guanine);
152     reactionData->SetReactionType(1);
153     theReactionTable->SetReaction(reactionData);
154 
155     // thymine + OH -> ...
156     reactionData = new G4DNAMolecularReactionData(
157     6.40e9*(1e-3*m3/(mole*s)), thymine, OH);
158     reactionData->AddProduct(damage_thymine);
159     reactionData->SetReactionType(1);
160     theReactionTable->SetReaction(reactionData);
161 
162     // cytosine + OH -> ...
163     reactionData = new G4DNAMolecularReactionData(
164     6.10e9*(1e-3*m3/(mole*s)), cytosine, OH);
165     reactionData->AddProduct(damage_cytosine);
166     reactionData->SetReactionType(1);
167     theReactionTable->SetReaction(reactionData);
168 
169     // Hydrated e- and DNA
170 
171     // Deoxyribose + Hydrated e-  -> ...
172     reactionData = new G4DNAMolecularReactionData(
173     0.01e9*(1e-3*m3/(mole*s)), deoxyribose, e_aq);
174     reactionData->AddProduct(damage_deoxyribose);
175     reactionData->SetReactionType(1);
176     theReactionTable->SetReaction(reactionData);
177 
178     // adenine + Hydrated e- -> ...
179     reactionData = new G4DNAMolecularReactionData(
180     9e9*(1e-3*m3/(mole*s)), adenine, e_aq);
181     reactionData->AddProduct(damage_adenine);
182     reactionData->SetReactionType(1);
183     theReactionTable->SetReaction(reactionData);
184 
185     // guanine + Hydrated e- -> ...
186     reactionData = new G4DNAMolecularReactionData(
187     14e9*(1e-3*m3/(mole*s)), guanine, e_aq);
188     reactionData->AddProduct(damage_guanine);
189     reactionData->SetReactionType(1);
190     theReactionTable->SetReaction(reactionData);
191 
192     // thymine + Hydrated e- -> ...
193     reactionData = new G4DNAMolecularReactionData(
194     18e9*(1e-3*m3/(mole*s)), thymine, e_aq);
195     reactionData->AddProduct(damage_thymine);
196     reactionData->SetReactionType(1);
197     theReactionTable->SetReaction(reactionData);
198 
199     // cytosine + Hydrated e- -> ...
200     reactionData = new G4DNAMolecularReactionData(
201     13e9*(1e-3*m3/(mole*s)), cytosine, e_aq);
202     reactionData->AddProduct(damage_cytosine);
203     reactionData->SetReactionType(1);
204     theReactionTable->SetReaction(reactionData);
205 
206     // Radical H and DNA
207 
208     // Deoxyribose + Radical H -> ...
209     reactionData = new G4DNAMolecularReactionData(
210     0.029e9*(1e-3*m3/(mole*s)), deoxyribose, H);
211     reactionData->AddProduct(damage_deoxyribose);
212     reactionData->SetReactionType(1);
213     theReactionTable->SetReaction(reactionData);
214 
215     // adenine + Radical H -> ...
216     reactionData = new G4DNAMolecularReactionData(
217     0.10e9*(1e-3*m3/(mole*s)), adenine, H);
218     reactionData->AddProduct(damage_adenine);
219     reactionData->SetReactionType(1);
220     theReactionTable->SetReaction(reactionData);
221 
222     // thymine + Radical H -> ...
223     reactionData = new G4DNAMolecularReactionData(
224     0.57e9*(1e-3*m3/(mole*s)), thymine, H);
225     reactionData->AddProduct(damage_thymine);
226     reactionData->SetReactionType(1);
227     theReactionTable->SetReaction(reactionData);
228 
229     // cytosine + Radical H -> ...
230     reactionData = new G4DNAMolecularReactionData(
231     0.092e9*(1e-3*m3/(mole*s)), cytosine, H);
232     reactionData->AddProduct(damage_cytosine);
233     reactionData->SetReactionType(1);
234     theReactionTable->SetReaction(reactionData);
235 
236     //histone + all molecules -> modification(or "damage")
237 
238     reactionData = new G4DNAMolecularReactionData(
239     0.0*(1e-3*m3/(mole*s)), histone, OH);
240     reactionData->AddProduct(histone);
241     reactionData->SetEffectiveReactionRadius(
242     2.4*nm + G4OH::Definition()->GetVanDerVaalsRadius());
243     reactionData->SetReactionType(1);
244     theReactionTable->SetReaction(reactionData);
245 
246     reactionData = new G4DNAMolecularReactionData(
247     0.0*(1e-3*m3/(mole*s)), histone, OHm);
248     reactionData->AddProduct(histone);
249     reactionData->SetEffectiveReactionRadius(
250     2.4*nm + G4OH::Definition()->GetVanDerVaalsRadius());
251     reactionData->SetReactionType(1);
252     theReactionTable->SetReaction(reactionData);
253 
254     reactionData = new G4DNAMolecularReactionData(
255     0.0*(1e-3*m3/(mole*s)), histone, e_aq);
256     reactionData->AddProduct(histone);
257     reactionData->SetEffectiveReactionRadius(
258     2.4*nm + G4Electron_aq::Definition()->GetVanDerVaalsRadius());
259     reactionData->SetReactionType(1);
260     theReactionTable->SetReaction(reactionData);
261 
262     reactionData = new G4DNAMolecularReactionData(
263     0.0*(1e-3*m3/(mole*s)), histone, H2);
264     reactionData->AddProduct(histone);
265     reactionData->SetEffectiveReactionRadius(
266     2.4*nm + G4H2::Definition()->GetVanDerVaalsRadius());
267     reactionData->SetReactionType(1);
268     theReactionTable->SetReaction(reactionData);
269 
270     reactionData = new G4DNAMolecularReactionData(
271     0.0*(1e-3*m3/(mole*s)), histone, H3Op);
272     reactionData->AddProduct(histone);
273     reactionData->SetEffectiveReactionRadius(
274     2.4*nm + G4H3O::Definition()->GetVanDerVaalsRadius());
275     reactionData->SetReactionType(1);
276     theReactionTable->SetReaction(reactionData);
277 
278     reactionData = new G4DNAMolecularReactionData(
279     0.0*(1e-3*m3/(mole*s)), histone, H);
280     reactionData->AddProduct(histone);
281     reactionData->SetEffectiveReactionRadius(
282     2.4*nm + G4Hydrogen::Definition()->GetVanDerVaalsRadius());
283     reactionData->SetReactionType(1);
284     theReactionTable->SetReaction(reactionData);
285 
286     reactionData = new G4DNAMolecularReactionData(
287     0.0*(1e-3*m3/(mole*s)), histone, H2O2);
288     reactionData->AddProduct(histone);
289     reactionData->SetEffectiveReactionRadius(
290     2.4*nm + G4H2O2::Definition()->GetVanDerVaalsRadius());
291     reactionData->SetReactionType(1);
292     theReactionTable->SetReaction(reactionData);
293 }
294 
295