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;
const std::vector< double > * fpMoleculeDensity
virtual void SubtractNumberOfInteractionLengthLeft(G4double previousStepSize)
G4ParticleChange fParticleChange
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
std::ostringstream G4ExceptionDescription
void StartTracking(G4Track *)
G4DNASecondOrderReaction(const G4String &aName="DNASecondOrderReaction", G4ProcessType type=fDecay)
void SetReaction(const G4MolecularConfiguration *, const G4Material *, double)
const G4String & GetName() const
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
void SetInstantiateProcessState(G4bool flag)
SecondOrderReactionState()
G4shared_ptr< G4ProcessState > fpState
G4bool enablePostStepDoIt
virtual void ResetNumberOfInteractionLengthLeft()
const std::vector< double > * GetNumMolPerVolTableFor(const G4Material *) const
Retrieve a table of molecular densities (number of molecules per unit volume) in the G4 unit system f...
const G4String & GetName() const
const G4MolecularConfiguration * fpMolecularConfiguration
virtual void StartTracking(G4Track *)
virtual ~G4DNASecondOrderReaction()
static constexpr double Avogadro
G4VParticleChange * pParticleChange
const XML_Char int const XML_Char * value
virtual void Initialize(const G4Track &)
static G4DNAMolecularMaterial * Instance()
static G4VScheduler * Instance()
G4DNASecondOrderReaction & operator=(const G4DNASecondOrderReaction &)
G4double GetGlobalTime() const
const G4String & GetProcessName() const
const G4ThreeVector & GetPosition() const
G4Material * GetMaterial() const
G4double fMolarMassOfMaterial
G4Molecule * GetMolecule(const G4Track &track)
virtual void StartTracking(G4Track *)
G4double fPreviousTimeAtPreStepPoint
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
void SetProcessSubType(G4int)
static constexpr double cm
G4GLOB_DLL std::ostream G4cout
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
G4bool enableAlongStepDoIt
void DumpInfo(G4int mode=0) const
void ProposeTrackStatus(G4TrackStatus status)
static G4DNADamage * Instance()
const G4Material * fpMaterial
const G4DynamicParticle * GetDynamicParticle() const
virtual void AddIndirectDamage(const G4String &baseName, const G4Molecule *molecule, const G4ThreeVector &position, double time)
G4double GetMassOfMolecule() const
G4MolecularConfiguration * GetMolecularConfiguration() const