File indexing completed on 2025-01-31 09:22:02
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 #include "G4EmDNAChemistry_option3_Extended.hh"
0031
0032 #include "G4DNAMolecule.hh"
0033 #include "G4MoleculeTable.hh"
0034
0035
0036 #include "G4H2O.hh"
0037 #include "G4H2.hh"
0038 #include "G4Hydrogen.hh"
0039 #include "G4OH.hh"
0040 #include "G4H3O.hh"
0041 #include "G4Electron_aq.hh"
0042
0043 #include "G4H2O2.hh"
0044 #include "G4O2.hh"
0045 #include "G4HO2.hh"
0046
0047 #include "G4PhysicalConstants.hh"
0048 #include "G4SystemOfUnits.hh"
0049 #include "G4DNAIndependentReactionTimeModel.hh"
0050 #include "G4DNAMolecularReactionTable.hh"
0051
0052 #include "G4ChemicalMoleculeFinder.hh"
0053
0054 #include "G4PhysicsConstructorFactory.hh"
0055
0056 G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAChemistry_option3_Extended);
0057
0058 void G4EmDNAChemistry_option3_Extended::ConstructParticle()
0059 {
0060 ConstructMolecule();
0061
0062 G4Deoxyribose::Definition();
0063 G4Phosphate::Definition();
0064 G4Adenine::Definition();
0065 G4Guanine::Definition();
0066 G4Thymine::Definition();
0067 G4Cytosine::Definition();
0068 G4Histone::Definition();
0069
0070 G4DamagedDeoxyribose::Definition();
0071 G4DamagedAdenine::Definition();
0072 G4DamagedGuanine::Definition();
0073 G4DamagedThymine::Definition();
0074 G4DamagedCytosine::Definition();
0075 G4ModifiedHistone::Definition();
0076
0077 auto table = G4MoleculeTable::Instance();
0078 table->CreateConfiguration("Deoxyribose",G4Deoxyribose::Definition());
0079 table->CreateConfiguration("Phosphate",G4Phosphate::Definition());
0080 table->CreateConfiguration("Adenine",G4Adenine::Definition());
0081 table->CreateConfiguration("Thymine",G4Thymine::Definition());
0082 table->CreateConfiguration("Guanine",G4Guanine::Definition());
0083 table->CreateConfiguration("Cytosine",G4Cytosine::Definition());
0084 table->CreateConfiguration("Histone",G4Histone::Definition());
0085
0086
0087
0088 table->CreateConfiguration("Damaged_Deoxyribose",
0089 G4DamagedDeoxyribose::Definition());
0090 table->CreateConfiguration("Damaged_Adenine",
0091 G4DamagedAdenine::Definition());
0092 table->CreateConfiguration("Damaged_Thymine",
0093 G4DamagedThymine::Definition());
0094 table->CreateConfiguration("Damaged_Guanine",
0095 G4DamagedGuanine::Definition());
0096 table->CreateConfiguration("Damaged_Cytosine",
0097 G4DamagedCytosine::Definition());
0098 }
0099
0100
0101
0102 void G4EmDNAChemistry_option3_Extended::ConstructReactionTable(
0103 G4DNAMolecularReactionTable* theReactionTable)
0104 {
0105 G4EmDNAChemistry_option3::ConstructReactionTable(theReactionTable);
0106
0107
0108 auto table = G4MoleculeTable::Instance();
0109 G4MolecularConfiguration* OH = table->GetConfiguration("OH");
0110 G4MolecularConfiguration* OHm = table->GetConfiguration("OHm");
0111 G4MolecularConfiguration* e_aq = table->GetConfiguration("e_aq");
0112 G4MolecularConfiguration* H2 = table->GetConfiguration("H2");
0113 G4MolecularConfiguration* H3Op = table->GetConfiguration("H3Op");
0114 G4MolecularConfiguration* H = table->GetConfiguration("H");
0115 G4MolecularConfiguration* H2O2 = table->GetConfiguration("H2O2");
0116
0117
0118 G4MolecularConfiguration* deoxyribose = table->GetConfiguration("Deoxyribose");
0119 G4MolecularConfiguration* adenine = table->GetConfiguration("Adenine");
0120 G4MolecularConfiguration* guanine = table->GetConfiguration("Guanine");
0121 G4MolecularConfiguration* thymine = table->GetConfiguration("Thymine");
0122 G4MolecularConfiguration* cytosine = table->GetConfiguration("Cytosine");
0123 G4MolecularConfiguration* histone = table->GetConfiguration("Histone");
0124
0125 G4MolecularConfiguration* damage_deoxyribose = table->GetConfiguration("Damaged_Deoxyribose");
0126 G4MolecularConfiguration* damage_adenine = table->GetConfiguration("Damaged_Adenine");
0127 G4MolecularConfiguration* damage_guanine = table->GetConfiguration("Damaged_Guanine");
0128 G4MolecularConfiguration* damage_thymine = table->GetConfiguration("Damaged_Thymine");
0129 G4MolecularConfiguration* damage_cytosine = table->GetConfiguration("Damaged_Cytosine");
0130
0131
0132
0133
0134
0135 G4DNAMolecularReactionData* reactionData = new G4DNAMolecularReactionData(
0136 1.80e9*(1e-3*m3/(mole*s)), deoxyribose, OH);
0137 reactionData->AddProduct(damage_deoxyribose);
0138 reactionData->SetReactionType(1);
0139 theReactionTable->SetReaction(reactionData);
0140
0141
0142 reactionData = new G4DNAMolecularReactionData(
0143 6.10e9*(1e-3*m3/(mole*s)), adenine, OH);
0144 reactionData->AddProduct(damage_adenine);
0145 reactionData->SetReactionType(1);
0146 theReactionTable->SetReaction(reactionData);
0147
0148
0149 reactionData = new G4DNAMolecularReactionData(
0150 9.20e9*(1e-3*m3/(mole*s)), guanine, OH);
0151 reactionData->AddProduct(damage_guanine);
0152 reactionData->SetReactionType(1);
0153 theReactionTable->SetReaction(reactionData);
0154
0155
0156 reactionData = new G4DNAMolecularReactionData(
0157 6.40e9*(1e-3*m3/(mole*s)), thymine, OH);
0158 reactionData->AddProduct(damage_thymine);
0159 reactionData->SetReactionType(1);
0160 theReactionTable->SetReaction(reactionData);
0161
0162
0163 reactionData = new G4DNAMolecularReactionData(
0164 6.10e9*(1e-3*m3/(mole*s)), cytosine, OH);
0165 reactionData->AddProduct(damage_cytosine);
0166 reactionData->SetReactionType(1);
0167 theReactionTable->SetReaction(reactionData);
0168
0169
0170
0171
0172 reactionData = new G4DNAMolecularReactionData(
0173 0.01e9*(1e-3*m3/(mole*s)), deoxyribose, e_aq);
0174 reactionData->AddProduct(damage_deoxyribose);
0175 reactionData->SetReactionType(1);
0176 theReactionTable->SetReaction(reactionData);
0177
0178
0179 reactionData = new G4DNAMolecularReactionData(
0180 9e9*(1e-3*m3/(mole*s)), adenine, e_aq);
0181 reactionData->AddProduct(damage_adenine);
0182 reactionData->SetReactionType(1);
0183 theReactionTable->SetReaction(reactionData);
0184
0185
0186 reactionData = new G4DNAMolecularReactionData(
0187 14e9*(1e-3*m3/(mole*s)), guanine, e_aq);
0188 reactionData->AddProduct(damage_guanine);
0189 reactionData->SetReactionType(1);
0190 theReactionTable->SetReaction(reactionData);
0191
0192
0193 reactionData = new G4DNAMolecularReactionData(
0194 18e9*(1e-3*m3/(mole*s)), thymine, e_aq);
0195 reactionData->AddProduct(damage_thymine);
0196 reactionData->SetReactionType(1);
0197 theReactionTable->SetReaction(reactionData);
0198
0199
0200 reactionData = new G4DNAMolecularReactionData(
0201 13e9*(1e-3*m3/(mole*s)), cytosine, e_aq);
0202 reactionData->AddProduct(damage_cytosine);
0203 reactionData->SetReactionType(1);
0204 theReactionTable->SetReaction(reactionData);
0205
0206
0207
0208
0209 reactionData = new G4DNAMolecularReactionData(
0210 0.029e9*(1e-3*m3/(mole*s)), deoxyribose, H);
0211 reactionData->AddProduct(damage_deoxyribose);
0212 reactionData->SetReactionType(1);
0213 theReactionTable->SetReaction(reactionData);
0214
0215
0216 reactionData = new G4DNAMolecularReactionData(
0217 0.10e9*(1e-3*m3/(mole*s)), adenine, H);
0218 reactionData->AddProduct(damage_adenine);
0219 reactionData->SetReactionType(1);
0220 theReactionTable->SetReaction(reactionData);
0221
0222
0223 reactionData = new G4DNAMolecularReactionData(
0224 0.57e9*(1e-3*m3/(mole*s)), thymine, H);
0225 reactionData->AddProduct(damage_thymine);
0226 reactionData->SetReactionType(1);
0227 theReactionTable->SetReaction(reactionData);
0228
0229
0230 reactionData = new G4DNAMolecularReactionData(
0231 0.092e9*(1e-3*m3/(mole*s)), cytosine, H);
0232 reactionData->AddProduct(damage_cytosine);
0233 reactionData->SetReactionType(1);
0234 theReactionTable->SetReaction(reactionData);
0235
0236
0237
0238 reactionData = new G4DNAMolecularReactionData(
0239 0.0*(1e-3*m3/(mole*s)), histone, OH);
0240 reactionData->AddProduct(histone);
0241 reactionData->SetEffectiveReactionRadius(
0242 2.4*nm + G4OH::Definition()->GetVanDerVaalsRadius());
0243 reactionData->SetReactionType(1);
0244 theReactionTable->SetReaction(reactionData);
0245
0246 reactionData = new G4DNAMolecularReactionData(
0247 0.0*(1e-3*m3/(mole*s)), histone, OHm);
0248 reactionData->AddProduct(histone);
0249 reactionData->SetEffectiveReactionRadius(
0250 2.4*nm + G4OH::Definition()->GetVanDerVaalsRadius());
0251 reactionData->SetReactionType(1);
0252 theReactionTable->SetReaction(reactionData);
0253
0254 reactionData = new G4DNAMolecularReactionData(
0255 0.0*(1e-3*m3/(mole*s)), histone, e_aq);
0256 reactionData->AddProduct(histone);
0257 reactionData->SetEffectiveReactionRadius(
0258 2.4*nm + G4Electron_aq::Definition()->GetVanDerVaalsRadius());
0259 reactionData->SetReactionType(1);
0260 theReactionTable->SetReaction(reactionData);
0261
0262 reactionData = new G4DNAMolecularReactionData(
0263 0.0*(1e-3*m3/(mole*s)), histone, H2);
0264 reactionData->AddProduct(histone);
0265 reactionData->SetEffectiveReactionRadius(
0266 2.4*nm + G4H2::Definition()->GetVanDerVaalsRadius());
0267 reactionData->SetReactionType(1);
0268 theReactionTable->SetReaction(reactionData);
0269
0270 reactionData = new G4DNAMolecularReactionData(
0271 0.0*(1e-3*m3/(mole*s)), histone, H3Op);
0272 reactionData->AddProduct(histone);
0273 reactionData->SetEffectiveReactionRadius(
0274 2.4*nm + G4H3O::Definition()->GetVanDerVaalsRadius());
0275 reactionData->SetReactionType(1);
0276 theReactionTable->SetReaction(reactionData);
0277
0278 reactionData = new G4DNAMolecularReactionData(
0279 0.0*(1e-3*m3/(mole*s)), histone, H);
0280 reactionData->AddProduct(histone);
0281 reactionData->SetEffectiveReactionRadius(
0282 2.4*nm + G4Hydrogen::Definition()->GetVanDerVaalsRadius());
0283 reactionData->SetReactionType(1);
0284 theReactionTable->SetReaction(reactionData);
0285
0286 reactionData = new G4DNAMolecularReactionData(
0287 0.0*(1e-3*m3/(mole*s)), histone, H2O2);
0288 reactionData->AddProduct(histone);
0289 reactionData->SetEffectiveReactionRadius(
0290 2.4*nm + G4H2O2::Definition()->GetVanDerVaalsRadius());
0291 reactionData->SetReactionType(1);
0292 theReactionTable->SetReaction(reactionData);
0293 }
0294