Geant4 10.7.0
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)
 

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 64 of file G4DNAMolecularReactionTable.hh.

Member Typedef Documentation

◆ RateParam

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

Definition at line 129 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);
106 ComputeEffectiveRadius();
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:179

Referenced by SetArrehniusParameterization().

◆ 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

Definition at line 169 of file G4DNAMolecularReactionTable.cc.

170{
171 return fProducts.size();
172}

Referenced by G4DNAMolecularReaction::MakeReaction(), and G4DNAMolecularReactionTable::PrintTable().

◆ 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

Definition at line 174 of file G4DNAMolecularReactionTable.cc.

175{
176 return fProducts[i];
177}

Referenced by G4DNAMolecularReactionTable::PrintTable().

◆ GetProducts()

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

Definition at line 179 of file G4DNAMolecularReactionTable.cc.

180{
181 return &fProducts;
182}

◆ GetReactant1()

G4DNAMolecularReactionData::Reactant * G4DNAMolecularReactionData::GetReactant1 ( ) const

Definition at line 209 of file G4DNAMolecularReactionTable.cc.

210{
211 return fpReactant1;
212}

Referenced by G4DNAMolecularReactionTable::SetReaction().

◆ GetReactant2()

G4DNAMolecularReactionData::Reactant * G4DNAMolecularReactionData::GetReactant2 ( ) const

Definition at line 214 of file G4DNAMolecularReactionTable.cc.

215{
216 return fpReactant2;
217}

Referenced by G4DNAMolecularReactionTable::SetReaction().

◆ 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 801 of file G4DNAMolecularReactionTable.cc.

802{
803 if (fRateParam)
804 {
806 }
807}
void SetObservedReactionRateConstant(G4double rate)

◆ SetArrehniusParameterization()

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

Definition at line 771 of file G4DNAMolecularReactionTable.cc.

773{
774 std::vector<double> P = { A0, E_R };
775 fRateParam = std::bind(ArrehniusParam, std::placeholders::_1, P);
776}
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 764 of file G4DNAMolecularReactionTable.cc.

765{
766 fRateParam = std::bind(PolynomialParam, std::placeholders::_1, P);
767}
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}
double G4double
Definition: G4Types.hh:83
const G4double pi

Referenced by G4EmDNAChemistry_option3::ConstructReactionTable().

◆ SetScaledParameterization()

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

Definition at line 780 of file G4DNAMolecularReactionTable.cc.

782{
784 std::placeholders::_1,
785 temperature_K,
786 rateCste);
787}
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

Definition at line 162 of file G4DNAMolecularReactionTable.hh.

Referenced by GetProbability(), SetProbability(), and SetReactionType().

◆ fProducts

ReactionProducts G4DNAMolecularReactionData::fProducts
protected

◆ fRateParam

RateParam G4DNAMolecularReactionData::fRateParam
protected

◆ fReactionID

int G4DNAMolecularReactionData::fReactionID
protected

Definition at line 167 of file G4DNAMolecularReactionTable.hh.

Referenced by GetReactionID(), and SetReactionID().

◆ 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: