49{
50
51 G4double Gfactor = aLept0E / CLHEP::electron_mass_c2 + 1.;
52 G4double Gfactor_2 = Gfactor * Gfactor;
53
54 G4double beta = std::sqrt(1. - 1. / (Gfactor_2));
55
57
58 G4double Lept0E = aLept0E / CLHEP::electron_mass_c2 + 1.;
60 G4double GammaE = aGammaE / CLHEP::electron_mass_c2;
61
62 G4double cosTheta = std::sqrt(1. - sinTheta * sinTheta);
63
65 1.0 +
66 (1. / GammaE) * ((2. / (GammaE * Lept0E * (1 - beta * cosTheta))) - 1.);
67
69 (Lept0E / (Lept0E + 1)) *
70 (2.0 / (GammaE * Lept0E) + beta * cosTheta +
71 (2.0 / ((GammaE * Lept0E2) * (1.0 - beta * cosTheta)))) /
72 I_Lepton0;
73
74 G4double B_Lepton0 = (Lept0E / (Lept0E + 1.0)) * beta * sinTheta *
75 (2.0 / (GammaE * Lept0E * (1 - beta * cosTheta)) - 1.0) /
76 I_Lepton0;
77
78 fFinalElectronPolarization.
setX(Stokes_P3 * B_Lepton0);
79 fFinalElectronPolarization.
setY(0.);
80 fFinalElectronPolarization.
setZ(Stokes_P3 * A_Lepton0);
81
82 if((fFinalElectronPolarization.
x() * fFinalElectronPolarization.
x() +
83 fFinalElectronPolarization.
y() * fFinalElectronPolarization.
y() +
84 fFinalElectronPolarization.
z() * fFinalElectronPolarization.
z()) > 1.)
85
86 {
88 ed << "Warning: PhotoelectricEffect Problem in pol-transfer photon to "
89 "lepton:Px2 + Py2 + Pz2 > 1\n";
90 ed << "Polarization transfer forced to be total and similar as incoming "
91 "Photo\n";
93 ed);
94 fFinalElectronPolarization = beamPol;
95 }
96}
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription