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

#include <G4EmDNAChemistry.hh>

+ Inheritance diagram for G4EmDNAChemistry:

Public Member Functions

 G4EmDNAChemistry ()
 
 ~G4EmDNAChemistry () override=default
 
void ConstructParticle () override
 
void ConstructMolecule () override
 
void ConstructProcess () override
 
void ConstructDissociationChannels () override
 
void ConstructReactionTable (G4DNAMolecularReactionTable *reactionTable) override
 
void ConstructTimeStepModel (G4DNAMolecularReactionTable *reactionTable) 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 35 of file G4EmDNAChemistry.hh.

Constructor & Destructor Documentation

◆ G4EmDNAChemistry()

G4EmDNAChemistry::G4EmDNAChemistry ( )

Definition at line 72 of file G4EmDNAChemistry.cc.

72 :
74{
76}
static G4DNAChemistryManager * Instance()
void SetChemistryList(G4VUserChemistryList &)
G4VUserChemistryList(G4bool flag=true)

◆ ~G4EmDNAChemistry()

G4EmDNAChemistry::~G4EmDNAChemistry ( )
overridedefault

Member Function Documentation

◆ ConstructDissociationChannels()

void G4EmDNAChemistry::ConstructDissociationChannels ( )
overridevirtual

◆ ConstructMolecule()

void G4EmDNAChemistry::ConstructMolecule ( )
overridevirtual

Reimplemented from G4VUserChemistryList.

Definition at line 80 of file G4EmDNAChemistry.cc.

Referenced by ConstructParticle().

◆ ConstructParticle()

void G4EmDNAChemistry::ConstructParticle ( )
inlineoverridevirtual

Implements G4VPhysicsConstructor.

Definition at line 41 of file G4EmDNAChemistry.hh.

void ConstructMolecule() override

◆ ConstructProcess()

void G4EmDNAChemistry::ConstructProcess ( )
overridevirtual

Reimplemented from G4VUserChemistryList.

Definition at line 171 of file G4EmDNAChemistry.cc.

172{
173 auto pPhysicsListHelper = G4PhysicsListHelper::GetPhysicsListHelper();
174
175 //===============================================================
176 // Extend vibrational to low energy
177 // Anyway, solvation of electrons is taken into account from 7.4 eV
178 // So below this threshold, for now, no accurate modeling is done
179 //
181 FindProcess("e-_G4DNAVibExcitation", "e-");
182
183 if (pProcess != nullptr)
184 {
185 G4DNAVibExcitation* pVibExcitation = (G4DNAVibExcitation*) pProcess;
186 G4VEmModel* pModel = pVibExcitation->EmModel();
187 G4DNASancheExcitationModel* pSancheExcitationMod =
188 dynamic_cast<G4DNASancheExcitationModel*>(pModel);
189 if(pSancheExcitationMod != nullptr)
190 {
191 pSancheExcitationMod->ExtendLowEnergyLimit(0.025 * eV);
192 }
193 }
194
195 //===============================================================
196 // Electron Solvatation
197 //
198 pProcess = G4ProcessTable::GetProcessTable()->FindProcess("e-_G4DNAElectronSolvation", "e-");
199
200 if (pProcess == nullptr)
201 {
202 pPhysicsListHelper->RegisterProcess(new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"),
204 }
205
206 //===============================================================
207 // Define processes for molecules
208 //
209 G4MoleculeTable* pMoleculeTable = G4MoleculeTable::Instance();
210 G4MoleculeDefinitionIterator iterator = pMoleculeTable->GetDefintionIterator();
211 iterator.reset();
212 while (iterator())
213 {
214 G4MoleculeDefinition* pMoleculeDef = iterator.value();
215
216 if (pMoleculeDef != G4H2O::Definition())
217 {
219 pPhysicsListHelper->RegisterProcess(pBrownianTransport, pMoleculeDef);
220 }
221 else
222 {
224 G4DNAMolecularDissociation* pDissociationProcess = new G4DNAMolecularDissociation("H2O_DNAMolecularDecay");
225 pDissociationProcess->SetDisplacer(pMoleculeDef, new G4DNAWaterDissociationDisplacer);
226 pDissociationProcess->SetVerboseLevel(1);
227
228 pMoleculeDef->GetProcessManager()->AddRestProcess(pDissociationProcess, 1);
229 }
230 }
231
233}
void SetDisplacer(Species *, Displacer *)
static G4Electron * Definition()
Definition G4Electron.cc:45
static G4H2O * Definition()
Definition G4H2O.cc:42
G4MoleculeDefinitionIterator GetDefintionIterator()
static G4MoleculeTable * Instance()
G4ProcessManager * GetProcessManager() const
static G4PhysicsListHelper * GetPhysicsListHelper()
G4int AddRestProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4ProcessTable * GetProcessTable()
G4VProcess * FindProcess(const G4String &processName, const G4String &particleName) const
G4VEmModel * EmModel(size_t index=0) const
void SetVerboseLevel(G4int value)

◆ ConstructReactionTable()

void G4EmDNAChemistry::ConstructReactionTable ( G4DNAMolecularReactionTable * reactionTable)
overridevirtual

Implements G4VUserChemistryList.

Definition at line 94 of file G4EmDNAChemistry.cc.

96{
97 //-----------------------------------
98 //Get the molecular configuration
113
114 //------------------------------------------------------------------
115 // e_aq + e_aq + 2H2O -> H2 + 2OH-
116 G4DNAMolecularReactionData* reactionData =
117 new G4DNAMolecularReactionData(0.5e10 * (1e-3 * m3 / (mole * s)), e_aq, e_aq);
118 reactionData->AddProduct(OHm);
119 reactionData->AddProduct(OHm);
120 reactionData->AddProduct(H2);
121 theReactionTable->SetReaction(reactionData);
122 //------------------------------------------------------------------
123 // e_aq + *OH -> OH-
124 reactionData = new G4DNAMolecularReactionData(
125 2.95e10 * (1e-3 * m3 / (mole * s)), e_aq, OH);
126 reactionData->AddProduct(OHm);
127 theReactionTable->SetReaction(reactionData);
128 //------------------------------------------------------------------
129 // e_aq + H* + H2O -> H2 + OH-
130 reactionData = new G4DNAMolecularReactionData(
131 2.65e10 * (1e-3 * m3 / (mole * s)), e_aq, H);
132 reactionData->AddProduct(OHm);
133 reactionData->AddProduct(H2);
134 theReactionTable->SetReaction(reactionData);
135 //------------------------------------------------------------------
136 // e_aq + H3O+ -> H* + H2O
137 reactionData = new G4DNAMolecularReactionData(
138 2.11e10 * (1e-3 * m3 / (mole * s)), e_aq, H3Op);
139 reactionData->AddProduct(H);
140 theReactionTable->SetReaction(reactionData);
141 //------------------------------------------------------------------
142 // e_aq + H2O2 -> OH- + *OH
143 reactionData = new G4DNAMolecularReactionData(
144 1.41e10 * (1e-3 * m3 / (mole * s)), e_aq, H2O2);
145 reactionData->AddProduct(OHm);
146 reactionData->AddProduct(OH);
147 theReactionTable->SetReaction(reactionData);
148 //------------------------------------------------------------------
149 // *OH + *OH -> H2O2
150 reactionData = new G4DNAMolecularReactionData(
151 0.44e10 * (1e-3 * m3 / (mole * s)), OH, OH);
152 reactionData->AddProduct(H2O2);
153 theReactionTable->SetReaction(reactionData);
154 //------------------------------------------------------------------
155 // *OH + *H -> H2O
156 theReactionTable->SetReaction(1.44e10 * (1e-3 * m3 / (mole * s)), OH, H);
157 //------------------------------------------------------------------
158 // *H + *H -> H2
159 reactionData = new G4DNAMolecularReactionData(
160 1.20e10 * (1e-3 * m3 / (mole * s)), H, H);
161 reactionData->AddProduct(H2);
162 theReactionTable->SetReaction(reactionData);
163 //------------------------------------------------------------------
164 // H3O+ + OH- -> 2H2O
165 theReactionTable->SetReaction(1.43e11 * (1e-3 * m3 / (mole * s)), H3Op, OHm);
166 //------------------------------------------------------------------
167}
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)

◆ ConstructTimeStepModel()

void G4EmDNAChemistry::ConstructTimeStepModel ( G4DNAMolecularReactionTable * reactionTable)
overridevirtual

Implements G4VUserChemistryList.

Definition at line 237 of file G4EmDNAChemistry.cc.

239{
240 G4VDNAReactionModel* reactionRadiusComputer = new G4DNASmoluchowskiReactionModel();
241 reactionTable->PrintTable(reactionRadiusComputer);
242
244 stepByStep->SetReactionModel(reactionRadiusComputer);
245// ((G4DNAMoleculeEncounterStepper*) stepByStep->GetTimeStepper())->
246// SetVerbose(5);
247
248 RegisterTimeStepModel(stepByStep, 0);
249}
void PrintTable(G4VDNAReactionModel *=nullptr)
void SetReactionModel(G4VDNAReactionModel *)
void RegisterTimeStepModel(G4VITStepModel *timeStepModel, G4double startingTime=0)

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