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().

00070                        : G4VProcess("ZStepLimiter",fUserDefined), change() {
00071             G4ParticleTable::G4PTblDicIterator *theParticleIterator =
00072                         G4ParticleTable::GetParticleTable()->GetIterator();
00073             theParticleIterator->reset();
00074             while((*theParticleIterator)()) {
00075                 G4ParticleDefinition *pd = theParticleIterator->value();
00076                 G4ProcessManager *pmgr = pd->GetProcessManager();
00077                 if(!pmgr) {
00078                         printf("ZStepLimiter: particle '%s' has no ProcessManager!\n",
00079                                 pd->GetParticleName().c_str());
00080                         continue;
00081                 }
00082                 pmgr->AddProcess(this,-1,-1,3);
00083                 pmgr->SetProcessOrdering(this,idxPostStep);
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                   double limit = maxStep-0.010*mm;
00096                   if(limit < 0.0) limit = DBL_MIN;
00097                   return limit;
00098                 }

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

References change.

00101                 { change.Initialize(track);
00102                   return &change;
00103                 }

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

00108                 { return -1.0; }

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

References change.

00111                 { change.Initialize(track);
00112                   return &change;
00113                 }

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

00116                 { return -1.0; }

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

References change.

00119                 { change.Initialize(track);
00120                   return &change;
00121                 }


Member Data Documentation

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


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