40# define PrepareState() \
41 G4PolyNucleotideReactionState* _state = \
42 this->GetState<G4PolyNucleotideReactionState>()
46# define State(theXInfo) (_state->theXInfo)
53 fVerbose(verbosityLevel)
70G4DNAPolyNucleotideReactionProcess::G4PolyNucleotideReactionState::
71G4PolyNucleotideReactionState()
73 fSampledMinTimeStep = 0;
74 fPreviousTimeAtPreStepPoint = -1;
81 fHasAlreadyReachedNullTime =
false;
84 State(currentInteractionLength) = -1;
89 G4cout <<
"________________________________________________________________"
92 G4cout <<
"G4DNAPolyNucleotideReactionProcess::CalculateTimleStep"
94 G4cout <<
"Check done for molecule : " << pMoleculeA->GetName() <<
" ("
107 State(fSampledMinTimeStep) = reactionTime;
108 State(theInteractionTimeLeft) =
State(fSampledMinTimeStep);
109 State(currentInteractionLength) =
State(theInteractionTimeLeft);
114 G4cout <<
" theInteractionTimeLeft : " <<
State(theInteractionTimeLeft)
116 G4cout <<
" State(fNodeReactant) : " <<
State(fNodeReactant).index()
119 G4cout <<
"________________________________________________________________"
125 return State(fSampledMinTimeStep);
140 if(
State(fPreviousTimeAtPreStepPoint) != -1)
148 if((
fpState->currentInteractionLength <= 0) || (previousTimeStep < 0.0) ||
149 (
fpState->theNumberOfInteractionLengthLeft <= 0.0))
153 else if(previousTimeStep > 0.0)
158 return State(theInteractionTimeLeft) * -1;
169 track,
State(theInteractionTimeLeft),
State(fNodeReactant));
178 State(fPreviousTimeAtPreStepPoint) = -1;
G4Molecule * GetMolecule(const G4Track &track)
G4GLOB_DLL std::ostream G4cout
~G4DNAPolyNucleotideReactionProcess() override
G4double PostStepGetPhysicalInteractionLength(const G4Track &, G4double, G4ForceCondition *pForceCond) override
G4DNAPolyNucleotideReactionProcess(const G4String &aName="DNAStaticMoleculeReactionProcess", G4int verbosityLevel=0)
G4double CalculateTimeStep(const G4Track &trackA, const G4double &userTimeStep=0)
G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &) override
void StartTracking(G4Track *aTrack) override
G4VParticleChange fParticleChange
G4double GetGlobalTime() const
virtual G4bool DoReaction(const G4Track &track, const G4double &, const DNANode &)=0
virtual G4double CalculateReactionTime(const G4Track &trackA, DNANode &)=0
void SetInstantiateProcessState(G4bool flag)
virtual void SubtractNumberOfInteractionLengthLeft(G4double previousStepSize)
G4shared_ptr< G4ProcessState > fpState
void StartTracking(G4Track *) override
void ResetNumberOfInteractionLengthLeft() override
void ProposeTrackStatus(G4TrackStatus status)
virtual void Initialize(const G4Track &)
G4bool enableAlongStepDoIt
void SetProcessSubType(G4int)
virtual void StartTracking(G4Track *)
G4bool enablePostStepDoIt
G4VParticleChange * pParticleChange