84 aPrim.
Init(aProjectileA, aProjectileZ);
88 aTarg.
Init(aTargetA, aTargetZ);
92 G4int particlesFromProjectile = 0;
93 G4int chargedFromProjectile = 0;
101 while(0==particlesFromProjectile)
109 while(x*x + y*y > 1);
110 impactParameter = std::sqrt(x*x+y*y)*
111 (targetOuterRadius+projectileOuterRadius);
113 area = pi*(targetOuterRadius+projectileOuterRadius)*
114 (targetOuterRadius+projectileOuterRadius);
115 G4double projectileHorizon = impactParameter-targetOuterRadius;
119 if(projectileHorizon > empirical*projectileOuterRadius) {
continue; }
131 ++particlesFromProjectile;
134 ++chargedFromProjectile;
142 G4double targetHorizon = impactParameter-projectileOuterRadius;
143 G4int chargedFromTarget = 0;
144 G4int particlesFromTarget = 0;
152 ++particlesFromTarget;
167 G4LorentzVector fragment4Momentum(momentum*w, projTotEnergy*w + targetMass);
170 G4Fragment anInitialState(aTargetA+particlesFromProjectile,
171 aTargetZ+chargedFromProjectile,
175 + particlesFromTarget,
176 chargedFromProjectile
177 + chargedFromTarget);
178 anInitialState.
SetNumberOfHoles(particlesFromProjectile+particlesFromTarget,
179 chargedFromProjectile + chargedFromTarget);
190 if(particlesFromProjectile < aProjectileA)
192 G4LorentzVector residual4Momentum(momentum*(1.0-w), projTotEnergy*(1.0-w));
194 G4Fragment initialState2(aProjectileA-particlesFromProjectile,
195 aProjectileZ-chargedFromProjectile,
199 G4int pinit = (aProjectileA-particlesFromProjectile)/2;
200 G4int cinit = (aProjectileZ-chargedFromProjectile)/2;
207 theExcitationResult = theHandler->
BreakItUp(initialState2);
211 std::size_t nexc = (
nullptr != theExcitationResult) ?
212 theExcitationResult->size() : 0;
213 std::size_t npre = (
nullptr != thePreCompoundResult) ?
214 thePreCompoundResult->size() : 0;
216 for(std::size_t k=0; k<nexc; ++k) {
224 for(std::size_t k=0; k<npre; ++k) {
233 delete thePreCompoundResult;
234 delete theExcitationResult;
G4double GetPDGCharge() const
G4int GetBaryonNumber() const