62 {
63
64 if (aStep->GetTrack()->GetParentID()) {
65 aStep->GetTrack()->SetTrackStatus(fStopAndKill);
66 return;
67 }
68
69
70 G4StepPoint * g4PreStep = aStep->GetPreStepPoint();
71 G4ThreeVector g4Momentum = g4PreStep->GetMomentum();
72 const G4ThreeVector& g4Position = g4PreStep->GetPosition();
73
74 G4Track* g4Track = aStep->GetTrack();
75 const G4DynamicParticle* g4DynParticle = g4Track->GetDynamicParticle();
76
77
78 const G4TouchableHistory* touchHist =
79 static_cast<const G4TouchableHistory*>(aStep->GetPreStepPoint()->GetTouchable());
80
82
83 const G4LogicalVolume *lv= touchHist->GetVolume()->GetLogicalVolume();
84
86 const G4Material *
mat = lv->GetMaterial();
87
88 double steplength = aStep->GetStepLength();
89
90 double X0 =
mat->GetRadlen();
91
93 g4DynParticle->GetPDGcode(),
94 g4DynParticle->GetCharge(),
95 steplength, X0);
96 }
97 else {
99 description <<
"GeantFollowerMS::SteppingAction NULL G4LogicalVolume pointer.";
100 G4Exception(
"GeantFollowerMS",
"GeantFollowerMS3", FatalException,
description);
101 }
102 }
103 else {
105 description <<
"GeantFollowerMS::SteppingAction NULL G4TouchableHistory pointer.";
106 G4Exception(
"GeantFollowerMS",
"GeantFollowerMS4", FatalException,
description);
107 }
108 }