#include <G4WentzelVIRelXSection.hh>
Definition at line 71 of file G4WentzelVIRelXSection.hh.
 
  
  
      
        
          | G4WentzelVIRelXSection::G4WentzelVIRelXSection  | 
          ( | 
          G4bool  | 
          combined = true | ) | 
           | 
         
       
   | 
  
explicit   | 
  
 
Definition at line 67 of file G4WentzelVIRelXSection.cc.
   80   lowEnergyLimit = 1.0*
eV;
 
   88   if(0.0 == ScreenRSquare[0]) {
 
   92     ScreenRSquare[0] = alpha2*a0*
a0;
 
   93     for(
G4int j=1; j<100; ++j) {
 
   96       ScreenRSquare[j] = 0.5*alpha2*x*
x;
 
   97       x = fNistManager->
GetA27(j);
 
   98       FormFactor[j] = constn*x*
x;
 
  102   factB = factD = formfactA = screenZ = 0.0;
 
  103   cosTetMaxElec = cosTetMaxNuc = invbeta2 = kinFactor = gam0pcmp = pcmp2 = 1.0;
 
  108   tkin = mom2 = momCM2 = factorA2 = mass = spin = chargeSquare = charge3 = 0.0;
 
static G4Pow * GetInstance()
 
G4double GetA27(G4int Z) const 
 
static G4NistManager * Instance()
 
static constexpr double twopi
 
G4double Z13(G4int Z) const 
 
static G4Proton * Proton()
 
static constexpr double eV
 
static G4Positron * Positron()
 
static G4Electron * Electron()
 
static constexpr double MeV
 
static constexpr double pi
 
 
 
 
  
  
      
        
          | G4WentzelVIRelXSection::~G4WentzelVIRelXSection  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
virtual   | 
  
 
 
Definition at line 259 of file G4WentzelVIRelXSection.hh.
  266     xsec = kinFactor*(cost1 - cost2)/
 
  267       ((1.0 - cost1 + screenZ)*(1.0 - cost2 + screenZ));
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
 
 
 
Definition at line 245 of file G4WentzelVIRelXSection.hh.
  249   if(cosTMax < cosTMin) {
 
  250     xsec = targetZ*kinFactor*(cosTMin - cosTMax)/
 
  251       ((1.0 - cosTMin + screenZ)*(1.0 - cosTMax + screenZ));
 
 
 
 
      
        
          | G4double G4WentzelVIRelXSection::ComputeTransportCrossSectionPerAtom  | 
          ( | 
          G4double  | 
          CosThetaMax | ) | 
           | 
        
      
 
Definition at line 184 of file G4WentzelVIRelXSection.cc.
  187   if(cosTMax >= 1.0) { 
return xsec; }
 
  201     x = (1.0 - costm)/screenZ;
 
  204       y  = x2*(1.0 - 1.3333333*x + 3*x2);
 
  205       if(0.0 < factB) { y -= fb*x2*x*(0.6666667 - 
x); }
 
  208       xlog = 
G4Log(1.0 + x);  
 
  210       if(0.0 < factB) { y -= fb*(x + x1 - 2*xlog); }
 
  215       if(nwarnings < nwarnlimit) {
 
  216     G4cout << 
"G4WentzelVIRelXSection::ComputeTransportCrossSectionPerAtom scattering on e- <0" 
  219            << 
" e(MeV)= " << tkin << 
" p(MeV/c)= " << sqrt(mom2) 
 
  220            << 
" Z= " << targetZ << 
"  "  
  222     G4cout << 
" 1-costm= " << 1.0-costm << 
" screenZ= " << screenZ 
 
  239     x = (1.0 - cosTMax)/screenZ;
 
  242       y  = x2*(1.0 - 1.3333333*x + 3*x2); 
 
  243       if(0.0 < factB) { y -= fb*x2*x*(0.6666667 - 
x); }
 
  246       xlog = 
G4Log(1.0 + x);  
 
  248       if(0.0 < factB) { y -= fb*(x + x1 - 2*xlog); }
 
  253       if(nwarnings < nwarnlimit) {
 
  254     G4cout << 
"G4WentzelVIRelXSection::ComputeTransportCrossSectionPerAtom scattering on e- <0" 
  257            << 
" e(MeV)= " << tkin << 
" Z= " << targetZ << 
"  "  
  259     G4cout << 
" formfactA= " << formfactA << 
" screenZ= " << screenZ 
 
  260            << 
" x= " << 
" x1= " << x1 <<
G4endl;
 
  264     xSection += y*targetZ; 
 
  266   xSection *= kinFactor;
 
const G4String & GetParticleName() const 
 
G4GLOB_DLL std::ostream G4cout
 
G4double G4Log(G4double x)
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
 
 
 
  
  
      
        
          | G4double G4WentzelVIRelXSection::GetCosThetaElec  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
  
  
      
        
          | G4double G4WentzelVIRelXSection::GetCosThetaNuc  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
  
  
      
        
          | G4double G4WentzelVIRelXSection::GetMomentumSquare  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
Definition at line 121 of file G4WentzelVIRelXSection.cc.
  125   tkin = mom2 = momCM2 = 0.0;
 
  130   if(isCombined) { cosThetaMax = cosThetaLim; }
 
  135   currentMaterial = 
nullptr;
 
std::vector< ExP01TrackerHit * > a
 
static constexpr double hbarc
 
void SetupParticle(const G4ParticleDefinition *)
 
static G4EmParameters * Instance()
 
static constexpr double fermi
 
G4double FactorForAngleLimit() const 
 
 
 
 
Definition at line 281 of file G4WentzelVIRelXSection.cc.
  285   temp.
set(0.0,0.0,1.0);
 
  292   if(elecRatio > 0.0) {
 
  293     if(rndmEngine->
flat() <= elecRatio) {
 
  295       cost1 = 
std::max(cost1,cosTetMaxElec);
 
  296       cost2 = 
std::max(cost2,cosTetMaxElec);
 
  299   if(cost1 < cost2) { 
return temp; }
 
  303   G4double z1 = w1*w2/(w1 + rndmEngine->
flat()*(w2 - w1)) - screenZ;
 
  306   G4double grej = (1. - z1*factB + factB1*targetZ*sqrt(z1*factB)*(2 - z1))
 
  307                  /( (1.0 + z1*factD)*fm*fm );
 
  309   if(rndmEngine->
flat() > grej ) { 
return temp; }
 
  313   if(cost > 1.0)       { cost = 1.0; }
 
  314   else if(cost < -1.0) { cost =-1.0; }
 
  315   G4double sint = sqrt((1.0 - cost)*(1.0 + cost));
 
  322   temp.
set(vx1,vy1,cost);
 
void set(double x, double y, double z)
 
static constexpr double twopi
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
 
 
 
Definition at line 180 of file G4WentzelVIRelXSection.hh.
  185   if(kinEnergy != tkin || mat != currentMaterial ||
 
  186      ecut != cut || tmass != targetMass) { 
 
  188     currentMaterial = mat;
 
  191     G4double momLab2  = tkin*(tkin + 2.0*mass);
 
  203     G4double Ecm = std::sqrt(m12 + targetMass*targetMass + 2.0*etot*targetMass);
 
  204     G4double mu_rel = mass*targetMass/Ecm;
 
  205     G4double momCM  = ptot*targetMass/Ecm;
 
  208     invbeta2 = 1.0 +  mu_rel*mu_rel/mom2;
 
  210     factB = spin/invbeta2;
 
  211     factD = std::sqrt(mom2)/tmass;
 
  214       if(cost > cosTetMaxNuc) { cosTetMaxNuc = cost; }
 
G4IonisParamMat * GetIonisation() const 
 
G4double GetInvA23() const 
 
 
 
 
Definition at line 140 of file G4WentzelVIRelXSection.cc.
  145   if(0.0 != spin) { spin = 0.5; }
 
  148   charge3 = chargeSquare*q;
 
  150   currentMaterial = 
nullptr;
 
static constexpr double eplus
 
G4double GetPDGMass() const 
 
G4double GetPDGSpin() const 
 
G4double GetPDGCharge() const 
 
 
 
 
Definition at line 157 of file G4WentzelVIRelXSection.cc.
  159   G4double cosTetMaxNuc2 = cosTetMaxNuc;
 
  160   if(
Z != targetZ || tkin != etag) {
 
  164     kinFactor = coeff*targetZ*chargeSquare*invbeta2/mom2;
 
  166     screenZ = ScreenRSquare[targetZ]/mom2;
 
  168       screenZ *= 
std::min(
Z*1.13,1.13 +3.76*
Z*
Z*invbeta2*alpha2*chargeSquare);
 
  170     if(targetZ == 1 && cosTetMaxNuc2 < 0.0 && particle == theProton) {
 
  173     formfactA = FormFactor[targetZ]*mom2;
 
  176     ComputeMaxElectronScattering(cut); 
 
  178   return cosTetMaxNuc2;
 
T min(const T t1, const T t2)
brief Return the smallest of the two arguments 
 
 
 
 
The documentation for this class was generated from the following files: