Geant4-11
|
#include <G4eDPWAElasticDCS.hh>
Data Structures | |
struct | OneSamplingTable |
struct | SCPCorrection |
Public Member Functions | |
void | ComputeCSPerAtom (G4int iz, G4double ekin, G4double &elcs, G4double &tr1cs, G4double &tr2cs, G4double mumin=0.0, G4double mumax=1.0) |
G4double | ComputeScatteringPowerCorrection (const G4MaterialCutsCouple *matcut, G4double ekin) |
G4eDPWAElasticDCS (G4bool iselectron=true, G4bool isrestricted=false) | |
void | InitialiseForZ (std::size_t iz) |
void | InitSCPCorrection (G4double lowEnergyLimit, G4double highEnergyLimit) |
G4double | SampleCosineTheta (std::size_t iz, G4double lekin, G4double r1, G4double r2, G4double r3) |
G4double | SampleCosineThetaRestricted (std::size_t iz, G4double lekin, G4double r1, G4double r2, G4double costMax, G4double costMin) |
~G4eDPWAElasticDCS () | |
Private Member Functions | |
void | BuildSmplingTableForZ (G4int iz) |
void | ComputeMParams (const G4Material *mat, G4double &theBc, G4double &theXc2) |
G4double | FindCumValue (G4double u, const OneSamplingTable &stable, const std::vector< G4double > &uvect) |
const G4String & | FindDirectoryPath () |
void | LoadDCSForZ (G4int iz) |
void | LoadGrid () |
void | ReadCompressedFile (G4String fname, std::istringstream &iss) |
G4double | SampleMu (std::size_t izet, std::size_t ie, G4double r1, G4double muMin, G4double muMax) |
G4double | SampleMu (std::size_t izet, std::size_t ie, G4double r1, G4double r2) |
Private Attributes | |
std::vector< G4Physics2DVector * > | fDCS |
std::vector< G4Physics2DVector * > | fDCSLow |
G4bool | fIsElectron |
G4bool | fIsRestrictedSamplingRequired |
const G4int | fNumSPCEbinPerDec = 3 |
std::vector< std::vector< OneSamplingTable > * > | fSamplingTables |
std::vector< SCPCorrection * > | fSCPCPerMatCuts |
Static Private Attributes | |
static G4String | gDataDirectory = "" |
static std::size_t | gIndxEnergyLim = 35 |
static G4double | gInvDelLogEkin = 1.0 |
static G4bool | gIsGridLoaded = false |
static G4double | gLogMinEkin = 1.0 |
static constexpr std::size_t | gMaxZ = 103 |
static std::size_t | gNumEnergies = 106 |
static std::size_t | gNumThetas1 = 247 |
static std::size_t | gNumThetas2 = 128 |
static std::vector< G4double > | gTheEnergies |
static std::vector< G4double > | gTheMus1 |
static std::vector< G4double > | gTheMus2 |
static std::vector< G4double > | gTheU1 |
static std::vector< G4double > | gTheU2 |
static const G4double | gWGL [8] |
static const G4double | gXGL [8] |
Definition at line 107 of file G4eDPWAElasticDCS.hh.
Definition at line 80 of file G4eDPWAElasticDCS.cc.
References fDCS, fDCSLow, fSamplingTables, and gMaxZ.
G4eDPWAElasticDCS::~G4eDPWAElasticDCS | ( | ) |
Definition at line 89 of file G4eDPWAElasticDCS.cc.
References fDCS, fDCSLow, fSamplingTables, and fSCPCPerMatCuts.
|
private |
Definition at line 351 of file G4eDPWAElasticDCS.cc.
References G4eDPWAElasticDCS::OneSamplingTable::fA, G4eDPWAElasticDCS::OneSamplingTable::fB, G4eDPWAElasticDCS::OneSamplingTable::fCum, G4eDPWAElasticDCS::OneSamplingTable::fI, FindDirectoryPath(), fIsElectron, fIsRestrictedSamplingRequired, test::fname, fSamplingTables, G4eDPWAElasticDCS::OneSamplingTable::fScreenParA, G4eDPWAElasticDCS::OneSamplingTable::fW, gNumEnergies, ReadCompressedFile(), and G4eDPWAElasticDCS::OneSamplingTable::SetSize().
Referenced by InitialiseForZ().
void G4eDPWAElasticDCS::ComputeCSPerAtom | ( | G4int | iz, |
G4double | ekin, | ||
G4double & | elcs, | ||
G4double & | tr1cs, | ||
G4double & | tr2cs, | ||
G4double | mumin = 0.0 , |
||
G4double | mumax = 1.0 |
||
) |
Definition at line 268 of file G4eDPWAElasticDCS.cc.
References fDCS, fDCSLow, fIsElectron, G4Exp(), G4Log(), gIndxEnergyLim, gNumEnergies, gTheEnergies, gTheMus1, gTheMus2, gWGL, gXGL, G4INCL::Math::max(), G4INCL::Math::min(), CLHEP::twopi, and G4Physics2DVector::Value().
Referenced by G4eDPWACoulombScatteringModel::ComputeCrossSectionPerAtom().
|
private |
Definition at line 670 of file G4eDPWAElasticDCS.cc.
References CLHEP::cm, CLHEP::cm3, CLHEP::g, G4Exp(), G4Log(), G4Material::GetDensity(), G4Material::GetElementVector(), G4Material::GetNumberOfElements(), G4Material::GetTotNbOfAtomsPerVolume(), G4Material::GetVecNbOfAtomsPerVolume(), and CLHEP::MeV.
Referenced by InitSCPCorrection().
G4double G4eDPWAElasticDCS::ComputeScatteringPowerCorrection | ( | const G4MaterialCutsCouple * | matcut, |
G4double | ekin | ||
) |
Definition at line 571 of file G4eDPWAElasticDCS.cc.
References fSCPCPerMatCuts, G4Log(), G4MaterialCutsCouple::GetIndex(), and imax.
Referenced by G4eDPWACoulombScatteringModel::ComputeCrossSectionPerAtom().
|
private |
Definition at line 466 of file G4eDPWAElasticDCS.cc.
References G4eDPWAElasticDCS::OneSamplingTable::fA, G4eDPWAElasticDCS::OneSamplingTable::fB, G4eDPWAElasticDCS::OneSamplingTable::fCum, G4INCL::Math::max(), and G4INCL::Math::min().
Referenced by SampleMu().
|
private |
Definition at line 500 of file G4eDPWAElasticDCS.cc.
References FatalException, G4Exception(), and gDataDirectory.
Referenced by BuildSmplingTableForZ(), LoadDCSForZ(), and LoadGrid().
void G4eDPWAElasticDCS::InitialiseForZ | ( | std::size_t | iz | ) |
Definition at line 112 of file G4eDPWAElasticDCS.cc.
References BuildSmplingTableForZ(), gIsGridLoaded, LoadDCSForZ(), and LoadGrid().
Referenced by G4eDPWACoulombScatteringModel::Initialise().
Definition at line 593 of file G4eDPWAElasticDCS.cc.
References A, ComputeMParams(), CLHEP::electron_mass_c2, fIsElectron, fNumSPCEbinPerDec, fSCPCPerMatCuts, G4Exp(), G4Log(), G4lrint(), G4ProductionCutsTable::GetEnergyCutsVector(), G4MaterialCutsCouple::GetIndex(), G4Material::GetIonisation(), G4MaterialCutsCouple::GetMaterial(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4ProductionCutsTable::GetProductionCutsTable(), G4ProductionCutsTable::GetTableSize(), G4IonisParamMat::GetZeffective(), idxG4ElectronCut, G4INCL::Math::max(), G4INCL::Math::min(), and G4InuclParticleNames::z0.
Referenced by G4eDPWACoulombScatteringModel::Initialise().
|
private |
Definition at line 175 of file G4eDPWAElasticDCS.cc.
References CLHEP::cm2, fDCS, fDCSLow, FindDirectoryPath(), fIsElectron, G4Log(), gIndxEnergyLim, gNumEnergies, gNumThetas1, gNumThetas2, gTheEnergies, gTheMus1, gTheMus2, G4Physics2DVector::PutValue(), G4Physics2DVector::PutX(), G4Physics2DVector::PutY(), ReadCompressedFile(), G4Physics2DVector::SetBicubicInterpolation(), CLHEP::sr, and G4Physics2DVector::Value().
Referenced by InitialiseForZ().
|
private |
Definition at line 123 of file G4eDPWAElasticDCS.cc.
References CLHEP::degree, FatalException, FindDirectoryPath(), test::fname, G4Exception(), G4Log(), gIndxEnergyLim, gInvDelLogEkin, gIsGridLoaded, gLogMinEkin, gNumEnergies, gNumThetas1, gNumThetas2, gTheEnergies, gTheMus1, gTheMus2, gTheU1, gTheU2, CLHEP::keV, and CLHEP::MeV.
Referenced by InitialiseForZ().
|
private |
Definition at line 521 of file G4eDPWAElasticDCS.cc.
References FatalException, test::fname, G4Exception(), uncompress(), and Z_OK.
Referenced by BuildSmplingTableForZ(), and LoadDCSForZ().
G4double G4eDPWAElasticDCS::SampleCosineTheta | ( | std::size_t | iz, |
G4double | lekin, | ||
G4double | r1, | ||
G4double | r2, | ||
G4double | r3 | ||
) |
Definition at line 403 of file G4eDPWAElasticDCS.cc.
References gInvDelLogEkin, gLogMinEkin, gNumEnergies, gTheEnergies, G4INCL::Math::max(), G4INCL::Math::min(), and SampleMu().
Referenced by G4eDPWACoulombScatteringModel::SampleSecondaries().
G4double G4eDPWAElasticDCS::SampleCosineThetaRestricted | ( | std::size_t | iz, |
G4double | lekin, | ||
G4double | r1, | ||
G4double | r2, | ||
G4double | costMax, | ||
G4double | costMin | ||
) |
Definition at line 426 of file G4eDPWAElasticDCS.cc.
References gInvDelLogEkin, gLogMinEkin, gNumEnergies, gTheEnergies, G4INCL::Math::max(), G4INCL::Math::min(), and SampleMu().
Referenced by G4eDPWACoulombScatteringModel::SampleSecondaries().
|
private |
Definition at line 477 of file G4eDPWAElasticDCS.cc.
References G4eDPWAElasticDCS::OneSamplingTable::fA, G4eDPWAElasticDCS::OneSamplingTable::fB, G4eDPWAElasticDCS::OneSamplingTable::fCum, FindCumValue(), fIsElectron, fSamplingTables, G4eDPWAElasticDCS::OneSamplingTable::fScreenParA, gIndxEnergyLim, gTheU1, and gTheU2.
|
private |
Definition at line 444 of file G4eDPWAElasticDCS.cc.
References G4eDPWAElasticDCS::OneSamplingTable::fA, G4eDPWAElasticDCS::OneSamplingTable::fB, G4eDPWAElasticDCS::OneSamplingTable::fCum, G4eDPWAElasticDCS::OneSamplingTable::fI, fIsElectron, G4eDPWAElasticDCS::OneSamplingTable::fN, fSamplingTables, G4eDPWAElasticDCS::OneSamplingTable::fScreenParA, G4eDPWAElasticDCS::OneSamplingTable::fW, gIndxEnergyLim, gTheU1, and gTheU2.
Referenced by SampleCosineTheta(), and SampleCosineThetaRestricted().
|
private |
Definition at line 252 of file G4eDPWAElasticDCS.hh.
Referenced by ComputeCSPerAtom(), G4eDPWAElasticDCS(), LoadDCSForZ(), and ~G4eDPWAElasticDCS().
|
private |
Definition at line 253 of file G4eDPWAElasticDCS.hh.
Referenced by ComputeCSPerAtom(), G4eDPWAElasticDCS(), LoadDCSForZ(), and ~G4eDPWAElasticDCS().
|
private |
Definition at line 228 of file G4eDPWAElasticDCS.hh.
Referenced by BuildSmplingTableForZ(), ComputeCSPerAtom(), InitSCPCorrection(), LoadDCSForZ(), and SampleMu().
|
private |
Definition at line 226 of file G4eDPWAElasticDCS.hh.
Referenced by BuildSmplingTableForZ().
|
private |
Definition at line 258 of file G4eDPWAElasticDCS.hh.
Referenced by InitSCPCorrection().
|
private |
Definition at line 255 of file G4eDPWAElasticDCS.hh.
Referenced by BuildSmplingTableForZ(), G4eDPWAElasticDCS(), SampleMu(), and ~G4eDPWAElasticDCS().
|
private |
Definition at line 266 of file G4eDPWAElasticDCS.hh.
Referenced by ComputeScatteringPowerCorrection(), InitSCPCorrection(), and ~G4eDPWAElasticDCS().
|
staticprivate |
Definition at line 232 of file G4eDPWAElasticDCS.hh.
Referenced by FindDirectoryPath().
|
staticprivate |
Definition at line 237 of file G4eDPWAElasticDCS.hh.
Referenced by ComputeCSPerAtom(), LoadDCSForZ(), LoadGrid(), and SampleMu().
|
staticprivate |
Definition at line 246 of file G4eDPWAElasticDCS.hh.
Referenced by LoadGrid(), SampleCosineTheta(), and SampleCosineThetaRestricted().
|
staticprivate |
Definition at line 230 of file G4eDPWAElasticDCS.hh.
Referenced by InitialiseForZ(), and LoadGrid().
|
staticprivate |
Definition at line 245 of file G4eDPWAElasticDCS.hh.
Referenced by LoadGrid(), SampleCosineTheta(), and SampleCosineThetaRestricted().
|
staticconstexprprivate |
Definition at line 234 of file G4eDPWAElasticDCS.hh.
Referenced by G4eDPWAElasticDCS().
|
staticprivate |
Definition at line 236 of file G4eDPWAElasticDCS.hh.
Referenced by BuildSmplingTableForZ(), ComputeCSPerAtom(), LoadDCSForZ(), LoadGrid(), SampleCosineTheta(), and SampleCosineThetaRestricted().
|
staticprivate |
Definition at line 238 of file G4eDPWAElasticDCS.hh.
Referenced by LoadDCSForZ(), and LoadGrid().
|
staticprivate |
Definition at line 239 of file G4eDPWAElasticDCS.hh.
Referenced by LoadDCSForZ(), and LoadGrid().
|
staticprivate |
Definition at line 240 of file G4eDPWAElasticDCS.hh.
Referenced by ComputeCSPerAtom(), LoadDCSForZ(), LoadGrid(), SampleCosineTheta(), and SampleCosineThetaRestricted().
|
staticprivate |
Definition at line 241 of file G4eDPWAElasticDCS.hh.
Referenced by ComputeCSPerAtom(), LoadDCSForZ(), and LoadGrid().
|
staticprivate |
Definition at line 242 of file G4eDPWAElasticDCS.hh.
Referenced by ComputeCSPerAtom(), LoadDCSForZ(), and LoadGrid().
|
staticprivate |
Definition at line 243 of file G4eDPWAElasticDCS.hh.
Referenced by LoadGrid(), and SampleMu().
|
staticprivate |
Definition at line 244 of file G4eDPWAElasticDCS.hh.
Referenced by LoadGrid(), and SampleMu().
|
staticprivate |
Definition at line 250 of file G4eDPWAElasticDCS.hh.
Referenced by ComputeCSPerAtom().
|
staticprivate |
Definition at line 249 of file G4eDPWAElasticDCS.hh.
Referenced by ComputeCSPerAtom().