ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4GoudsmitSaundersonTable Class Reference

#include <geant4/tree/geant4-10.6-release/source/processes/electromagnetic/standard/include/G4GoudsmitSaundersonTable.hh>

+ Collaboration diagram for G4GoudsmitSaundersonTable:

Classes

struct  GSMSCAngularDtr
 
struct  SCPCorrection
 

Public Member Functions

 G4GoudsmitSaundersonTable (G4bool iselectron)
 
 ~G4GoudsmitSaundersonTable ()
 
void Initialise (G4double lownergylimit, G4double highenergylimit)
 
void LoadMSCData ()
 
G4bool Sampling (G4double lambdaval, G4double qval, G4double scra, G4double &cost, G4double &sint, G4double lekin, G4double beta2, G4int matindx, GSMSCAngularDtr **gsDtr, G4int &mcekini, G4int &mcdelti, G4double &transfPar, G4bool isfirst)
 
G4double SampleCosTheta (G4double lambdaval, G4double qval, G4double scra, G4double lekin, G4double beta2, G4int matindx, GSMSCAngularDtr **gsDtr, G4int &mcekini, G4int &mcdelti, G4double &transfPar, G4bool isfirst)
 
G4double SampleGSSRCosTheta (const GSMSCAngularDtr *gsDrt, G4double transfpar)
 
G4double SingleScattering (G4double lambdaval, G4double scra, G4double lekin, G4double beta2, G4int matindx)
 
GSMSCAngularDtrGetGSAngularDtr (G4double scra, G4double &lambdaval, G4double &qval, G4double &transfpar)
 
G4double GetMoliereBc (G4int matindx)
 
G4double GetMoliereXc2 (G4int matindx)
 
void GetMottCorrectionFactors (G4double logekin, G4double beta2, G4int matindx, G4double &mcToScr, G4double &mcToQ1, G4double &mcToG2PerG1)
 
void SetOptionMottCorrection (G4bool val)
 
void SetOptionPWACorrection (G4bool val)
 
G4double ComputeScatteringPowerCorrection (const G4MaterialCutsCouple *matcut, G4double ekin)
 
void InitSCPCorrection ()
 

Private Member Functions

void InitMoliereMSCParams ()
 

Private Attributes

G4bool fIsElectron
 
G4bool fIsMottCorrection
 
G4bool fIsPWACorrection
 
G4double fLogLambda0
 
G4double fLogDeltaLambda
 
G4double fInvLogDeltaLambda
 
G4double fInvDeltaQ1
 
G4double fDeltaQ2
 
G4double fInvDeltaQ2
 
G4double fLowEnergyLimit
 
G4double fHighEnergyLimit
 
int fNumSPCEbinPerDec
 
std::vector< SCPCorrection * > fSCPCPerMatCuts
 

Static Private Attributes

static G4bool gIsInitialised = false
 
static constexpr G4int gLAMBNUM = 64
 
static constexpr G4int gQNUM1 = 15
 
static constexpr G4int gQNUM2 = 32
 
static constexpr G4int gNUMSCR1 = 201
 
static constexpr G4int gNUMSCR2 = 51
 
static constexpr G4double gLAMBMIN = 1.0
 
static constexpr G4double gLAMBMAX = 100000.0
 
static constexpr G4double gQMIN1 = 0.001
 
static constexpr G4double gQMAX1 = 0.99
 
static constexpr G4double gQMIN2 = 0.99
 
static constexpr G4double gQMAX2 = 7.99
 
static std::vector
< GSMSCAngularDtr * > 
gGSMSCAngularDistributions1
 
static std::vector
< GSMSCAngularDtr * > 
gGSMSCAngularDistributions2
 

Detailed Description

Definition at line 83 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 83 of file G4GoudsmitSaundersonTable.hh

Constructor & Destructor Documentation

G4GoudsmitSaundersonTable::G4GoudsmitSaundersonTable ( G4bool  iselectron)
G4GoudsmitSaundersonTable::~G4GoudsmitSaundersonTable ( )

Definition at line 131 of file G4GoudsmitSaundersonTable.cc.

View newest version in sPHENIX GitHub at line 131 of file G4GoudsmitSaundersonTable.cc

References fSCPCPerMatCuts, gGSMSCAngularDistributions1, gGSMSCAngularDistributions2, and gIsInitialised.

Member Function Documentation

G4double G4GoudsmitSaundersonTable::ComputeScatteringPowerCorrection ( const G4MaterialCutsCouple matcut,
G4double  ekin 
)

Definition at line 611 of file G4GoudsmitSaundersonTable.cc.

View newest version in sPHENIX GitHub at line 611 of file G4GoudsmitSaundersonTable.cc

References fSCPCPerMatCuts, G4Log(), G4MaterialCutsCouple::GetIndex(), and imax.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4GoudsmitSaundersonTable::GSMSCAngularDtr * G4GoudsmitSaundersonTable::GetGSAngularDtr ( G4double  scra,
G4double lambdaval,
G4double qval,
G4double transfpar 
)

Definition at line 359 of file G4GoudsmitSaundersonTable.cc.

View newest version in sPHENIX GitHub at line 359 of file G4GoudsmitSaundersonTable.cc

References fInvDeltaQ1, fInvDeltaQ2, fInvLogDeltaLambda, fLogLambda0, G4Log(), G4UniformRand, gGSMSCAngularDistributions1, gGSMSCAngularDistributions2, gLAMBMAX, gLAMBNUM, gQMAX2, gQMIN1, gQMIN2, gQNUM1, and gQNUM2.

Referenced by SampleCosTheta().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4GoudsmitSaundersonTable::GetMoliereBc ( G4int  matindx)
inline

Definition at line 122 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 122 of file G4GoudsmitSaundersonTable.hh

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

+ Here is the caller graph for this function:

G4double G4GoudsmitSaundersonTable::GetMoliereXc2 ( G4int  matindx)
inline

Definition at line 124 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 124 of file G4GoudsmitSaundersonTable.hh

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

+ Here is the caller graph for this function:

void G4GoudsmitSaundersonTable::GetMottCorrectionFactors ( G4double  logekin,
G4double  beta2,
G4int  matindx,
G4double mcToScr,
G4double mcToQ1,
G4double mcToG2PerG1 
)

Definition at line 543 of file G4GoudsmitSaundersonTable.cc.

View newest version in sPHENIX GitHub at line 543 of file G4GoudsmitSaundersonTable.cc

References fIsMottCorrection.

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

+ Here is the caller graph for this function:

void G4GoudsmitSaundersonTable::Initialise ( G4double  lownergylimit,
G4double  highenergylimit 
)

Definition at line 166 of file G4GoudsmitSaundersonTable.cc.

View newest version in sPHENIX GitHub at line 166 of file G4GoudsmitSaundersonTable.cc

References fDeltaQ2, fHighEnergyLimit, fInvDeltaQ1, fInvDeltaQ2, fInvLogDeltaLambda, fIsElectron, fIsMottCorrection, fLogDeltaLambda, fLogLambda0, fLowEnergyLimit, G4Log(), gIsInitialised, gLAMBMAX, gLAMBMIN, gLAMBNUM, gQMAX1, gQMAX2, gQMIN1, gQMIN2, gQNUM1, gQNUM2, InitMoliereMSCParams(), InitSCPCorrection(), and LoadMSCData().

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 553 of file G4GoudsmitSaundersonTable.cc.

View newest version in sPHENIX GitHub at line 553 of file G4GoudsmitSaundersonTable.cc

References CLHEP::cm, CLHEP::cm3, fIsMottCorrection, fIsPWACorrection, CLHEP::g, G4Exp(), G4Log(), G4Material::GetDensity(), G4Material::GetElementVector(), G4Material::GetIndex(), G4Material::GetMaterialTable(), G4GSMottCorrection::GetMaxZet(), G4Material::GetNumberOfElements(), G4Material::GetTotNbOfAtomsPerVolume(), G4Material::GetVecNbOfAtomsPerVolume(), maxZ, and CLHEP::MeV.

Referenced by Initialise().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4GoudsmitSaundersonTable::InitSCPCorrection ( )

Definition at line 632 of file G4GoudsmitSaundersonTable.cc.

View newest version in sPHENIX GitHub at line 632 of file G4GoudsmitSaundersonTable.cc

References A(), CLHEP::electron_mass_c2, fHighEnergyLimit, fIsElectron, fLowEnergyLimit, fNumSPCEbinPerDec, fSCPCPerMatCuts, G4Exp(), G4Log(), G4lrint(), G4ProductionCutsTable::GetEnergyCutsVector(), G4MaterialCutsCouple::GetIndex(), G4Material::GetIndex(), G4Material::GetIonisation(), G4MaterialCutsCouple::GetMaterial(), G4ProductionCutsTable::GetMaterialCutsCouple(), GetMoliereBc(), GetMoliereXc2(), G4ProductionCutsTable::GetProductionCutsTable(), G4ProductionCutsTable::GetTableSize(), G4IonisParamMat::GetZeffective(), idxG4ElectronCut, idxG4PositronCut, max, min, and G4InuclParticleNames::z0.

Referenced by Initialise().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4GoudsmitSaundersonTable::LoadMSCData ( )

Definition at line 437 of file G4GoudsmitSaundersonTable.cc.

View newest version in sPHENIX GitHub at line 437 of file G4GoudsmitSaundersonTable.cc

References FatalException, test::fname, G4GoudsmitSaundersonTable::GSMSCAngularDtr::fNumData, G4GoudsmitSaundersonTable::GSMSCAngularDtr::fParamA, G4GoudsmitSaundersonTable::GSMSCAngularDtr::fParamB, G4GoudsmitSaundersonTable::GSMSCAngularDtr::fUValues, G4Exception(), gGSMSCAngularDistributions1, gGSMSCAngularDistributions2, gLAMBNUM, gQNUM1, gQNUM2, in, and nlohmann::to_string().

Referenced by Initialise().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4GoudsmitSaundersonTable::SampleCosTheta ( G4double  lambdaval,
G4double  qval,
G4double  scra,
G4double  lekin,
G4double  beta2,
G4int  matindx,
GSMSCAngularDtr **  gsDtr,
G4int mcekini,
G4int mcdelti,
G4double transfPar,
G4bool  isfirst 
)

Definition at line 305 of file G4GoudsmitSaundersonTable.cc.

View newest version in sPHENIX GitHub at line 305 of file G4GoudsmitSaundersonTable.cc

References fIsMottCorrection, G4UniformRand, GetGSAngularDtr(), nlooplim, and SampleGSSRCosTheta().

Referenced by Sampling().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4GoudsmitSaundersonTable::SampleGSSRCosTheta ( const GSMSCAngularDtr gsDrt,
G4double  transfpar 
)

Definition at line 334 of file G4GoudsmitSaundersonTable.cc.

View newest version in sPHENIX GitHub at line 334 of file G4GoudsmitSaundersonTable.cc

References Acts::Test::delta, G4GoudsmitSaundersonTable::GSMSCAngularDtr::fNumData, G4GoudsmitSaundersonTable::GSMSCAngularDtr::fParamA, G4GoudsmitSaundersonTable::GSMSCAngularDtr::fParamB, G4GoudsmitSaundersonTable::GSMSCAngularDtr::fUValues, and G4UniformRand.

Referenced by SampleCosTheta().

+ Here is the caller graph for this function:

G4bool G4GoudsmitSaundersonTable::Sampling ( G4double  lambdaval,
G4double  qval,
G4double  scra,
G4double cost,
G4double sint,
G4double  lekin,
G4double  beta2,
G4int  matindx,
GSMSCAngularDtr **  gsDtr,
G4int mcekini,
G4int mcdelti,
G4double transfPar,
G4bool  isfirst 
)

