63 fWeightWindowAlgorithm(aWeightWindowAlgorithm),
64 fWeightWindowStore(aWWStore),
66 fPlaceOfAction(placeOfAction),
67 fGhostNavigator(0), fNavigatorID(-1), fFieldTrack(
'0')
79 G4Exception(
"G4WeightWindowProcess::G4WeightWindowProcess()",
81 "Failed allocation of G4ParticleChange !");
104 delete fPostStepAction;
105 delete fParticleChange;
122 fGhostWorldName = parallelWorldName;
124 fGhostNavigator = fTransportationManager->
GetNavigator(fGhostWorld);
134 fGhostWorldName = parallelWorld->
GetName();
135 fGhostWorld = parallelWorld;
136 fGhostNavigator = fTransportationManager->
GetNavigator(fGhostWorld);
157 G4Exception(
"G4WeightWindowProcess::StartTracking",
159 "G4WeightWindowProcess is used for tracking without having a parallel world assigned");
175 fNewGhostTouchable = fOldGhostTouchable;
229 fNewGhostTouchable = fOldGhostTouchable;
263 fPostStepAction->
DoIt(aTrack, fParticleChange, nw);
282 fPostStepAction->
DoIt(aTrack, fParticleChange, nw);
286 return fParticleChange;
311 if (previousStepSize > 0.)
312 { fGhostSafety -= previousStepSize; }
315 if (fGhostSafety < 0.) fGhostSafety = 0.0;
320 if (currentMinimumStep <= fGhostSafety && currentMinimumStep > 0.)
323 returnedStep = currentMinimumStep;
325 proposedSafety = fGhostSafety - currentMinimumStep;
334 = fPathFinder->
ComputeStep(fFieldTrack,currentMinimumStep,fNavigatorID,
342 fGhostSafety = fGhostNavigator->
ComputeSafety(endTrack.GetPosition());
348 proposedSafety = fGhostSafety;
354 returnedStep *= (1.0 + 1.0e-9);
398 void G4WeightWindowProcess::CopyStep(
const G4Step & step)