96{
99
103
112 G4cout <<
"G4LFission:ApplyYourself: incident particle:" <<
G4endl;
120 }
121
123 G4cout <<
"G4LFission:ApplyYourself: material:" <<
G4endl;
126 G4cout <<
"atomic mass " <<
128 }
131 E0 = std::sqrt(std::abs(E02));
132 if (E02 < 0) E0 = -E0;
133 Q = Q + Z;
139 }
140 Px = -Px;
141 Py = -Py;
142 Pz = -Pz;
143
145 if (e1 < 1.) e1 = 1.;
146
147
148 G4double avern = 2.569 + 0.559*std::log(e1);
150
151 if (!photofission) avern = 2.569 + 0.900*std::log(e1);
152
153
154 G4double averg = 9.500 + 0.600*std::log(e1);
155
156 G4double ran = G4RandGauss::shoot();
157
159 ran = G4RandGauss::shoot();
160
161 G4int ng =
static_cast<G4int>(averg + ran*3. + 0.5);
163 if (ng < 1) ng = 1;
166
167
170 for (i = 1; i <=
nn; i++) {
173 for (j = 1; j <= 10; j++) {
174 if (ran < spneut[j-1]) goto label12;
175 }
176 j = 10;
177 label12:
180 exn = exn + ekin;
183 ekin*MeV);
185 }
186
187
189 for (i = 1; i <= ng; i++) {
191 G4double ekin = -0.87*std::log(ran);
192 exg = exg + ekin;
195 ekin*MeV);
197 }
198
199
200
202
203 for (i = 1; i <=
nn + ng; i++) {
207 G4double sint = std::sqrt(std::abs(1. - cost*cost));
209
210
216
217
220
222 a = (a/(E + E0) - e)/E0;
223
224 px = px + a*Px;
225 py = py + a*Py;
226 pz = pz + a*Pz;
227 G4double p2 = px*px + py*py + pz*pz;
229 e = std::sqrt(e0*e0 + p2);
232 py/pp,
233 pz/pp));
235 }
236
238}
G4ThreeVector G4ParticleMomentum
G4DLLIMPORT std::ostream G4cout
void SetMomentumDirection(const G4ThreeVector &aDirection)
G4ParticleDefinition * GetDefinition() const
G4double GetTotalEnergy() const
G4double GetTotalMomentum() const
void SetKineticEnergy(G4double aEnergy)
static G4Gamma * GammaDefinition()
void SetStatusChange(G4HadFinalStateStatus aS)
void AddSecondary(G4DynamicParticle *aP)
G4HadSecondary * GetSecondary(size_t i)
G4double GetTotalMomentum() const
const G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
const G4LorentzVector & Get4Momentum() const
G4double GetTotalEnergy() const
G4DynamicParticle * GetParticle()
static G4double Atomas(const G4double A, const G4double Z)
static G4Neutron * NeutronDefinition()
G4double GetPDGMass() const
G4double GetPDGCharge() const