#include <G4StepLimiter.hh>
Inheritance diagram for G4StepLimiter:
Public Member Functions | |
G4StepLimiter (const G4String &processName="StepLimiter") | |
virtual | ~G4StepLimiter () |
virtual G4double | PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) |
virtual G4VParticleChange * | PostStepDoIt (const G4Track &, const G4Step &) |
virtual G4double | AtRestGetPhysicalInteractionLength (const G4Track &, G4ForceCondition *) |
virtual G4VParticleChange * | AtRestDoIt (const G4Track &, const G4Step &) |
virtual G4double | AlongStepGetPhysicalInteractionLength (const G4Track &, G4double, G4double, G4double &, G4GPILSelection *) |
virtual G4VParticleChange * | AlongStepDoIt (const G4Track &, const G4Step &) |
Definition at line 45 of file G4StepLimiter.hh.
G4StepLimiter::G4StepLimiter | ( | const G4String & | processName = "StepLimiter" |
) |
Definition at line 44 of file G4StepLimiter.cc.
References G4cout, G4endl, G4VProcess::GetProcessName(), G4VProcess::SetProcessSubType(), STEP_LIMITER, and G4VProcess::verboseLevel.
00045 : G4VProcess(aName, fGeneral ) 00046 { 00047 // set Process Sub Type 00048 SetProcessSubType(static_cast<int>(STEP_LIMITER)); 00049 00050 if (verboseLevel>1) { 00051 G4cout << GetProcessName() << " is created "<< G4endl; 00052 } 00053 }
G4StepLimiter::~G4StepLimiter | ( | ) | [virtual] |
virtual G4VParticleChange* G4StepLimiter::AlongStepDoIt | ( | const G4Track & | , | |
const G4Step & | ||||
) | [inline, virtual] |
virtual G4VParticleChange* G4StepLimiter::AtRestDoIt | ( | const G4Track & | , | |
const G4Step & | ||||
) | [inline, virtual] |
virtual G4double G4StepLimiter::AtRestGetPhysicalInteractionLength | ( | const G4Track & | , | |
G4ForceCondition * | ||||
) | [inline, virtual] |
G4VParticleChange * G4StepLimiter::PostStepDoIt | ( | const G4Track & | , | |
const G4Step & | ||||
) | [virtual] |
Implements G4VProcess.
Definition at line 93 of file G4StepLimiter.cc.
References G4VProcess::aParticleChange, and G4ParticleChange::Initialize().
00097 { 00098 aParticleChange.Initialize(aTrack); 00099 return &aParticleChange; 00100 }
G4double G4StepLimiter::PostStepGetPhysicalInteractionLength | ( | const G4Track & | track, | |
G4double | previousStepSize, | |||
G4ForceCondition * | condition | |||
) | [virtual] |
Implements G4VProcess.
Definition at line 71 of file G4StepLimiter.cc.
References DBL_MAX, G4VPhysicalVolume::GetLogicalVolume(), G4UserLimits::GetMaxAllowedStep(), G4LogicalVolume::GetUserLimits(), G4Track::GetVolume(), and NotForced.
00075 { 00076 // condition is set to "Not Forced" 00077 *condition = NotForced; 00078 00079 G4double proposedStep = DBL_MAX; 00080 G4UserLimits* pUserLimits = 00081 aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits(); 00082 if (pUserLimits) { 00083 // max allowed step length 00084 // 00085 proposedStep = pUserLimits->GetMaxAllowedStep(aTrack); 00086 if (proposedStep < 0.) proposedStep =0.; 00087 } 00088 return proposedStep; 00089 }