51 G4double Gfactor = aLept0E / CLHEP::electron_mass_c2 + 1.;
52 G4double Gfactor_2 = Gfactor * Gfactor;
54 G4double beta = std::sqrt(1. - 1. / (Gfactor_2));
58 G4double Lept0E = aLept0E / CLHEP::electron_mass_c2 + 1.;
60 G4double GammaE = aGammaE / CLHEP::electron_mass_c2;
62 G4double cosTheta = std::sqrt(1. - sinTheta * sinTheta);
66 (1. / GammaE) * ((2. / (GammaE * Lept0E * (1 - beta * cosTheta))) - 1.);
69 (Lept0E / (Lept0E + 1)) *
70 (2.0 / (GammaE * Lept0E) + beta * cosTheta +
71 (2.0 / ((GammaE * Lept0E2) * (1.0 - beta * cosTheta)))) /
74 G4double B_Lepton0 = (Lept0E / (Lept0E + 1.0)) * beta * sinTheta *
75 (2.0 / (GammaE * Lept0E * (1 - beta * cosTheta)) - 1.0) /
78 fFinalElectronPolarization.
setX(Stokes_P3 * B_Lepton0);
79 fFinalElectronPolarization.
setY(0.);
80 fFinalElectronPolarization.
setZ(Stokes_P3 * A_Lepton0);
82 if((fFinalElectronPolarization.
x() * fFinalElectronPolarization.
x() +
83 fFinalElectronPolarization.
y() * fFinalElectronPolarization.
y() +
84 fFinalElectronPolarization.
z() * fFinalElectronPolarization.
z()) > 1.)
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 "
94 fFinalElectronPolarization = beamPol;
103 ed <<
"ERROR dummy routine G4PolarizedPhotoElectricXS::XSection() "
113 return fFinalElectronPolarization;
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
void Initialize(G4double aGammaE, G4double aLept0E, G4double sintheta, const G4StokesVector &beamPol, const G4StokesVector &, G4int flag=0) override
G4PolarizedPhotoElectricXS()
~G4PolarizedPhotoElectricXS() override
G4double XSection(const G4StokesVector &pol2, const G4StokesVector &pol3) override
G4StokesVector GetPol2() override
G4StokesVector GetPol3() override
static const G4StokesVector ZERO