93 aPrim.
Init(aProjectileA, aProjectileZ);
94 G4double projectileOuterRadius = aPrim.GetOuterRadius();
97 aTarg.
Init(aTargetA, aTargetZ);
101 G4int particlesFromProjectile = 0;
102 G4int chargedFromProjectile = 0;
110 while(0==particlesFromProjectile)
118 while(x*x + y*y > 1);
119 impactParameter = std::sqrt(x*x+y*y)*(targetOuterRadius+projectileOuterRadius);
121 area =
pi*(targetOuterRadius+projectileOuterRadius)*
122 (targetOuterRadius+projectileOuterRadius);
123 G4double projectileHorizon = impactParameter-targetOuterRadius;
127 if(projectileHorizon > empirical*projectileOuterRadius) {
continue; }
134 while((pNucleon = aPrim.GetNextNucleon()))
139 ++particlesFromProjectile;
142 ++chargedFromProjectile;
150 G4double targetHorizon = impactParameter-projectileOuterRadius;
151 G4int chargedFromTarget = 0;
152 G4int particlesFromTarget = 0;
160 ++particlesFromTarget;
175 G4LorentzVector fragment4Momentum(momentum*w, projTotEnergy*w + targetMass);
178 G4Fragment anInitialState(aTargetA+particlesFromProjectile,
179 aTargetZ+chargedFromProjectile,
184 + particlesFromTarget,
185 chargedFromProjectile
186 + chargedFromTarget);
187 anInitialState.
SetNumberOfHoles(particlesFromProjectile+particlesFromTarget,
188 chargedFromProjectile + chargedFromTarget);
198 if(particlesFromProjectile < aProjectileA)
200 G4LorentzVector residual4Momentum(momentum*(1.0-w), projTotEnergy*(1.0-w));
202 G4Fragment initialState2(aProjectileA-particlesFromProjectile,
203 aProjectileZ-chargedFromProjectile,
207 G4int pinit = (aProjectileA-particlesFromProjectile)/2;
208 G4int cinit = (aProjectileZ-chargedFromProjectile)/2;
220 if(theExcitationResult) { nexc = theExcitationResult->size(); }
221 if(thePreCompoundResult) { npre = thePreCompoundResult->size();}
241 delete thePreCompoundResult;
242 delete theExcitationResult;