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

#include <G4DNAMolecularReactionTable.hh>

Public Types

using Reactant = const G4MolecularConfiguration
 
using ReactantPair = std::pair< Reactant *, Reactant * >
 
using ReactionProducts = std::vector< Reactant * >
 
typedef std::function< double(double)> RateParam
 

Public Member Functions

 G4DNAMolecularReactionData (G4double reactionRate, const G4MolecularConfiguration *reactive1, const G4MolecularConfiguration *reactive2)
 
 G4DNAMolecularReactionData (G4double reactionRate, const G4String &reactive1, const G4String &reactive2)
 
 ~G4DNAMolecularReactionData ()
 
int GetReactionID () const
 
void SetReactionID (int ID)
 
ReactantPair GetReactants ()
 
ReactantGetReactant1 () const
 
ReactantGetReactant2 () const
 
void SetObservedReactionRateConstant (G4double rate)
 
G4double GetObservedReactionRateConstant () const
 
G4double GetActivationRateConstant () const
 
G4double GetDiffusionRateConstant () const
 
void SetReactionRadius (G4double radius)
 
G4double GetReactionRadius () const
 
void SetEffectiveReactionRadius (G4double radius)
 
G4double GetEffectiveReactionRadius () const
 
G4double GetOnsagerRadius () const
 
void SetProbability (G4double prob)
 
G4double GetProbability () const
 
void SetReactionType (G4int type)
 
G4int GetReactionType () const
 
void SetReactant1 (Reactant *reactive)
 
void SetReactant2 (Reactant *reactive)
 
void SetReactants (Reactant *reactive1, Reactant *reactive2)
 
void AddProduct (Reactant *molecule)
 
void SetReactant1 (const G4String &reactive)
 
void SetReactant2 (const G4String &reactive)
 
void SetReactants (const G4String &reactive1, const G4String &reactive2)
 
void AddProduct (const G4String &molecule)
 
G4int GetNbProducts () const
 
ReactantGetProduct (G4int i) const
 
const ReactionProductsGetProducts () const
 
void RemoveProducts ()
 
void SetPolynomialParameterization (const std::vector< double > &P)
 
void SetArrehniusParameterization (double A0, double E_R)
 
void SetScaledParameterization (double temperature_K, double rateCste)
 
void ScaleForNewTemperature (double temp_K)
 
void ComputeEffectiveRadius ()
 

Static Public Member Functions

static double PolynomialParam (double temp_K, std::vector< double > P)
 
static double ArrehniusParam (double temp_K, std::vector< double > P)
 
static double ScaledParameterization (double temp_K, double temp_init, double rateCste_init)
 

Protected Member Functions

 G4DNAMolecularReactionData ()
 

Protected Attributes

ReactantfpReactant1
 
ReactantfpReactant2
 
G4double fObservedReactionRate
 
G4double fActivationRate
 
G4double fDiffusionRate
 
G4double fOnsagerRadius
 
G4double fReactionRadius
 
G4double fEffectiveReactionRadius
 
G4double fProbability
 
G4int fType
 
ReactionProducts fProducts
 
RateParam fRateParam
 
int fReactionID
 

Detailed Description

G4DNAMolecularReactionData contains the information relative to a given reaction (eg : °OH + °OH -> H2O2)

Definition at line 65 of file G4DNAMolecularReactionTable.hh.

Member Typedef Documentation

◆ RateParam

typedef std::function<double(double)> G4DNAMolecularReactionData::RateParam

Definition at line 130 of file G4DNAMolecularReactionTable.hh.

◆ Reactant

◆ ReactantPair

◆ ReactionProducts

Constructor & Destructor Documentation

◆ G4DNAMolecularReactionData() [1/3]

G4DNAMolecularReactionData::G4DNAMolecularReactionData ( G4double  reactionRate,
const G4MolecularConfiguration reactive1,
const G4MolecularConfiguration reactive2 
)

◆ G4DNAMolecularReactionData() [2/3]

G4DNAMolecularReactionData::G4DNAMolecularReactionData ( G4double  reactionRate,
const G4String reactive1,
const G4String reactive2 
)

Definition at line 89 of file G4DNAMolecularReactionTable.cc.

92 : fpReactant1(nullptr)
93 , fpReactant2(nullptr)
94 , fObservedReactionRate(reactionRate)
95 , fActivationRate(0.)
96 , fDiffusionRate(0.)
97 , fOnsagerRadius(0.)
98 , fReactionRadius(0.)
100 , fProbability(0.)
101 , fType(0)
102 , fReactionID(0)
103{
104 SetReactant1(reactant1);
105 SetReactant2(reactant2);
107}

