Geant4  10.02.p03
G4DNAMolecularReactionData Class Reference

#include <G4DNAMolecularReactionTable.hh>

Collaboration diagram for G4DNAMolecularReactionData:

Public Types

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

Public Member Functions

 G4DNAMolecularReactionData (G4double reactionRate, G4MolecularConfiguration *reactive1, G4MolecularConfiguration *reactive2)
 
 G4DNAMolecularReactionData (G4double reactionRate, const G4String &reactive1, const G4String &reactive2)
 
 ~G4DNAMolecularReactionData ()
 
int GetReactionID () const
 
void SetReactionID (int ID)
 
std::pair< G4MolecularConfiguration *, G4MolecularConfiguration * > GetReactants ()
 
G4MolecularConfigurationGetReactant1 () const
 
G4MolecularConfigurationGetReactant2 () const
 
void SetObservedReactionRateConstant (G4double rate)
 
G4double GetObservedReactionRateConstant () const
 
G4double GetEffectiveReactionRadius () const
 
void SetEffectiveReactionRadius (G4double radius)
 
void SetReactant1 (G4MolecularConfiguration *reactive)
 
void SetReactant2 (G4MolecularConfiguration *reactive)
 
void SetReactants (G4MolecularConfiguration *reactive1, G4MolecularConfiguration *reactive2)
 
void AddProduct (G4MolecularConfiguration *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
 
G4MolecularConfigurationGetProduct (G4int i) const
 
const std::vector< G4MolecularConfiguration * > * GetProducts () 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

G4MolecularConfigurationfReactant1
 
G4MolecularConfigurationfReactant2
 
G4double fObservedReactionRate
 
G4double fEffectiveReactionRadius
 
std::vector< G4MolecularConfiguration * > * fProducts
 
RateParam fRateParam
 
int fReactionID
 

Detailed Description

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

Definition at line 67 of file G4DNAMolecularReactionTable.hh.

Member Typedef Documentation

◆ RateParam

Definition at line 165 of file G4DNAMolecularReactionTable.hh.

Constructor & Destructor Documentation

◆ G4DNAMolecularReactionData() [1/3]

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

Definition at line 69 of file G4DNAMolecularReactionTable.cc.

71  :
72  fProducts(0)
73 {
74  fObservedReactionRate = reactionRate;
75  SetReactant1(reactant1);
76  SetReactant2(reactant2);
77 
78  G4double sumDiffCoeff(0.);
79 
80  if (reactant1 == reactant2)
81  {
82  sumDiffCoeff = reactant1->GetDiffusionCoefficient();
84  / (4 * pi * sumDiffCoeff * Avogadro);
85  }
86  else
87  {
88  sumDiffCoeff = reactant1->GetDiffusionCoefficient()
89  + reactant2->GetDiffusionCoefficient();
91  (4 * pi * sumDiffCoeff * Avogadro);
92  }
93  fReactionID = 0;
94 }
void SetReactant1(G4MolecularConfiguration *reactive)
float Avogadro
Definition: hepunit.py:253
static const double pi
Definition: G4SIunits.hh:74
std::vector< G4MolecularConfiguration * > * fProducts
void SetReactant2(G4MolecularConfiguration *reactive)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:

◆ G4DNAMolecularReactionData() [2/3]

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

Definition at line 99 of file G4DNAMolecularReactionTable.cc.

101  :
102  fProducts(0)
103 {
104  fObservedReactionRate = reactionRate;
105  SetReactant1(reactant1);
106  SetReactant2(reactant2);
107 
108  G4double sumDiffCoeff(0.);
109 
110  if (fReactant1 == fReactant2)
111  {
112  sumDiffCoeff = fReactant1->GetDiffusionCoefficient();
114  / (4 * pi * sumDiffCoeff * Avogadro);
115  }
116  else
117  {
118  sumDiffCoeff = fReactant1->GetDiffusionCoefficient()
121  (4 * pi * sumDiffCoeff * Avogadro);
122  }
123  fReactionID = 0;
124 }
void SetReactant1(G4MolecularConfiguration *reactive)
float Avogadro
Definition: hepunit.py:253
G4MolecularConfiguration * fReactant1
static const double pi
Definition: G4SIunits.hh:74
std::vector< G4MolecularConfiguration * > * fProducts
void SetReactant2(G4MolecularConfiguration *reactive)
G4MolecularConfiguration * fReactant2
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:

◆ ~G4DNAMolecularReactionData()

G4DNAMolecularReactionData::~G4DNAMolecularReactionData ( )

Definition at line 126 of file G4DNAMolecularReactionTable.cc.

127 {
128  if (fProducts)
129  {
130  fProducts->clear();
131  delete fProducts;
132  fProducts = 0;
133  }
134 }
std::vector< G4MolecularConfiguration * > * fProducts

◆ G4DNAMolecularReactionData() [3/3]

G4DNAMolecularReactionData::G4DNAMolecularReactionData ( )
protected

Definition at line 56 of file G4DNAMolecularReactionTable.cc.

56  :
57  fReactant1(),
58  fReactant2(),
61  fProducts(0)
62 {
63  fReactionID = 0;
64 }
G4MolecularConfiguration * fReactant1
std::vector< G4MolecularConfiguration * > * fProducts
G4MolecularConfiguration * fReactant2
Here is the caller graph for this function:

Member Function Documentation

◆ AddProduct() [1/2]

void G4DNAMolecularReactionData::AddProduct ( G4MolecularConfiguration molecule)

Definition at line 154 of file G4DNAMolecularReactionTable.cc.

155 {
156  if (!fProducts) fProducts = new std::vector<G4MolecularConfiguration*>();
157  fProducts->push_back(molecule);
158 }
std::vector< G4MolecularConfiguration * > * fProducts
Here is the caller graph for this function:

◆ AddProduct() [2/2]

void G4DNAMolecularReactionData::AddProduct ( const G4String molecule)

Definition at line 175 of file G4DNAMolecularReactionTable.cc.

176 {
177  if (!fProducts) fProducts = new std::vector<G4MolecularConfiguration*>();
178  fProducts->push_back(G4MoleculeTable::Instance()->GetConfiguration(molecule));
179 }
static G4MoleculeTable * Instance()
std::vector< G4MolecularConfiguration * > * fProducts
Here is the call graph for this function:

◆ ArrehniusParam()

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

Definition at line 192 of file G4DNAMolecularReactionTable.cc.

193  {
194  return P[0]*exp(P[1]/temp_K)*
195  (1e-3 * CLHEP::m3 / (CLHEP::mole * CLHEP::s));
196  }
static const double m3
static const double mole
static double P[]
static const double s

◆ GetEffectiveReactionRadius()

G4double G4DNAMolecularReactionData::GetEffectiveReactionRadius ( ) const
inline

Definition at line 112 of file G4DNAMolecularReactionTable.hh.

113  {
115  }
Here is the caller graph for this function:

◆ GetNbProducts()

G4int G4DNAMolecularReactionData::GetNbProducts ( ) const
inline

Definition at line 137 of file G4DNAMolecularReactionTable.hh.

138  {
139  if(fProducts) return fProducts->size();
140  return 0;
141  }
std::vector< G4MolecularConfiguration * > * fProducts
Here is the caller graph for this function:

◆ GetObservedReactionRateConstant()

G4double G4DNAMolecularReactionData::GetObservedReactionRateConstant ( ) const
inline

Definition at line 107 of file G4DNAMolecularReactionTable.hh.

108  {
109  return fObservedReactionRate;
110  }
Here is the caller graph for this function:

◆ GetProduct()

G4MolecularConfiguration* G4DNAMolecularReactionData::GetProduct ( G4int  i) const
inline

Definition at line 143 of file G4DNAMolecularReactionTable.hh.

144  {
145  if(fProducts) return (*fProducts)[i];
146  return 0;
147  }
std::vector< G4MolecularConfiguration * > * fProducts
Here is the caller graph for this function:

◆ GetProducts()

const std::vector<G4MolecularConfiguration*>* G4DNAMolecularReactionData::GetProducts ( ) const
inline

Definition at line 149 of file G4DNAMolecularReactionTable.hh.

150  {
151  return fProducts;
152  }
std::vector< G4MolecularConfiguration * > * fProducts

◆ GetReactant1()

G4MolecularConfiguration* G4DNAMolecularReactionData::GetReactant1 ( ) const
inline

Definition at line 93 of file G4DNAMolecularReactionTable.hh.

94  {
95  return fReactant1;
96  }
G4MolecularConfiguration * fReactant1
Here is the caller graph for this function:

◆ GetReactant2()

G4MolecularConfiguration* G4DNAMolecularReactionData::GetReactant2 ( ) const
inline

Definition at line 97 of file G4DNAMolecularReactionTable.hh.

98  {
99  return fReactant2;
100  }
G4MolecularConfiguration * fReactant2
Here is the caller graph for this function:

◆ GetReactants()

std::pair<G4MolecularConfiguration*, G4MolecularConfiguration*> G4DNAMolecularReactionData::GetReactants ( )
inline

Definition at line 88 of file G4DNAMolecularReactionTable.hh.

89  {
90  return std::make_pair(fReactant1, fReactant2);
91  }
G4MolecularConfiguration * fReactant1
G4MolecularConfiguration * fReactant2

◆ GetReactionID()

int G4DNAMolecularReactionData::GetReactionID ( ) const
inline

◆ PolynomialParam()

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

Definition at line 182 of file G4DNAMolecularReactionTable.cc.

183  {
184  double inv_temp = 1. / temp_K;
185 
186  return pow(10,
187  P[0] + P[1] * inv_temp + P[2] * pow(inv_temp, 2)
188  + P[3] * pow(inv_temp, 3) + P[4] * pow(inv_temp, 4))
189  * (1e-3 * CLHEP::m3 / (CLHEP::mole * CLHEP::s));
190  }
static const double m3
static const double mole
static double P[]
static const double s

◆ RemoveProducts()

void G4DNAMolecularReactionData::RemoveProducts ( )
inline

Definition at line 154 of file G4DNAMolecularReactionTable.hh.

155  {
156  if(fProducts)
157  {
158  fProducts->clear();
159  delete fProducts;
160  }
161  }
std::vector< G4MolecularConfiguration * > * fProducts

◆ ScaledParameterization()

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

Definition at line 198 of file G4DNAMolecularReactionTable.cc.

201  {
202  double D0 = G4MolecularConfiguration::DiffCoeffWater(temp_init);
203  double Df = G4MolecularConfiguration::DiffCoeffWater(temp_K);
204  return Df*rateCste_init/D0;
205  }
static double DiffCoeffWater(double temperature_K)
Here is the call graph for this function:

◆ ScaleForNewTemperature()

void G4DNAMolecularReactionData::ScaleForNewTemperature ( double  temp_K)

Definition at line 725 of file G4DNAMolecularReactionTable.cc.

726 {
727  if(fRateParam)
728  {
730 
731 // G4cout <<"PROD RATE = " << fProductionRate << G4endl;
732 //
733 // if(fProductionRate != DBL_MAX && fProductionRate !=0)
734 // {
735 // SetPartiallyDiffusionControlledReactionByActivation(fObservedReactionRate,
736 // fProductionRate);
737 // }
738  }
739 }
void SetObservedReactionRateConstant(G4double rate)

◆ SetArrehniusParameterization()

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

Definition at line 688 of file G4DNAMolecularReactionTable.cc.

690 {
691  std::vector<double> P = {A0, E_R};
692 
693  G4cout << "ici = " << P[0] << G4endl;
694  G4cout << "A0 = " << A0 << G4endl;
695 
696  fRateParam = std::bind(ArrehniusParam, std::placeholders::_1, P);
697 }
static double P[]
G4GLOB_DLL std::ostream G4cout
static double ArrehniusParam(double temp_K, std::vector< double > P)
#define G4endl
Definition: G4ios.hh:61
Here is the caller graph for this function:

◆ SetEffectiveReactionRadius()

void G4DNAMolecularReactionData::SetEffectiveReactionRadius ( G4double  radius)
inline

Definition at line 117 of file G4DNAMolecularReactionTable.hh.

Here is the call graph for this function:

◆ SetObservedReactionRateConstant()

void G4DNAMolecularReactionData::SetObservedReactionRateConstant ( G4double  rate)
inline

Definition at line 102 of file G4DNAMolecularReactionTable.hh.

103  {
104  fObservedReactionRate = rate;
105  }
Here is the caller graph for this function:

◆ SetPolynomialParameterization()

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

Definition at line 681 of file G4DNAMolecularReactionTable.cc.

682 {
683  fRateParam = std::bind(PolynomialParam, std::placeholders::_1, P);
684 }
static double PolynomialParam(double temp_K, std::vector< double > P)
static double P[]
Here is the caller graph for this function:

◆ SetReactant1() [1/2]

void G4DNAMolecularReactionData::SetReactant1 ( G4MolecularConfiguration reactive)

Definition at line 136 of file G4DNAMolecularReactionTable.cc.

137 {
138  fReactant1 = reactive;
139 }
G4MolecularConfiguration * fReactant1
Here is the caller graph for this function:

◆ SetReactant1() [2/2]

void G4DNAMolecularReactionData::SetReactant1 ( const G4String reactive)

Definition at line 160 of file G4DNAMolecularReactionTable.cc.

161 {
163 }
static G4MoleculeTable * Instance()
G4MolecularConfiguration * fReactant1
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)
Here is the call graph for this function:

◆ SetReactant2() [1/2]

void G4DNAMolecularReactionData::SetReactant2 ( G4MolecularConfiguration reactive)

Definition at line 142 of file G4DNAMolecularReactionTable.cc.

143 {
144  fReactant2 = reactive;
145 }
G4MolecularConfiguration * fReactant2
Here is the caller graph for this function:

◆ SetReactant2() [2/2]

void G4DNAMolecularReactionData::SetReactant2 ( const G4String reactive)

Definition at line 164 of file G4DNAMolecularReactionTable.cc.

165 {
167 }
static G4MoleculeTable * Instance()
G4MolecularConfiguration * fReactant2
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)
Here is the call graph for this function:

◆ SetReactants() [1/2]

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

Definition at line 147 of file G4DNAMolecularReactionTable.cc.

149 {
150  fReactant1 = reactant1;
151  fReactant2 = reactant2;
152 }
G4MolecularConfiguration * fReactant1
G4MolecularConfiguration * fReactant2
Here is the caller graph for this function:

◆ SetReactants() [2/2]

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

Definition at line 168 of file G4DNAMolecularReactionTable.cc.

170 {
173 }
static G4MoleculeTable * Instance()
G4MolecularConfiguration * fReactant1
G4MolecularConfiguration * fReactant2
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)
Here is the call graph for this function:

