49 cout<<
"G4PolarizedPEEffectCrossSection() init\n";
80 G4double Gfactor = aLept0E/electron_mass_c2+1.;
81 G4double Gfactor_2 = Gfactor * Gfactor;
83 G4double BETA = sqrt(1. - 1./(Gfactor_2));
88 G4double Lept0E = aLept0E/m0_c2+1., Lept0E2 = Lept0E * Lept0E ;
94 G4double cosTheta = std::sqrt(1. - sinTheta*sinTheta);
96 G4double D_Lepton0 = (1./GammaE) * ((2./(GammaE*Lept0E*(1-BETA*cosTheta)))-1.);
100 G4double A_Lepton0 = (Lept0E/(Lept0E+1))*(2.0/(GammaE*Lept0E)
102 +(2.0/((GammaE*Lept0E2)*(1.0-BETA*cosTheta)))) / I_Lepton0 ;
104 G4double B_Lepton0 = (Lept0E/(Lept0E+1.0)) * BETA * sinTheta * (2.0/(GammaE*Lept0E*(1-BETA*cosTheta))-1.0)/I_Lepton0;
106 G4double Stokes_S1 = (Stokes_P3 * B_Lepton0) ;
108 G4double Stokes_S3 = (Stokes_P3 * A_Lepton0) ;
111 theFinalElectronPolarization.
setX(Stokes_S1);
112 theFinalElectronPolarization.
setY(Stokes_S2);
113 theFinalElectronPolarization.
setZ(Stokes_S3);
115 if((theFinalElectronPolarization.
x()*theFinalElectronPolarization.
x()
116 + theFinalElectronPolarization.
y()* theFinalElectronPolarization.
y()
117 + theFinalElectronPolarization.
z()* theFinalElectronPolarization.
z())>1)
120 cout<<
"Warning: PhotoelectricEffect Problem in pol-transfer photon to lepton:Px2 + Py2 + Pz2 > 1"<<endl;
121 cout<<
"Polarization transfer forced to be total and similar as incoming Photo"<<endl;
123 theFinalElectronPolarization = beamPol;
143 cout<<
"ERROR dummy routine G4PolarizedPEEffectCrossSection::XSection() called\n";
151 return theFinalElectronPolarization;
G4StokesVector GetPol3() override
G4StokesVector GetPol2() override
G4double XSection(const G4StokesVector &pol2, const G4StokesVector &pol3) override
G4PolarizedPEEffectCrossSection()
virtual void Initialize(G4double aGammaE, G4double aLept0E, G4double sintheta, const G4StokesVector &beamPol, const G4StokesVector &, G4int flag=0) override
virtual ~G4PolarizedPEEffectCrossSection()