◆ ~G4DNAMolecularReactionData()

G4DNAMolecularReactionData::~G4DNAMolecularReactionData ( )

Definition at line 109 of file G4DNAMolecularReactionTable.cc.

110{
111 fProducts.clear();
112}

◆ G4DNAMolecularReactionData() [3/3]

G4DNAMolecularReactionData::G4DNAMolecularReactionData ( )
protected

Definition at line 56 of file G4DNAMolecularReactionTable.cc.

57 : fpReactant1(nullptr)
58 , fpReactant2(nullptr)
60 , fActivationRate(0.)
61 , fDiffusionRate(0.)
62 , fOnsagerRadius(0.)
63 , fReactionRadius(0.)
65 , fProbability(0.)
66 , fType(0)
67 , fReactionID(0)
68{
69}

Member Function Documentation

◆ AddProduct() [1/2]

void G4DNAMolecularReactionData::AddProduct ( const G4String molecule)

Definition at line 315 of file G4DNAMolecularReactionTable.cc.

316{
317 fProducts.push_back(G4MoleculeTable::Instance()->GetConfiguration(molecule));
318}
static G4MoleculeTable * Instance()

◆ AddProduct() [2/2]

◆ ArrehniusParam()

double G4DNAMolecularReactionData::ArrehniusParam ( double  temp_K,
std::vector< double >  P 
)
static

Definition at line 330 of file G4DNAMolecularReactionTable.cc.

331{
332 return P[0] * G4Exp(P[1] / temp_K)*
333 (1e-3 * CLHEP::m3 / (CLHEP::mole * CLHEP::s));
334}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:180

Referenced by SetArrehniusParameterization().

◆ ComputeEffectiveRadius()

void G4DNAMolecularReactionData::ComputeEffectiveRadius ( )

Definition at line 114 of file G4DNAMolecularReactionTable.cc.

115{
116 G4double sumDiffCoeff = 0.;
117
119 {
120 sumDiffCoeff = fpReactant1->GetDiffusionCoefficient();
121 fEffectiveReactionRadius = fObservedReactionRate / (4. * CLHEP::pi * sumDiffCoeff * CLHEP::Avogadro);
122 }
123 else
124 {
125 sumDiffCoeff = fpReactant1->GetDiffusionCoefficient()
127 fEffectiveReactionRadius = fObservedReactionRate / (4. * CLHEP::pi * sumDiffCoeff * CLHEP::Avogadro);
128 }
129
130 fReactionID = 0;
132 fOnsagerRadius = (fpReactant1->GetCharge() * fpReactant2->GetCharge())/(4*pi*epsilon0*k_Boltzmann) / (293.15 * 80.1) ;
133 fProbability = 1;
134
135}
double G4double
Definition: G4Types.hh:83

Referenced by G4DNAMolecularReactionData(), and G4ReactionTableMessenger::SetNewValue().

◆ GetActivationRateConstant()

G4double G4DNAMolecularReactionData::GetActivationRateConstant ( ) const

Definition at line 229 of file G4DNAMolecularReactionTable.cc.

230{
231 return fActivationRate;
232}

◆ GetDiffusionRateConstant()

G4double G4DNAMolecularReactionData::GetDiffusionRateConstant ( ) const

Definition at line 234 of file G4DNAMolecularReactionTable.cc.

235{
236 return fDiffusionRate;
237}

◆ GetEffectiveReactionRadius()

G4double G4DNAMolecularReactionData::GetEffectiveReactionRadius ( ) const

◆ GetNbProducts()

G4int G4DNAMolecularReactionData::GetNbProducts ( ) const

◆ GetObservedReactionRateConstant()

G4double G4DNAMolecularReactionData::GetObservedReactionRateConstant ( ) const

◆ GetOnsagerRadius()

G4double G4DNAMolecularReactionData::GetOnsagerRadius ( ) const

Definition at line 260 of file G4DNAMolecularReactionTable.cc.

261{
262 return fOnsagerRadius;
263}

◆ GetProbability()

G4double G4DNAMolecularReactionData::GetProbability ( ) const

Definition at line 265 of file G4DNAMolecularReactionTable.cc.

266{
267 return fProbability;
268}

◆ GetProduct()

G4DNAMolecularReactionData::Reactant * G4DNAMolecularReactionData::GetProduct ( G4int  i) const

◆ GetProducts()

const G4DNAMolecularReactionData::ReactionProducts * G4DNAMolecularReactionData::GetProducts ( ) const

Definition at line 179 of file G4DNAMolecularReactionTable.cc.

180{
181 return &fProducts;
182}

◆ GetReactant1()

◆ GetReactant2()

◆ GetReactants()

G4DNAMolecularReactionData::ReactantPair G4DNAMolecularReactionData::GetReactants ( )

Definition at line 204 of file G4DNAMolecularReactionTable.cc.

205{
206 return std::make_pair(fpReactant1, fpReactant2);
207}

◆ GetReactionID()

int G4DNAMolecularReactionData::GetReactionID ( ) const

Definition at line 137 of file G4DNAMolecularReactionTable.cc.

138{
139 return fReactionID;
140}

◆ GetReactionRadius()

G4double G4DNAMolecularReactionData::GetReactionRadius ( ) const

Definition at line 245 of file G4DNAMolecularReactionTable.cc.

246{
247 return fReactionRadius;
248}

◆ GetReactionType()

G4int G4DNAMolecularReactionData::GetReactionType ( ) const

Definition at line 310 of file G4DNAMolecularReactionTable.cc.

311{
312 return fType;
313}

Referenced by G4DNAIRT::GetIndependentReactionTime().

◆ PolynomialParam()

double G4DNAMolecularReactionData::PolynomialParam ( double  temp_K,
std::vector< double >  P 
)
static

Definition at line 320 of file G4DNAMolecularReactionTable.cc.

321{
322 double inv_temp = 1. / temp_K;
323
324 return pow(10,
325 P[0] + P[1] * inv_temp + P[2] * pow(inv_temp, 2)
326 + P[3] * pow(inv_temp, 3) + P[4] * pow(inv_temp, 4))
327 * (1e-3 * CLHEP::m3 / (CLHEP::mole * CLHEP::s));
328}

Referenced by SetPolynomialParameterization().

◆ RemoveProducts()

void G4DNAMolecularReactionData::RemoveProducts ( )

Definition at line 184 of file G4DNAMolecularReactionTable.cc.

185{
186 fProducts.clear();
187}

◆ ScaledParameterization()

double G4DNAMolecularReactionData::ScaledParameterization ( double  temp_K,
double  temp_init,
double  rateCste_init 
)
static

Definition at line 336 of file G4DNAMolecularReactionTable.cc.

339{
340 double D0 = G4MolecularConfiguration::DiffCoeffWater(temp_init);
342 return Df * rateCste_init / D0;
343}
static double DiffCoeffWater(double temperature_K)

Referenced by SetScaledParameterization().

◆ ScaleForNewTemperature()

void G4DNAMolecularReactionData::ScaleForNewTemperature ( double  temp_K)

Definition at line 807 of file G4DNAMolecularReactionTable.cc.

808{
809 if (fRateParam)
810 {
812 }
813}
void SetObservedReactionRateConstant(G4double rate)

◆ SetArrehniusParameterization()

void G4DNAMolecularReactionData::SetArrehniusParameterization ( double  A0,
double  E_R 
)

Definition at line 777 of file G4DNAMolecularReactionTable.cc.

779{
780 std::vector<double> P = { A0, E_R };
781 fRateParam = std::bind(ArrehniusParam, std::placeholders::_1, P);
782}
static double ArrehniusParam(double temp_K, std::vector< double > P)

Referenced by G4ReactionTableMessenger::SetNewValue().

◆ SetEffectiveReactionRadius()

void G4DNAMolecularReactionData::SetEffectiveReactionRadius ( G4double  radius)

Definition at line 250 of file G4DNAMolecularReactionTable.cc.

251{
253}

Referenced by G4EmDNAChemistry_option2::ConstructReactionTable().

◆ SetObservedReactionRateConstant()

void G4DNAMolecularReactionData::SetObservedReactionRateConstant ( G4double  rate)

◆ SetPolynomialParameterization()

void G4DNAMolecularReactionData::SetPolynomialParameterization ( const std::vector< double > &  P)

Definition at line 770 of file G4DNAMolecularReactionTable.cc.

771{
772 fRateParam = std::bind(PolynomialParam, std::placeholders::_1, P);
773}
static double PolynomialParam(double temp_K, std::vector< double > P)

Referenced by G4ReactionTableMessenger::SetNewValue().

◆ SetProbability()

void G4DNAMolecularReactionData::SetProbability ( G4double  prob)

Definition at line 270 of file G4DNAMolecularReactionTable.cc.

271{
272 fProbability = prob;
273}

◆ SetReactant1() [1/2]

void G4DNAMolecularReactionData::SetReactant1 ( const G4String reactive)

Definition at line 189 of file G4DNAMolecularReactionTable.cc.

190{
192}
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)

◆ SetReactant1() [2/2]

void G4DNAMolecularReactionData::SetReactant1 ( Reactant reactive)

Definition at line 147 of file G4DNAMolecularReactionTable.cc.

148{
149 fpReactant1 = pReactive;
150}

Referenced by G4DNAMolecularReactionData().

◆ SetReactant2() [1/2]

void G4DNAMolecularReactionData::SetReactant2 ( const G4String reactive)

Definition at line 193 of file G4DNAMolecularReactionTable.cc.

◆ SetReactant2() [2/2]

void G4DNAMolecularReactionData::SetReactant2 ( Reactant reactive)

Definition at line 152 of file G4DNAMolecularReactionTable.cc.

153{
154 fpReactant2 = pReactive;
155}

Referenced by G4DNAMolecularReactionData().

◆ SetReactants() [1/2]

void G4DNAMolecularReactionData::SetReactants ( const G4String reactive1,
const G4String reactive2 
)

◆ SetReactants() [2/2]

void G4DNAMolecularReactionData::SetReactants ( Reactant reactive1,
Reactant reactive2 
)

Definition at line 157 of file G4DNAMolecularReactionTable.cc.

159{
160 fpReactant1 = pReactant1;
161 fpReactant2 = pReactant2;
162}

◆ SetReactionID()

void G4DNAMolecularReactionData::SetReactionID ( int  ID)

Definition at line 142 of file G4DNAMolecularReactionTable.cc.

143{
144 fReactionID = ID;
145}

Referenced by G4DNAMolecularReactionTable::SetReaction().

◆ SetReactionRadius()

void G4DNAMolecularReactionData::SetReactionRadius ( G4double  radius)

Definition at line 239 of file G4DNAMolecularReactionTable.cc.

◆ SetReactionType()

void G4DNAMolecularReactionData::SetReactionType ( G4int  type)

Definition at line 275 of file G4DNAMolecularReactionTable.cc.

276{
277 G4double sumDiffCoeff = 0.;
278
279 if(type == 1)
280 {
281
282 sumDiffCoeff = fpReactant1->GetDiffusionCoefficient() +
284
287
288 G4double Rs = 0.29 * nm;
289 if(fOnsagerRadius == 0) // Type II
290 {
292 fDiffusionRate = 4 * pi * sumDiffCoeff * fReactionRadius * Avogadro;
296
297 }else{ // Type IV
299 fDiffusionRate = 4 * pi * sumDiffCoeff * fEffectiveReactionRadius * Avogadro;
301
304 }
305 }
306
307 fType = type;
308}
const G4double pi

Referenced by G4EmDNAChemistry_option3::ConstructReactionTable(), and G4ReactionTableMessenger::SetNewValue().

◆ SetScaledParameterization()

void G4DNAMolecularReactionData::SetScaledParameterization ( double  temperature_K,
double  rateCste 
)

Definition at line 786 of file G4DNAMolecularReactionTable.cc.

788{
790 std::placeholders::_1,
791 temperature_K,
792 rateCste);
793}
static double ScaledParameterization(double temp_K, double temp_init, double rateCste_init)

Referenced by G4ReactionTableMessenger::SetNewValue().

Member Data Documentation

◆ fActivationRate

G4double G4DNAMolecularReactionData::fActivationRate
protected

Definition at line 154 of file G4DNAMolecularReactionTable.hh.

Referenced by GetActivationRateConstant(), and SetReactionType().

◆ fDiffusionRate

G4double G4DNAMolecularReactionData::fDiffusionRate
protected

Definition at line 155 of file G4DNAMolecularReactionTable.hh.

Referenced by GetDiffusionRateConstant(), and SetReactionType().

◆ fEffectiveReactionRadius

G4double G4DNAMolecularReactionData::fEffectiveReactionRadius
protected

◆ fObservedReactionRate

G4double G4DNAMolecularReactionData::fObservedReactionRate
protected

◆ fOnsagerRadius

G4double G4DNAMolecularReactionData::fOnsagerRadius
protected

◆ fpReactant1

Reactant* G4DNAMolecularReactionData::fpReactant1
protected

◆ fpReactant2

Reactant* G4DNAMolecularReactionData::fpReactant2
protected

◆ fProbability

G4double G4DNAMolecularReactionData::fProbability
protected

◆ fProducts

ReactionProducts G4DNAMolecularReactionData::fProducts
protected

◆ fRateParam

RateParam G4DNAMolecularReactionData::fRateParam
protected

◆ fReactionID

int G4DNAMolecularReactionData::fReactionID
protected

◆ fReactionRadius

G4double G4DNAMolecularReactionData::fReactionRadius
protected

◆ fType

G4int G4DNAMolecularReactionData::fType
protected

Definition at line 163 of file G4DNAMolecularReactionTable.hh.

Referenced by GetReactionType(), and SetReactionType().


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