54{
55 G4double aLept1E = aGammaE - aLept0E;
56
58
59 G4double Lept0E = aLept0E / CLHEP::electron_mass_c2 + 1.;
61 G4double GammaE = aGammaE / CLHEP::electron_mass_c2;
62 G4double Lept1E = aLept1E / CLHEP::electron_mass_c2 - 1.;
64
65
66 G4double TMom = std::sqrt(Lept0E2 - 1.) * sintheta;
71
73 12. * std::pow(
fZ, 1. / 3.) * Lept0E * Lept1E * Xsi / (121. * GammaE);
75
76 if(delta < 0.5)
77 {
78 GG = std::log(2. * Lept0E * Lept1E / GammaE) - 2. -
fCoul;
79 }
80 else if(delta < 120.)
81 {
82 for(
G4int j = 1; j < 19; ++j)
83 {
84 if(SCRN[0][j] >= delta)
85 {
86 GG = std::log(2. * Lept0E * Lept1E / GammaE) - 2. -
fCoul -
87 (SCRN[1][j - 1] + (delta - SCRN[0][j - 1]) *
88 (SCRN[1][j] - SCRN[1][j - 1]) /
89 (SCRN[0][j] - SCRN[0][j - 1]));
90 break;
91 }
92 }
93 }
94 else
95 {
96 G4double alpha_sc = (111. * std::pow(
fZ, -1. / 3.)) / Xsi;
97 GG = std::log(alpha_sc) - 2. -
fCoul;
98 }
99
100 if(GG < -1.)
101 GG = -1.;
102
103 G4double I_Lepton = (Lept0E2 + Lept1E2) * (3 + 2 * GG) +
104 2. * Lept0E * Lept1E * (1. + 4. * u2 * Xsi2 * GG);
105
107 ((Lept0E - Lept1E) * (3. + 2. * GG) +
108 2 * Lept1E * (1. + 4. * u2 * Xsi2 * GG)) /
109 I_Lepton;
110
112 4. * GammaE * Lept1E * Xsi * u * (1. - 2. * Xsi) * GG / I_Lepton;
113
114 G4double Stokes_S1 = (Stokes_P3 * T_Lepton1);
116 G4double Stokes_S3 = (Stokes_P3 * L_Lepton1);
117
118 fFinalElectronPolarization.
setX(Stokes_S1);
119 fFinalElectronPolarization.
setY(Stokes_S2);
120 fFinalElectronPolarization.
setZ(Stokes_S3);
121
122 if(fFinalElectronPolarization.
mag2() > 1.)
123 {
125 ed << "\t" << fFinalElectronPolarization << "\t GG\t" << GG << "\t delta\t"
126 << delta << "\n";
127 G4Exception(
"G4PolarizedGammaConversionXS::Initialize",
"pol022",
129 fFinalElectronPolarization.
setX(0.);
130 fFinalElectronPolarization.
setY(0.);
131 fFinalElectronPolarization.
setZ(Stokes_S3);
132 if(Stokes_S3 > 1.)
133 fFinalElectronPolarization.
setZ(1.);
134 }
135
137 ((Lept1E - Lept0E) * (3. + 2. * GG) +
138 2 * Lept0E * (1. + 4. * u2 * Xsi2 * GG)) /
139 I_Lepton;
140
142 4. * GammaE * Lept0E * Xsi * u * (1. - 2. * Xsi) * GG / I_Lepton;
143
144 G4double Stokes_SS1 = (Stokes_P3 * T_Lepton2);
146 G4double Stokes_SS3 = (Stokes_P3 * L_Lepton2);
147
149
150 fFinalPositronPolarization.
setX(Stokes_SS1);
151 fFinalPositronPolarization.
setY(Stokes_SS2);
152 fFinalPositronPolarization.
setZ(Stokes_SS3);
153
154 if(fFinalPositronPolarization.
mag2() > 1.)
155 {
157 ed << "\t" << fFinalPositronPolarization << "\t GG\t" << GG << "\t delta\t"
158 << delta << "\n";
159 G4Exception(
"G4PolarizedGammaConversionXS::Initialize",
"pol023",
161 }
162}
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription