163 G4cout <<
"ERROR - no ExExChParticleUserInfo object Detected";
217 vDensityPreviousStep =
223 return vDensityPreviousStep;
276 if ( (previousStepSize < 0.0) ||
280 }
else if ( previousStepSize > 0.0) {
283 * vDensityPreviousStep);
290 previousStepSize * vDensityPreviousStep,
304 if ( vDensity == 0. )
return DBL_MAX;
305 currentInteractionLength /= vDensity;
331 previousStepSize * vDensityPreviousStep,
357 const_cast<G4Step&
>(aStep).SetStepLength(
360 const_cast<G4Step&
>(aStep).SetStepLength(vStepLengthSaved);
379 const_cast<G4Step&
>(aStep).SetStepLength(
382 const_cast<G4Step&
>(aStep).SetStepLength(vStepLengthSaved);
virtual ~XWrapperContinuousDiscreteProcess()
virtual G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *)
G4double condition(const G4ErrorSymMatrix &m)
virtual void StartTracking(G4Track *aTrack)
G4ProcessType theProcessType
void RegisterProcess(G4VContinuousDiscreteProcess *)
G4double GetStepLength() const
G4VContinuousDiscreteProcess * fRegisteredProcess
G4bool isAlongStepDoItIsEnabled() const
G4bool isPostStepDoItIsEnabled() const
virtual G4VParticleChange * AlongStepDoIt(const G4Track &, const G4Step &)
G4int ItHasToWork(const G4Track &)
G4bool isAtRestDoItIsEnabled() const
G4double theNumberOfInteractionLengthLeft
G4ProcessType GetProcessType() const
G4double GetDensityPreviousStep(const G4Track &)
G4double GetNucleiDensity()
virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track &, G4double previousStepSize, G4double currentMinimumStep, G4double ¤tSafety, G4GPILSelection *selection)
G4VUserTrackInformation * GetUserInformation() const
virtual void StartTracking(G4Track *)
G4double GetDensity(const G4Track &)
G4double GetNumberOfInteractionLengthLeft() const
G4GLOB_DLL std::ostream G4cout
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
G4double currentInteractionLength
virtual void ResetNumberOfInteractionLengthLeft()
XWrapperContinuousDiscreteProcess(const G4String &processName="XWrapperContinuousDiscreteProcess")
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
G4bool enablePostStepDoIt
virtual G4double GetContinuousStepLimit(const G4Track &, G4double, G4double, G4double &)
const G4String & GetProcessName() const
G4int bBothOrCrystalOrDetectorPhysics
G4ParticleChangeForNothing * fParticleChangeForNothing
G4double GetNucleiDensityPreviousStep()
G4int GetNucleiOrElectronFlag()
virtual G4VParticleChange * AlongStepDoIt(const G4Track &, const G4Step &)
virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track &, G4double, G4double, G4double &, G4GPILSelection *)
G4VParticleChange * pParticleChange
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &, G4double, G4ForceCondition *)
G4bool enableAlongStepDoIt
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
void SubtractNumberOfInteractionLengthLeft(G4double previousStepSize)
G4int bNucleiOrElectronFlag
G4double theInitialNumberOfInteractionLength
G4int GetProcessSubType() const
G4double GetElectronDensityPreviousStep()
void SetNucleiOrElectronFlag(G4int)
G4double GetElectronDensity()