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

#include <G4EmDNAChemistry_option1.hh>

+ Inheritance diagram for G4EmDNAChemistry_option1:

Public Member Functions

 G4EmDNAChemistry_option1 ()
 
 ~G4EmDNAChemistry_option1 () 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_option1.hh.

Constructor & Destructor Documentation

◆ G4EmDNAChemistry_option1()

G4EmDNAChemistry_option1::G4EmDNAChemistry_option1 ( )

Definition at line 65 of file G4EmDNAChemistry_option1.cc.

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

◆ ~G4EmDNAChemistry_option1()

G4EmDNAChemistry_option1::~G4EmDNAChemistry_option1 ( )
overridedefault

Member Function Documentation

◆ ConstructDissociationChannels()

void G4EmDNAChemistry_option1::ConstructDissociationChannels ( )
overridevirtual

◆ ConstructMolecule()

void G4EmDNAChemistry_option1::ConstructMolecule ( )
overridevirtual

Reimplemented from G4VUserChemistryList.

Definition at line 73 of file G4EmDNAChemistry_option1.cc.

74{
76
77 //____________________________________________________________________________
78
80 9.46e-9 * (m2/s));
82 5.3e-9 * (m2 / s));
84 2.2e-9 * (m2/s));
86 4.8e-9 * (m2/s));
88 2.3e-9 * (m2/s));
89}
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)
static G4MoleculeTable * Instance()

Referenced by ConstructParticle().

◆ ConstructParticle()

void G4EmDNAChemistry_option1::ConstructParticle ( )
inlineoverridevirtual

Implements G4VPhysicsConstructor.

Definition at line 41 of file G4EmDNAChemistry_option1.hh.

42 {
44 }

◆ ConstructProcess()

void G4EmDNAChemistry_option1::ConstructProcess ( )
overridevirtual

Reimplemented from G4VUserChemistryList.

Definition at line 177 of file G4EmDNAChemistry_option1.cc.

