181{
182
183
184
185
186
189
190
191
192
193
194
205
206
207
208
209
211 {
213 G4cout <<
"########################################"
214 <<"########################################"
217 G4cout <<
"Initial projectile A=" <<AP
218 <<", Z=" <<ZP
220 G4cout <<
"Initial target A=" <<AT
221 <<", Z=" <<ZT
223 G4cout <<
"Projectile momentum and Energy/nuc = " <<pP <<
" ," <<E <<
G4endl;
224 }
225
226
227
228
229
235
236
237
238
239
240
241
244 GetCrossSectionForProjectile(AP, ZP, AT, ZT, b, bmin);
246 GetCrossSectionForTarget(AP, ZP, AT, ZT, b, bmin);
247
248 G4double totCrossSectionP = (*crossSectionP)[0]+(*crossSectionP)[1];
249 G4double totCrossSectionT = (*crossSectionT)[0]+(*crossSectionT)[1];
250
251
252
253
254
256 totCrossSectionP / (totCrossSectionP + totCrossSectionT))
257 {
258
259
260
261
262
263
264
265
266 mass = MP;
268 GetWilsonProbabilityForProtonDissociation (AP, ZP))
269 {
271 G4cout <<
"Projectile underwent EM dissociation producing a proton"
276 }
277 else
278 {
280 G4cout <<
"Projectile underwent EM dissociation producing a neutron"
285 }
287 {
291 }
292 else
293 {
297 }
298
299
300
301
302
303
306 }
307 else
308 {
309
310
311
312
313
314
315
316 mass = MT;
318 GetWilsonProbabilityForProtonDissociation (AT, ZT))
319 {
321 G4cout <<
"Target underwent EM dissociation producing a proton"
326 }
327 else
328 {
330 G4cout <<
"Target underwent EM dissociation producing a neutron"
335 }
337 {
341 }
342 else
343 {
347 }
348
349
350
351
352
353
360 {
363 }
364 }
365
366
367
368
369
370
371
372
376 G4double pp = (e+mass1+mass2)*(e+mass1-mass2)*
377 (e-mass1+mass2)*(e-mass1-mass2)/(4.0*e*e);
378 if (pp < 0.0)
379 {
381
382
383
384
385
386
387
388
389
390 }
391 else
394 G4double sintheta = std::sqrt((1.0 - costheta)*(1.0 + costheta));
396 G4ThreeVector direction(sintheta*std::cos(phi),sintheta*std::sin(phi),costheta);
403
404
405
406
407
410 {
413 }
414
419 {
420 G4cout <<
"Dynamic properties of the prefragment:" <<
G4endl;
423 G4cout <<
"Nuclear properties of the prefragment:" <<
G4endl;
425 }
427 theExcitationHandler->
BreakItUp(*theFragment);
428 delete theFragment;
429 theFragment = NULL;
430
431 G4ReactionProductVector::iterator iter;
432 for (iter = products->begin(); iter != products->end(); ++iter)
433 {
436 (*iter)->GetTotalEnergy(), (*iter)->GetMomentum());
438 }
439
441 G4cout <<
"########################################"
442 <<"########################################"
444
446}
std::vector< G4ReactionProduct * > G4ReactionProductVector
CLHEP::Hep3Vector G4ThreeVector
G4DLLIMPORT std::ostream G4cout
HepLorentzVector & boost(double, double, double)
Hep3Vector findBoostToCM() const
void DumpInfo(G4int mode=0) const
G4LorentzVector Get4Momentum() const
void Set4Momentum(const G4LorentzVector &momentum)
G4double GetClosestApproach(const G4double, const G4double, G4double, G4double, G4double)
G4ReactionProductVector * BreakItUp(const G4Fragment &theInitialState) const
void SetStatusChange(G4HadFinalStateStatus aS)
void AddSecondary(G4DynamicParticle *aP)
const G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
const G4LorentzVector & Get4Momentum() const
G4double GetTotalEnergy() const
G4HadFinalState theParticleChange
static G4Neutron * NeutronDefinition()
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double GetPDGMass() const
G4double GetPDGCharge() const
G4int GetBaryonNumber() const
static G4ParticleTable * GetParticleTable()
virtual G4double GetLowEdgeEnergy(size_t binNumber) const
static G4Proton * ProtonDefinition()