48 if (
this == &right)
return *
this;
79 G4double __output = (*fReactionData)[__i]->GetReducedReactionRadius();
87 const G4bool __alongStepReaction)
90 bool __do_break =
false;
96 __postStepSeparation += std::pow(
99 if (__postStepSeparation > __R2)
106 if (__do_break ==
false)
110 __r = std::sqrt(__postStepSeparation);
113 else if (__alongStepReaction ==
true)
122 __postStepSeparation += std::pow(
126 __r = (__postStepSeparation = std::sqrt(__postStepSeparation));
142 exceptionDescription <<
"The molecule : " << __moleculeA->
GetName();
143 exceptionDescription <<
" with track ID :" << __trackA.
GetTrackID();
144 exceptionDescription <<
" did not move since the previous step." <<
G4endl;
145 exceptionDescription <<
"Current position : "
148 exceptionDescription <<
"Previous position : "
150 G4Exception(
"G4DNASmoluchowskiReactionModel::FindReaction",
152 exceptionDescription);
156 (__preStepPositionA - __preStepPositionB).mag();
158 G4double __probabiltyOfEncounter = std::exp(
159 -(__preStepSeparation - __R) * (__postStepSeparation - __R) / (__D
163 if (__selectedPOE <= __probabiltyOfEncounter)
return true;
G4VDNAReactionModel is an interface used by the G4DNAMolecularReaction process.
virtual G4bool FindReaction(const G4Track &, const G4Track &, const G4double, G4double &, const G4bool)
std::ostringstream G4ExceptionDescription
CLHEP::Hep3Vector G4ThreeVector
G4DNASmoluchowskiReactionModel should be used for very fast reactions (high reaction rate) : the reac...
const G4ThreeVector & GetPosition() const
G4double GetReducedReactionRadius() const
G4double GetDiffusionCoefficient() const
Returns the diffusion coefficient D.
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
const G4Step * GetStep() const
virtual void Initialise(const G4Molecule *, const G4Track &)
This macro is defined in AddClone_def.
const std::vector< const G4DNAMolecularReactionData * > * fReactionData
const G4DNAMolecularReactionTable * fReactionTable
G4StepPoint * GetPreStepPoint() const
const G4String & GetName() const
Returns the name of the molecule.
const G4ThreeVector & GetPosition() const
virtual void InitialiseToPrint(const G4Molecule *)
G4double GetDeltaTime() const
G4Molecule * GetMolecule(const G4Track &track)
G4DNASmoluchowskiReactionModel()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4DNASmoluchowskiReactionModel & operator=(const G4DNASmoluchowskiReactionModel &)
virtual ~G4DNASmoluchowskiReactionModel()
const G4DNAMolecularReactionData * GetReactionData(const G4Molecule *, const G4Molecule *) const
virtual G4double GetReactionRadius(const G4Molecule *, const G4Molecule *)
Class Description The dynamic molecule holds all the data that change for a molecule It has a pointer...