52 bNucleiOrElectronFlag = +0;
53 bBothOrCrystalOrDetectorPhysics = +0;
63 fRegisteredProcess = toRegister;
72 bNucleiOrElectronFlag = +0;
73 bBothOrCrystalOrDetectorPhysics = +0;
87 bNucleiOrElectronFlag = +0;
88 bBothOrCrystalOrDetectorPhysics = +0;
110 fRegisteredProcess = toRegister;
124 fRegisteredProcess = toRegister;
130 bNucleiOrElectronFlag = flag;
131 bBothOrCrystalOrDetectorPhysics = region;
137 bNucleiOrElectronFlag = flag;
143 return bNucleiOrElectronFlag;
154 (bBothOrCrystalOrDetectorPhysics == 1 ||
155 bBothOrCrystalOrDetectorPhysics == 0)){
159 (bBothOrCrystalOrDetectorPhysics == 2 ||
160 bBothOrCrystalOrDetectorPhysics == 0)){
166 G4cout <<
"ERROR - no ExExChParticleUserInfo object Detected";
184 if(bNucleiOrElectronFlag == +1){
187 else if(bNucleiOrElectronFlag == -1){
213 if(bNucleiOrElectronFlag == +1){
216 else if(bNucleiOrElectronFlag == -1){
220 vDensityPreviousStep =
226 return vDensityPreviousStep;
279 if ( (previousStepSize < 0.0) ||
283 }
else if ( previousStepSize > 0.0) {
286 * vDensityPreviousStep);
293 previousStepSize * vDensityPreviousStep,
307 if ( vDensity == 0. )
return DBL_MAX;
308 currentInteractionLength /= vDensity;
334 previousStepSize * vDensityPreviousStep,
360 const_cast<G4Step&
>(aStep).SetStepLength(
363 const_cast<G4Step&
>(aStep).SetStepLength(vStepLengthSaved);
382 const_cast<G4Step&
>(aStep).SetStepLength(
385 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
G4bool isAlongStepDoItIsEnabled() const
G4bool isPostStepDoItIsEnabled() const
virtual G4VParticleChange * AlongStepDoIt(const G4Track &, const G4Step &)
G4int ItHasToWork(const G4Track &)
G4bool isAtRestDoItIsEnabled() const
G4double theNumberOfInteractionLengthLeft
Definition of the XWrapperContinuousDiscreteProcess class.
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
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)
G4double theInitialNumberOfInteractionLength
G4int GetProcessSubType() const
G4double GetElectronDensityPreviousStep()
void SetNucleiOrElectronFlag(G4int)
G4double GetElectronDensity()