40#define State(theXInfo) (GetState<SecondOrderReactionState>()->theXInfo)
86 if (
this == &rhs)
return *
this;
120 exceptionDescription <<
"G4DNASecondOrderReaction was already initialised. ";
121 exceptionDescription <<
"You cannot set a reaction after initialisation.";
122 G4Exception(
"G4DNASecondOrderReaction::SetReaction",
"G4DNASecondOrderReaction001",
151 if(molDensity == 0.0)
153 if(
State(fIsInGoodMaterial))
157 State(fIsInGoodMaterial) =
false;
169 State(fIsInGoodMaterial) =
true;
185 if(
State(fPreviousTimeAtPreStepPoint) != -1)
188 State(fPreviousTimeAtPreStepPoint) ;
197 (previousTimeStep < 0.0) ||
198 (
fpState->theNumberOfInteractionLengthLeft<=0.0)) {
201 }
else if ( previousTimeStep > 0.0) {
218 value =
fpState->theNumberOfInteractionLengthLeft
219 * (
fpState->currentInteractionLength);
225 G4cout <<
"G4VITRestDiscreteProcess::PostStepGetPhysicalInteractionLength ";
252 G4cout <<
">>> Beginning of G4DNASecondOrderReaction verbose" <<
G4endl;
256 G4cout <<
">>> End of G4DNASecondOrderReaction verbose <<<" <<
G4endl;
263 State(fPreviousTimeAtPreStepPoint) = -1;
static const G4double e3[45]
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
@ fLowEnergyTransportation
G4Molecule * GetMolecule(const G4Track &track)
static constexpr double cm
G4GLOB_DLL std::ostream G4cout
virtual void AddIndirectDamage(const G4String &baseName, const G4Molecule *molecule, const G4ThreeVector &position, double time)
static G4DNADamage * Instance()
const std::vector< G4double > * GetNumMolPerVolTableFor(const G4Material *) const
Retrieve a table of molecular densities (number of molecules per unit volume) in the G4 unit system f...
static G4DNAMolecularMaterial * Instance()
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
G4DNASecondOrderReaction & operator=(const G4DNASecondOrderReaction &)
const std::vector< double > * fpMoleculeDensity
const G4MolecularConfiguration * fpMolecularConfiguration
const G4Material * fpMaterial
virtual ~G4DNASecondOrderReaction()
G4DNASecondOrderReaction(const G4String &aName="DNASecondOrderReaction", G4ProcessType type=fDecay)
void StartTracking(G4Track *)
void SetReaction(const G4MolecularConfiguration *, const G4Material *, double)
G4ParticleChange fParticleChange
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
G4double fMolarMassOfMaterial
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
void DumpInfo(G4int mode=0) const
G4double GetMassOfMolecule() const
const G4String & GetName() const
const G4MolecularConfiguration * GetMolecularConfiguration() const
const G4String & GetName() const
virtual void Initialize(const G4Track &)
const G4ThreeVector & GetPosition() const
G4double GetGlobalTime() const
G4Material * GetMaterial() const
const G4DynamicParticle * GetDynamicParticle() const
virtual void StartTracking(G4Track *)
void SetInstantiateProcessState(G4bool flag)
virtual void SubtractNumberOfInteractionLengthLeft(G4double previousStepSize)
G4shared_ptr< G4ProcessState > fpState
virtual void ResetNumberOfInteractionLengthLeft()
void ProposeTrackStatus(G4TrackStatus status)
G4bool enableAlongStepDoIt
void SetProcessSubType(G4int)
virtual void StartTracking(G4Track *)
G4bool enablePostStepDoIt
G4VParticleChange * pParticleChange
const G4String & GetProcessName() const
static G4VScheduler * Instance()
static constexpr double Avogadro
G4double fPreviousTimeAtPreStepPoint
SecondOrderReactionState()