User Limits
General Concepts
The user can define artificial limits affecting to the Geant4
tracking.
G4UserLimits(G4double uStepMax = DBL_MAX,
G4double uTrakMax = DBL_MAX,
G4double uTimeMax = DBL_MAX,
G4double uEkinMin = 0.,
G4double uRangMin = 0. );
uStepMax
Maximum step length
uTrakMax
Maximum total track length
uTimeMax
Maximum global time for a track
uEkinMin
Minimum remaining kinetic energy for a track
uRangMin
Minimum remaining range for a track
Note that uStepMax is affecting to each step, while all
other limits are affecting to a track.
The user can set G4UserLimits to logical volume and/or
to a region. User limits assigned to logical volume do not
propagate to daughter volumes, while User limits assigned to region
propagate to daughter volumes unless daughters belong to another
region. If both logical volume and associated region have user
limits, those of logical volume win.
Processes co-working with G4UserLimits
In addition to instantiating G4UserLimits and setting it
to logical volume or region, the user has to assign the following
process(es) to particle types he/she wants to affect. If none of
these processes is assigned, that kind of particle is not affected
by G4UserLimits.
Limitation to step (uStepMax)
G4StepLimiter process must be defined to affected
particle types. This process limits a step, but it does not kill a
track.
Limitations to track (uTrakMax, uTimeMax, uEkinMin,
uRangMin)
G4UserSpecialCuts process must be defined to affected
particle types. This process limits a step and kills the track when
the track comes to one of these limits. Step limitation occurs only
for the final step.
Example of G4UserLimits can be found in
examples/novice/N02 : see DetectorConstruction and
PhysicsList.