64 G4bool IsScatProjToProjCase,
86 IsScatProjToProjCase);
92 G4double gammaE2 = adjointPrimKinEnergy;
93 if (!IsScatProjToProjCase) gammaE2 = gammaE1 - adjointPrimKinEnergy;
104 if (!IsScatProjToProjCase) {
106 cos_th = (gammaE1 - gammaE2*cos_th)/p_elec;
117 else sin_th = std::sqrt(1.-cos_th*cos_th);
129 gammaMomentum1.
rotateUz(dir_parallel);
137 adjointPrimKinEnergy,
139 IsScatProjToProjCase);
141 if (!IsScatProjToProjCase){
156 G4bool IsScatProjToProjCase,
176 if (!IsScatProjToProjCase){
180 if (Emin>=Emax)
return;
182 G4double f2=(Emax-adjointPrimKinEnergy)/Emax/f1;
183 gammaE1=adjointPrimKinEnergy/(1.-f1*std::pow(f2,
G4UniformRand()));;
184 gammaE2=gammaE1-adjointPrimKinEnergy;
185 diffCSUsed= diffCSUsed*(1.+2.*std::log(1.+
electron_mass_c2/adjointPrimKinEnergy))*adjointPrimKinEnergy/gammaE1/gammaE2;
191 if (Emin>=Emax)
return;
192 gammaE2 =adjointPrimKinEnergy;
194 diffCSUsed= diffCSUsed/gammaE1;
218 w_corr*=diffCS/diffCSUsed;
231 if (!IsScatProjToProjCase) {
233 cos_th = (gammaE1 - gammaE2*cos_th)/p_elec;
244 else sin_th = std::sqrt(1.-cos_th*cos_th);
256 gammaMomentum1.
rotateUz(dir_parallel);
261 if (!IsScatProjToProjCase){
285 G4double gamEnergy1 = gamEnergy0 - kinEnergyElec;
311 G4double gamEnergy1_max = gamEnergy0;
312 G4double gamEnergy1_min = gamEnergy0/one_plus_two_epsi;
313 if (gamEnergy1 >gamEnergy1_max || gamEnergy1<gamEnergy1_min) {
323 G4double one_plus_two_epsi_2=one_plus_two_epsi*one_plus_two_epsi;
327 CS+=4./epsilon +0.5*(1.-1./one_plus_two_epsi_2);
337 G4double term1 =1.+ 1./epsilon -1/epsilon1;
338 G4double dCS_dE1= 1./v +v + term1*term1 -1.;
339 dCS_dE1 *=1./epsilon/gamEnergy0;
379 G4bool IsScatProjToProjCase)
388 if (!IsScatProjToProjCase ){
391 if (Emax_proj>Emin_proj ){
392 Cross= 0.1*std::log((Emax_proj-
float (primEnergy))*Emin_proj/Emax_proj/(Emin_proj-primEnergy))
399 if (Emax_proj>Emin_proj) {
400 Cross = 0.1*std::log(Emax_proj/Emin_proj);
409 return double(Cross);
415 G4bool IsScatProjToProjCase)