65 G4bool IsScatProjToProjCase,
91 IsScatProjToProjCase);
96 if (IsScatProjToProjCase) {
104 projectileKinEnergy = Emin*std::pow(Emax/Emin,
G4UniformRand());
112 G4double used_diffCS=
lastCS*std::log(Emax/Emin)/projectileKinEnergy;
113 G4double needed_diffCS=adjointPrimKinEnergy/projectileKinEnergy;
116 new_weight*=needed_diffCS/used_diffCS;
132 G4double projectileTotalEnergy = projectileM0+projectileKinEnergy;
133 G4double projectileP2 = projectileTotalEnergy*projectileTotalEnergy - projectileM0*projectileM0;
140 if (IsScatProjToProjCase) {
143 G4double companionTotalEnergy =companionM0+ projectileKinEnergy-adjointPrimKinEnergy;
144 G4double companionP2 = companionTotalEnergy*companionTotalEnergy - companionM0*companionM0;
149 G4double P_parallel = (adjointPrimP*adjointPrimP + projectileP2 - companionP2)/(2.*adjointPrimP);
150 G4double P_perp = std::sqrt( projectileP2 - P_parallel*P_parallel);
154 projectileMomentum.
rotateUz(dir_parallel);
158 if (!IsScatProjToProjCase ){
186 if (kinEnergyProj>Emin_proj && kinEnergyProj<=Emax_proj){
200 G4double x = kinEnergyProd/kinEnergyProj;
205 G4double gg = (2.0*gam - 1.0)/gamma2;
208 G4double dCS = fac*( 1.-gg + ((1.0 - gg*
x)/(x*x))
209 + ((1.0 - gg*y)/(y*
y)))/(beta2*(gam-1));
210 return dCS/kinEnergyProj;