81 if (
this == &rhs)
return *
this;
94 const double currentStepTime,
96 bool userStepTimeLimit)
106 "You have to give a reaction model to the molecular reaction process");
107 G4Exception(
"G4DNAMolecularReaction::TestReactibility",
109 exceptionDescription);
115 "You have to give a reaction table to the molecular reaction process");
116 G4Exception(
"G4DNAMolecularReaction::TestReactibility",
118 exceptionDescription);
128 if (currentStepTime == 0.)
130 userStepTimeLimit =
false;
140 G4cout <<
"\033[1;39;36m" <<
"G4MolecularReaction " <<
G4endl;
144 <<
" calculated distance by model (= -1 if real distance > reaction radius and the user limitation step is not reached) : "
150 <<
" | MolA " << moleculeA->
GetName()
151 <<
", MolB " << moleculeB->
GetName()
154 G4cout <<
"--------------------------------------------" <<
G4endl;
175 G4cout <<
"G4DNAMolecularReaction::MakeReaction" <<
G4endl;
187 G4cout <<
"--------------------------------------------" <<
G4endl;
206 for (
G4int j = 0; j < nbProducts; j++)
The pointer G4MolecularConfiguration will be shared by all the molecules having the same molecule def...
G4double GetDiffusionCoefficient() const
Returns the diffusion coefficient D.
void SetTrackStatus(const G4TrackStatus aTrackStatus)
G4DNAMolecularReaction & operator=(const G4DNAMolecularReaction &other)
Assignment operator.
virtual G4bool TestReactibility(const G4Track &, const G4Track &, const double currentStepTime, const double previousStepTime, bool userStepTimeLimit)
Given two tracks, it tells you whether they can react.
const G4String & GetName() const
Returns the name of the molecule.
Similar to G4ParticleChange, but deal with two tracks rather than one.
const G4DNAMolecularReactionData * GetReactionData(G4MolecularConfiguration *, G4MolecularConfiguration *) const
std::ostringstream G4ExceptionDescription
CLHEP::Hep3Vector G4ThreeVector
const G4ThreeVector & GetPosition() const
G4DNAMolecularReactionTable sorts out the G4DNAMolecularReactionData for bimolecular reaction...
ReturnType & reference_cast(OriginalType &source)
G4VITReactionProcess defines the reaction between two G4IT.
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4MolecularConfiguration * GetMolecularConfiguration() const
G4GLOB_DLL std::ostream G4cout
virtual ~G4DNAMolecularReaction()
Default destructor.
void Initialize(const G4Track &, const G4Track &, G4VParticleChange *particleChangeA=0, G4VParticleChange *particleChangeB=0)
virtual G4double GetReactionRadius(G4MolecularConfiguration *, G4MolecularConfiguration *)=0
G4double GetGlobalTime() const
G4Molecule * GetMolecule(const G4Track &track)
const G4DNAMolecularReactionTable *& fMolReactionTable
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4int GetNbProducts() const
G4DNAMolecularReactionData contains the information relative to a given reaction (eg : °OH + °OH -> H...
G4Track * BuildTrack(G4double globalTime, const G4ThreeVector &Position)
static G4ITFinder * Instance()
virtual G4bool FindReaction(const G4Track &, const G4Track &, const G4double, G4double &, const G4bool)=0
G4DNAMolecularReaction is the reaction process used in G4DNAMolecularStepByStepModel between two mole...
G4DNAMolecularReaction()
Default constructor.
G4VDNAReactionModel * fReactionModel
G4ITReactionChange * fpChanges
virtual G4ITReactionChange * MakeReaction(const G4Track &, const G4Track &)
Will generate the products of the two given tracks.
Class Description The dynamic molecule holds all the data that change for a molecule It has a pointer...
G4MolecularConfiguration * GetProduct(G4int i) const
void AddSecondary(G4Track *aSecondary)
virtual void Push(G4Track *track)