#include <G4IonisParamMat.hh>
Definition at line 56 of file G4IonisParamMat.hh.
G4IonisParamMat::G4IonisParamMat | ( | G4Material * | ) |
Definition at line 56 of file G4IonisParamMat.cc.
References G4Pow::GetInstance(), and G4Pow::logZ().
00057 : fMaterial(material) 00058 { 00059 fBirks = 0.; 00060 fMeanEnergyPerIon = 0.0; 00061 twoln10 = 2.*G4Pow::GetInstance()->logZ(10); 00062 00063 // minimal set of default parameters for density effect 00064 fCdensity = 0.0; 00065 fD0density = 0.0; 00066 fAdjustmentFactor = 1.0; 00067 if(!fDensityData) { fDensityData = new G4DensityEffectData(); } 00068 00069 // compute parameters 00070 ComputeMeanParameters(); 00071 ComputeDensityEffect(); 00072 ComputeFluctModel(); 00073 ComputeIonParameters(); 00074 }
G4IonisParamMat::~G4IonisParamMat | ( | ) | [virtual] |
Definition at line 114 of file G4IonisParamMat.cc.
00115 { 00116 if (fShellCorrectionVector) { delete [] fShellCorrectionVector; } 00117 if (fDensityData) { delete fDensityData; } 00118 fDensityData = 0; 00119 fShellCorrectionVector = 0; 00120 }
G4IonisParamMat::G4IonisParamMat | ( | const G4IonisParamMat & | ) |
G4IonisParamMat::G4IonisParamMat | ( | __void__ & | ) |
Definition at line 81 of file G4IonisParamMat.cc.
References G4Pow::GetInstance(), and G4Pow::logZ().
00082 : fMaterial(0), fShellCorrectionVector(0) 00083 { 00084 fMeanExcitationEnergy = 0.0; 00085 fLogMeanExcEnergy = 0.0; 00086 fTaul = 0.0; 00087 fCdensity = 0.0; 00088 fMdensity = 0.0; 00089 fAdensity = 0.0; 00090 fX0density = 0.0; 00091 fX1density = 0.0; 00092 fD0density = 0.0; 00093 fPlasmaEnergy = 0.0; 00094 fAdjustmentFactor = 0.0; 00095 fF1fluct = 0.0; 00096 fF2fluct = 0.0; 00097 fEnergy1fluct = 0.0; 00098 fLogEnergy1fluct = 0.0; 00099 fEnergy2fluct = 0.0; 00100 fLogEnergy2fluct = 0.0; 00101 fEnergy0fluct = 0.0; 00102 fRateionexcfluct = 0.0; 00103 fZeff = 0.0; 00104 fFermiEnergy = 0.0; 00105 fLfactor = 0.0; 00106 fInvA23 = 0.0; 00107 fBirks = 0.0; 00108 fMeanEnergyPerIon = 0.0; 00109 twoln10 = 2.*G4Pow::GetInstance()->logZ(10); 00110 }
Definition at line 192 of file G4IonisParamMat.hh.
Referenced by G4MuBetheBlochModel::ComputeDEDXPerVolume(), G4MollerBhabhaModel::ComputeDEDXPerVolume(), and G4BetheBlochModel::ComputeDEDXPerVolume().
00193 { 00194 // x = log10(beta*gamma) 00195 00196 G4double y = 0.0; 00197 if(x < fX0density) { 00198 if(fD0density > 0.0) { y = fD0density*std::pow(10.,2*(x - fX0density)); } 00199 } else if(x >= fX1density) { y = twoln10*x - fCdensity; } 00200 else {y = twoln10*x - fCdensity + fAdensity*std::pow(fX1density - x, fMdensity);} 00201 return y; 00202 }
Definition at line 412 of file G4IonisParamMat.cc.
00413 { 00414 // The data on mean excitation energy for compaunds 00415 // from "Stopping Powers for Electrons and Positrons" 00416 // ICRU Report N#37, 1984 (energy in eV) 00417 00418 const size_t numberOfMolecula = 54; 00419 static G4String name[numberOfMolecula] = { 00420 // gas 0 - 12 00421 "NH_3", "C_4H_10", "CO_2", "C_2H_6", "C_7H_16", 00422 "C_6H_14", "CH_4", "NO", "N_2O", "C_8H_18", 00423 "C_5H_12", "C_3H_8", "H_2O-Gas", 00424 00425 // liquid 13 - 39 00426 "C_3H_6O", "C_6H_5NH_2", "C_6H_6", "C_4H_9OH", "CCl_4", 00427 "C_6H_5Cl", "CHCl_3", "C_6H_12", "C_6H_4Cl_2", "C_4Cl_2H_8O", 00428 "C_2Cl_2H_4", "(C_2H_5)_2O", "C_2H_5OH", "C_3H_5(OH)_3","C_7H_16", 00429 "C_6H_14", "CH_3OH", "C_6H_5NO_2","C_5H_12", "C_3H_7OH", 00430 "C_5H_5N", "C_8H_8", "C_2Cl_4", "C_7H_8", "C_2Cl_3H", 00431 "H_2O", "C_8H_10", 00432 00433 // solid 40 - 53 00434 "C_5H_5N_5", "C_5H_5N_5O", "(C_6H_11NO)-nylon", "C_25H_52", 00435 "(C_2H_4)-Polyethylene", "(C_5H_8O-2)-Polymethil_Methacrylate", 00436 "(C_8H_8)-Polystyrene", "A-150-tissue", "Al_2O_3", "CaF_2", 00437 "LiF", "Photo_Emulsion", "(C_2F_4)-Teflon", "SiO_2" 00438 }; 00439 00440 static G4double meanExcitation[numberOfMolecula] = { 00441 00442 53.7, 48.3, 85.0, 45.4, 49.2, 00443 49.1, 41.7, 87.8, 84.9, 49.5, 00444 48.2, 47.1, 71.6, 00445 00446 64.2, 66.2, 63.4, 59.9, 166.3, 00447 89.1, 156.0, 56.4, 106.5, 103.3, 00448 111.9, 60.0, 62.9, 72.6, 54.4, 00449 54.0, 67.6, 75.8, 53.6, 61.1, 00450 66.2, 64.0, 159.2, 62.5, 148.1, 00451 75.0, 61.8, 00452 00453 71.4, 75.0, 63.9, 48.3, 57.4, 00454 74.0, 68.7, 65.1, 145.2, 166., 00455 94.0, 331.0, 99.1, 139.2 00456 }; 00457 00458 G4double x = fMeanExcitationEnergy; 00459 00460 for(size_t i=0; i<numberOfMolecula; i++) { 00461 if(chFormula == name[i]) { 00462 x = meanExcitation[i]*eV; 00463 break; 00464 } 00465 } 00466 return x; 00467 }
G4double G4IonisParamMat::GetAdensity | ( | ) | const [inline] |
Definition at line 80 of file G4IonisParamMat.hh.
Referenced by G4EmCorrections::DensityCorrection().
G4double G4IonisParamMat::GetAdjustmentFactor | ( | ) | const [inline] |
G4double G4IonisParamMat::GetBirksConstant | ( | ) | const [inline] |
G4double G4IonisParamMat::GetCdensity | ( | ) | const [inline] |
Definition at line 78 of file G4IonisParamMat.hh.
Referenced by G4EmCorrections::DensityCorrection().
G4double G4IonisParamMat::GetD0density | ( | ) | const [inline] |
G4DensityEffectData * G4IonisParamMat::GetDensityEffectData | ( | ) | [static] |
G4double G4IonisParamMat::GetEnergy0fluct | ( | ) | const [inline] |
Definition at line 97 of file G4IonisParamMat.hh.
Referenced by G4VEnergyLoss::GetLossWithFluct(), G4VeLowEnergyLoss::GetLossWithFluct(), and G4UniversalFluctuation::SampleFluctuations().
G4double G4IonisParamMat::GetEnergy1fluct | ( | ) | const [inline] |
Definition at line 93 of file G4IonisParamMat.hh.
Referenced by G4VEnergyLoss::GetLossWithFluct(), G4VeLowEnergyLoss::GetLossWithFluct(), and G4UniversalFluctuation::SampleFluctuations().
G4double G4IonisParamMat::GetEnergy2fluct | ( | ) | const [inline] |
Definition at line 95 of file G4IonisParamMat.hh.
Referenced by G4VEnergyLoss::GetLossWithFluct(), G4VeLowEnergyLoss::GetLossWithFluct(), and G4UniversalFluctuation::SampleFluctuations().
G4double G4IonisParamMat::GetF1fluct | ( | ) | const [inline] |
Definition at line 91 of file G4IonisParamMat.hh.
Referenced by G4VEnergyLoss::GetLossWithFluct(), G4VeLowEnergyLoss::GetLossWithFluct(), and G4UniversalFluctuation::SampleFluctuations().
G4double G4IonisParamMat::GetF2fluct | ( | ) | const [inline] |
Definition at line 92 of file G4IonisParamMat.hh.
Referenced by G4VEnergyLoss::GetLossWithFluct(), G4VeLowEnergyLoss::GetLossWithFluct(), and G4UniversalFluctuation::SampleFluctuations().
G4double G4IonisParamMat::GetFermiEnergy | ( | ) | const [inline] |
Definition at line 102 of file G4IonisParamMat.hh.
Referenced by G4ionEffectiveCharge::EffectiveCharge().
G4double G4IonisParamMat::GetInvA23 | ( | ) | const [inline] |
Definition at line 104 of file G4IonisParamMat.hh.
Referenced by G4CoulombScattering::MinPrimaryEnergy(), G4WentzelVIRelXSection::SetupKinematic(), and G4WentzelOKandVIxSection::SetupKinematic().
G4double G4IonisParamMat::GetLFactor | ( | ) | const [inline] |
G4double G4IonisParamMat::GetLogEnergy1fluct | ( | ) | const [inline] |
Definition at line 94 of file G4IonisParamMat.hh.
Referenced by G4VEnergyLoss::GetLossWithFluct(), G4VeLowEnergyLoss::GetLossWithFluct(), and G4UniversalFluctuation::SampleFluctuations().
G4double G4IonisParamMat::GetLogEnergy2fluct | ( | ) | const [inline] |
Definition at line 96 of file G4IonisParamMat.hh.
Referenced by G4VEnergyLoss::GetLossWithFluct(), G4VeLowEnergyLoss::GetLossWithFluct(), and G4UniversalFluctuation::SampleFluctuations().
G4double G4IonisParamMat::GetLogMeanExcEnergy | ( | ) | const [inline] |
Definition at line 71 of file G4IonisParamMat.hh.
Referenced by G4VEnergyLoss::GetLossWithFluct(), G4VeLowEnergyLoss::GetLossWithFluct(), and G4UniversalFluctuation::SampleFluctuations().
G4double G4IonisParamMat::GetMdensity | ( | ) | const [inline] |
Definition at line 79 of file G4IonisParamMat.hh.
Referenced by G4EmCorrections::DensityCorrection().
G4double G4IonisParamMat::GetMeanEnergyPerIonPair | ( | ) | const [inline] |
Definition at line 112 of file G4IonisParamMat.hh.
Referenced by G4ElectronIonPair::MeanNumberOfIonsAlongStep().
G4double G4IonisParamMat::GetMeanExcitationEnergy | ( | ) | const [inline] |
Definition at line 68 of file G4IonisParamMat.hh.
Referenced by G4EmCorrections::Bethe(), G4hImpactIonisation::BuildPhysicsTable(), G4MuBetheBlochModel::ComputeDEDXPerVolume(), G4MollerBhabhaModel::ComputeDEDXPerVolume(), G4BetheBlochModel::ComputeDEDXPerVolume(), G4tgbGeometryDumper::DumpMaterial(), G4VEnergyLoss::GetLossWithFluct(), G4VeLowEnergyLoss::GetLossWithFluct(), G4GDMLWriteMaterials::MaterialWrite(), G4MuBetheBlochModel::MinEnergyCut(), operator<<(), G4hImpactIonisation::PrintInfoDefinition(), and G4UniversalFluctuation::SampleFluctuations().
G4double G4IonisParamMat::GetPlasmaEnergy | ( | ) | const [inline] |
G4double G4IonisParamMat::GetRateionexcfluct | ( | ) | const [inline] |
Definition at line 98 of file G4IonisParamMat.hh.
Referenced by G4VEnergyLoss::GetLossWithFluct(), and G4VeLowEnergyLoss::GetLossWithFluct().
G4double* G4IonisParamMat::GetShellCorrectionVector | ( | ) | const [inline] |
Definition at line 72 of file G4IonisParamMat.hh.
Referenced by G4EmCorrections::ShellCorrectionSTD().
G4double G4IonisParamMat::GetTaul | ( | ) | const [inline] |
Definition at line 73 of file G4IonisParamMat.hh.
Referenced by G4hBetheBlochModel::LowEnergyLimit(), and G4EmCorrections::ShellCorrectionSTD().
G4double G4IonisParamMat::GetX0density | ( | ) | const [inline] |
Definition at line 81 of file G4IonisParamMat.hh.
Referenced by G4EmCorrections::DensityCorrection().
G4double G4IonisParamMat::GetX1density | ( | ) | const [inline] |
Definition at line 82 of file G4IonisParamMat.hh.
Referenced by G4EmCorrections::DensityCorrection().
G4double G4IonisParamMat::GetZeffective | ( | ) | const [inline] |
Definition at line 101 of file G4IonisParamMat.hh.
Referenced by G4ionEffectiveCharge::EffectiveCharge().
G4int G4IonisParamMat::operator!= | ( | const G4IonisParamMat & | ) | const |
Definition at line 530 of file G4IonisParamMat.cc.
00531 { 00532 return (this != (G4IonisParamMat*) &right); 00533 }
G4IonisParamMat & G4IonisParamMat::operator= | ( | const G4IonisParamMat & | ) |
Definition at line 480 of file G4IonisParamMat.cc.
References fAdensity, fAdjustmentFactor, fBirks, fCdensity, fD0density, fDensityData, fEnergy0fluct, fEnergy1fluct, fEnergy2fluct, fF1fluct, fF2fluct, fFermiEnergy, fInvA23, fLfactor, fLogEnergy1fluct, fLogEnergy2fluct, fLogMeanExcEnergy, fMaterial, fMdensity, fMeanEnergyPerIon, fMeanExcitationEnergy, fPlasmaEnergy, fRateionexcfluct, fShellCorrectionVector, fTaul, fX0density, fX1density, fZeff, and twoln10.
00481 { 00482 if (this != &right) 00483 { 00484 fMaterial = right.fMaterial; 00485 fMeanExcitationEnergy = right.fMeanExcitationEnergy; 00486 fLogMeanExcEnergy = right.fLogMeanExcEnergy; 00487 if(fShellCorrectionVector){ delete [] fShellCorrectionVector; } 00488 fShellCorrectionVector = new G4double[3]; 00489 fShellCorrectionVector[0] = right.fShellCorrectionVector[0]; 00490 fShellCorrectionVector[1] = right.fShellCorrectionVector[1]; 00491 fShellCorrectionVector[2] = right.fShellCorrectionVector[2]; 00492 fTaul = right.fTaul; 00493 fCdensity = right.fCdensity; 00494 fMdensity = right.fMdensity; 00495 fAdensity = right.fAdensity; 00496 fX0density = right.fX0density; 00497 fX1density = right.fX1density; 00498 fD0density = right.fD0density; 00499 fPlasmaEnergy = right.fPlasmaEnergy; 00500 fAdjustmentFactor = right.fAdjustmentFactor; 00501 fF1fluct = right.fF1fluct; 00502 fF2fluct = right.fF2fluct; 00503 fEnergy1fluct = right.fEnergy1fluct; 00504 fLogEnergy1fluct = right.fLogEnergy1fluct; 00505 fEnergy2fluct = right.fEnergy2fluct; 00506 fLogEnergy2fluct = right.fLogEnergy2fluct; 00507 fEnergy0fluct = right.fEnergy0fluct; 00508 fRateionexcfluct = right.fRateionexcfluct; 00509 fZeff = right.fZeff; 00510 fFermiEnergy = right.fFermiEnergy; 00511 fLfactor = right.fLfactor; 00512 fInvA23 = right.fInvA23; 00513 fBirks = right.fBirks; 00514 fMeanEnergyPerIon = right.fMeanEnergyPerIon; 00515 fDensityData = right.fDensityData; 00516 twoln10 = right.twoln10; 00517 } 00518 return *this; 00519 }
G4int G4IonisParamMat::operator== | ( | const G4IonisParamMat & | ) | const |
Definition at line 523 of file G4IonisParamMat.cc.
00524 { 00525 return (this == (G4IonisParamMat*) &right); 00526 }
void G4IonisParamMat::SetBirksConstant | ( | G4double | value | ) | [inline] |
void G4IonisParamMat::SetMeanEnergyPerIonPair | ( | G4double | value | ) | [inline] |
Definition at line 111 of file G4IonisParamMat.hh.
Referenced by G4ElectronIonPair::FindG4MeanEnergyPerIonPair().
void G4IonisParamMat::SetMeanExcitationEnergy | ( | G4double | value | ) |
Definition at line 385 of file G4IonisParamMat.cc.
References G4cout, G4endl, G4Material::GetName(), and G4NistManager::Instance().
Referenced by G4tgbMaterialMgr::FindOrBuildG4Material(), and G4GDMLReadMaterials::MaterialRead().
00386 { 00387 if(value == fMeanExcitationEnergy || value <= 0.0) { return; } 00388 if (G4NistManager::Instance()->GetVerbose() > 1) { 00389 G4cout << "G4Material: Mean excitation energy is changed for " 00390 << fMaterial->GetName() 00391 << " Iold= " << fMeanExcitationEnergy/eV 00392 << "eV; Inew= " << value/eV << " eV;" 00393 << G4endl; 00394 } 00395 00396 fMeanExcitationEnergy = value; 00397 00398 // add corrections to density effect 00399 G4double newlog = std::log(value); 00400 G4double corr = 2*(newlog - fLogMeanExcEnergy); 00401 fCdensity += corr; 00402 fX0density += corr/twoln10; 00403 fX1density += corr/twoln10; 00404 00405 // recompute parameters of fluctuation model 00406 fLogMeanExcEnergy = newlog; 00407 ComputeFluctModel(); 00408 }