ZStepLimiter Class Reference

List of all members.


Detailed Description

class ZStepLimiter limits the ZStep

Public Member Functions

 ZStepLimiter ()
G4VProcess * clone ()
virtual G4double PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
G4VParticleChange * PostStepDoIt (const G4Track &track, const G4Step &stepData)
virtual G4double AlongStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
virtual G4VParticleChange * AlongStepDoIt (const G4Track &track, const G4Step &stepData)
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &track, G4ForceCondition *condition)
virtual G4VParticleChange * AtRestDoIt (const G4Track &track, const G4Step &stepData)

Static Public Member Functions

static void setMaxStep (G4double ms)

Private Attributes

ParticleChange change

Static Private Attributes

static G4double maxStep = DBL_MAX

Classes

class  ParticleChange

Constructor & Destructor Documentation

ZStepLimiter::ZStepLimiter (  )  [inline]

Referenced by clone().

00069                        : G4VProcess("ZStepLimiter",fUserDefined), change() {
00070             G4ParticleTable::G4PTblDicIterator *theParticleIterator =
00071                         G4ParticleTable::GetParticleTable()->GetIterator();
00072             theParticleIterator->reset();
00073             while((*theParticleIterator)()) {
00074                 G4ParticleDefinition *pd = theParticleIterator->value();
00075                 G4ProcessManager *pmgr = pd->GetProcessManager();
00076                 if(!pmgr) {
00077                         printf("ZStepLimiter: particle '%s' has no ProcessManager!\n",
00078                                 pd->GetParticleName().c_str());
00079                         continue;
00080                 }
00081                 pmgr->AddProcess(this,-1,-1,3);
00082                 pmgr->SetProcessOrdering(this,idxPostStep);
00083                 pmgr->SetProcessOrdering(this,idxAtRest);
00084             }
00085         }


Member Function Documentation

G4VProcess* ZStepLimiter::clone (  )  [inline]

References ZStepLimiter().

00087 { return new ZStepLimiter(*this); }

static void ZStepLimiter::setMaxStep ( G4double  ms  )  [inline, static]

References maxStep.

Referenced by BLManager::PreUserTrackingAction(), and BLManager::UserSteppingAction().

00089 { maxStep = ms; }

virtual G4double ZStepLimiter::PostStepGetPhysicalInteractionLength ( const G4Track &  track,
G4double  previousStepSize,
G4ForceCondition *  condition 
) [inline, virtual]

References maxStep.

00094                 { *condition = NotForced;
00095                   return maxStep-0.010*mm; 
00096                 }

G4VParticleChange* ZStepLimiter::PostStepDoIt ( const G4Track &  track,
const G4Step &  stepData 
) [inline]

References change.

00099                 { change.Initialize(track);
00100                   return &change;
00101                 }

virtual G4double ZStepLimiter::AlongStepGetPhysicalInteractionLength ( const G4Track &  track,
G4double  previousStepSize,
G4double  currentMinimumStep,
G4double &  proposedSafety,
G4GPILSelection *  selection 
) [inline, virtual]

00106                 { return -1.0; }

virtual G4VParticleChange* ZStepLimiter::AlongStepDoIt ( const G4Track &  track,
const G4Step &  stepData 
) [inline, virtual]

References change.

00109                 { change.Initialize(track);
00110                   return &change;
00111                 }

virtual G4double ZStepLimiter::AtRestGetPhysicalInteractionLength ( const G4Track &  track,
G4ForceCondition *  condition 
) [inline, virtual]

00114                 { return -1.0; }

virtual G4VParticleChange* ZStepLimiter::AtRestDoIt ( const G4Track &  track,
const G4Step &  stepData 
) [inline, virtual]

References change.

00117                 { change.Initialize(track);
00118                   return &change;
00119                 }


Member Data Documentation

G4double ZStepLimiter::maxStep = DBL_MAX [static, private]


The documentation for this class was generated from the following file:
g4beamline