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

#include <G4PolarizedGammaConversionXS.hh>

Inheritance diagram for G4PolarizedGammaConversionXS:
G4VPolarizedXS

Public Member Functions

 G4PolarizedGammaConversionXS ()
 
 G4PolarizedGammaConversionXS (const G4PolarizedGammaConversionXS &)=delete
 
G4StokesVector GetPol2 () override
 
G4StokesVector GetPol3 () override
 
virtual G4double GetXmax (G4double y)
 
virtual G4double GetXmin (G4double y)
 
G4double GetYmin ()
 
void Initialize (G4double eps, G4double X, G4double phi, const G4StokesVector &p0, const G4StokesVector &p1, G4int flag=0) override
 
G4PolarizedGammaConversionXSoperator= (const G4PolarizedGammaConversionXS &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
 
 ~G4PolarizedGammaConversionXS () 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
 
G4StokesVector fFinalPositronPolarization
 

Static Private Attributes

static G4double SCRN [2][19]
 

Detailed Description

Definition at line 38 of file G4PolarizedGammaConversionXS.hh.

Constructor & Destructor Documentation

◆ G4PolarizedGammaConversionXS() [1/2]

G4PolarizedGammaConversionXS::G4PolarizedGammaConversionXS ( )

◆ ~G4PolarizedGammaConversionXS()

G4PolarizedGammaConversionXS::~G4PolarizedGammaConversionXS ( )
override

Definition at line 49 of file G4PolarizedGammaConversionXS.cc.

49{}

◆ G4PolarizedGammaConversionXS() [2/2]

G4PolarizedGammaConversionXS::G4PolarizedGammaConversionXS ( const G4PolarizedGammaConversionXS )
delete

Member Function Documentation

◆ GetPol2()

G4StokesVector G4PolarizedGammaConversionXS::GetPol2 ( )
overridevirtual

Reimplemented from G4VPolarizedXS.

Definition at line 176 of file G4PolarizedGammaConversionXS.cc.

177{
178 // electron/positron
180}

References fFinalElectronPolarization.

Referenced by G4PolarizedGammaConversionModel::SampleSecondaries().

◆ GetPol3()

G4StokesVector G4PolarizedGammaConversionXS::GetPol3 ( )
overridevirtual

Reimplemented from G4VPolarizedXS.

Definition at line 182 of file G4PolarizedGammaConversionXS.cc.

183{
184 // photon
186}

References fFinalPositronPolarization.

Referenced by G4PolarizedGammaConversionModel::SampleSecondaries().

◆ 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 G4PolarizedGammaConversionXS::Initialize ( G4double  eps,
G4double  X,
G4double  phi,
const G4StokesVector p0,
const G4StokesVector p1,
G4int  flag = 0 
)
overridevirtual

Implements G4VPolarizedXS.

Definition at line 51 of file G4PolarizedGammaConversionXS.cc.

54{
55 G4double aLept1E = aGammaE - aLept0E;
56
57 G4double Stokes_P3 = beamPol.z();
58
59 G4double Lept0E = aLept0E / CLHEP::electron_mass_c2 + 1.;
60 G4double Lept0E2 = Lept0E * Lept0E;
61 G4double GammaE = aGammaE / CLHEP::electron_mass_c2;
62 G4double Lept1E = aLept1E / CLHEP::electron_mass_c2 - 1.;
63 G4double Lept1E2 = Lept1E * Lept1E;
64
65 // ******* Gamma Transvers Momentum
66 G4double TMom = std::sqrt(Lept0E2 - 1.) * sintheta;
67 G4double u = TMom;
68 G4double u2 = u * u;
69 G4double Xsi = 1. / (1. + u2);
70 G4double Xsi2 = Xsi * Xsi;
71
72 G4double delta =
73 12. * std::pow(fZ, 1. / 3.) * Lept0E * Lept1E * Xsi / (121. * GammaE);
74 G4double GG = 0.;
75
76 if(delta < 0.5)
77 {
78 GG = std::log(2. * Lept0E * Lept1E / GammaE) - 2. - fCoul;
79 }
80 else if(delta < 120.)
81 {
82 for(G4int j = 1; j < 19; ++j)
83 {
84 if(SCRN[0][j] >= delta)
85 {
86 GG = std::log(2. * Lept0E * Lept1E / GammaE) - 2. - fCoul -
87 (SCRN[1][j - 1] + (delta - SCRN[0][j - 1]) *
88 (SCRN[1][j] - SCRN[1][j - 1]) /
89 (SCRN[0][j] - SCRN[0][j - 1]));
90 break;
91 }
92 }
93 }
94 else
95 {
96 G4double alpha_sc = (111. * std::pow(fZ, -1. / 3.)) / Xsi;
97 GG = std::log(alpha_sc) - 2. - fCoul;
98 }
99
100 if(GG < -1.)
101 GG = -1.;
102
103 G4double I_Lepton = (Lept0E2 + Lept1E2) * (3 + 2 * GG) +
104 2. * Lept0E * Lept1E * (1. + 4. * u2 * Xsi2 * GG);
105
106 G4double L_Lepton1 = GammaE *
107 ((Lept0E - Lept1E) * (3. + 2. * GG) +
108 2 * Lept1E * (1. + 4. * u2 * Xsi2 * GG)) /
109 I_Lepton;
110
111 G4double T_Lepton1 =
112 4. * GammaE * Lept1E * Xsi * u * (1. - 2. * Xsi) * GG / I_Lepton;
113
114 G4double Stokes_S1 = (Stokes_P3 * T_Lepton1);
115 G4double Stokes_S2 = 0.;
116 G4double Stokes_S3 = (Stokes_P3 * L_Lepton1);
117
121
123 {
125 ed << "\t" << fFinalElectronPolarization << "\t GG\t" << GG << "\t delta\t"
126 << delta << "\n";
127 G4Exception("G4PolarizedGammaConversionXS::Initialize", "pol022",
128 JustWarning, ed);
132 if(Stokes_S3 > 1.)
134 }
135
136 G4double L_Lepton2 = GammaE *
137 ((Lept1E - Lept0E) * (3. + 2. * GG) +
138 2 * Lept0E * (1. + 4. * u2 * Xsi2 * GG)) /
139 I_Lepton;
140
141 G4double T_Lepton2 =
142 4. * GammaE * Lept0E * Xsi * u * (1. - 2. * Xsi) * GG / I_Lepton;
143
144 G4double Stokes_SS1 = (Stokes_P3 * T_Lepton2);
145 G4double Stokes_SS2 = 0.;
146 G4double Stokes_SS3 = (Stokes_P3 * L_Lepton2);
147
149
153
155 {
157 ed << "\t" << fFinalPositronPolarization << "\t GG\t" << GG << "\t delta\t"
158 << delta << "\n";
159 G4Exception("G4PolarizedGammaConversionXS::Initialize", "pol023",
160 JustWarning, ed);
161 }
162}
@ 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
int G4int
Definition: G4Types.hh:85
void setY(double)
double mag2() const
void setZ(double)
void setX(double)
static constexpr double electron_mass_c2

References CLHEP::electron_mass_c2, G4VPolarizedXS::fCoul, fFinalElectronPolarization, fFinalPositronPolarization, G4VPolarizedXS::fZ, G4Exception(), JustWarning, CLHEP::Hep3Vector::mag2(), SCRN, G4StokesVector::SetPhoton(), CLHEP::Hep3Vector::setX(), CLHEP::Hep3Vector::setY(), CLHEP::Hep3Vector::setZ(), and CLHEP::Hep3Vector::z().

Referenced by G4PolarizedGammaConversionModel::SampleSecondaries().

◆ operator=()

G4PolarizedGammaConversionXS & G4PolarizedGammaConversionXS::operator= ( const G4PolarizedGammaConversionXS 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 G4PolarizedGammaConversionXS::XSection ( const G4StokesVector pol2,
const G4StokesVector pol3 
)
overridevirtual

Implements G4VPolarizedXS.

Definition at line 164 of file G4PolarizedGammaConversionXS.cc.

166{
168 ed << "ERROR dummy routine G4PolarizedGammaConversionXS::XSection "
169 "called \n";
170 G4Exception("G4PolarizedGammaConversionXS::Initialize", "pol024",
171 FatalException, ed);
172 return 0.;
173}

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 G4PolarizedGammaConversionXS::fFinalElectronPolarization
private

◆ fFinalPositronPolarization

G4StokesVector G4PolarizedGammaConversionXS::fFinalPositronPolarization
private

◆ 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

◆ SCRN

G4double G4PolarizedGammaConversionXS::SCRN
staticprivate
Initial value:
= {
{ 0.5, 1.0, 2.0, 4.0, 8.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0,
60.0, 70.0, 80.0, 90.0, 100.0, 120.0 },
{ 0.0145, 0.0490, 0.1400, 0.3312, 0.6758, 1.126, 1.367, 1.564, 1.731, 1.875,
2.001, 2.114, 2.216, 2.393, 2.545, 2.676, 2.793, 2.897, 3.078 }
}

Definition at line 60 of file G4PolarizedGammaConversionXS.hh.

Referenced by Initialize().


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