86 : fMaterial(nullptr), fShellCorrectionVector(nullptr)
153 for (
size_t i=0; i < nElements; i++) {
164 for (
G4int j=0; j<=2; j++)
168 for (
size_t k=0; k<nElements; k++) {
170 *(((*elmVector)[k])->GetIonisation()->GetShellCorrectionVector())[j];
209 static const G4double massfracmax = 0.9;
214 if(idx < 0 && 1 == nelm) {
220 if(idx >= 0 && 0 < z) {
222 if(dens <= 0.0) { idx = -1; }
226 if(std::abs(corr) > corrmax) { idx = -1; }
230 if(idx < 0 &&
nullptr != bmat) {
234 if(std::abs(corr) > corrmax) { idx = -1; }
239 if(idx < 0 && 1 < nelm) {
241 for(
G4int i=0; i<nelm; ++i) {
243 if(frac > massfracmax) {
247 if(idx >= 0 && dens > 0.0) {
249 if(std::abs(corr) > corrmax) { idx = -1; }
299 static const G4double ClimiS[] = {3.681 , 5.215 };
300 static const G4double X0valS[] = {1.0 , 1.5 };
301 static const G4double X1valS[] = {2.0 , 3.0 };
312 if (1 == nelm && 1 == Z0) {
341 if (1 == nelm && 1 == Z0) {
346 if (1 == nelm && 2 == Z0) {
402 fF2fluct = (Zeff > 2.) ? 2./Zeff : 0.0;
420 const G4double* theAtomicNumDensityVector =
426 G4double z(0.0), vF(0.0), lF(0.0), a23(0.0);
429 if( 1 == NumberOfElements ) {
430 const G4Element* element = (*theElementVector)[0];
434 a23 = 1.0/g4pow->
A23(element->
GetN());
438 for (
G4int iel=0; iel<NumberOfElements; ++iel) {
439 const G4Element* element = (*theElementVector)[iel];
440 const G4double weight = theAtomicNumDensityVector[iel];
442 z += element->
GetZ() * weight;
445 a23 += weight/g4pow->
A23(element->
GetN());
464 G4cout <<
"G4Material: Mean excitation energy is changed for "
467 <<
"eV; Inew= " << value/
eV <<
" eV;"
492#ifdef G4MULTITHREADED
501#ifdef G4MULTITHREADED
510#ifdef G4MULTITHREADED
525#ifdef G4MULTITHREADED
569 if(chFormula !=
"") {
574 "NH_3",
"C_4H_10",
"CO_2",
"C_2H_6",
"C_7H_16-Gas",
576 "C_6H_14-Gas",
"CH_4",
"NO",
"N_2O",
"C_8H_18-Gas",
578 "C_5H_12-Gas",
"C_3H_8",
"H_2O-Gas",
582 "C_3H_6O",
"C_6H_5NH_2",
"C_6H_6",
"C_4H_9OH",
"CCl_4",
584 "C_6H_5Cl",
"CHCl_3",
"C_6H_12",
"C_6H_4Cl_2",
"C_4Cl_2H_8O",
587 "C_2Cl_2H_4",
"(C_2H_5)_2O",
"C_2H_5OH",
"C_3H_5(OH)_3",
"C_7H_16",
589 "C_6H_14",
"CH_3OH",
"C_6H_5NO_2",
"C_5H_12",
"C_3H_7OH",
591 "C_5H_5N",
"C_8H_8",
"C_2Cl_4",
"C_7H_8",
"C_2Cl_3H",
597 "C_5H_5N_5",
"C_5H_5N_5O",
"(C_6H_11NO)-nylon",
"C_25H_52",
599 "(C_2H_4)-Polyethylene",
"(C_5H_8O_2)-Polymethil_Methacrylate",
601 "(C_8H_8)-Polystyrene",
"A-150-tissue",
"Al_2O_3",
"CaF_2",
603 "LiF",
"Photo_Emulsion",
"(C_2F_4)-Teflon",
"SiO_2"
609 53.7, 48.3, 85.0, 45.4, 49.2,
610 49.1, 41.7, 87.8, 84.9, 49.5,
613 64.2, 66.2, 63.4, 59.9, 166.3,
614 89.1, 156.0, 56.4, 106.5, 103.3,
615 111.9, 60.0, 62.9, 72.6, 54.4,
616 54.0, 67.6, 75.8, 53.6, 61.1,
617 66.2, 64.0, 159.2, 62.5, 148.1,
620 71.4, 75.0, 63.9, 48.3, 57.4,
621 74.0, 68.7, 65.1, 145.2, 166.,
622 94.0, 331.0, 99.1, 139.2
626 if(chFormula ==
name[i]) {
627 res = meanExcitation[i]*
eV;
std::vector< const G4Element * > G4ElementVector
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
static const G4double NTP_Temperature
static const G4int numberOfMolecula
static constexpr double eV
#define G4MUTEX_INITIALIZER
#define G4MUTEXLOCK(mutex)
#define G4MUTEXUNLOCK(mutex)
G4GLOB_DLL std::ostream G4cout
static G4int GetNumberOfShells(G4int Z)
G4double ComputeDensityCorrection(G4double x)
G4double GetAdjustmentFactor(G4int idx) const
G4double GetCdensity(G4int idx) const
G4double GetMdensity(G4int idx) const
G4double GetDelta0density(G4int idx) const
G4double GetPlasmaEnergy(G4int idx) const
G4int GetElementIndex(G4int Z, G4State st=kStateUndefined) const
G4double GetMeanIonisationPotential(G4int idx) const
G4double GetX1density(G4int idx) const
G4double GetAdensity(G4int idx) const
G4int GetIndex(const G4String &matName) const
G4double GetX0density(G4int idx) const
G4IonisParamElm * GetIonisation() const
G4double GetFermiVelocity() const
G4double GetLFactor() const
G4double GetMeanExcitationEnergy() const
G4double * fShellCorrectionVector
G4double GetMdensity() const
G4DensityEffectCalculator * fDensityEffectCalc
G4double GetX1density() const
G4double GetX0density() const
void ComputeIonParameters()
G4double GetCdensity() const
G4double GetDensityCorrection(G4double x)
void SetDensityEffectParameters(G4double cd, G4double md, G4double ad, G4double x0, G4double x1, G4double d0)
static G4DensityEffectData * fDensityData
static G4DensityEffectData * GetDensityEffectData()
G4double fLogMeanExcEnergy
G4double DensityCorrection(G4double x)
G4double FindMeanExcitationEnergy(const G4Material *) const
void ComputeDensityEffectOnFly(G4bool)
void ComputeMeanParameters()
G4double fMeanExcitationEnergy
G4double GetD0density() const
G4IonisParamMat(const G4Material *)
G4double GetAdensity() const
void ComputeDensityEffectParameters()
G4double fLogEnergy2fluct
void SetMeanExcitationEnergy(G4double value)
G4double fAdjustmentFactor
G4double fRateionexcfluct
G4double fMeanEnergyPerIon
G4double fLogEnergy1fluct
const G4Material * fMaterial
G4double GetPressure() const
G4double GetDensity() const
const G4String & GetChemicalFormula() const
const G4ElementVector * GetElementVector() const
const G4Material * GetBaseMaterial() const
G4double GetTotNbOfAtomsPerVolume() const
G4double GetTemperature() const
const G4Element * GetElement(G4int iel) const
const G4double * GetFractionVector() const
G4double GetTotNbOfElectPerVolume() const
G4IonisParamMat * GetIonisation() const
size_t GetNumberOfElements() const
const G4double * GetAtomicNumDensityVector() const
const G4double * GetVecNbOfAtomsPerVolume() const
const G4String & GetName() const
static G4NistManager * Instance()
G4double GetNominalDensity(G4int Z) const
static G4Pow * GetInstance()
G4double logZ(G4int Z) const
G4double A23(G4double A) const
static constexpr double keV
static constexpr double classic_electr_radius
static constexpr double eV
static constexpr double hbarc_squared
static constexpr double pi
const char * name(G4int ptype)