50 bNucleiOrElectronFlag = +0;
51 bBothOrCrystalOrDetectorPhysics = +0;
61 fRegisteredProcess = toRegister;
67 bNucleiOrElectronFlag = +0;
68 bBothOrCrystalOrDetectorPhysics = +0;
89 fRegisteredProcess = toRegister;
102 fRegisteredProcess = toRegister;
103 bNucleiOrElectronFlag = flag;
104 bBothOrCrystalOrDetectorPhysics = region;
115 bNucleiOrElectronFlag = flag;
121 return bNucleiOrElectronFlag;
132 (bBothOrCrystalOrDetectorPhysics == 1 ||
133 bBothOrCrystalOrDetectorPhysics == 0)){
137 (bBothOrCrystalOrDetectorPhysics == 2 ||
138 bBothOrCrystalOrDetectorPhysics == 0)){
144 G4cout <<
"ERROR - no ExExChParticleUserInfo object Detected";
162 if(bNucleiOrElectronFlag == +1){
165 else if(bNucleiOrElectronFlag == -1){
191 if(bNucleiOrElectronFlag == +1){
194 else if(bNucleiOrElectronFlag == -1){
198 vDensityPreviousStep =
204 return vDensityPreviousStep;
250 if ( (previousStepSize < 0.0) ||
254 }
else if ( previousStepSize > 0.0) {
257 * vDensityPreviousStep);
264 previousStepSize * vDensityPreviousStep,
278 if ( vDensity == 0. )
return DBL_MAX;
279 currentInteractionLength /= vDensity;
311 return fRegisteredProcess->
IsApplicable(aParticleDefinition);
G4double condition(const G4ErrorSymMatrix &m)
G4ProcessType theProcessType
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &, G4double, G4ForceCondition *)
virtual G4bool RetrievePhysicsTable(const G4ParticleDefinition *, const G4String &, G4bool)
G4bool isAlongStepDoItIsEnabled() const
G4bool isPostStepDoItIsEnabled() const
G4int ItHasToWork(const G4Track &)
G4bool isAtRestDoItIsEnabled() const
G4double theNumberOfInteractionLengthLeft
G4ProcessType GetProcessType() const
G4double GetNucleiDensity()
virtual G4bool IsApplicable(const G4ParticleDefinition &)
G4double GetDensityPreviousStep(const G4Track &)
G4VUserTrackInformation * GetUserInformation() const
virtual void StartTracking(G4Track *)
G4double GetNumberOfInteractionLengthLeft() const
G4GLOB_DLL std::ostream G4cout
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
void SetNucleiOrElectronFlag(G4int)
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
G4double currentInteractionLength
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
G4bool enablePostStepDoIt
virtual G4bool RetrievePhysicsTable(const G4ParticleDefinition *, const G4String &, G4bool)
const G4String & GetProcessName() const
G4double GetDensity(const G4Track &)
Definition of the XWrapperDiscreteProcess class.
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 *)
void SubtractNumberOfInteractionLengthLeft(G4double previousStepSize)
G4double theInitialNumberOfInteractionLength
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
XWrapperDiscreteProcess(const G4String &processName="XWrapperDiscreteProcess")
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
G4int GetProcessSubType() const
G4int GetNucleiOrElectronFlag()
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
G4double GetElectronDensityPreviousStep()
virtual G4bool IsApplicable(const G4ParticleDefinition &)
virtual G4bool StorePhysicsTable(const G4ParticleDefinition *, const G4String &, G4bool)
G4double GetElectronDensity()