80 if (
this == &rhs)
return *
this;
93 const double currentStepTime,
95 bool userStepTimeLimit)
103 "You have to give a reaction model to the molecular reaction process");
104 G4Exception(
"G4DNAMolecularReaction::TestReactibility",
106 exceptionDescription);
112 "You have to give a reaction table to the molecular reaction process");
113 G4Exception(
"G4DNAMolecularReaction::TestReactibility",
115 exceptionDescription);
125 if (currentStepTime == 0.)
127 userStepTimeLimit =
false;
137 G4cout <<
"\033[1;39;36m" <<
"G4MolecularReaction " <<
G4endl;
141 <<
" calculated distance by model (= -1 if real distance > reaction radius and the user limitation step is not reached) : "
147 <<
" | MolA " << moleculeA->
GetName()
148 <<
", MolB " << moleculeB->
GetName()
151 G4cout <<
"--------------------------------------------" <<
G4endl;
170 G4cout <<
"G4DNAMolecularReaction::MakeReaction" <<
G4endl;
182 G4cout <<
"--------------------------------------------" <<
G4endl;
201 for (
G4int j = 0; j < nbProducts; j++)
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.
Similar to G4ParticleChange, but deal with two tracks rather than one.
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.
G4double GetDiffusionCoefficient() const
Returns the diffusion coefficient D.
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
const G4String & GetName() const
Returns the name of the molecule.
const G4Molecule * GetProduct(G4int i) const
G4GLOB_DLL std::ostream G4cout
virtual ~G4DNAMolecularReaction()
Default destructor.
void Initialize(const G4Track &, const G4Track &, G4VParticleChange *particleChangeA=0, G4VParticleChange *particleChangeB=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()
const G4DNAMolecularReactionData * GetReactionData(const G4Molecule *, const G4Molecule *) const
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.
virtual G4double GetReactionRadius(const G4Molecule *, const G4Molecule *)=0
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...
void AddSecondary(G4Track *aSecondary)
virtual void Push(G4Track *track)