◆ SetReactionID()

void G4DNAMolecularReactionData::SetReactionID ( int  ID)
inline

◆ SetScaledParameterization()

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

Definition at line 701 of file G4DNAMolecularReactionTable.cc.

703 {
704  fRateParam = std::bind(ScaledParameterization,
705  std::placeholders::_1,
706  temperature_K,
707  rateCste);
708 }
static double ScaledParameterization(double temp_K, double temp_init, double rateCste_init)
Here is the caller graph for this function:

Member Data Documentation

◆ fEffectiveReactionRadius

G4double G4DNAMolecularReactionData::fEffectiveReactionRadius
protected

Definition at line 186 of file G4DNAMolecularReactionTable.hh.

◆ fObservedReactionRate

G4double G4DNAMolecularReactionData::fObservedReactionRate
protected

Definition at line 185 of file G4DNAMolecularReactionTable.hh.

◆ fProducts

std::vector<G4MolecularConfiguration*>* G4DNAMolecularReactionData::fProducts
protected

Definition at line 188 of file G4DNAMolecularReactionTable.hh.

◆ fRateParam

RateParam G4DNAMolecularReactionData::fRateParam
protected

Definition at line 190 of file G4DNAMolecularReactionTable.hh.

◆ fReactant1

G4MolecularConfiguration* G4DNAMolecularReactionData::fReactant1
protected

Definition at line 183 of file G4DNAMolecularReactionTable.hh.

◆ fReactant2

G4MolecularConfiguration* G4DNAMolecularReactionData::fReactant2
protected

Definition at line 184 of file G4DNAMolecularReactionTable.hh.

◆ fReactionID

int G4DNAMolecularReactionData::fReactionID
protected

Definition at line 191 of file G4DNAMolecularReactionTable.hh.


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