55 double Y(
double density)
 
   57   return 1. / (1. + 0.0012 / (density * density));
 
   60 double A(
double temperature)
 
   62   double temp_inverse = 1 / temperature;
 
   64       + 642.0 * temp_inverse
 
   65       - 1.167e5 * temp_inverse * temp_inverse
 
   66       + 9.190e6 * temp_inverse * temp_inverse * temp_inverse;
 
   69 double B(
double temperature)
 
   71   double temp_inverse = 1 / temperature;
 
   73       + 275.4 * temp_inverse
 
   74       + 0.3245e5 * temp_inverse * temp_inverse;
 
   79   double temp_inverse = 1 / temp;
 
   82       - 11.41 * temp_inverse
 
   83       - 35260.0 * temp_inverse * temp_inverse;
 
   88   return A(temp) - 
B(temp) - 3;
 
   96 double epsilon(
double density, 
double temperature)
 
   98   return 1 + 
G4Exp(std::log(10.)*
 
  100                      (
C(temperature) + (
S(temperature) - 1)*std::log(density)/std::log(10.))
 
  101                      + 
D(temperature) + std::log(density)/std::log(10.)));
 
  134   fIsInitialized = 
false;
 
  136   fpMoleculeDensity = 0;
 
  151   return &fParticleChange;
 
  165 void G4DNAElectronHoleRecombination::MakeReaction(
const G4Track& track)
 
  169   double random = state->fSampleProba;
 
  170   std::vector<ReactionProfile>& reactants = state->fReactants;
 
  172   G4Track* selected_reactant = 0;
 
  174   for(
size_t i = 0; i < reactants.size(); ++i)
 
  176     if(reactants[i].fElectron->GetTrackStatus() != 
fAlive) 
continue;
 
  177     if(reactants[i].fProbability > random)
 
  179       selected_reactant = reactants[i].fElectron;
 
  187   if(selected_reactant)
 
  194         RemoveAMoleculeAtTime(
GetMolecule(track)->GetMolecularConfiguration(),
 
  201         AddAMoleculeAtTime(
GetMolecule(track)->GetMolecularConfiguration(),
 
  221 G4bool G4DNAElectronHoleRecombination::FindReactant(
const G4Track& track)
 
  229   const std::vector<double>* densityTable =
 
  234                     ( 
g/(1e-2*
m*1e-2*
m*1e-2*
m) );
 
  247                            e_aq.GetMoleculeID(),
 
  248                            10. * onsager_radius);
 
  253   if(results == 0 || results->GetSize() == 0)
 
  262   std::vector<ReactionProfile>& reactants = state->fReactants;
 
  265   reactants.resize(results->GetSize());
 
  267   for(
size_t i = 0; results->End() == 
false; results->Next(), ++i)
 
  269     reactants[i].fElectron = results->GetItem<
G4IT>()->GetTrack();
 
  270     reactants[i].fDistance = std::sqrt(results->GetDistanceSqr());
 
  272     if(reactants[i].fDistance != 0)
 
  274       reactants[i].fProbability = 1.
 
  275           - 
G4Exp(-onsager_radius / reactants[i].fDistance);
 
  279       reactants[i].fProbability = 1.;
 
  286   if(results->GetSize() != 0 && reactants.empty())
 
  292   if(reactants.empty()) 
return false;
 
  300   if(reactants[0].fProbability > state->fSampleProba) 
return true;
 
  329       double probaRemaining = 1.;
 
  347         probaRemaining -= proba;
 
  349                                    B1A1_DissociationDecay);
 
  367         probaRemaining -= proba;
 
  369                                    A1B1_DissociationDecay);
 
  392     if(FindReactant(track))
 
  410   if(FindReactant(track))
 
void SetTrackStatus(const G4TrackStatus aTrackStatus)
 
static double onsager_constant
 
const std::vector< double > * GetDensityTableFor(const G4Material *) const 
 
static G4Electron_aq * Definition()
 
virtual void ClearNumberOfInteractionLengthLeft()
 
Identical to G4VRestDiscreteProcess with dependency from G4VITProcess. 
 
G4MoleculeDefinition * GetMoleculeDefinition(const G4String &, bool mustExist=true)
 
virtual ~G4DNAElectronHoleRecombination()
 
static G4H2O * Definition()
 
void SetProbability(G4double)
 
void AddDecayChannel(const G4MolecularConfiguration *molConf, const G4MolecularDissociationChannel *channel)
 
void StartTracking(G4Track *)
 
const G4ThreeVector & GetPosition() const 
 
static G4ITFinder * Instance()
 
static const G4double eps
 
double B(double temperature)
 
G4KDTreeResultHandle FindNearestInRange(const T *point, int key, G4double)
 
virtual G4bool IsApplicable(const G4ParticleDefinition &)
 
const G4String & GetParticleName() const 
 
void SetInstantiateProcessState(G4bool flag)
 
void ChangeConfigurationToLabel(const G4String &label)
 
virtual void ClearInteractionTimeLeft()
 
G4MolecularConfiguration * NewConfiguration(const G4String &excitedStateLabel)
 
virtual void StartTracking(G4Track *)
 
G4GLOB_DLL std::ostream G4cout
 
double A(double temperature)
 
static constexpr double m
 
void AddProduct(const G4Molecule *, G4double=0)
 
virtual G4VParticleChange * AtRestDoIt(const G4Track &, const G4Step &)
 
static G4MoleculeTable * Instance()
 
virtual void StartTracking(G4Track *)
 
void SetProcessSubType(G4int)
 
G4shared_ptr< G4ProcessState > fpState
 
G4bool enablePostStepDoIt
 
G4double GetGlobalTime() const 
 
G4Molecule * GetMolecule(const G4Track &track)
 
static G4VMoleculeCounter * Instance()
 
G4Material * GetMaterial() const 
 
virtual G4double GetMeanFreePath(const G4Track &aTrack, G4double previousStepSize, G4ForceCondition *condition)
 
G4double G4Exp(G4double initial_x)
Exponential Function double precision. 
 
virtual void Initialize(const G4Track &)
 
static G4DNAMolecularMaterial * Instance()
 
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
 
G4VParticleChange * pParticleChange
 
virtual G4double GetMeanLifeTime(const G4Track &aTrack, G4ForceCondition *condition)
 
G4double GetTemperature() const 
 
G4bool enableAlongStepDoIt
 
static constexpr double pi
 
void ProposeTrackStatus(G4TrackStatus status)
 
void SetDisplacementType(DisplacementType)
 
double epsilon(double density, double temperature)
 
G4DNAElectronHoleRecombination()
 
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)