50 cout<<
"G4PolarizedPEEffectCrossSection() init\n";
82 G4double Gfactor_2 = Gfactor * Gfactor;
84 G4double BETA = sqrt(1. - 1./(Gfactor_2));
89 G4double Lept0E = aLept0E/m0_c2+1., Lept0E2 = Lept0E * Lept0E ;
95 G4double cosTheta = std::sqrt(1. - sinTheta*sinTheta);
97 G4double D_Lepton0 = (1./GammaE) * ((2./(GammaE*Lept0E*(1-BETA*cosTheta)))-1.);
101 G4double A_Lepton0 = (Lept0E/(Lept0E+1))*(2.0/(GammaE*Lept0E)
103 +(2.0/((GammaE*Lept0E2)*(1.0-BETA*cosTheta)))) / I_Lepton0 ;
105 G4double B_Lepton0 = (Lept0E/(Lept0E+1.0)) * BETA * sinTheta * (2.0/(GammaE*Lept0E*(1-BETA*cosTheta))-1.0)/I_Lepton0;
107 G4double Stokes_S1 = (Stokes_P3 * B_Lepton0) ;
109 G4double Stokes_S3 = (Stokes_P3 * A_Lepton0) ;
112 theFinalElectronPolarization.setX(Stokes_S1);
113 theFinalElectronPolarization.setY(Stokes_S2);
114 theFinalElectronPolarization.setZ(Stokes_S3);
116 if((theFinalElectronPolarization.x()*theFinalElectronPolarization.x()
117 + theFinalElectronPolarization.y()* theFinalElectronPolarization.y()
118 + theFinalElectronPolarization.z()* theFinalElectronPolarization.z())>1)
121 cout<<
"Warning: PhotoelectricEffect Problem in pol-transfer photon to lepton:Px2 + Py2 + Pz2 > 1"<<endl;
122 cout<<
"Polarization transfer forced to be total and similar as incoming Photo"<<endl;
124 theFinalElectronPolarization = beamPol;
144 cout<<
"ERROR dummy routine G4PolarizedPEEffectCrossSection::XSection() called\n";
152 return theFinalElectronPolarization;
G4PolarizedPEEffectCrossSection()
virtual ~G4PolarizedPEEffectCrossSection()
G4StokesVector GetPol2() override
virtual void Initialize(G4double aGammaE, G4double aLept0E, G4double sintheta, const G4StokesVector &beamPol, const G4StokesVector &, G4int flag=0) override
static constexpr double electron_mass_c2
G4double XSection(const G4StokesVector &pol2, const G4StokesVector &pol3) override
G4StokesVector GetPol3() override