95 const G4Track& track = *
step->GetTrack();
96 const G4StepPoint& preStepPoint = *
step->GetPreStepPoint();
97 const G4StepPoint& postStepPoint = *
step->GetPostStepPoint();
110 G4ThreeVector preStepPointPosition = preStepPoint.GetPosition();
111 G4ThreeVector trackMomentum = track.GetMomentum();
123 G4TouchableHandle theTouchable = preStepPoint.GetTouchableHandle();
124 G4ThreeVector worldDirection = preStepPoint.GetMomentumDirection();
125 G4ThreeVector localDirection = theTouchable->GetHistory()->GetTopTransform().TransformAxis(worldDirection);
127 if (localDirection.z() < 0.) {
134 if (localDirection.x() < 0. && localDirection.y() > 0.) {
136 }
else if (localDirection.x() < 0. && localDirection.y() < 0.) {
138 }
else if (localDirection.x() > 0. && localDirection.y() < 0.) {
140 }
else if (localDirection.x() > 0. && localDirection.y() > 0.) {
142 }
else if (localDirection.x() < 0. && localDirection.y() == 0.) {
144 }
else if (localDirection.x() > 0. && localDirection.y() == 0.) {
146 }
else if (localDirection.x() == 0. && localDirection.y() > 0.) {
148 }
else if (localDirection.x() == 0. && localDirection.y() < 0.) {
152 G4ThreeVector localINPosition = theTouchable->GetHistory()->GetTopTransform().TransformPoint(preStepPointPosition);
166 if (track.GetNextVolume() != track.GetVolume() || track.GetTrackStatus() >= fStopAndKill) {
168 G4ThreeVector postStepPointPosition = postStepPoint.GetPosition();
173 G4ThreeVector localOUTPosition = preStepPoint.GetTouchableHandle()->GetHistory()->GetTopTransform().TransformPoint(
174 postStepPointPosition);