58{
59 G4double aLept1E = aLept0E - aGammaE;
60
64
65 G4double Lept0E = aLept0E / electron_mass_c2 + 1.;
67 G4double GammaE = aGammaE / electron_mass_c2;
69 G4double Lept1E = aLept1E / electron_mass_c2 + 1.;
71
72
73 G4double TMom = std::sqrt(Lept0E2 - 1.) * sintheta;
78
80 12. * std::pow(
fZ, 1. / 3.) * Lept0E * Lept1E * Xsi / (121. * GammaE);
81
83 if(delta < 0.5)
84 {
85 GG = std::log(2. * Lept0E * Lept1E / GammaE) - 2. -
fCoul;
86 }
87 else if(delta < 120)
88 {
89 for(
G4int j = 1; j < 19; ++j)
90 {
91 if(SCRN[0][j] >= delta)
92 {
93 GG = std::log(2 * Lept0E * Lept1E / GammaE) - 2 -
fCoul -
94 (SCRN[1][j - 1] + (delta - SCRN[0][j - 1]) *
95 (SCRN[1][j] - SCRN[1][j - 1]) /
96 (SCRN[0][j] - SCRN[0][j - 1]));
97 break;
98 }
99 }
100 }
101 else
102 {
103 G4double alpha_sc = (111. * std::pow(
fZ, -1. / 3.)) / Xsi;
104 GG = std::log(alpha_sc) - 2. -
fCoul;
105 }
106
107 if(GG < -1.)
108 GG = -1.;
109
110 G4double I_Lept = (Lept0E2 + Lept1E2) * (3. + 2. * GG) -
111 2 * Lept0E * Lept1E * (1. + 4. * u2 * Xsi2 * GG);
113 Lept1E * 4. * GammaE * u * Xsi * (1. - 2 * Xsi) * GG / I_Lept;
115 Lept0E * 4. * GammaE * u * Xsi * (2. * Xsi - 1.) * GG / I_Lept;
117 4. * Lept0E * Lept1E * (1. + GG - 2. * Xsi2 * u2 * GG) / I_Lept;
119 GammaE2 * (1. + 8. * GG * (Xsi - 0.5) * (Xsi - 0.5)) / I_Lept;
120
121 G4double Stokes_SS1 = M_Lept * Stokes_S1 + E_Lept * Stokes_S3;
122 G4double Stokes_SS2 = M_Lept * Stokes_S2;
123 G4double Stokes_SS3 = (M_Lept + P_Lept) * Stokes_S3 + F_Lept * Stokes_S1;
124
125 fFinalLeptonPolarization.
setX(Stokes_SS1);
126 fFinalLeptonPolarization.
setY(Stokes_SS2);
127 fFinalLeptonPolarization.
setZ(Stokes_SS3);
128
129 if(fFinalLeptonPolarization.
mag2() > 1.)
130 {
132 ed << " WARNING in pol-brem fFinalLeptonPolarization \n";
133 ed << "\t" << fFinalLeptonPolarization << "\t GG\t" << GG << "\t delta\t"
134 << delta;
135 G4Exception(
"G4PolarizedBremsstrahlungXS::Initialize",
"pol014",
137 fFinalLeptonPolarization.
setX(0);
138 fFinalLeptonPolarization.
setY(0);
139 fFinalLeptonPolarization.
setZ(Stokes_SS3);
140 if(Stokes_SS3 > 1)
141 fFinalLeptonPolarization.
setZ(1);
142 }
143
144 G4double I_Gamma = (Lept0E2 + Lept1E2) * (3. + 2. * GG) -
145 2. * Lept0E * Lept1E * (1. + 4. * u2 * Xsi2 * GG);
146 G4double D_Gamma = 8. * Lept0E * Lept1E * u2 * Xsi2 * GG / I_Gamma;
148 ((Lept0E + Lept1E) * (3. + 2. * GG) -
149 2. * Lept1E * (1. + 4. * u2 * Xsi2 * GG)) /
150 I_Gamma;
152 4. * GammaE * Lept1E * Xsi * u * (2. * Xsi - 1.) * GG / I_Gamma;
153
156 G4double Stokes_P3 = (Stokes_S3 * L_Gamma + Stokes_S1 * T_Gamma);
157
159
160 fFinalGammaPolarization.
setX(Stokes_P1);
161 fFinalGammaPolarization.
setY(Stokes_P2);
162 fFinalGammaPolarization.
setZ(Stokes_P3);
163
164 if(fFinalGammaPolarization.
mag2() > 1.)
165 {
167 ed << " WARNING in pol-brem fFinalGammaPolarization \n";
168 ed << "\t" << fFinalGammaPolarization << "\t GG\t" << GG << "\t delta\t"
169 << delta;
170 G4Exception(
"G4PolarizedBremsstrahlungXS::Initialize",
"pol015",
172 }
173}
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription