Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/electromagnetic/polarisation/src/G4PolarizedBremsstrahlungXS.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/electromagnetic/polarisation/src/G4PolarizedBremsstrahlungXS.cc (Version 11.3.0) and /processes/electromagnetic/polarisation/src/G4PolarizedBremsstrahlungXS.cc (Version 8.0.p1)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 // -------------------------------------------    
 27 //                                                
 28 // Geant4 class file                              
 29 //                                                
 30 // File name:     G4PolarizedBremsstrahlungXS     
 31 //                                                
 32 // Author:        Andreas Schaelicke on the ba    
 33                                                   
 34 #include "G4PolarizedBremsstrahlungXS.hh"         
 35                                                   
 36 #include "G4PhysicalConstants.hh"                 
 37                                                   
 38 G4double G4PolarizedBremsstrahlungXS::SCRN[2][    
 39   { 0.5, 1.0, 2.0, 4.0, 8.0, 15.0, 20.0, 25.0,    
 40     60.0, 70.0, 80.0, 90.0, 100.0, 120.0 },       
 41   { 0.0145, 0.0490, 0.1400, 0.3312, 0.6758, 1.    
 42     2.001, 2.114, 2.216, 2.393, 2.545, 2.676,     
 43 };                                                
 44                                                   
 45 G4PolarizedBremsstrahlungXS::G4PolarizedBremss    
 46 {                                                 
 47   fFinalLeptonPolarization = G4StokesVector::Z    
 48   fFinalGammaPolarization  = G4StokesVector::Z    
 49 }                                                 
 50                                                   
 51 G4PolarizedBremsstrahlungXS::~G4PolarizedBrems    
 52                                                   
 53 void G4PolarizedBremsstrahlungXS::Initialize(G    
 54                                              G    
 55                                              c    
 56                                              c    
 57                                              G    
 58 {                                                 
 59   G4double aLept1E = aLept0E - aGammaE;           
 60                                                   
 61   G4double Stokes_S1 = beamPol.x();               
 62   G4double Stokes_S2 = beamPol.y();               
 63   G4double Stokes_S3 = beamPol.z();               
 64                                                   
 65   G4double Lept0E  = aLept0E / electron_mass_c    
 66   G4double Lept0E2 = Lept0E * Lept0E;             
 67   G4double GammaE  = aGammaE / electron_mass_c    
 68   G4double GammaE2 = GammaE * GammaE;             
 69   G4double Lept1E  = aLept1E / electron_mass_c    
 70   G4double Lept1E2 = Lept1E * Lept1E;             
 71                                                   
 72   // *******  Gamma Transverse Momentum           
 73   G4double TMom = std::sqrt(Lept0E2 - 1.) * si    
 74   G4double u    = TMom;                           
 75   G4double u2   = u * u;                          
 76   G4double Xsi  = 1. / (1. + u2);                 
 77   G4double Xsi2 = Xsi * Xsi;                      
 78                                                   
 79   G4double delta =                                
 80     12. * std::pow(fZ, 1. / 3.) * Lept0E * Lep    
 81                                                   
 82   G4double GG = 0.;                               
 83   if(delta < 0.5)                                 
 84   {                                               
 85     GG = std::log(2. * Lept0E * Lept1E / Gamma    
 86   }                                               
 87   else if(delta < 120)                            
 88   {                                               
 89     for(G4int j = 1; j < 19; ++j)                 
 90     {                                             
 91       if(SCRN[0][j] >= delta)                     
 92       {                                           
 93         GG = std::log(2 * Lept0E * Lept1E / Ga    
 94              (SCRN[1][j - 1] + (delta - SCRN[0    
 95                                  (SCRN[1][j] -    
 96                                  (SCRN[0][j] -    
 97         break;                                    
 98       }                                           
 99     }                                             
100   }                                               
101   else                                            
102   {                                               
103     G4double alpha_sc = (111. * std::pow(fZ, -    
104     GG                = std::log(alpha_sc) - 2    
105   }                                               
106                                                   
107   if(GG < -1.)                                    
108     GG = -1.;                                     
109                                                   
110   G4double I_Lept = (Lept0E2 + Lept1E2) * (3.     
111                     2 * Lept0E * Lept1E * (1.     
112   G4double F_Lept =                               
113     Lept1E * 4. * GammaE * u * Xsi * (1. - 2 *    
114   G4double E_Lept =                               
115     Lept0E * 4. * GammaE * u * Xsi * (2. * Xsi    
116   G4double M_Lept =                               
117     4. * Lept0E * Lept1E * (1. + GG - 2. * Xsi    
118   G4double P_Lept =                               
119     GammaE2 * (1. + 8. * GG * (Xsi - 0.5) * (X    
120                                                   
121   G4double Stokes_SS1 = M_Lept * Stokes_S1 + E    
122   G4double Stokes_SS2 = M_Lept * Stokes_S2;       
123   G4double Stokes_SS3 = (M_Lept + P_Lept) * St    
124                                                   
125   fFinalLeptonPolarization.setX(Stokes_SS1);      
126   fFinalLeptonPolarization.setY(Stokes_SS2);      
127   fFinalLeptonPolarization.setZ(Stokes_SS3);      
128                                                   
129   if(fFinalLeptonPolarization.mag2() > 1.)        
130   {                                               
131     G4ExceptionDescription ed;                    
132     ed << " WARNING in pol-brem fFinalLeptonPo    
133     ed << "\t" << fFinalLeptonPolarization <<     
134        << delta;                                  
135     G4Exception("G4PolarizedBremsstrahlungXS::    
136                 JustWarning, ed);                 
137     fFinalLeptonPolarization.setX(0);             
138     fFinalLeptonPolarization.setY(0);             
139     fFinalLeptonPolarization.setZ(Stokes_SS3);    
140     if(Stokes_SS3 > 1)                            
141       fFinalLeptonPolarization.setZ(1);           
142   }                                               
143                                                   
144   G4double I_Gamma = (Lept0E2 + Lept1E2) * (3.    
145                      2. * Lept0E * Lept1E * (1    
146   G4double D_Gamma = 8. * Lept0E * Lept1E * u2    
147   G4double L_Gamma = GammaE *                     
148                      ((Lept0E + Lept1E) * (3.     
149                       2. * Lept1E * (1. + 4. *    
150                      I_Gamma;                     
151   G4double T_Gamma =                              
152     4. * GammaE * Lept1E * Xsi * u * (2. * Xsi    
153                                                   
154   G4double Stokes_P1 = D_Gamma;                   
155   G4double Stokes_P2 = 0.;                        
156   G4double Stokes_P3 = (Stokes_S3 * L_Gamma +     
157                                                   
158   fFinalGammaPolarization.SetPhoton();            
159                                                   
160   fFinalGammaPolarization.setX(Stokes_P1);        
161   fFinalGammaPolarization.setY(Stokes_P2);        
162   fFinalGammaPolarization.setZ(Stokes_P3);        
163                                                   
164   if(fFinalGammaPolarization.mag2() > 1.)         
165   {                                               
166     G4ExceptionDescription ed;                    
167     ed << " WARNING in pol-brem fFinalGammaPol    
168     ed << "\t" << fFinalGammaPolarization << "    
169        << delta;                                  
170     G4Exception("G4PolarizedBremsstrahlungXS::    
171                 JustWarning, ed);                 
172   }                                               
173 }                                                 
174                                                   
175 G4double G4PolarizedBremsstrahlungXS::XSection    
176                                                   
177 {                                                 
178   G4ExceptionDescription ed;                      
179   ed << "ERROR dummy routine G4PolarizedBremss    
180         "called.\n";                              
181   G4Exception("G4PolarizedBremsstrahlungXS::XS    
182               ed);                                
183                                                   
184   return 0.;                                      
185 }                                                 
186                                                   
187 // return expected mean polarisation              
188 G4StokesVector G4PolarizedBremsstrahlungXS::Ge    
189 {                                                 
190   // electron/positron                            
191   return fFinalLeptonPolarization;                
192 }                                                 
193                                                   
194 G4StokesVector G4PolarizedBremsstrahlungXS::Ge    
195 {                                                 
196   // photon                                       
197   return fFinalGammaPolarization;                 
198 }                                                 
199