Definition at line 212 of file G4GoudsmitSaundersonTable.cc.

View newest version in sPHENIX GitHub at line 212 of file G4GoudsmitSaundersonTable.cc

References e, G4Exp(), G4UniformRand, max, SampleCosTheta(), SingleScattering(), and CLHEP::twopi.

Referenced by G4GoudsmitSaundersonMscModel::SampleMSC().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4GoudsmitSaundersonTable::SetOptionMottCorrection ( G4bool  val)
inline

Definition at line 131 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 131 of file G4GoudsmitSaundersonTable.hh

References fIsMottCorrection.

Referenced by G4GoudsmitSaundersonMscModel::Initialise().

+ Here is the caller graph for this function:

void G4GoudsmitSaundersonTable::SetOptionPWACorrection ( G4bool  val)
inline

Definition at line 133 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 133 of file G4GoudsmitSaundersonTable.hh

References fIsPWACorrection.

Referenced by G4GoudsmitSaundersonMscModel::Initialise().

+ Here is the caller graph for this function:

G4double G4GoudsmitSaundersonTable::SingleScattering ( G4double  lambdaval,
G4double  scra,
G4double  lekin,
G4double  beta2,
G4int  matindx 
)

Definition at line 514 of file G4GoudsmitSaundersonTable.cc.

View newest version in sPHENIX GitHub at line 514 of file G4GoudsmitSaundersonTable.cc

References fIsMottCorrection, G4UniformRand, nlooplim, and ds::rand1.

Referenced by G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit(), and Sampling().

+ Here is the caller graph for this function:

Member Data Documentation

G4double G4GoudsmitSaundersonTable::fDeltaQ2
private

Definition at line 167 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 167 of file G4GoudsmitSaundersonTable.hh

Referenced by G4GoudsmitSaundersonTable(), and Initialise().

G4double G4GoudsmitSaundersonTable::fHighEnergyLimit
private

Definition at line 171 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 171 of file G4GoudsmitSaundersonTable.hh

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

G4double G4GoudsmitSaundersonTable::fInvDeltaQ1
private

Definition at line 166 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 166 of file G4GoudsmitSaundersonTable.hh

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

G4double G4GoudsmitSaundersonTable::fInvDeltaQ2
private

Definition at line 168 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 168 of file G4GoudsmitSaundersonTable.hh

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

G4double G4GoudsmitSaundersonTable::fInvLogDeltaLambda
private

Definition at line 165 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 165 of file G4GoudsmitSaundersonTable.hh

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

G4bool G4GoudsmitSaundersonTable::fIsElectron
private

Definition at line 160 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 160 of file G4GoudsmitSaundersonTable.hh

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

G4bool G4GoudsmitSaundersonTable::fIsMottCorrection
private
G4bool G4GoudsmitSaundersonTable::fIsPWACorrection
private

Definition at line 162 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 162 of file G4GoudsmitSaundersonTable.hh

Referenced by G4GoudsmitSaundersonTable(), InitMoliereMSCParams(), and SetOptionPWACorrection().

G4double G4GoudsmitSaundersonTable::fLogDeltaLambda
private

Definition at line 164 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 164 of file G4GoudsmitSaundersonTable.hh

Referenced by G4GoudsmitSaundersonTable(), and Initialise().

G4double G4GoudsmitSaundersonTable::fLogLambda0
private

Definition at line 163 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 163 of file G4GoudsmitSaundersonTable.hh

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

G4double G4GoudsmitSaundersonTable::fLowEnergyLimit
private

Definition at line 170 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 170 of file G4GoudsmitSaundersonTable.hh

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

int G4GoudsmitSaundersonTable::fNumSPCEbinPerDec
private

Definition at line 173 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 173 of file G4GoudsmitSaundersonTable.hh

Referenced by G4GoudsmitSaundersonTable(), and InitSCPCorrection().

std::vector<SCPCorrection*> G4GoudsmitSaundersonTable::fSCPCPerMatCuts
private

Definition at line 182 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 182 of file G4GoudsmitSaundersonTable.hh

Referenced by ComputeScatteringPowerCorrection(), InitSCPCorrection(), and ~G4GoudsmitSaundersonTable().

std::vector< G4GoudsmitSaundersonTable::GSMSCAngularDtr * > G4GoudsmitSaundersonTable::gGSMSCAngularDistributions1
staticprivate

Definition at line 186 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 186 of file G4GoudsmitSaundersonTable.hh

Referenced by GetGSAngularDtr(), LoadMSCData(), and ~G4GoudsmitSaundersonTable().

std::vector< G4GoudsmitSaundersonTable::GSMSCAngularDtr * > G4GoudsmitSaundersonTable::gGSMSCAngularDistributions2
staticprivate

Definition at line 187 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 187 of file G4GoudsmitSaundersonTable.hh

Referenced by GetGSAngularDtr(), LoadMSCData(), and ~G4GoudsmitSaundersonTable().

G4bool G4GoudsmitSaundersonTable::gIsInitialised = false
staticprivate

Definition at line 147 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 147 of file G4GoudsmitSaundersonTable.hh

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

constexpr G4double G4GoudsmitSaundersonTable::gLAMBMAX = 100000.0
staticprivate

Definition at line 154 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 154 of file G4GoudsmitSaundersonTable.hh

Referenced by GetGSAngularDtr(), and Initialise().

constexpr G4double G4GoudsmitSaundersonTable::gLAMBMIN = 1.0
staticprivate

Definition at line 153 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 153 of file G4GoudsmitSaundersonTable.hh

Referenced by Initialise().

constexpr G4int G4GoudsmitSaundersonTable::gLAMBNUM = 64
staticprivate

Definition at line 148 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 148 of file G4GoudsmitSaundersonTable.hh

Referenced by GetGSAngularDtr(), Initialise(), and LoadMSCData().

constexpr G4int G4GoudsmitSaundersonTable::gNUMSCR1 = 201
staticprivate

Definition at line 151 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 151 of file G4GoudsmitSaundersonTable.hh

constexpr G4int G4GoudsmitSaundersonTable::gNUMSCR2 = 51
staticprivate

Definition at line 152 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 152 of file G4GoudsmitSaundersonTable.hh

constexpr G4double G4GoudsmitSaundersonTable::gQMAX1 = 0.99
staticprivate

Definition at line 156 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 156 of file G4GoudsmitSaundersonTable.hh

Referenced by Initialise().

constexpr G4double G4GoudsmitSaundersonTable::gQMAX2 = 7.99
staticprivate

Definition at line 158 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 158 of file G4GoudsmitSaundersonTable.hh

Referenced by GetGSAngularDtr(), and Initialise().

constexpr G4double G4GoudsmitSaundersonTable::gQMIN1 = 0.001
staticprivate

Definition at line 155 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 155 of file G4GoudsmitSaundersonTable.hh

Referenced by GetGSAngularDtr(), and Initialise().

constexpr G4double G4GoudsmitSaundersonTable::gQMIN2 = 0.99
staticprivate

Definition at line 157 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 157 of file G4GoudsmitSaundersonTable.hh

Referenced by GetGSAngularDtr(), and Initialise().

constexpr G4int G4GoudsmitSaundersonTable::gQNUM1 = 15
staticprivate

Definition at line 149 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 149 of file G4GoudsmitSaundersonTable.hh

Referenced by GetGSAngularDtr(), Initialise(), and LoadMSCData().

constexpr G4int G4GoudsmitSaundersonTable::gQNUM2 = 32
staticprivate

Definition at line 150 of file G4GoudsmitSaundersonTable.hh.

View newest version in sPHENIX GitHub at line 150 of file G4GoudsmitSaundersonTable.hh

Referenced by GetGSAngularDtr(), Initialise(), and LoadMSCData().


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