Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4PolarizedPEEffectCrossSection Class Reference

#include <G4PolarizedPEEffectCrossSection.hh>

+ Inheritance diagram for G4PolarizedPEEffectCrossSection:

Public Member Functions

 G4PolarizedPEEffectCrossSection ()
 
virtual ~G4PolarizedPEEffectCrossSection ()
 
virtual void Initialize (G4double aGammaE, G4double aLept0E, G4double sintheta, const G4StokesVector &beamPol, const G4StokesVector &, G4int flag=0) override
 
G4double XSection (const G4StokesVector &pol2, const G4StokesVector &pol3) override
 
G4StokesVector GetPol2 () override
 
G4StokesVector GetPol3 () override
 
- Public Member Functions inherited from G4VPolarizedCrossSection
 G4VPolarizedCrossSection ()
 
virtual ~G4VPolarizedCrossSection ()
 
virtual void Initialize (G4double, G4double, G4double, const G4StokesVector &p0, const G4StokesVector &p1, G4int flag=0)
 
virtual G4double XSection (const G4StokesVector &pol2, const G4StokesVector &pol3)=0
 
virtual G4double TotalXSection (G4double xmin, G4double xmax, G4double y, const G4StokesVector &pol0, const G4StokesVector &pol1)
 
virtual G4StokesVector GetPol2 ()
 
virtual G4StokesVector GetPol3 ()
 
G4double GetYmin ()
 
virtual G4double GetXmin (G4double y)
 
virtual G4double GetXmax (G4double y)
 
void SetMaterial (G4double A, G4double Z, G4double coul)
 

Additional Inherited Members

- Protected Member Functions inherited from G4VPolarizedCrossSection
void SetXmin (G4double xmin)
 
void SetXmax (G4double xmax)
 
void SetYmin (G4double ymin)
 
- Protected Attributes inherited from G4VPolarizedCrossSection
G4double fXmin
 
G4double fXmax
 
G4double fYmin
 
G4double theA
 
G4double theZ
 
G4double fCoul
 

Detailed Description

Definition at line 49 of file G4PolarizedPEEffectCrossSection.hh.

Constructor & Destructor Documentation

◆ G4PolarizedPEEffectCrossSection()

G4PolarizedPEEffectCrossSection::G4PolarizedPEEffectCrossSection ( )

Definition at line 47 of file G4PolarizedPEEffectCrossSection.cc.

48 {
49 cout<<"G4PolarizedPEEffectCrossSection() init\n";
50
51}

◆ ~G4PolarizedPEEffectCrossSection()

G4PolarizedPEEffectCrossSection::~G4PolarizedPEEffectCrossSection ( )
virtual

Definition at line 54 of file G4PolarizedPEEffectCrossSection.cc.

55{}

Member Function Documentation

◆ GetPol2()

G4StokesVector G4PolarizedPEEffectCrossSection::GetPol2 ( )
overridevirtual

Reimplemented from G4VPolarizedCrossSection.

Definition at line 149 of file G4PolarizedPEEffectCrossSection.cc.

150{
151 return theFinalElectronPolarization;
152}

Referenced by G4PolarizedPEEffectModel::SampleSecondaries().

◆ GetPol3()

G4StokesVector G4PolarizedPEEffectCrossSection::GetPol3 ( )
overridevirtual

Reimplemented from G4VPolarizedCrossSection.

Definition at line 156 of file G4PolarizedPEEffectCrossSection.cc.

157{
158 return G4StokesVector();
159}

◆ Initialize()

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

Reimplemented from G4VPolarizedCrossSection.

Definition at line 58 of file G4PolarizedPEEffectCrossSection.cc.

64{
65 // cout<<"G4PolarizedPEEffectCrossSection::Initialize()\n";
66
67// G4StokesVector PolarizedPhotoElectricEffect::Transfer_G4StokesVector(
68// G4double aGammaE, // Incoming Primary Gamma Energy.
69// G4ThreeVector aGammaDir, // Incoming Primary Gamma Direction.
70// G4StokesVector beamPol, // Incoming Primary Gamma polarization.
71// G4double aLept0E, // The Lepton e- of interest Total energy.
72// G4ThreeVector aParticl_01_Dir, // The Lepton e- of interest direction.
73// G4double cos_aTetha_Angle // The lepton of interest Scattering angle.
74// )
75
76// ***********************************************************
77// ************ added by Karim Polarization transfer to e- in PhotoelectricEffect.
78// ************
79// ***********************************************************
80 G4double Gfactor = aLept0E/electron_mass_c2+1.;
81 G4double Gfactor_2 = Gfactor * Gfactor;
82
83 G4double BETA = sqrt(1. - 1./(Gfactor_2));
84
85 G4double Stokes_P3 = beamPol.z() ;
86
87 G4double m0_c2 = electron_mass_c2;
88 G4double Lept0E = aLept0E/m0_c2+1., Lept0E2 = Lept0E * Lept0E ;
89 G4double GammaE = aGammaE/m0_c2;
90
91
92// G4double cosTheta = cos_aTetha_Angle;
93// G4double sinTheta = sqrt(1- cos_aTetha_Angle * cos_aTetha_Angle);
94 G4double cosTheta = std::sqrt(1. - sinTheta*sinTheta);
95
96 G4double D_Lepton0 = (1./GammaE) * ((2./(GammaE*Lept0E*(1-BETA*cosTheta)))-1.);
97
98 G4double I_Lepton0 = 1.0+D_Lepton0;
99
100 G4double A_Lepton0 = (Lept0E/(Lept0E+1))*(2.0/(GammaE*Lept0E)
101 + BETA*cosTheta
102 +(2.0/((GammaE*Lept0E2)*(1.0-BETA*cosTheta)))) / I_Lepton0 ;
103
104 G4double B_Lepton0 = (Lept0E/(Lept0E+1.0)) * BETA * sinTheta * (2.0/(GammaE*Lept0E*(1-BETA*cosTheta))-1.0)/I_Lepton0;
105
106 G4double Stokes_S1 = (Stokes_P3 * B_Lepton0) ;
107 G4double Stokes_S2 = 0.;
108 G4double Stokes_S3 = (Stokes_P3 * A_Lepton0) ;
109
110
111 theFinalElectronPolarization.setX(Stokes_S1);
112 theFinalElectronPolarization.setY(Stokes_S2);
113 theFinalElectronPolarization.setZ(Stokes_S3);
114
115 if((theFinalElectronPolarization.x()*theFinalElectronPolarization.x()
116 + theFinalElectronPolarization.y()* theFinalElectronPolarization.y()
117 + theFinalElectronPolarization.z()* theFinalElectronPolarization.z())>1)
118
119 {
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;
122 // *KL* Surprising if it arrives (never seen it up to now)
123 theFinalElectronPolarization = beamPol; // suplement de securite
124// cout<<"PhotoEffect okay :"
125// <<"\t"<<(aLept0E-m0_c2)/aGammaE
126// <<"\t"<<aGammaE
127// <<"\t"<<aLept0E
128// <<"\t"<<cos_aTetha_Angle
129// <<"\t"<<beamPol
130// <<"\t"<<theFinalElectronPolarization
131// <<"\t"<<A_Lepton0
132// <<endl;
133 }
134}
double G4double
Definition: G4Types.hh:83
double z() const
double x() const
void setY(double)
double y() const
void setZ(double)
void setX(double)

Referenced by G4PolarizedPEEffectModel::SampleSecondaries().

◆ XSection()

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

Implements G4VPolarizedCrossSection.

Definition at line 140 of file G4PolarizedPEEffectCrossSection.cc.

142{
143 cout<<"ERROR dummy routine G4PolarizedPEEffectCrossSection::XSection() called\n";
144 return 0.;
145}

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