178{
180
181 //===============================================================
182 // Extend vibrational to low energy
183 // Anyway, solvation of electrons is taken into account from 7.4 eV
184 // So below this threshold, for now, no accurate modeling is done
185 //
186 G4VProcess* process =
188 FindProcess("e-_G4DNAVibExcitation", "e-");
189
190 if (process)
191 {
192 G4DNAVibExcitation* vibExcitation = (G4DNAVibExcitation*) process;
193 G4VEmModel* model = vibExcitation->EmModel();
194 G4DNASancheExcitationModel* sancheExcitationMod =
195 dynamic_cast<G4DNASancheExcitationModel*>(model);
196 if(sancheExcitationMod)
197 {
198 sancheExcitationMod->ExtendLowEnergyLimit(0.025 * eV);
199 }
200 }
201
202 //===============================================================
203 // *** Electron Solvatation ***
204 //
205 process =
207 FindProcess("e-_G4DNAElectronSolvation", "e-");
208
209 if (process == 0)
210 {
211 ph->RegisterProcess(
212 new G4DNAElectronSolvation("e-_G4DNAElectronSolvation"),
214 }
215
216 //===============================================================
217 // Define processes for molecules
218 //
219 G4MoleculeTable* theMoleculeTable = G4MoleculeTable::Instance();
221 theMoleculeTable->GetDefintionIterator();
222 iterator.reset();
223 while (iterator())
224 {
225 G4MoleculeDefinition* moleculeDef = iterator.value();
226
227 if (moleculeDef != G4H2O::Definition())
228 {
229 // G4cout << "Brownian motion added for : "
230 // << moleculeDef->GetName() << G4endl;
232 // brown->SetVerboseLevel(4);
233 ph->RegisterProcess(brown, moleculeDef);
234 }
235 else
236 {
237 moleculeDef->GetProcessManager()
239 G4DNAMolecularDissociation* dissociationProcess =
240 new G4DNAMolecularDissociation("H2O_DNAMolecularDecay");
241 dissociationProcess->SetDisplacer(
242 moleculeDef, new G4DNAWaterDissociationDisplacer);
243 dissociationProcess->SetVerboseLevel(1);
244// ph->RegisterProcess(dissociationProcess, moleculeDef);
245
246 moleculeDef->GetProcessManager()
247 ->AddRestProcess(dissociationProcess, 1);
248 }
249 /*
250 * Warning : end of particles and processes are needed by
251 * EM Physics builders
252 */
253 }
254
256}
void SetDisplacer(Species *, Displacer *)
static G4Electron * Definition()
Definition G4Electron.cc:45
static G4H2O * Definition()
Definition G4H2O.cc:42
G4MoleculeDefinitionIterator GetDefintionIterator()
G4ProcessManager * GetProcessManager() const
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4PhysicsListHelper * GetPhysicsListHelper()
G4int AddRestProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4ProcessTable * GetProcessTable()
G4VEmModel * EmModel(size_t index=0) const
void SetVerboseLevel(G4int value)

◆ ConstructReactionTable()

void G4EmDNAChemistry_option1::ConstructReactionTable ( G4DNAMolecularReactionTable * reactionTable)
overridevirtual

Implements G4VUserChemistryList.

Definition at line 100 of file G4EmDNAChemistry_option1.cc.

102{
103 //-----------------------------------
104 //Get the molecular configuration
119
120 //------------------------------------------------------------------
121 // e_aq + e_aq + 2H2O -> H2 + 2OH-
122 G4DNAMolecularReactionData* reactionData =
123 new G4DNAMolecularReactionData(0.636e10 * (1e-3 * m3 / (mole * s)), e_aq, e_aq);
124 reactionData->AddProduct(OHm);
125 reactionData->AddProduct(OHm);
126 reactionData->AddProduct(H2);
127 theReactionTable->SetReaction(reactionData);
128 //------------------------------------------------------------------
129 // e_aq + *OH -> OH-
130 reactionData = new G4DNAMolecularReactionData(
131 2.95e10 * (1e-3 * m3 / (mole * s)), e_aq, OH);
132 reactionData->AddProduct(OHm);
133 theReactionTable->SetReaction(reactionData);
134 //------------------------------------------------------------------
135 // e_aq + H* + H2O -> H2 + OH-
136 reactionData = new G4DNAMolecularReactionData(
137 2.50e10 * (1e-3 * m3 / (mole * s)), e_aq, H);
138 reactionData->AddProduct(OHm);
139 reactionData->AddProduct(H2);
140 theReactionTable->SetReaction(reactionData);
141 //------------------------------------------------------------------
142 // e_aq + H3O+ -> H* + H2O
143 reactionData = new G4DNAMolecularReactionData(
144 2.11e10 * (1e-3 * m3 / (mole * s)), e_aq, H3Op);
145 reactionData->AddProduct(H);
146 theReactionTable->SetReaction(reactionData);
147 //------------------------------------------------------------------
148 // e_aq + H2O2 -> OH- + *OH
149 reactionData = new G4DNAMolecularReactionData(
150 1.10e10 * (1e-3 * m3 / (mole * s)), e_aq, H2O2);
151 reactionData->AddProduct(OHm);
152 reactionData->AddProduct(OH);
153 theReactionTable->SetReaction(reactionData);
154 //------------------------------------------------------------------
155 // *OH + *OH -> H2O2
156 reactionData = new G4DNAMolecularReactionData(
157 0.55e10 * (1e-3 * m3 / (mole * s)), OH, OH);
158 reactionData->AddProduct(H2O2);
159 theReactionTable->SetReaction(reactionData);
160 //------------------------------------------------------------------
161 // *OH + *H -> H2O
162 theReactionTable->SetReaction(1.55e10 * (1e-3 * m3 / (mole * s)), OH, H);
163 //------------------------------------------------------------------
164 // *H + *H -> H2
165 reactionData = new G4DNAMolecularReactionData(
166 0.503e10 * (1e-3 * m3 / (mole * s)), H, H);
167 reactionData->AddProduct(H2);
168 theReactionTable->SetReaction(reactionData);
169 //------------------------------------------------------------------
170 // H3O+ + OH- -> 2H2O
171 theReactionTable->SetReaction(1.13e11 * (1e-3 * m3 / (mole * s)), H3Op, OHm);
172 //------------------------------------------------------------------
173}

◆ ConstructTimeStepModel()

void G4EmDNAChemistry_option1::ConstructTimeStepModel ( G4DNAMolecularReactionTable * reactionTable)
overridevirtual

The reaction model defines how to compute the reaction range between molecules

The StepByStep model tells the step manager how to behave before and after each step, how to compute the time steps.

Implements G4VUserChemistryList.

Definition at line 260 of file G4EmDNAChemistry_option1.cc.

262{
263
264 //=========================================
265 // Diffusion controlled reaction model
266 //=========================================
267 /**
268 * The reaction model defines how to compute the reaction range between
269 * molecules
270 */
271
272 G4VDNAReactionModel* reactionRadiusComputer =
274 reactionTable->PrintTable(reactionRadiusComputer);
275
276 /**
277 * The StepByStep model tells the step manager how to behave before and
278 * after each step, how to compute the time steps.
279 */
280
283 stepByStep->SetReactionModel(reactionRadiusComputer);
284// ((G4DNAMoleculeEncounterStepper*) stepByStep->GetTimeStepper())->
285// SetVerbose(5);
286
287 RegisterTimeStepModel(stepByStep, 0);
288}
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: