69 G4cout <<
"\nPar01PiModel::ModelTrigger() called:" << G4endl;
70 G4cout <<
"--------------------------------" << G4endl;
71 G4cout <<
"(particle is a " << fastTrack.GetPrimaryTrack()->
72 GetDefinition()->GetParticleName() <<
" )\n" << G4endl;
77 G4cout <<
" Track position: " <<
78 fastTrack.GetPrimaryTrack()->GetPosition() <<
"(global coord.)" <<
79 fastTrack.GetPrimaryTrackLocalPosition() <<
"(in envelope coord.)"
83 G4cout <<
" Track direction:" <<
84 fastTrack.GetPrimaryTrack()->GetMomentum().unit() <<
86 fastTrack.GetPrimaryTrackLocalDirection() <<
"(in envelope coord.)" <<
107 G4cout <<
" Pion `model' applied\n" << G4endl;
116 distance = fastTrack.GetEnvelopeSolid()->
117 DistanceToOut(fastTrack.GetPrimaryTrackLocalPosition(),
118 fastTrack.GetPrimaryTrackLocalDirection());
119 position = fastTrack.GetPrimaryTrackLocalPosition() +
120 distance*fastTrack.GetPrimaryTrackLocalDirection();
123 fastStep.ProposePrimaryTrackFinalPosition(
position);
130 fastStep.SetNumberOfSecondaryTracks(1);
136 G4ParticleMomentum direction(fastTrack.GetPrimaryTrackLocalDirection());
137 direction.setZ(direction.z()*0.5);
138 direction.setY(direction.y()+direction.z()*0.1);
139 direction = direction.unit();
145 fastTrack.GetPrimaryTrack()->
146 GetKineticEnergy()/2.);
149 Dist = fastTrack.GetEnvelopeSolid()->
150 DistanceToOut(fastTrack.GetPrimaryTrackLocalPosition(),
153 posi = fastTrack.GetPrimaryTrackLocalPosition() + Dist*direction;
158 fastStep.CreateSecondaryTrack(dynamique, posi,
159 fastTrack.GetPrimaryTrack()->GetGlobalTime());