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

#include <G4EmDNAChemistry_option2.hh>

Inheritance diagram for G4EmDNAChemistry_option2:

Public Member Functions

 G4EmDNAChemistry_option2 ()
 ~G4EmDNAChemistry_option2 () override=default
void ConstructParticle () override
void ConstructMolecule () override
void ConstructProcess () override
void ConstructDissociationChannels () override
void ConstructReactionTable (G4DNAMolecularReactionTable *pTable) override
void ConstructTimeStepModel (G4DNAMolecularReactionTable *pTable) override
Public Member Functions inherited from G4VUserChemistryList
 G4VUserChemistryList (G4bool flag=true)
virtual ~G4VUserChemistryList ()
bool IsPhysicsConstructor ()
void ThisIsAPhysicsConstructor (G4bool flag=true)
void BuildPhysicsTable ()
Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
virtual ~G4VPhysicsConstructor ()
void SetPhysicsName (const G4String &="")
const G4StringGetPhysicsName () const
void SetPhysicsType (G4int)
G4int GetPhysicsType () const
G4int GetInstanceID () const
virtual void TerminateWorker ()
void SetVerboseLevel (G4int value)
G4int GetVerboseLevel () const

Additional Inherited Members

Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManagerGetSubInstanceManager ()
Protected Types inherited from G4VPhysicsConstructor
using PhysicsBuilder_V = G4VPCData::PhysicsBuilders_V
Protected Member Functions inherited from G4VUserChemistryList
void BuildPhysicsTable (G4MoleculeDefinition *)
void RegisterTimeStepModel (G4VITStepModel *timeStepModel, G4double startingTime=0)
Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
PhysicsBuilder_V GetBuilders () const
void AddBuilder (G4PhysicsBuilderInterface *bld)
Protected Attributes inherited from G4VUserChemistryList
G4int verboseLevel
G4bool fIsPhysicsConstructor
Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel = 0
G4String namePhysics = ""
G4int typePhysics = 0
G4ParticleTabletheParticleTable = nullptr
G4int g4vpcInstanceID = 0
Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager

Detailed Description

Definition at line 37 of file G4EmDNAChemistry_option2.hh.

Constructor & Destructor Documentation

◆ G4EmDNAChemistry_option2()

G4EmDNAChemistry_option2::G4EmDNAChemistry_option2 ( )

Definition at line 65 of file G4EmDNAChemistry_option2.cc.

67{
69}
static G4DNAChemistryManager * Instance()
void SetChemistryList(G4VUserChemistryList &)
G4VUserChemistryList(G4bool flag=true)

◆ ~G4EmDNAChemistry_option2()

G4EmDNAChemistry_option2::~G4EmDNAChemistry_option2 ( )
overridedefault

Member Function Documentation

◆ ConstructDissociationChannels()

void G4EmDNAChemistry_option2::ConstructDissociationChannels ( )
overridevirtual

◆ ConstructMolecule()

void G4EmDNAChemistry_option2::ConstructMolecule ( )
overridevirtual

Reimplemented from G4VUserChemistryList.

Definition at line 73 of file G4EmDNAChemistry_option2.cc.

74{
76 //____________________________________________________________________________
77
85//damaged molecules
92
93//________________DNA_______________________________________________
94
96 CreateConfiguration("Deoxyribose",G4Deoxyribose::Definition());
98 CreateConfiguration("Phosphate",G4Phosphate::Definition());
100 CreateConfiguration("Adenine",G4Adenine::Definition());
102 CreateConfiguration("Thymine",G4Thymine::Definition());
104 CreateConfiguration("Guanine",G4Guanine::Definition());
106 CreateConfiguration("Cytosine",G4Cytosine::Definition());
108 CreateConfiguration("Histone",G4Histone::Definition());
109
110//damaged DNAElement Configuration
111
113 CreateConfiguration("Damaged_Deoxyribose",
116 CreateConfiguration("Damaged_Adenine",
119 CreateConfiguration("Damaged_Thymine",
122 CreateConfiguration("Damaged_Guanine",
125 CreateConfiguration("Damaged_Cytosine",
127}
static G4Adenine * Definition()
static G4Cytosine * Definition()
static G4DamagedAdenine * Definition()
static G4DamagedCytosine * Definition()
static G4DamagedDeoxyribose * Definition()
static G4DamagedGuanine * Definition()
static G4DamagedThymine * Definition()
static G4Deoxyribose * Definition()
static G4Guanine * Definition()
static G4Histone * Definition()
static G4ModifiedHistone * Definition()
static G4MoleculeTable * Instance()
static G4Phosphate * Definition()
static G4Thymine * Definition()

Referenced by ConstructParticle().

◆ ConstructParticle()

void G4EmDNAChemistry_option2::ConstructParticle ( )
inlineoverridevirtual

Implements G4VPhysicsConstructor.

Definition at line 43 of file G4EmDNAChemistry_option2.hh.

44 {
46 }

◆ ConstructProcess()

void G4EmDNAChemistry_option2::ConstructProcess ( )
overridevirtual

Reimplemented from G4VUserChemistryList.

Definition at line 388 of file G4EmDNAChemistry_option2.cc.

389{
390 auto pPhysicsListHelper =
392 G4VProcess* pProcess =
394 FindProcess("e-_G4DNAVibExcitation", "e-");
395
396 if (pProcess != nullptr)
397 {
398 G4DNAVibExcitation* pVibExcitation =
399 (G4DNAVibExcitation*) pProcess;
400 G4VEmModel* pModel = pVibExcitation->EmModel();
401 G4DNASancheExcitationModel* pSancheExcitationMod =
402 dynamic_cast<G4DNASancheExcitationModel*>(pModel);
403 if(pSancheExcitationMod != nullptr)
404 {
405 pSancheExcitationMod->ExtendLowEnergyLimit(0.025 * eV);
406 }
407 }
408
409//===============================================================
410// Electron Solvatation
411//
413 FindProcess("e-_G4DNAElectronSolvation", "e-");
414
415 if (pProcess == nullptr)
416 {
417 pPhysicsListHelper->
418 RegisterProcess(new G4DNAElectronSolvation(
419 "e-_G4DNAElectronSolvation"), G4Electron::Definition());
420 }
421
422//===============================================================
423// Define processes for molecules
424//
425 G4MoleculeTable* pMoleculeTable =
428 pMoleculeTable->GetDefintionIterator();
429 iterator.reset();
430 while (iterator())
431 {
432 G4MoleculeDefinition* pMoleculeDef = iterator.value();
433
434 if(pMoleculeDef != G4H2O::Definition())
435 {
436 G4DNABrownianTransportation* pBrownianTransport =
437 new G4DNABrownianTransportation();
438 pPhysicsListHelper->
439 RegisterProcess(pBrownianTransport, pMoleculeDef);
440 }
441 else
442 {
443 pMoleculeDef->GetProcessManager()->
444 AddRestProcess(new G4DNAElectronHoleRecombination(), 2);
445 G4DNAMolecularDissociation* pDissociationProcess =
446 new G4DNAMolecularDissociation("H2O_DNAMolecularDecay");
447 pDissociationProcess->SetDisplacer(pMoleculeDef,
448 new G4DNAWaterDissociationDisplacer);
449 pDissociationProcess->SetVerboseLevel(1);
450
451 pMoleculeDef->GetProcessManager()->
452 AddRestProcess(pDissociationProcess, 1);
453 }
454 }
456}
G4MoleculeIterator< G4MoleculeDefinition > G4MoleculeDefinitionIterator
void SetDisplacer(Species *, Displacer *)
static G4Electron * Definition()
Definition G4Electron.cc:45
static G4H2O * Definition()
Definition G4H2O.cc:42
G4MoleculeDefinitionIterator GetDefintionIterator()
G4ProcessManager * GetProcessManager() const
static G4PhysicsListHelper * GetPhysicsListHelper()
static G4ProcessTable * GetProcessTable()
G4VEmModel * EmModel(std::size_t index=0) const
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
void SetVerboseLevel(G4int value)

◆ ConstructReactionTable()

void G4EmDNAChemistry_option2::ConstructReactionTable ( G4DNAMolecularReactionTable * pTable)
overridevirtual

Implements G4VUserChemistryList.

Definition at line 138 of file G4EmDNAChemistry_option2.cc.

140{
141//-----------------------------------
142//Get the molecular configuration
143 G4MolecularConfiguration* OH =
145 G4MolecularConfiguration* OHm =
147 G4MolecularConfiguration* e_aq =
149 G4MolecularConfiguration* H2 =
151 G4MolecularConfiguration* H3Op =
153 G4MolecularConfiguration* H =
155 G4MolecularConfiguration* H2O2 =
157
158 G4MolecularConfiguration* deoxyribose =
160 G4MolecularConfiguration* adenine =
162 G4MolecularConfiguration* guanine =
164 G4MolecularConfiguration* thymine =
166 G4MolecularConfiguration* cytosine =
168 G4MolecularConfiguration* histone =
170
171 G4MolecularConfiguration* damage_deoxyribose =
172 G4MoleculeTable::Instance()->GetConfiguration("Damaged_Deoxyribose");
173 G4MolecularConfiguration* damage_adenine =
174 G4MoleculeTable::Instance()->GetConfiguration("Damaged_Adenine");
175 G4MolecularConfiguration* damage_guanine =
176 G4MoleculeTable::Instance()->GetConfiguration("Damaged_Guanine");
177 G4MolecularConfiguration* damage_thymine =
178 G4MoleculeTable::Instance()->GetConfiguration("Damaged_Thymine");
179 G4MolecularConfiguration* damage_cytosine =
180 G4MoleculeTable::Instance()->GetConfiguration("Damaged_Cytosine");
181
182//------------------------------------------------------------------
183// e_aq + e_aq + 2H2O -> H2 + 2OH-
184 G4DNAMolecularReactionData* reactionData =
185 new G4DNAMolecularReactionData(
186 0.5e10 * (1e-3 * m3 / (mole * s)), e_aq, e_aq);
187 reactionData->AddProduct(OHm);
188 reactionData->AddProduct(OHm);
189 reactionData->AddProduct(H2);
190 theReactionTable->SetReaction(reactionData);
191//------------------------------------------------------------------
192// e_aq + *OH -> OH-
193 reactionData = new G4DNAMolecularReactionData(
194 2.95e10 * (1e-3 * m3 / (mole * s)), e_aq, OH);
195 reactionData->AddProduct(OHm);
196 theReactionTable->SetReaction(reactionData);
197//------------------------------------------------------------------
198// e_aq + H* + H2O -> H2 + OH-
199 reactionData = new G4DNAMolecularReactionData(
200 2.65e10 * (1e-3 * m3 / (mole * s)), e_aq, H);
201 reactionData->AddProduct(OHm);
202 reactionData->AddProduct(H2);
203 theReactionTable->SetReaction(reactionData);
204//------------------------------------------------------------------
205// e_aq + H3O+ -> H* + H2O
206 reactionData = new G4DNAMolecularReactionData(
207 2.11e10 * (1e-3 * m3 / (mole * s)), e_aq, H3Op);
208 reactionData->AddProduct(H);
209 theReactionTable->SetReaction(reactionData);
210
211//------------------------------------------------------------------
212// e_aq + H2O2 -> OH- + *OH
213 reactionData = new G4DNAMolecularReactionData(
214 1.41e10 * (1e-3 * m3 / (mole * s)), e_aq, H2O2);
215 reactionData->AddProduct(OHm);
216 reactionData->AddProduct(OH);
217 theReactionTable->SetReaction(reactionData);
218//------------------------------------------------------------------
219// *OH + *OH -> H2O2
220 reactionData = new G4DNAMolecularReactionData(
221 0.44e10 * (1e-3 * m3 / (mole * s)), OH, OH);
222 reactionData->AddProduct(H2O2);
223 theReactionTable->SetReaction(reactionData);
224//------------------------------------------------------------------
225// *OH + *H -> H2O
226 theReactionTable->SetReaction(
227 1.44e10 * (1e-3 * m3 / (mole * s)), OH, H);
228//------------------------------------------------------------------
229// *H + *H -> H2
230 reactionData = new G4DNAMolecularReactionData(
231 1.20e10 * (1e-3 * m3 / (mole * s)), H, H);
232 reactionData->AddProduct(H2);
233 theReactionTable->SetReaction(reactionData);
234//------------------------------------------------------------------
235// H3O+ + OH- -> 2H2O
236 theReactionTable->SetReaction(
237 1.43e11 * (1e-3 * m3 / (mole * s)), H3Op, OHm);
238//------------------------------------------------------------------
239
240// DNA additions
241
242// OH and DNA
243
244// 2-Deoxyribose + OH -> damagedDeoxyribose
245 reactionData = new G4DNAMolecularReactionData(
246 1.80e9*(1e-3*m3/(mole*s)), deoxyribose, OH);
247 reactionData->AddProduct(damage_deoxyribose);
248 theReactionTable->SetReaction(reactionData);
249
250 // adenine + OH -> ...
251 reactionData = new G4DNAMolecularReactionData(
252 6.10e9*(1e-3*m3/(mole*s)), adenine, OH);
253 reactionData->AddProduct(damage_adenine);
254 theReactionTable->SetReaction(reactionData);
255
256 // guanine + OH -> ...
257 reactionData = new G4DNAMolecularReactionData(
258 9.20e9*(1e-3*m3/(mole*s)), guanine, OH);
259 reactionData->AddProduct(damage_guanine);
260 theReactionTable->SetReaction(reactionData);
261
262 // thymine + OH -> ...
263 reactionData = new G4DNAMolecularReactionData(
264 6.40e9*(1e-3*m3/(mole*s)), thymine, OH);
265 reactionData->AddProduct(damage_thymine);
266 theReactionTable->SetReaction(reactionData);
267
268 // cytosine + OH -> ...
269 reactionData = new G4DNAMolecularReactionData(
270 6.10e9*(1e-3*m3/(mole*s)), cytosine, OH);
271 reactionData->AddProduct(damage_cytosine);
272 theReactionTable->SetReaction(reactionData);
273
274 // Hydrated e- and DNA
275
276 // Deoxyribose + Hydrated e- -> ...
277 reactionData = new G4DNAMolecularReactionData(
278 0.01e9*(1e-3*m3/(mole*s)), deoxyribose, e_aq);
279 reactionData->AddProduct(damage_deoxyribose);
280 theReactionTable->SetReaction(reactionData);
281
282 // adenine + Hydrated e- -> ...
283 reactionData = new G4DNAMolecularReactionData(
284 9e9*(1e-3*m3/(mole*s)), adenine, e_aq);
285 reactionData->AddProduct(damage_adenine);
286 theReactionTable->SetReaction(reactionData);
287
288 // guanine + Hydrated e- -> ...
289 reactionData = new G4DNAMolecularReactionData(
290 14e9*(1e-3*m3/(mole*s)), guanine, e_aq);
291 reactionData->AddProduct(damage_guanine);
292 theReactionTable->SetReaction(reactionData);
293
294 // thymine + Hydrated e- -> ...
295 reactionData = new G4DNAMolecularReactionData(
296 18e9*(1e-3*m3/(mole*s)), thymine, e_aq);
297 reactionData->AddProduct(damage_thymine);
298 theReactionTable->SetReaction(reactionData);
299
300 // cytosine + Hydrated e- -> ...
301 reactionData = new G4DNAMolecularReactionData(
302 13e9*(1e-3*m3/(mole*s)), cytosine, e_aq);
303 reactionData->AddProduct(damage_cytosine);
304 theReactionTable->SetReaction(reactionData);
305
306 // Radical H and DNA
307
308 // Deoxyribose + Radical H -> ...
309 reactionData = new G4DNAMolecularReactionData(
310 0.029e9*(1e-3*m3/(mole*s)), deoxyribose, H);
311 reactionData->AddProduct(damage_deoxyribose);
312 //eactionData->SetEffectiveReactionRadius(0);
313
314 theReactionTable->SetReaction(reactionData);
315
316 // adenine + Radical H -> ...
317 reactionData = new G4DNAMolecularReactionData(
318 0.10e9*(1e-3*m3/(mole*s)), adenine, H);
319 reactionData->AddProduct(damage_adenine);
320 theReactionTable->SetReaction(reactionData);
321
322 // thymine + Radical H -> ...
323 reactionData = new G4DNAMolecularReactionData(
324 0.57e9*(1e-3*m3/(mole*s)), thymine, H);
325 reactionData->AddProduct(damage_thymine);
326 theReactionTable->SetReaction(reactionData);
327
328 // cytosine + Radical H -> ...
329 reactionData = new G4DNAMolecularReactionData(
330 0.092e9*(1e-3*m3/(mole*s)), cytosine, H);
331 reactionData->AddProduct(damage_cytosine);
332 theReactionTable->SetReaction(reactionData);
333
334 //histone + all molecules -> modification(or "damage")
335
336 reactionData = new G4DNAMolecularReactionData(
337 0.0*(1e-3*m3/(mole*s)), histone, OH);
338 reactionData->AddProduct(histone);
339 reactionData->SetEffectiveReactionRadius(
340 2.4*nm + G4OH::Definition()->GetVanDerVaalsRadius());
341 theReactionTable->SetReaction(reactionData);
342
343 reactionData = new G4DNAMolecularReactionData(
344 0.0*(1e-3*m3/(mole*s)), histone, OHm);
345 reactionData->AddProduct(histone);
346 reactionData->SetEffectiveReactionRadius(
347 2.4*nm + G4OH::Definition()->GetVanDerVaalsRadius());
348 theReactionTable->SetReaction(reactionData);
349
350 reactionData = new G4DNAMolecularReactionData(
351 0.0*(1e-3*m3/(mole*s)), histone, e_aq);
352 reactionData->AddProduct(histone);
353 reactionData->SetEffectiveReactionRadius(
354 2.4*nm + G4Electron_aq::Definition()->GetVanDerVaalsRadius());
355 theReactionTable->SetReaction(reactionData);
356
357 reactionData = new G4DNAMolecularReactionData(
358 0.0*(1e-3*m3/(mole*s)), histone, H2);
359 reactionData->AddProduct(histone);
360 reactionData->SetEffectiveReactionRadius(
361 2.4*nm + G4H2::Definition()->GetVanDerVaalsRadius());
362 theReactionTable->SetReaction(reactionData);
363
364 reactionData = new G4DNAMolecularReactionData(
365 0.0*(1e-3*m3/(mole*s)), histone, H3Op);
366 reactionData->AddProduct(histone);
367 reactionData->SetEffectiveReactionRadius(
368 2.4*nm + G4H3O::Definition()->GetVanDerVaalsRadius());
369 theReactionTable->SetReaction(reactionData);
370
371 reactionData = new G4DNAMolecularReactionData(
372 0.0*(1e-3*m3/(mole*s)), histone, H);
373 reactionData->AddProduct(histone);
374 reactionData->SetEffectiveReactionRadius(
375 2.4*nm + G4Hydrogen::Definition()->GetVanDerVaalsRadius());
376 theReactionTable->SetReaction(reactionData);
377
378 reactionData = new G4DNAMolecularReactionData(
379 0.0*(1e-3*m3/(mole*s)), histone, H2O2);
380 reactionData->AddProduct(histone);
381 reactionData->SetEffectiveReactionRadius(
382 2.4*nm + G4H2O2::Definition()->GetVanDerVaalsRadius());
383 theReactionTable->SetReaction(reactionData);
384}
void SetEffectiveReactionRadius(G4double radius)
static G4Electron_aq * Definition()
static G4H2O2 * Definition()
Definition G4H2O2.cc:45
static G4H3O * Definition()
Definition G4H3O.cc:46
static G4Hydrogen * Definition()
Definition G4Hydrogen.cc:45
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)
static G4OH * Definition()
Definition G4OH.cc:45

◆ ConstructTimeStepModel()

void G4EmDNAChemistry_option2::ConstructTimeStepModel ( G4DNAMolecularReactionTable * pTable)
overridevirtual

Implements G4VUserChemistryList.

Definition at line 461 of file G4EmDNAChemistry_option2.cc.

463{
464 G4VDNAReactionModel* reactionRadiusComputer =
465 new G4DNASmoluchowskiReactionModel();
466 reactionTable->PrintTable(reactionRadiusComputer);
467
468 G4DNAMolecularStepByStepModel* stepByStep =
469 new G4DNAMolecularStepByStepModel();
470 stepByStep->SetReactionModel(reactionRadiusComputer);
471
472 RegisterTimeStepModel(stepByStep, 0);
473}
void SetReactionModel(G4VDNAReactionModel *)
void RegisterTimeStepModel(G4VITStepModel *timeStepModel, G4double startingTime=0)

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