63 fWeightSurvival(wsurvival),
65 fSourceImportance(isource),
68 fGhostNavigator(0), fNavigatorID(-1), fFieldTrack(
'0')
72 G4Exception(
"G4WeightCutOffProcess::G4WeightCutOffProcess()",
74 "Failed to allocate G4ParticleChange !");
97 delete fParticleChange;
113 fGhostWorldName = parallelWorldName;
115 fGhostNavigator = fTransportationManager->
GetNavigator(fGhostWorld);
125 fGhostWorldName = parallelWorld->
GetName();
126 fGhostWorld = parallelWorld;
127 fGhostNavigator = fTransportationManager->
GetNavigator(fGhostWorld);
148 G4Exception(
"G4WeightCutOffProcess::StartTracking",
150 "G4WeightCutOffProcess is used for tracking without having a parallel world assigned");
166 fNewGhostTouchable = fOldGhostTouchable;
218 fNewGhostTouchable = fOldGhostTouchable;
243 if (w<R*fWeightLimit)
273 if (w<R*fWeightLimit)
288 return fParticleChange;
309 if (previousStepSize > 0.)
310 { fGhostSafety -= previousStepSize; }
313 if (fGhostSafety < 0.) fGhostSafety = 0.0;
318 if (currentMinimumStep <= fGhostSafety && currentMinimumStep > 0.)
321 returnedStep = currentMinimumStep;
323 proposedSafety = fGhostSafety - currentMinimumStep;
332 = fPathFinder->
ComputeStep(fFieldTrack,currentMinimumStep,fNavigatorID,
340 fGhostSafety = fGhostNavigator->
ComputeSafety(endTrack.GetPosition());
346 proposedSafety = fGhostSafety;
352 returnedStep *= (1.0 + 1.0e-9);
397 void G4WeightCutOffProcess::CopyStep(
const G4Step & step)