Geant4-11
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes
G4PolarizedPhotoElectricXS Class Reference

#include <G4PolarizedPhotoElectricXS.hh>

Inheritance diagram for G4PolarizedPhotoElectricXS:
G4VPolarizedXS

Public Member Functions

 G4PolarizedPhotoElectricXS ()
 
 G4PolarizedPhotoElectricXS (const G4PolarizedPhotoElectricXS &)=delete
 
G4StokesVector GetPol2 () override
 
G4StokesVector GetPol3 () override
 
virtual G4double GetXmax (G4double y)
 
virtual G4double GetXmin (G4double y)
 
G4double GetYmin ()
 
void Initialize (G4double aGammaE, G4double aLept0E, G4double sintheta, const G4StokesVector &beamPol, const G4StokesVector &, G4int flag=0) override
 
G4PolarizedPhotoElectricXSoperator= (const G4PolarizedPhotoElectricXS &right)=delete
 
void SetMaterial (G4double A, G4double Z, G4double coul)
 
virtual G4double TotalXSection (G4double xmin, G4double xmax, G4double y, const G4StokesVector &pol0, const G4StokesVector &pol1)
 
G4double XSection (const G4StokesVector &pol2, const G4StokesVector &pol3) override
 
 ~G4PolarizedPhotoElectricXS () override
 

Protected Member Functions

void SetXmax (G4double xmax)
 
void SetXmin (G4double xmin)
 
void SetYmin (G4double ymin)
 

Protected Attributes

G4double fA
 
G4double fCoul
 
G4double fXmax
 
G4double fXmin
 
G4double fYmin
 
G4double fZ
 

Private Attributes

G4StokesVector fFinalElectronPolarization
 

Detailed Description

Definition at line 39 of file G4PolarizedPhotoElectricXS.hh.

Constructor & Destructor Documentation

◆ G4PolarizedPhotoElectricXS() [1/2]

G4PolarizedPhotoElectricXS::G4PolarizedPhotoElectricXS ( )

◆ ~G4PolarizedPhotoElectricXS()

G4PolarizedPhotoElectricXS::~G4PolarizedPhotoElectricXS ( )
override

Definition at line 41 of file G4PolarizedPhotoElectricXS.cc.

41{}

◆ G4PolarizedPhotoElectricXS() [2/2]

G4PolarizedPhotoElectricXS::G4PolarizedPhotoElectricXS ( const G4PolarizedPhotoElectricXS )
delete

Member Function Documentation

◆ GetPol2()

G4StokesVector G4PolarizedPhotoElectricXS::GetPol2 ( )
overridevirtual

Reimplemented from G4VPolarizedXS.

Definition at line 111 of file G4PolarizedPhotoElectricXS.cc.

112{
114}

References fFinalElectronPolarization.

Referenced by G4PolarizedPhotoElectricModel::SampleSecondaries().

◆ GetPol3()

G4StokesVector G4PolarizedPhotoElectricXS::GetPol3 ( )
overridevirtual

Reimplemented from G4VPolarizedXS.

Definition at line 117 of file G4PolarizedPhotoElectricXS.cc.

118{
119 return G4StokesVector();
120}

◆ GetXmax()

G4double G4VPolarizedXS::GetXmax ( G4double  y)
virtualinherited

Reimplemented in G4PolarizedAnnihilationXS.

Definition at line 84 of file G4VPolarizedXS.cc.

84{ return fXmax; }

References G4VPolarizedXS::fXmax.

◆ GetXmin()

G4double G4VPolarizedXS::GetXmin ( G4double  y)
virtualinherited

Reimplemented in G4PolarizedAnnihilationXS.

Definition at line 81 of file G4VPolarizedXS.cc.

81{ return fXmin; }

References G4VPolarizedXS::fXmin.

◆ GetYmin()

G4double G4VPolarizedXS::GetYmin ( )
inlineinherited

Definition at line 65 of file G4VPolarizedXS.hh.

65{ return fYmin; }

References G4VPolarizedXS::fYmin.

◆ Initialize()

void G4PolarizedPhotoElectricXS::Initialize ( G4double  aGammaE,
G4double  aLept0E,
G4double  sintheta,
const G4StokesVector beamPol,
const G4StokesVector ,
G4int  flag = 0 
)
overridevirtual

Implements G4VPolarizedXS.

Definition at line 44 of file G4PolarizedPhotoElectricXS.cc.

49{
50 // Polarization transfer to e- in PhotoelectricEffect.
51 G4double Gfactor = aLept0E / CLHEP::electron_mass_c2 + 1.;
52 G4double Gfactor_2 = Gfactor * Gfactor;
53
54 G4double beta = std::sqrt(1. - 1. / (Gfactor_2));
55
56 G4double Stokes_P3 = beamPol.z();
57
58 G4double Lept0E = aLept0E / CLHEP::electron_mass_c2 + 1.;
59 G4double Lept0E2 = Lept0E * Lept0E;
60 G4double GammaE = aGammaE / CLHEP::electron_mass_c2;
61
62 G4double cosTheta = std::sqrt(1. - sinTheta * sinTheta);
63
64 G4double I_Lepton0 =
65 1.0 +
66 (1. / GammaE) * ((2. / (GammaE * Lept0E * (1 - beta * cosTheta))) - 1.);
67
68 G4double A_Lepton0 =
69 (Lept0E / (Lept0E + 1)) *
70 (2.0 / (GammaE * Lept0E) + beta * cosTheta +
71 (2.0 / ((GammaE * Lept0E2) * (1.0 - beta * cosTheta)))) /
72 I_Lepton0;
73
74 G4double B_Lepton0 = (Lept0E / (Lept0E + 1.0)) * beta * sinTheta *
75 (2.0 / (GammaE * Lept0E * (1 - beta * cosTheta)) - 1.0) /
76 I_Lepton0;
77
78 fFinalElectronPolarization.setX(Stokes_P3 * B_Lepton0);
80 fFinalElectronPolarization.setZ(Stokes_P3 * A_Lepton0);
81
85
86 {
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 "
91 "Photo\n";
92 G4Exception("G4PolarizedPhotoElectricXS::Initialize", "pol023", JustWarning,
93 ed);
94 fFinalElectronPolarization = beamPol; // to be safe
95 }
96}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
double G4double
Definition: G4Types.hh:83
double z() const
double x() const
void setY(double)
double y() const
void setZ(double)
void setX(double)
static constexpr double electron_mass_c2

References anonymous_namespace{G4PionRadiativeDecayChannel.cc}::beta, CLHEP::electron_mass_c2, fFinalElectronPolarization, G4Exception(), JustWarning, CLHEP::Hep3Vector::setX(), CLHEP::Hep3Vector::setY(), CLHEP::Hep3Vector::setZ(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by G4PolarizedPhotoElectricModel::SampleSecondaries().

◆ operator=()

G4PolarizedPhotoElectricXS & G4PolarizedPhotoElectricXS::operator= ( const G4PolarizedPhotoElectricXS right)
delete

◆ SetMaterial()

void G4VPolarizedXS::SetMaterial ( G4double  A,
G4double  Z,
G4double  coul 
)
inlineinherited

◆ SetXmax()

void G4VPolarizedXS::SetXmax ( G4double  xmax)
inlineprotectedinherited

◆ SetXmin()

void G4VPolarizedXS::SetXmin ( G4double  xmin)
inlineprotectedinherited

Definition at line 83 of file G4VPolarizedXS.hh.

83{ fXmin = xmin; }

References G4VPolarizedXS::fXmin.

◆ SetYmin()

void G4VPolarizedXS::SetYmin ( G4double  ymin)
inlineprotectedinherited

Definition at line 85 of file G4VPolarizedXS.hh.

85{ fYmin = ymin; }

References G4VPolarizedXS::fYmin.

Referenced by G4PolarizedComptonXS::G4PolarizedComptonXS().

◆ TotalXSection()

G4double G4VPolarizedXS::TotalXSection ( G4double  xmin,
G4double  xmax,
G4double  y,
const G4StokesVector pol0,
const G4StokesVector pol1 
)
virtualinherited

Reimplemented in G4PolarizedAnnihilationXS, G4PolarizedComptonXS, G4PolarizedIonisationBhabhaXS, and G4PolarizedIonisationMollerXS.

Definition at line 86 of file G4VPolarizedXS.cc.

89{
91 ed << "WARNING virtual function G4VPolarizedXS::TotalXSection() "
92 "called.\n";
93 G4Exception("G4VPolarizedXS::TotalXSection", "pol032", FatalException, ed);
94 return 0.;
95}
@ FatalException

References FatalException, and G4Exception().

Referenced by G4PolarizedIonisationModel::ComputeCrossSectionPerElectron().

◆ XSection()

G4double G4PolarizedPhotoElectricXS::XSection ( const G4StokesVector pol2,
const G4StokesVector pol3 
)
overridevirtual

Implements G4VPolarizedXS.

Definition at line 99 of file G4PolarizedPhotoElectricXS.cc.

101{
103 ed << "ERROR dummy routine G4PolarizedPhotoElectricXS::XSection() "
104 "called\n";
105 G4Exception("G4PolarizedPhotoElectricXS::XSection", "pol024", FatalException,
106 ed);
107 return 0.;
108}

References FatalException, and G4Exception().

Field Documentation

◆ fA

G4double G4VPolarizedXS::fA
protectedinherited

Definition at line 90 of file G4VPolarizedXS.hh.

Referenced by G4VPolarizedXS::SetMaterial().

◆ fCoul

G4double G4VPolarizedXS::fCoul
protectedinherited

◆ fFinalElectronPolarization

G4StokesVector G4PolarizedPhotoElectricXS::fFinalElectronPolarization
private

Definition at line 61 of file G4PolarizedPhotoElectricXS.hh.

Referenced by G4PolarizedPhotoElectricXS(), GetPol2(), and Initialize().

◆ fXmax

G4double G4VPolarizedXS::fXmax
protectedinherited

Definition at line 88 of file G4VPolarizedXS.hh.

Referenced by G4VPolarizedXS::GetXmax(), and G4VPolarizedXS::SetXmax().

◆ fXmin

G4double G4VPolarizedXS::fXmin
protectedinherited

Definition at line 88 of file G4VPolarizedXS.hh.

Referenced by G4VPolarizedXS::GetXmin(), and G4VPolarizedXS::SetXmin().

◆ fYmin

G4double G4VPolarizedXS::fYmin
protectedinherited

Definition at line 88 of file G4VPolarizedXS.hh.

Referenced by G4VPolarizedXS::GetYmin(), and G4VPolarizedXS::SetYmin().

◆ fZ

G4double G4VPolarizedXS::fZ
protectedinherited

The documentation for this class was generated from the following files: