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

#include <G4WentzelOKandVIxSection.hh>

Inheritance diagram for G4WentzelOKandVIxSection:
G4WentzelVIRelXSection

Public Member Functions

G4double ComputeElectronCrossSection (G4double CosThetaMin, G4double CosThetaMax)
 
G4double ComputeNuclearCrossSection (G4double CosThetaMin, G4double CosThetaMax)
 
G4double ComputeSecondTransportMoment (G4double CosThetaMax)
 
G4double ComputeTransportCrossSectionPerAtom (G4double CosThetaMax)
 
 G4WentzelOKandVIxSection (const G4WentzelOKandVIxSection &)=delete
 
 G4WentzelOKandVIxSection (G4bool comb=true)
 
G4double GetCosThetaElec () const
 
G4double GetCosThetaNuc () const
 
G4double GetMomentumSquare () const
 
void Initialise (const G4ParticleDefinition *, G4double CosThetaLim)
 
G4WentzelOKandVIxSectionoperator= (const G4WentzelOKandVIxSection &right)=delete
 
G4ThreeVectorSampleSingleScattering (G4double CosThetaMin, G4double CosThetaMax, G4double elecRatio)
 
void SetTargetMass (G4double value)
 
virtual G4double SetupKinematic (G4double kinEnergy, const G4Material *mat)
 
void SetupParticle (const G4ParticleDefinition *)
 
G4double SetupTarget (G4int Z, G4double cut)
 
virtual ~G4WentzelOKandVIxSection ()
 

Protected Member Functions

void ComputeMaxElectronScattering (G4double cut)
 
G4double FlatFormfactor (G4double x)
 
void InitialiseA ()
 

Protected Attributes

G4double charge3 = 0.0
 
G4double chargeSquare = 0.0
 
G4double coeff
 
G4double cosTetMaxElec = 1.0
 
G4double cosTetMaxNuc = 1.0
 
G4double cosThetaMax = -1.0
 
const G4MaterialcurrentMaterial = nullptr
 
G4double ecut = DBL_MAX
 
G4double etag = DBL_MAX
 
G4double factB = 0.0
 
G4double factD = 0.0
 
G4double factorA2 = 0.0
 
G4PowfG4pow
 
G4double fMottFactor = 1.0
 
G4ScreeningMottCrossSectionfMottXSection = nullptr
 
G4NistManagerfNistManager
 
G4NuclearFormfactorType fNucFormfactor = fExponentialNF
 
G4double formfactA = 0.0
 
G4double gam0pcmp = 1.0
 
G4double invbeta2 = 1.0
 
G4bool isCombined
 
G4double kinFactor = 1.0
 
G4double mass = 0.0
 
G4double mom2 = 0.0
 
G4double momCM2 = 0.0
 
G4int nwarnings = 0
 
const G4ParticleDefinitionparticle = nullptr
 
G4double pcmp2 = 1.0
 
G4double screenZ = 0.0
 
G4double spin = 0.0
 
G4double targetMass
 
G4int targetZ = 0
 
G4ThreeVector temp
 
const G4ParticleDefinitiontheElectron
 
const G4ParticleDefinitionthePositron
 
const G4ParticleDefinitiontheProton
 
G4double tkin = 0.0
 

Static Protected Attributes

static G4double FormFactor [100] = {0.0}
 
static G4double ScreenRSquare [100] = {0.0}
 
static G4double ScreenRSquareElec [100] = {0.0}
 

Detailed Description

Definition at line 73 of file G4WentzelOKandVIxSection.hh.

Constructor & Destructor Documentation

◆ G4WentzelOKandVIxSection() [1/2]

G4WentzelOKandVIxSection::G4WentzelOKandVIxSection ( G4bool  comb = true)
explicit

Definition at line 75 of file G4WentzelOKandVIxSection.cc.

75 :
76 temp(0.,0.,0.),
77 isCombined(comb)
78{
81
85
87 coeff = CLHEP::twopi*p0*p0;
89}
double G4double
Definition: G4Types.hh:83
static G4Electron * Electron()
Definition: G4Electron.cc:93
static G4NistManager * Instance()
static G4Positron * Positron()
Definition: G4Positron.cc:93
static G4Pow * GetInstance()
Definition: G4Pow.cc:41
static G4Proton * Proton()
Definition: G4Proton.cc:92
const G4ParticleDefinition * theProton
const G4ParticleDefinition * thePositron
const G4ParticleDefinition * theElectron
static constexpr double electron_mass_c2
static constexpr double proton_mass_c2
static constexpr double twopi
Definition: SystemOfUnits.h:56
static constexpr double classic_electr_radius

References CLHEP::classic_electr_radius, coeff, G4Electron::Electron(), CLHEP::electron_mass_c2, fG4pow, fNistManager, G4Pow::GetInstance(), G4NistManager::Instance(), G4Positron::Positron(), G4Proton::Proton(), CLHEP::proton_mass_c2, targetMass, theElectron, thePositron, theProton, and CLHEP::twopi.

◆ ~G4WentzelOKandVIxSection()

G4WentzelOKandVIxSection::~G4WentzelOKandVIxSection ( )
virtual

Definition at line 93 of file G4WentzelOKandVIxSection.cc.

94{
95 delete fMottXSection;
96}
G4ScreeningMottCrossSection * fMottXSection

References fMottXSection.

◆ G4WentzelOKandVIxSection() [2/2]

G4WentzelOKandVIxSection::G4WentzelOKandVIxSection ( const G4WentzelOKandVIxSection )
delete

Member Function Documentation

◆ ComputeElectronCrossSection()

G4double G4WentzelOKandVIxSection::ComputeElectronCrossSection ( G4double  CosThetaMin,
G4double  CosThetaMax 
)
inline

◆ ComputeMaxElectronScattering()

void G4WentzelOKandVIxSection::ComputeMaxElectronScattering ( G4double  cut)
protected

Definition at line 400 of file G4WentzelOKandVIxSection.cc.

401{
402 if(mass > MeV) {
404 G4double tau = tkin/mass;
405 G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.)/
406 (1.0 + 2.0*ratio*(tau + 1.0) + ratio*ratio);
407 cosTetMaxElec = 1.0 - std::min(cutEnergy, tmax)*electron_mass_c2/mom2;
408 } else {
409
410 G4double tmax = (particle == theElectron) ? 0.5*tkin : tkin;
411 G4double t = std::min(cutEnergy, tmax);
412 G4double mom21 = t*(t + 2.0*electron_mass_c2);
413 G4double t1 = tkin - t;
414 //G4cout <<"tkin=" <<tkin<<" tmax= "<<tmax<<" t= "
415 //<<t<< " t1= "<<t1<<" cut= "<<ecut<<G4endl;
416 if(t1 > 0.0) {
417 G4double mom22 = t1*(t1 + 2.0*mass);
418 G4double ctm = (mom2 + mom22 - mom21)*0.5/sqrt(mom2*mom22);
419 if(ctm < 1.0) { cosTetMaxElec = ctm; }
420 if(particle == theElectron && cosTetMaxElec < 0.0) {
421 cosTetMaxElec = 0.0;
422 }
423 }
424 }
425}
static constexpr double MeV
Definition: G4SIunits.hh:200
const G4ParticleDefinition * particle
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
float electron_mass_c2
Definition: hepunit.py:273

References cosTetMaxElec, source.hepunit::electron_mass_c2, mass, MeV, G4INCL::Math::min(), mom2, particle, theElectron, and tkin.

Referenced by SetupTarget().

◆ ComputeNuclearCrossSection()

G4double G4WentzelOKandVIxSection::ComputeNuclearCrossSection ( G4double  CosThetaMin,
G4double  CosThetaMax 
)
inline

◆ ComputeSecondTransportMoment()

G4double G4WentzelOKandVIxSection::ComputeSecondTransportMoment ( G4double  CosThetaMax)

Definition at line 430 of file G4WentzelOKandVIxSection.cc.

431{
432 return 0.0;
433}

Referenced by G4WentzelVIModel::ComputeSecondMoment().

◆ ComputeTransportCrossSectionPerAtom()

G4double G4WentzelOKandVIxSection::ComputeTransportCrossSectionPerAtom ( G4double  CosThetaMax)

Definition at line 248 of file G4WentzelOKandVIxSection.cc.

249{
250 G4double xSection = 0.0;
251 if(cosTMax >= 1.0) { return xSection; }
252
253 G4double costm = std::max(cosTMax,cosTetMaxElec);
255
256 // scattering off electrons
257 if(costm < 1.0) {
258 G4double x = (1.0 - costm)/screenZ;
259 if(x < numlimit) {
260 G4double x2 = 0.5*x*x;
261 xSection = x2*((1.0 - 1.3333333*x + 3*x2) - fb*x*(0.6666667 - x));
262 } else {
263 G4double x1= x/(1 + x);
264 G4double xlog = G4Log(1.0 + x);
265 xSection = xlog - x1 - fb*(x + x1 - 2*xlog);
266 }
267
268 if(xSection < 0.0) {
269 ++nwarnings;
270 if(nwarnings < nwarnlimit) {
271 G4cout << "G4WentzelOKandVIxSection::ComputeTransportCrossSectionPerAtom"
272 << " scattering on e- <0"
273 << G4endl;
274 G4cout << "cross= " << xSection
275 << " e(MeV)= " << tkin << " p(MeV/c)= " << sqrt(mom2)
276 << " Z= " << targetZ << " "
278 G4cout << " 1-costm= " << 1.0-costm << " screenZ= " << screenZ
279 << " x= " << x << G4endl;
280 }
281 xSection = 0.0;
282 }
283 }
284 /*
285 G4cout << "G4WentzelOKandVIxSection::ComputeTransportCrossSectionPerAtom: \n"
286 << " Z= " << targetZ
287 << " e(MeV)= " << tkin/MeV << " XSel= " << xSection
288 << " zmaxE= " << (1.0 - cosTetMaxElec)/screenZ
289 << " zmaxN= " << (1.0 - cosThetaMax)/screenZ
290 << " 1-costm= " << 1.0 - cosThetaMax << G4endl;
291 */
292 // scattering off nucleus
293 if(cosTMax < 1.0) {
294 G4double x = (1.0 - cosTMax)/screenZ;
295 G4double y;
296 if(x < numlimit) {
297 G4double x2 = 0.5*x*x;
298 y = x2*((1.0 - 1.3333333*x + 3*x2) - fb*x*(0.6666667 - x));
299 } else {
300 G4double x1= x/(1 + x);
301 G4double xlog = G4Log(1.0 + x);
302 y = xlog - x1 - fb*(x + x1 - 2*xlog);
303 }
304
305 if(y < 0.0) {
306 ++nwarnings;
307 if(nwarnings < nwarnlimit) {
308 G4cout << "G4WentzelOKandVIxSection::ComputeTransportCrossSectionPerAtom"
309 << " scattering on nucleus <0"
310 << G4endl;
311 G4cout << "y= " << y
312 << " e(MeV)= " << tkin << " Z= " << targetZ << " "
314 G4cout << " formfactA= " << formfactA << " screenZ= " << screenZ
315 << " x= " << x <<G4endl;
316 }
317 y = 0.0;
318 }
319 xSection += y*targetZ;
320 }
321 xSection *= kinFactor;
322
323 /*
324 G4cout << "Z= " << targetZ << " XStot= " << xSection/barn
325 << " screenZ= " << screenZ << " formF= " << formfactA
326 << " for " << particle->GetParticleName()
327 << " m= " << mass << " 1/v= " << sqrt(invbeta2)
328 << " p= " << sqrt(mom2)
329 << " x= " << x << G4endl;
330 */
331 return xSection;
332}
G4double G4Log(G4double x)
Definition: G4Log.hh:226
const G4int nwarnlimit
const G4double numlimit
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
const G4String & GetParticleName() const

References cosTetMaxElec, factB, formfactA, G4cout, G4endl, G4Log(), G4ParticleDefinition::GetParticleName(), kinFactor, G4INCL::Math::max(), mom2, numlimit, nwarnings, nwarnlimit, particle, screenZ, targetZ, and tkin.

Referenced by G4WentzelVIModel::ComputeCrossSectionPerAtom(), G4WentzelVIRelModel::ComputeCrossSectionPerAtom(), and G4WentzelVIModel::ComputeTransportXSectionPerVolume().

◆ FlatFormfactor()

G4double G4WentzelOKandVIxSection::FlatFormfactor ( G4double  x)
inlineprotected

Definition at line 237 of file G4WentzelOKandVIxSection.hh.

238{
239 return 3.0*(std::sin(x) - x*std::cos(x))/(x*x*x);
240}

Referenced by SampleSingleScattering().

◆ GetCosThetaElec()

G4double G4WentzelOKandVIxSection::GetCosThetaElec ( ) const
inline

Definition at line 210 of file G4WentzelOKandVIxSection.hh.

211{
212 return cosTetMaxElec;
213}

References cosTetMaxElec.

◆ GetCosThetaNuc()

G4double G4WentzelOKandVIxSection::GetCosThetaNuc ( ) const
inline

Definition at line 203 of file G4WentzelOKandVIxSection.hh.

204{
205 return cosTetMaxNuc;
206}

References cosTetMaxNuc.

◆ GetMomentumSquare()

G4double G4WentzelOKandVIxSection::GetMomentumSquare ( ) const
inline

Definition at line 196 of file G4WentzelOKandVIxSection.hh.

197{
198 return mom2;
199}

References mom2.

Referenced by G4eCoulombScatteringModel::SampleSecondaries().

◆ Initialise()

void G4WentzelOKandVIxSection::Initialise ( const G4ParticleDefinition p,
G4double  CosThetaLim 
)

Definition at line 100 of file G4WentzelOKandVIxSection.cc.

102{
103 SetupParticle(p);
104 tkin = mom2 = momCM2 = 0.0;
105 ecut = etag = DBL_MAX;
106 targetZ = 0;
107
108 // cosThetaMax is below 1.0 only when MSC is combined with SS
109 if(isCombined) { cosThetaMax = cosThetaLim; }
112 factorA2 = 0.5*a*a;
113 currentMaterial = nullptr;
114
116 if(0.0 == ScreenRSquare[0]) { InitialiseA(); }
117
118 // Mott corrections always added
119 if((p == theElectron || p == thePositron) && !fMottXSection) {
121 fMottXSection->Initialise(p, 1.0);
122 }
123 /*
124 G4cout << "G4WentzelOKandVIxSection::Initialise for "
125 << p->GetParticleName() << " cosThetaMax= " << cosThetaMax
126 << " " << ScreenRSquare[0] << " coeff= " << coeff << G4endl;
127 */
128}
static G4EmParameters * Instance()
G4NuclearFormfactorType NuclearFormfactorType() const
G4double FactorForAngleLimit() const
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
void SetupParticle(const G4ParticleDefinition *)
G4NuclearFormfactorType fNucFormfactor
static constexpr double hbarc
static constexpr double fermi
Definition: SystemOfUnits.h:84
#define DBL_MAX
Definition: templates.hh:62

References cosThetaMax, currentMaterial, DBL_MAX, ecut, etag, factorA2, G4EmParameters::FactorForAngleLimit(), CLHEP::fermi, fMottXSection, fNucFormfactor, CLHEP::hbarc, G4ScreeningMottCrossSection::Initialise(), InitialiseA(), G4EmParameters::Instance(), isCombined, mom2, momCM2, G4EmParameters::NuclearFormfactorType(), ScreenRSquare, SetupParticle(), targetZ, theElectron, thePositron, and tkin.

Referenced by G4eCoulombScatteringModel::Initialise(), G4hCoulombScatteringModel::Initialise(), and G4WentzelVIModel::Initialise().

◆ InitialiseA()

void G4WentzelOKandVIxSection::InitialiseA ( )
protected

Definition at line 132 of file G4WentzelOKandVIxSection.cc.

133{
134 // Thomas-Fermi screening radii
135 // Formfactors from A.V. Butkevich et al., NIM A 488 (2002) 282
136#ifdef G4MULTITHREADED
137 G4MUTEXLOCK(&G4WentzelOKandVIxSection::WentzelOKandVIxSectionMutex);
138 if(0.0 == ScreenRSquare[0]) {
139#endif
140 const G4double invmev2 = 1./(CLHEP::MeV*CLHEP::MeV);
142 G4double constn = 6.937e-6*invmev2;
144
145 G4double afact = 0.5*fct*alpha2*a0*a0;
146 ScreenRSquare[0] = afact;
147 ScreenRSquare[1] = afact;
148 ScreenRSquareElec[1] = afact;
149 FormFactor[1] = 3.097e-6*invmev2;
150
151 for(G4int j=2; j<100; ++j) {
152 G4double x = fG4pow->Z13(j);
153 ScreenRSquare[j] = afact*(1 + G4Exp(-j*j*0.001))*x*x;
154 ScreenRSquareElec[j] = afact*x*x;
155 x = fNistManager->GetA27(j);
156 FormFactor[j] = constn*x*x;
157 }
158#ifdef G4MULTITHREADED
159 }
160 G4MUTEXUNLOCK(&G4WentzelOKandVIxSection::WentzelOKandVIxSectionMutex);
161#endif
162
163 //G4cout << "G4WentzelOKandVIxSection::Initialise mass= " << mass
164 // << " " << p->GetParticleName()
165 // << " cosThetaMax= " << cosThetaMax << G4endl;
166
167}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
const G4double a0
#define G4MUTEXLOCK(mutex)
Definition: G4Threading.hh:251
#define G4MUTEXUNLOCK(mutex)
Definition: G4Threading.hh:254
int G4int
Definition: G4Types.hh:85
const G4double alpha2
G4double ScreeningFactor() const
G4double GetA27(G4int Z) const
G4double Z13(G4int Z) const
Definition: G4Pow.hh:123
static G4double ScreenRSquareElec[100]
static constexpr double MeV

References a0, alpha2, CLHEP::electron_mass_c2, fG4pow, fNistManager, FormFactor, G4Exp(), G4MUTEXLOCK, G4MUTEXUNLOCK, G4NistManager::GetA27(), G4EmParameters::Instance(), CLHEP::MeV, G4EmParameters::ScreeningFactor(), ScreenRSquare, ScreenRSquareElec, and G4Pow::Z13().

Referenced by Initialise().

◆ operator=()

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

◆ SampleSingleScattering()

G4ThreeVector & G4WentzelOKandVIxSection::SampleSingleScattering ( G4double  CosThetaMin,
G4double  CosThetaMax,
G4double  elecRatio 
)

Definition at line 337 of file G4WentzelOKandVIxSection.cc.

340{
341 temp.set(0.0,0.0,1.0);
342 CLHEP::HepRandomEngine* rndmEngineMod = G4Random::getTheEngine();
343
344 G4double formf = formfactA;
345 G4double cost1 = cosTMin;
346 G4double cost2 = cosTMax;
347 if(elecRatio > 0.0) {
348 if(rndmEngineMod->flat() <= elecRatio) {
349 formf = 0.0;
350 cost1 = std::max(cost1,cosTetMaxElec);
351 cost2 = std::max(cost2,cosTetMaxElec);
352 }
353 }
354 if(cost1 > cost2) {
355
356 G4double w1 = 1. - cost1 + screenZ;
357 G4double w2 = 1. - cost2 + screenZ;
358 G4double z1 = w1*w2/(w1 + rndmEngineMod->flat()*(w2 - w1)) - screenZ;
359
360 G4double fm = 1.0;
362 fm += formf*z1;
363 fm = 1.0/(fm*fm);
364 } else if(fNucFormfactor == fGaussianNF) {
365 fm = G4Exp(-2*formf*z1);
366 } else if(fNucFormfactor == fFlatNF) {
367 static const G4double ccoef = 0.00508/MeV;
368 G4double x = std::sqrt(2.*mom2*z1)*ccoef*2.;
369 fm = FlatFormfactor(x);
370 fm *= FlatFormfactor(x*0.6
372 }
373 G4double grej;
374 if(fMottXSection) {
376 grej = fMottXSection->RatioMottRutherfordCosT(std::sqrt(z1))*fm*fm;
377 } else {
378 grej = (1. - z1*factB + factB1*targetZ*sqrt(z1*factB)*(2. - z1))
379 *fm*fm/(1.0 + z1*factD);
380 }
381 // G4cout << "SampleSingleScattering: E= " << tkin << " z1= "
382 // << z1 << " grej= "<< grej << " mottFact= "<< fMottFactor<< G4endl;
383 if(fMottFactor*rndmEngineMod->flat() <= grej ) {
384 // exclude "false" scattering due to formfactor and spin effect
385 G4double cost = 1.0 - z1;
386 if(cost > 1.0) { cost = 1.0; }
387 else if(cost < -1.0) { cost =-1.0; }
388 G4double sint = sqrt((1.0 - cost)*(1.0 + cost));
389 //G4cout << "sint= " << sint << G4endl;
390 G4double phi = twopi*rndmEngineMod->flat();
391 temp.set(sint*cos(phi),sint*sin(phi),cost);
392 }
393 }
394 return temp;
395}
static constexpr double twopi
Definition: G4SIunits.hh:56
const G4double factB1
void set(double x, double y, double z)
virtual double flat()=0
G4double GetAtomicMassAmu(const G4String &symb) const
G4double A13(G4double A) const
Definition: G4Pow.cc:120
void SetupKinematic(G4double kinEnergy, G4int Z)
G4double RatioMottRutherfordCosT(G4double sin2t2)

References G4Pow::A13(), cosTetMaxElec, factB, factB1, factD, fExponentialNF, fFlatNF, fG4pow, fGaussianNF, CLHEP::HepRandomEngine::flat(), FlatFormfactor(), fMottFactor, fMottXSection, fNistManager, fNucFormfactor, formfactA, G4Exp(), G4NistManager::GetAtomicMassAmu(), G4INCL::Math::max(), MeV, mom2, G4ScreeningMottCrossSection::RatioMottRutherfordCosT(), screenZ, CLHEP::Hep3Vector::set(), G4ScreeningMottCrossSection::SetupKinematic(), targetZ, temp, tkin, and twopi.

Referenced by G4WentzelVIModel::SampleScattering(), G4eCoulombScatteringModel::SampleSecondaries(), and G4hCoulombScatteringModel::SampleSecondaries().

◆ SetTargetMass()

void G4WentzelOKandVIxSection::SetTargetMass ( G4double  value)
inline

◆ SetupKinematic()

G4double G4WentzelOKandVIxSection::SetupKinematic ( G4double  kinEnergy,
const G4Material mat 
)
virtual

◆ SetupParticle()

void G4WentzelOKandVIxSection::SetupParticle ( const G4ParticleDefinition p)

◆ SetupTarget()

G4double G4WentzelOKandVIxSection::SetupTarget ( G4int  Z,
G4double  cut 
)

Definition at line 206 of file G4WentzelOKandVIxSection.cc.

207{
208 G4double cosTetMaxNuc2 = cosTetMaxNuc;
209 if(Z != targetZ || tkin != etag) {
210 etag = tkin;
211 targetZ = std::min(Z, 99);
212 G4double massT = (1 == Z) ? CLHEP::proton_mass_c2 :
214 SetTargetMass(massT);
215
218 fMottFactor = (1.0 + 2.0e-4*Z*Z);
219 }
220
221 if(1 == Z) {
223 } else if(mass > MeV) {
224 screenZ = std::min(Z*1.13,1.13 +3.76*Z*Z*invbeta2*alpha2*chargeSquare)*
226 } else {
227 G4double tau = tkin/mass;
228 screenZ = std::min(Z*1.13,(1.13 +3.76*Z*Z
229 *invbeta2*alpha2*std::sqrt(tau/(tau + fG4pow->Z23(targetZ)))))*
231 }
232 if(targetZ == 1 && particle == theProton && cosTetMaxNuc2 < 0.0) {
233 cosTetMaxNuc2 = 0.0;
234 }
236
237 cosTetMaxElec = 1.0;
239 }
240 //G4cout << "SetupTarget: Z= " << targetZ << " kinFactor= " << kinFactor
241 // << " fMottFactor= " << fMottFactor << " screenZ= " << screenZ <<G4endl;
242 return cosTetMaxNuc2;
243}
const G4int Z[17]
G4double Z23(G4int Z) const
Definition: G4Pow.hh:125
void ComputeMaxElectronScattering(G4double cut)
static constexpr double amu_c2

References alpha2, CLHEP::amu_c2, chargeSquare, coeff, ComputeMaxElectronScattering(), cosTetMaxElec, cosTetMaxNuc, etag, fG4pow, fMottFactor, fMottXSection, fNistManager, formfactA, FormFactor, G4NistManager::GetAtomicMassAmu(), invbeta2, kinFactor, mass, MeV, G4INCL::Math::min(), mom2, particle, CLHEP::proton_mass_c2, ScreenRSquare, ScreenRSquareElec, screenZ, SetTargetMass(), targetZ, theElectron, theProton, tkin, Z, and G4Pow::Z23().

Referenced by G4eCoulombScatteringModel::ComputeCrossSectionPerAtom(), G4hCoulombScatteringModel::ComputeCrossSectionPerAtom(), G4WentzelVIModel::ComputeCrossSectionPerAtom(), G4WentzelVIRelModel::ComputeCrossSectionPerAtom(), G4WentzelVIModel::ComputeSecondMoment(), G4WentzelVIModel::ComputeTransportXSectionPerVolume(), G4WentzelVIModel::SampleScattering(), G4eCoulombScatteringModel::SampleSecondaries(), and G4hCoulombScatteringModel::SampleSecondaries().

Field Documentation

◆ charge3

G4double G4WentzelOKandVIxSection::charge3 = 0.0
protected

Definition at line 146 of file G4WentzelOKandVIxSection.hh.

Referenced by SetupParticle().

◆ chargeSquare

G4double G4WentzelOKandVIxSection::chargeSquare = 0.0
protected

Definition at line 145 of file G4WentzelOKandVIxSection.hh.

Referenced by SetupParticle(), and SetupTarget().

◆ coeff

G4double G4WentzelOKandVIxSection::coeff
protected

Definition at line 140 of file G4WentzelOKandVIxSection.hh.

Referenced by G4WentzelOKandVIxSection(), and SetupTarget().

◆ cosTetMaxElec

G4double G4WentzelOKandVIxSection::cosTetMaxElec = 1.0
protected

◆ cosTetMaxNuc

G4double G4WentzelOKandVIxSection::cosTetMaxNuc = 1.0
protected

◆ cosThetaMax

G4double G4WentzelOKandVIxSection::cosThetaMax = -1.0
protected

◆ currentMaterial

const G4Material* G4WentzelOKandVIxSection::currentMaterial = nullptr
protected

◆ ecut

G4double G4WentzelOKandVIxSection::ecut = DBL_MAX
protected

Definition at line 155 of file G4WentzelOKandVIxSection.hh.

Referenced by Initialise().

◆ etag

G4double G4WentzelOKandVIxSection::etag = DBL_MAX
protected

Definition at line 154 of file G4WentzelOKandVIxSection.hh.

Referenced by Initialise(), and SetupTarget().

◆ factB

G4double G4WentzelOKandVIxSection::factB = 0.0
protected

◆ factD

G4double G4WentzelOKandVIxSection::factD = 0.0
protected

◆ factorA2

G4double G4WentzelOKandVIxSection::factorA2 = 0.0
protected

◆ fG4pow

G4Pow* G4WentzelOKandVIxSection::fG4pow
protected

◆ fMottFactor

G4double G4WentzelOKandVIxSection::fMottFactor = 1.0
protected

◆ fMottXSection

G4ScreeningMottCrossSection* G4WentzelOKandVIxSection::fMottXSection = nullptr
protected

◆ fNistManager

G4NistManager* G4WentzelOKandVIxSection::fNistManager
protected

◆ fNucFormfactor

G4NuclearFormfactorType G4WentzelOKandVIxSection::fNucFormfactor = fExponentialNF
protected

Definition at line 172 of file G4WentzelOKandVIxSection.hh.

Referenced by Initialise(), and SampleSingleScattering().

◆ formfactA

G4double G4WentzelOKandVIxSection::formfactA = 0.0
protected

◆ FormFactor

G4double G4WentzelOKandVIxSection::FormFactor = {0.0}
staticprotected

Definition at line 178 of file G4WentzelOKandVIxSection.hh.

Referenced by InitialiseA(), and SetupTarget().

◆ gam0pcmp

G4double G4WentzelOKandVIxSection::gam0pcmp = 1.0
protected

Definition at line 165 of file G4WentzelOKandVIxSection.hh.

◆ invbeta2

G4double G4WentzelOKandVIxSection::invbeta2 = 1.0
protected

◆ isCombined

G4bool G4WentzelOKandVIxSection::isCombined
protected

◆ kinFactor

G4double G4WentzelOKandVIxSection::kinFactor = 1.0
protected

◆ mass

G4double G4WentzelOKandVIxSection::mass = 0.0
protected

◆ mom2

G4double G4WentzelOKandVIxSection::mom2 = 0.0
protected

◆ momCM2

G4double G4WentzelOKandVIxSection::momCM2 = 0.0
protected

Definition at line 151 of file G4WentzelOKandVIxSection.hh.

Referenced by Initialise().

◆ nwarnings

G4int G4WentzelOKandVIxSection::nwarnings = 0
protected

Definition at line 170 of file G4WentzelOKandVIxSection.hh.

Referenced by ComputeTransportCrossSectionPerAtom().

◆ particle

const G4ParticleDefinition* G4WentzelOKandVIxSection::particle = nullptr
protected

◆ pcmp2

G4double G4WentzelOKandVIxSection::pcmp2 = 1.0
protected

Definition at line 166 of file G4WentzelOKandVIxSection.hh.

◆ ScreenRSquare

G4double G4WentzelOKandVIxSection::ScreenRSquare = {0.0}
staticprotected

Definition at line 177 of file G4WentzelOKandVIxSection.hh.

Referenced by Initialise(), InitialiseA(), and SetupTarget().

◆ ScreenRSquareElec

G4double G4WentzelOKandVIxSection::ScreenRSquareElec = {0.0}
staticprotected

Definition at line 176 of file G4WentzelOKandVIxSection.hh.

Referenced by InitialiseA(), and SetupTarget().

◆ screenZ

G4double G4WentzelOKandVIxSection::screenZ = 0.0
protected

◆ spin

G4double G4WentzelOKandVIxSection::spin = 0.0
protected

◆ targetMass

G4double G4WentzelOKandVIxSection::targetMass
protected

◆ targetZ

G4int G4WentzelOKandVIxSection::targetZ = 0
protected

◆ temp

G4ThreeVector G4WentzelOKandVIxSection::temp
protected

Definition at line 137 of file G4WentzelOKandVIxSection.hh.

Referenced by SampleSingleScattering().

◆ theElectron

const G4ParticleDefinition* G4WentzelOKandVIxSection::theElectron
protected

◆ thePositron

const G4ParticleDefinition* G4WentzelOKandVIxSection::thePositron
protected

Definition at line 128 of file G4WentzelOKandVIxSection.hh.

Referenced by G4WentzelOKandVIxSection(), and Initialise().

◆ theProton

const G4ParticleDefinition* G4WentzelOKandVIxSection::theProton
protected

Definition at line 126 of file G4WentzelOKandVIxSection.hh.

Referenced by G4WentzelOKandVIxSection(), and SetupTarget().

◆ tkin

G4double G4WentzelOKandVIxSection::tkin = 0.0
protected

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