37# define PrepareState() \
38 G4PolyNucleotideReactionState* _state = \
39 this->GetState<G4PolyNucleotideReactionState>()
43# define State(theXInfo) (_state->theXInfo)
49 , fHasAlreadyReachedNullTime(false)
50 , fVerbose(verbosityLevel)
52 , fpDamageModel(nullptr)
68G4DNAPolyNucleotideReactionProcess::G4PolyNucleotideReactionState::
69G4PolyNucleotideReactionState()
71 fSampledMinTimeStep = 0;
72 fPreviousTimeAtPreStepPoint = -1;
79 fHasAlreadyReachedNullTime =
false;
82 State(currentInteractionLength) = -1;
87 G4cout <<
"________________________________________________________________"
90 G4cout <<
"G4DNAPolyNucleotideReactionProcess::CalculateTimleStep"
92 G4cout <<
"Check done for molecule : " << pMoleculeA->GetName() <<
" ("
105 State(fSampledMinTimeStep) = reactionTime;
106 State(theInteractionTimeLeft) =
State(fSampledMinTimeStep);
107 State(currentInteractionLength) =
State(theInteractionTimeLeft);
112 G4cout <<
" theInteractionTimeLeft : " <<
State(theInteractionTimeLeft)
114 G4cout <<
" State(fNodeReactant) : " <<
State(fNodeReactant).index()
117 G4cout <<
"________________________________________________________________"
123 return State(fSampledMinTimeStep);
138 if(
State(fPreviousTimeAtPreStepPoint) != -1)
146 if((
fpState->currentInteractionLength <= 0) || (previousTimeStep < 0.0) ||
147 (
fpState->theNumberOfInteractionLengthLeft <= 0.0))
151 else if(previousTimeStep > 0.0)
156 return State(theInteractionTimeLeft) * -1;
167 track,
State(theInteractionTimeLeft),
State(fNodeReactant));
176 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
virtual void StartTracking(G4Track *)
void SetInstantiateProcessState(G4bool flag)
virtual void SubtractNumberOfInteractionLengthLeft(G4double previousStepSize)
G4shared_ptr< G4ProcessState > fpState
virtual void ResetNumberOfInteractionLengthLeft()
void ProposeTrackStatus(G4TrackStatus status)
virtual void Initialize(const G4Track &)
G4bool enableAlongStepDoIt
void SetProcessSubType(G4int)
virtual void StartTracking(G4Track *)
G4bool enablePostStepDoIt
G4VParticleChange * pParticleChange