Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4DNAWaterDissociationDisplacer.cc File Reference
#include "G4DNAWaterDissociationDisplacer.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4H2O.hh"
#include "G4H2.hh"
#include "G4Hydrogen.hh"
#include "G4OH.hh"
#include "G4H3O.hh"
#include "G4Electron_aq.hh"
#include "G4H2O2.hh"
#include "Randomize.hh"
#include "G4Molecule.hh"
#include "G4MolecularConfiguration.hh"
#include "G4RandomDirection.hh"
#include "G4Exp.hh"
#include "G4UnitsTable.hh"
Include dependency graph for G4DNAWaterDissociationDisplacer.cc:

Go to the source code of this file.

Functions

 G4CT_COUNT_IMPL (G4DNAWaterDissociationDisplacer, Ionisation_DissociationDecay) G4CT_COUNT_IMPL(G4DNAWaterDissociationDisplacer
 
A1B1_DissociationDecay G4CT_COUNT_IMPL (G4DNAWaterDissociationDisplacer, B1A1_DissociationDecay) G4CT_COUNT_IMPL(G4DNAWaterDissociationDisplacer
 
A1B1_DissociationDecay
AutoIonisation 
G4CT_COUNT_IMPL (G4DNAWaterDissociationDisplacer, DissociativeAttachment) G4DNAWaterDissociationDisplacer
 

Function Documentation

G4CT_COUNT_IMPL ( G4DNAWaterDissociationDisplacer  ,
Ionisation_DissociationDecay   
)
A1B1_DissociationDecay G4CT_COUNT_IMPL ( G4DNAWaterDissociationDisplacer  ,
B1A1_DissociationDecay   
)
A1B1_DissociationDecay AutoIonisation G4CT_COUNT_IMPL ( G4DNAWaterDissociationDisplacer  ,
DissociativeAttachment   
)

Definition at line 68 of file G4DNAWaterDissociationDisplacer.cc.

81 {
82  return (2.*r+1.)*G4Exp(-2.*r);
83 }
84 #endif
85 
86 //------------------------------------------------------------------------------
87 #ifdef _WATER_DISPLACER_USE_TERRISOL_
88 // This function is used to generate the following density distribution:
89 // f(r) := 4*x^2/(sqrt(%pi)*(b)^3)*exp(-x^2/(b)^2)
90 // with b=27.22 for 7 eV
91 // reference
92 // Terrissol M, Beaudre A (1990) Simulation of space and time evolution
93 // of radiolytic species induced by electrons in water.
94 // Radiat Prot Dosimetry 31:171–175
95 
97 {
98 #define b 27.22 //*nanometer
99  static constexpr double sqrt_pi=1.77245; // sqrt(CLHEP::pi);
100  static constexpr double b_to3 = 20168.1; // pow(b,3.);
101  static constexpr double b_to2 = 740.928; // pow(b,2.);
102  static constexpr double inverse_b_to2 = 1./b_to2;
103 
104  static constexpr double main_factor=4./(sqrt_pi*b_to3);
105  static constexpr double factorA=sqrt_pi*b_to3/4.;
106  static constexpr double factorB=b_to2/2.;
107 
108  return (main_factor*
109  (factorA*erf(r/b)
110  - factorB*r*G4Exp(-pow(r,2.)*inverse_b_to2)));
111 }
112 #endif
113 //------------------------------------------------------------------------------
114 
117 #ifdef _WATER_DISPLACER_USE_KREIPL_
118  fFastElectronDistrib(0., 5., 0.001)
119 #elif defined _WATER_DISPLACER_USE_TERRISOL_
120  fFastElectronDistrib(0., 100., 0.001)
121 #endif
122 {
123  fProba1DFunction =
124  std::bind((G4double(*)(G4double))
126  std::placeholders::_1);
127 
128  size_t nBins = 500;
129  fElectronThermalization.reserve(nBins);
130  double eps = 1./((int)nBins);
131  double proba = eps;
132 
133  fElectronThermalization.push_back(0.);
134 
135  for(size_t i = 1 ; i < nBins ; ++i){
136  double r = fFastElectronDistrib.Revert(proba, fProba1DFunction);
137  fElectronThermalization.push_back(r*nanometer);
138  proba+=eps;
139 // G4cout << G4BestUnit(r*nanometer, "Length") << G4endl;
140  }
141 // SetVerbose(1);
142 }
static constexpr double nanometer
Definition: G4SIunits.hh:101
static const G4double eps
static G4double ElectronProbaDistribution(G4double r)
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
#define _WATER_DISPLACER_USE_TERRISOL_
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function: