30 #include "G4StepPoint.hh" 31 #include "G4VParticleChange.hh" 141 G4cout <<
"ERROR - no ExExChParticleUserInfo object Detected";
195 vDensityPreviousStep =
201 return vDensityPreviousStep;
247 if ( (previousStepSize < 0.0) ||
251 }
else if ( previousStepSize > 0.0) {
254 * vDensityPreviousStep);
261 previousStepSize * vDensityPreviousStep,
275 if ( vDensity == 0. )
return DBL_MAX;
276 currentInteractionLength /= vDensity;
292 const G4Step& aStep ){
G4double condition(const G4ErrorSymMatrix &m)
G4VDiscreteProcess * fRegisteredProcess
G4ProcessType theProcessType
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &, G4double, G4ForceCondition *)
virtual G4bool RetrievePhysicsTable(const G4ParticleDefinition *, const G4String &, G4bool)
G4double GetNumberOfInteractionLengthLeft() const
G4int ItHasToWork(const G4Track &)
G4double theNumberOfInteractionLengthLeft
G4double GetNucleiDensity()
G4int GetProcessSubType() const
virtual G4bool IsApplicable(const G4ParticleDefinition &)
G4double GetDensityPreviousStep(const G4Track &)
virtual void StartTracking(G4Track *)
const G4String & GetProcessName() const
G4GLOB_DLL std::ostream G4cout
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
void SetNucleiOrElectronFlag(G4int)
G4bool isPostStepDoItIsEnabled() const
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
G4double currentInteractionLength
G4bool isAlongStepDoItIsEnabled() const
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
G4bool enablePostStepDoIt
virtual G4bool RetrievePhysicsTable(const G4ParticleDefinition *, const G4String &, G4bool)
G4int bBothOrCrystalOrDetectorPhysics
Decide whether to use nuclei (+1) or electron (-1) or both (0)
G4bool isAtRestDoItIsEnabled() const
G4double GetDensity(const G4Track &)
G4int bNucleiOrElectronFlag
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
G4double GetNucleiDensityPreviousStep()
void StartTracking(G4Track *)
G4VParticleChange * pParticleChange
virtual ~XWrapperDiscreteProcess()
virtual G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *)
virtual void ResetNumberOfInteractionLengthLeft()
G4bool enableAlongStepDoIt
virtual G4bool StorePhysicsTable(const G4ParticleDefinition *, const G4String &, G4bool)
void RegisterProcess(G4VDiscreteProcess *)
G4ProcessType GetProcessType() const
void SubtractNumberOfInteractionLengthLeft(G4double previousStepSize)
G4double theInitialNumberOfInteractionLength
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
XWrapperDiscreteProcess(const G4String &processName="XWrapperDiscreteProcess")
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
G4int GetNucleiOrElectronFlag()
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
G4double GetElectronDensityPreviousStep()
virtual G4bool IsApplicable(const G4ParticleDefinition &)
G4ParticleChangeForNothing * fParticleChangeForNothing
virtual G4bool StorePhysicsTable(const G4ParticleDefinition *, const G4String &, G4bool)
G4double GetElectronDensity()