62 G4double cosT = 1. - (1. / eps - 1.) / X;
65 else if(cosT < -1. - 1.e-8)
70 if(sinT2 > 1. + 1.e-8)
78 DefineCoefficients(pol0, pol1);
79 G4double diffXSFactor = re2 / (4. * X);
82 fUnpXS = (eps2 + 1. - eps * sinT2) / (2. * eps);
84 fPolXS = -sinT2 * pol0.
x() + (1. - eps) * sinT * polzx +
85 ((eps2 - 1.) / eps) * cosT * polzz;
88 fPhi0 = fUnpXS + fPolXS;
93 G4double phi21 = -sinT2 + 0.5 * (cos2T + 3.) * pol0.
x() -
94 ((1. - eps) / eps) * sinT * polzx;
96 G4double phi22 = cosT * pol0.
y() + ((1. - eps) / (2. * eps)) * sinT * polzy;
97 G4double phi23 = ((eps2 + 1.) / eps) * cosT * pol0.
z() -
98 ((1. - eps) / eps) * (eps * cosT2 + 1.) * pol1.
z();
99 phi23 += 0.5 * (1. - eps) * sin2T * pol1.
x();
100 phi23 += (eps - 1.) * (-sinT2 * polxz + sinT * polyy - 0.5 * sin2T * polxx);
106 G4double phi32 = -sinT2 * polxy + ((1. - eps) / eps) * sinT * polyz +
107 0.5 * (cos2T + 3.) * pol1.
y();
115 if((1. - eps) > 1.e-12)
117 G4double helpVar = std::sqrt(eps2 - 2. * cosT * eps + 1.);
119 phi31 = (1. - eps) * (1. + cosT) * sinT * pol0.
z();
121 (-eps * cosT3 + eps * cosT2 + (eps - 2.) * cosT + eps) * pol1.
x();
122 phi31 += -(eps * cosT2 - eps * cosT + cosT + 1.) * sinT * pol1.
z();
123 phi31 /= 2. * helpVar;
125 phi31add = -eps *
sqr(1. - cosT) * (1. + cosT) * polxx;
126 phi31add += (1. - eps) * sinT2 * polyy;
127 phi31add += -(-eps2 + cosT * (cosT * eps - eps + 1.) * eps + eps - 1.) *
129 phi31add /= 2. * helpVar;
131 phi33 = ((1. - eps) / eps) *
132 (-eps * cosT2 + eps * (eps + 1.) * cosT - 1.) * pol0.
z();
133 phi33 += -(eps * cosT2 + (1. - eps) * eps * cosT + 1.) * sinT * pol1.
x();
135 -(-eps2 * cosT3 + eps * (eps2 - eps + 1.) * cosT2 - cosT + eps2) *
137 phi33 /= -2. * helpVar;
139 phi33add = (eps * (eps - cosT - 1.) * cosT + 1.) * sinT * polxx;
140 phi33add += -(-eps2 + cosT * eps + eps - 1.) * sinT2 * polxz;
141 phi33add += (eps - 1.) * (cosT - eps) * sinT * polyy;
142 phi33add /= -2. * helpVar;
147 (X - 1.) * std::sqrt(1. - eps) * pol1.
x() / std::sqrt(2. * X);
148 phi31add = -(-X * X * pol1.
z() - 2. * X * (2. * pol0.
z() - pol1.
z()) -
149 (4. * pol0.
x() + 5.) * pol1.
z()) *
150 (1. - eps) / (4. * X);
153 (X - 1.) * std::sqrt(1. - eps) * pol1.
z() / std::sqrt(2. * X);
154 phi33add = -(X * X - 2. * X + 4. * pol0.
x() + 5.) * (1. - eps) *
157 fPhi3 =
G4ThreeVector(phi31 + phi31add, phi32, phi33 + phi33add);
159 fUnpXS *= diffXSFactor;
160 fPolXS *= diffXSFactor;
161 fPhi0 *= diffXSFactor;
162 fPhi2 *= diffXSFactor;
163 fPhi3 *= diffXSFactor;