Geant4  10.02
G4GoudsmitSaundersonTable Class Reference

#include <G4GoudsmitSaundersonTable.hh>

Public Member Functions

 G4GoudsmitSaundersonTable ()
 
 ~G4GoudsmitSaundersonTable ()
 
void Initialise ()
 
G4double SampleCosTheta (G4double, G4double, G4double, G4double, G4double, G4double)
 
G4double SampleCosThetaII (G4double, G4double, G4double, G4double, G4double, G4double)
 
G4double GetScreeningParam (G4double)
 
void Sampling (G4double, G4double, G4double, G4double &, G4double &)
 
G4double GetMoliereBc (G4int matindx)
 
G4double GetMoliereXc2 (G4int matindx)
 

Private Member Functions

G4GoudsmitSaundersonTableoperator= (const G4GoudsmitSaundersonTable &right)
 
 G4GoudsmitSaundersonTable (const G4GoudsmitSaundersonTable &)
 
void LoadMSCData ()
 
void LoadMSCDataII ()
 
void InitMoliereMSCParams ()
 

Static Private Attributes

static G4bool fgIsInitialised = FALSE
 
static const G4int fgNumLambdas = 76
 size of grids of some parameters More...
 
static const G4int fgNumLamG1II = 22
 number of $ s/\lambda_{e} $\f-values */ static const G4int fgNumLamG1 = 21; /** number of $ s/{e}G_{1} $-values More...
 
static const G4double fgLambdaValues []
 number of $ s/\lambda_{e}G_{1} $\f-values */ static const G4int fgNumUvalues = 101; /** number of u-vaues */ static const G4int fgNumScreeningParams = 160; /** number of A-vaues */ //@} //@{ /** girds of fixed parameter values */ /** the grid $ s/{e} $-values; size = fgNumLambdas = 76 More...
 
static std::vector< G4double > * fgMoliereBc = 0
 the grid of $ s/\lambda_{e}G_{1} $\f-values; size = fgNumLamG1 = 11 */ static const G4double fgLamG1Values[]; static const G4double fgLamG1ValuesII[]; /** the grid of u-values; size = fgNumUvalues = 101 */ static const G4double fgUValues[]; //@} // precomputed G1(A) function as a table -> run time interpolation to determine // the screening parameter value A that gives back the given first transport // coefficient G1 static const G4double fgG1Values[]; static const G4double fgScreeningParam[]; static const G4double fgSrcAValues[]; static const G4double fgSrcBValues[]; //@{ /** Precomputed equaly probable inverse CDF-s over the 3D parameter grid plus precomputed parameters necessary for proper rational interpolation of the inverse CDF. */ static G4double fgInverseQ2CDFs[fgNumLambdas*fgNumLamG1*fgNumUvalues]; static G4double fgInterParamsA2[fgNumLambdas*fgNumLamG1*fgNumUvalues]; static G4double fgInterParamsB2[fgNumLambdas*fgNumLamG1*fgNumUvalues]; static G4double fgInverseQ2CDFsII[fgNumLambdas*fgNumLamG1II*fgNumUvalues]; static G4double fgInterParamsA2II[fgNumLambdas*fgNumLamG1II*fgNumUvalues]; static G4double fgInterParamsB2II[fgNumLambdas*fgNumLamG1II*fgNumUvalues]; //@} //@{ /** Precomputed $ b_lambda_{c} $ and $ \chi_c^{2} $\f material dependent Moliere parameters that can be used to compute the screening parameter, the elastic scattering cross section (or $ {e} $) under the screened Rutherford cross section approximation. More...
 
static std::vector< G4double > * fgMoliereXc2 = 0
 

Detailed Description

Definition at line 72 of file G4GoudsmitSaundersonTable.hh.

Constructor & Destructor Documentation

G4GoudsmitSaundersonTable::G4GoudsmitSaundersonTable ( )
inline

Definition at line 76 of file G4GoudsmitSaundersonTable.hh.

G4GoudsmitSaundersonTable::~G4GoudsmitSaundersonTable ( )

Definition at line 299 of file G4GoudsmitSaundersonTable.cc.

References FALSE, fgIsInitialised, fgMoliereBc, and fgMoliereXc2.

G4GoudsmitSaundersonTable::G4GoudsmitSaundersonTable ( const G4GoudsmitSaundersonTable )
private

Member Function Documentation

G4double G4GoudsmitSaundersonTable::GetMoliereBc ( G4int  matindx)
inline

Definition at line 104 of file G4GoudsmitSaundersonTable.hh.

References fgMoliereBc.

Referenced by G4GoudsmitSaundersonMscModel::GetTransportMeanFreePath(), and G4GoudsmitSaundersonMscModel::GetTransportMeanFreePathOnly().

+ Here is the caller graph for this function:

G4double G4GoudsmitSaundersonTable::GetMoliereXc2 ( G4int  matindx)
inline

Definition at line 105 of file G4GoudsmitSaundersonTable.hh.

References fgMoliereXc2.

Referenced by G4GoudsmitSaundersonMscModel::GetTransportMeanFreePath(), and G4GoudsmitSaundersonMscModel::GetTransportMeanFreePathOnly().

+ Here is the caller graph for this function:

G4double G4GoudsmitSaundersonTable::GetScreeningParam ( G4double  G1)

Definition at line 556 of file G4GoudsmitSaundersonTable.cc.

References G4Exp(), and G4Log().

Referenced by G4GoudsmitSaundersonMscModel::GetTransportMeanFreePath().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4GoudsmitSaundersonTable::Initialise ( )

Definition at line 288 of file G4GoudsmitSaundersonTable.cc.

References fgIsInitialised, InitMoliereMSCParams(), LoadMSCData(), LoadMSCDataII(), and TRUE.

Referenced by G4GoudsmitSaundersonMscModel::Initialise().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4GoudsmitSaundersonTable::InitMoliereMSCParams ( )
private

Definition at line 740 of file G4GoudsmitSaundersonTable.cc.

References cm, cm3, density, fgMoliereBc, fgMoliereXc2, g, G4Exp(), G4Log(), G4Material::GetDensity(), G4Material::GetElementVector(), G4Material::GetFractionVector(), G4Material::GetIndex(), G4Material::GetMaterialTable(), G4Material::GetNumberOfElements(), and MeV.

Referenced by Initialise().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4GoudsmitSaundersonTable::LoadMSCData ( )
private

Definition at line 568 of file G4GoudsmitSaundersonTable.cc.

References FatalException, fgNumLambdas, and G4Exception().

Referenced by Initialise().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4GoudsmitSaundersonTable::LoadMSCDataII ( )
private

Definition at line 654 of file G4GoudsmitSaundersonTable.cc.

References FatalException, fgNumLambdas, fgNumLamG1II, and G4Exception().

Referenced by Initialise().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4GoudsmitSaundersonTable& G4GoudsmitSaundersonTable::operator= ( const G4GoudsmitSaundersonTable right)
private
G4double G4GoudsmitSaundersonTable::SampleCosTheta ( G4double  lambdavalue,
G4double  lamG1value,
G4double  screeningparam,
G4double  rndm1,
G4double  rndm2,
G4double  rndm3 
)

Definition at line 314 of file G4GoudsmitSaundersonTable.cc.

References a, fgLambdaValues, and G4Log().

Referenced by Sampling().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4GoudsmitSaundersonTable::SampleCosThetaII ( G4double  lambdavalue,
G4double  lamG1value,
G4double  screeningparam,
G4double  rndm1,
G4double  rndm2,
G4double  rndm3 
)

Definition at line 371 of file G4GoudsmitSaundersonTable.cc.

References a, fgLambdaValues, fgNumLamG1II, and G4Log().

Referenced by Sampling().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4GoudsmitSaundersonTable::Sampling ( G4double  lambdavalue,
G4double  lamG1value,
G4double  scrPar,
G4double cost,
G4double sint 
)

**** let it izotropic if we are above the grid i.e. true path length is long

Definition at line 428 of file G4GoudsmitSaundersonTable.cc.

References fgNumLamG1II, G4Exp(), G4UniformRand, G4INCL::Math::max(), SampleCosTheta(), SampleCosThetaII(), and twopi.

Referenced by G4GoudsmitSaundersonMscModel::SampleMSC().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

G4bool G4GoudsmitSaundersonTable::fgIsInitialised = FALSE
staticprivate

Definition at line 178 of file G4GoudsmitSaundersonTable.hh.

Referenced by Initialise(), and ~G4GoudsmitSaundersonTable().

const G4double G4GoudsmitSaundersonTable::fgLambdaValues
staticprivate
Initial value:
={
1.000000000000e+00, 1.165914401180e+00, 1.359356390879e+00, 1.584893192461e+00,
1.847849797422e+00, 2.154434690032e+00, 2.511886431510e+00, 2.928644564625e+00,
3.414548873834e+00, 3.981071705535e+00, 4.641588833613e+00, 5.411695265465e+00,
6.309573444802e+00, 7.356422544596e+00, 8.576958985909e+00, 1.000000000000e+01,
1.165914401180e+01, 1.359356390879e+01, 1.584893192461e+01, 1.847849797422e+01,
2.154434690032e+01, 2.511886431510e+01, 2.928644564625e+01, 3.414548873834e+01,
3.981071705535e+01, 4.641588833613e+01, 5.411695265465e+01, 6.309573444802e+01,
7.356422544596e+01, 8.576958985909e+01, 1.000000000000e+02, 1.165914401180e+02,
1.359356390879e+02, 1.584893192461e+02, 1.847849797422e+02, 2.154434690032e+02,
2.511886431510e+02, 2.928644564625e+02, 3.414548873834e+02, 3.981071705535e+02,
4.641588833613e+02, 5.411695265465e+02, 6.309573444802e+02, 7.356422544596e+02,
8.576958985909e+02, 1.000000000000e+03, 1.165914401180e+03, 1.359356390879e+03,
1.584893192461e+03, 1.847849797422e+03, 2.154434690032e+03, 2.511886431510e+03,
2.928644564625e+03, 3.414548873834e+03, 3.981071705535e+03, 4.641588833613e+03,
5.411695265465e+03, 6.309573444802e+03, 7.356422544596e+03, 8.576958985909e+03,
1.000000000000e+04, 1.165914401180e+04, 1.359356390879e+04, 1.584893192461e+04,
1.847849797422e+04, 2.154434690032e+04, 2.511886431510e+04, 2.928644564625e+04,
3.414548873834e+04, 3.981071705535e+04, 4.641588833613e+04, 5.411695265465e+04,
6.309573444802e+04, 7.356422544596e+04, 8.576958985909e+04, 1.000000000000e+05
}

number of $ s/\lambda_{e}G_{1} $\f-values */ static const G4int fgNumUvalues = 101; /** number of u-vaues */ static const G4int fgNumScreeningParams = 160; /** number of A-vaues */ //@} //@{ /** girds of fixed parameter values */ /** the grid $ s/{e} $-values; size = fgNumLambdas = 76

Definition at line 135 of file G4GoudsmitSaundersonTable.hh.

Referenced by SampleCosTheta(), and SampleCosThetaII().

std::vector< G4double > * G4GoudsmitSaundersonTable::fgMoliereBc = 0
staticprivate

the grid of $ s/\lambda_{e}G_{1} $\f-values; size = fgNumLamG1 = 11 */ static const G4double fgLamG1Values[]; static const G4double fgLamG1ValuesII[]; /** the grid of u-values; size = fgNumUvalues = 101 */ static const G4double fgUValues[]; //@} // precomputed G1(A) function as a table -> run time interpolation to determine // the screening parameter value A that gives back the given first transport // coefficient G1 static const G4double fgG1Values[]; static const G4double fgScreeningParam[]; static const G4double fgSrcAValues[]; static const G4double fgSrcBValues[]; //@{ /** Precomputed equaly probable inverse CDF-s over the 3D parameter grid plus precomputed parameters necessary for proper rational interpolation of the inverse CDF. */ static G4double fgInverseQ2CDFs[fgNumLambdas*fgNumLamG1*fgNumUvalues]; static G4double fgInterParamsA2[fgNumLambdas*fgNumLamG1*fgNumUvalues]; static G4double fgInterParamsB2[fgNumLambdas*fgNumLamG1*fgNumUvalues]; static G4double fgInverseQ2CDFsII[fgNumLambdas*fgNumLamG1II*fgNumUvalues]; static G4double fgInterParamsA2II[fgNumLambdas*fgNumLamG1II*fgNumUvalues]; static G4double fgInterParamsB2II[fgNumLambdas*fgNumLamG1II*fgNumUvalues]; //@} //@{ /** Precomputed $ b_lambda_{c} $ and $ \chi_c^{2} $\f material dependent Moliere parameters that can be used to compute the screening parameter, the elastic scattering cross section (or $ {e} $) under the screened Rutherford cross section approximation.

(These are used in G4GoudsmitSaundersonMscModel if fgIsUsePWATotalXsecData is FALSE.)

Definition at line 173 of file G4GoudsmitSaundersonTable.hh.

Referenced by GetMoliereBc(), InitMoliereMSCParams(), and ~G4GoudsmitSaundersonTable().

std::vector< G4double > * G4GoudsmitSaundersonTable::fgMoliereXc2 = 0
staticprivate
const G4int G4GoudsmitSaundersonTable::fgNumLambdas = 76
staticprivate

size of grids of some parameters

Definition at line 125 of file G4GoudsmitSaundersonTable.hh.

Referenced by LoadMSCData(), and LoadMSCDataII().

const G4int G4GoudsmitSaundersonTable::fgNumLamG1II = 22
staticprivate

number of $ s/\lambda_{e} $\f-values */ static const G4int fgNumLamG1 = 21; /** number of $ s/{e}G_{1} $-values

Definition at line 127 of file G4GoudsmitSaundersonTable.hh.

Referenced by LoadMSCDataII(), SampleCosThetaII(), and Sampling().


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