Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
G4IonisParamMat.cc
이 파일의 문서화 페이지로 가기
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 // $Id: G4IonisParamMat.cc 106243 2017-09-26 01:56:43Z gcosmo $
27 //
28 //
29 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
30 
31 // 09-07-98, data moved from G4Material, M.Maire
32 // 18-07-98, bug corrected in ComputeDensityEffect() for gas
33 // 16-01-01, bug corrected in ComputeDensityEffect() E100eV (L.Urban)
34 // 08-02-01, fShellCorrectionVector correctly handled (mma)
35 // 28-10-02, add setMeanExcitationEnergy (V.Ivanchenko)
36 // 06-09-04, factor 2 to shell correction term (V.Ivanchenko)
37 // 10-05-05, add a missing coma in FindMeanExcitationEnergy() - Bug#746 (mma)
38 // 27-09-07, add computation of parameters for ions (V.Ivanchenko)
39 // 04-03-08, remove reference to G4NistManager. Add fBirks constant (mma)
40 // 30-10-09, add G4DensityEffectData class and density effect computation (VI)
41 
42 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
43 
44 #include "G4IonisParamMat.hh"
45 #include "G4Material.hh"
46 #include "G4DensityEffectData.hh"
47 #include "G4NistManager.hh"
48 #include "G4Pow.hh"
49 #include "G4PhysicalConstants.hh"
50 #include "G4SystemOfUnits.hh"
51 
53 
54 #ifdef G4MULTITHREADED
55  G4Mutex G4IonisParamMat::ionisMutex = G4MUTEX_INITIALIZER;
56 #endif
57 
58 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
59 
61  : fMaterial(material)
62 {
63  fBirks = 0.;
64  fMeanEnergyPerIon = 0.0;
65  twoln10 = 2.*G4Pow::GetInstance()->logZ(10);
66 
67  // minimal set of default parameters for density effect
68  fCdensity = 0.0;
69  fD0density = 0.0;
70  fAdjustmentFactor = 1.0;
71  if(fDensityData == nullptr) { fDensityData = new G4DensityEffectData(); }
72 
73  // compute parameters
78 }
79 
80 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
81 
82 // Fake default constructor - sets only member data and allocates memory
83 // for usage restricted to object persistency
84 
86  : fMaterial(nullptr), fShellCorrectionVector(nullptr)
87 {
89  fLogMeanExcEnergy = 0.0;
90  fTaul = 0.0;
91  fCdensity = 0.0;
92  fMdensity = 0.0;
93  fAdensity = 0.0;
94  fX0density = 0.0;
95  fX1density = 0.0;
96  fD0density = 0.0;
97  fPlasmaEnergy = 0.0;
98  fAdjustmentFactor = 0.0;
99  fF1fluct = 0.0;
100  fF2fluct = 0.0;
101  fEnergy1fluct = 0.0;
102  fLogEnergy1fluct = 0.0;
103  fEnergy2fluct = 0.0;
104  fLogEnergy2fluct = 0.0;
105  fEnergy0fluct = 0.0;
106  fRateionexcfluct = 0.0;
107  fZeff = 0.0;
108  fFermiEnergy = 0.0;
109  fLfactor = 0.0;
110  fInvA23 = 0.0;
111  fBirks = 0.0;
112  fMeanEnergyPerIon = 0.0;
113  twoln10 = 2.*G4Pow::GetInstance()->logZ(10);
114 
115  if(fDensityData == nullptr) { fDensityData = new G4DensityEffectData(); }
116 }
117 
118 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
119 
121 {
122  delete [] fShellCorrectionVector;
123  delete fDensityData;
124  fDensityData = nullptr;
125  fShellCorrectionVector = nullptr;
126 }
127 
128 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
129 
131 {
132  // compute mean excitation energy and shell correction vector
133  fTaul = (*(fMaterial->GetElementVector()))[0]->GetIonisation()->GetTaul();
134 
136  fLogMeanExcEnergy = 0.;
137 
138  size_t nElements = fMaterial->GetNumberOfElements();
139  const G4ElementVector* elmVector = fMaterial->GetElementVector();
140  const G4double* nAtomsPerVolume = fMaterial->GetVecNbOfAtomsPerVolume();
141 
143 
144  // Chemical formula defines mean excitation energy
145  if(fMeanExcitationEnergy > 0.0) {
147 
148  // Compute average
149  } else {
150  for (size_t i=0; i < nElements; i++) {
151  const G4Element* elm = (*elmVector)[i];
152  fLogMeanExcEnergy += nAtomsPerVolume[i]*elm->GetZ()
154  }
157  }
158 
160 
161  for (G4int j=0; j<=2; j++)
162  {
163  fShellCorrectionVector[j] = 0.;
164 
165  for (size_t k=0; k<nElements; k++) {
166  fShellCorrectionVector[j] += nAtomsPerVolume[k]
167  *(((*elmVector)[k])->GetIonisation()->GetShellCorrectionVector())[j];
168  }
170  }
171 }
172 
173 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
174 
176 {
177  return fDensityData;
178 }
179 
180 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
181 
183 {
185 
186  // Check if density effect data exist in the table
187  // R.M. Sternheimer, Atomic Data and Nuclear Data Tables, 30: 261 (1984)
190  G4int Z0 = ((*(fMaterial->GetElementVector()))[0])->GetZasInt();
191 
192  // for simple non-NIST materials
193  G4double corr = 0.0;
194  if(idx < 0 && 1 == nelm) {
196 
197  // Correction for base material or for non-nominal density
198  // Except cases of very different density defined in user code
199  if(idx >= 0) {
200  const G4Material* bmat = fMaterial->GetBaseMaterial();
201  if(bmat) {
202  corr = G4Log(bmat->GetDensity()/fMaterial->GetDensity());
203  } else {
205  if(dens <= 0.0) { idx = -1; }
206  else {
207  corr = G4Log(dens/fMaterial->GetDensity());
208  }
209  }
210  // 1.0 is an arbitrary empirical limit
211  // parameterisation with very different density is not applicable
212  if(std::abs(corr) > 1.0) { idx = -1; }
213  }
214  }
215 
216  //G4cout<<"DensityEffect for "<<fMaterial->GetName()<<" "<< idx << G4endl;
217 
218  if(idx >= 0) {
219 
220  // Take parameters for the density effect correction from
221  // R.M. Sternheimer et al. Density Effect For The Ionization Loss
222  // of Charged Particles in Various Substances.
223  // Atom. Data Nucl. Data Tabl. 30 (1984) 261-271.
224 
233 
234  // parameter C is computed and not taken from Sternheimer tables
235  //fCdensity = 1. + 2*G4Log(fMeanExcitationEnergy/fPlasmaEnergy);
236  //G4cout << "IonisParamMat: " << fMaterial->GetName()
237  // << " Cst= " << Cdensity << " C= " << fCdensity << G4endl;
238 
239  // correction on nominal density
240  fCdensity += corr;
241  fX0density += corr/twoln10;
242  fX1density += corr/twoln10;
243 
244  } else {
245 
246  static const G4double Cd2 = 4*pi*hbarc_squared*classic_electr_radius;
248 
249  // Compute parameters for the density effect correction in DE/Dx formula.
250  // The parametrization is from R.M. Sternheimer, Phys. Rev.B,3:3681 (1971)
251  G4int icase;
252 
254  //
255  // condensed materials
256  //
257  if ((State == kStateSolid)||(State == kStateLiquid)) {
258 
259  static const G4double E100eV = 100.*eV;
260  static const G4double ClimiS[] = {3.681 , 5.215 };
261  static const G4double X0valS[] = {1.0 , 1.5 };
262  static const G4double X1valS[] = {2.0 , 3.0 };
263 
264  if(fMeanExcitationEnergy < E100eV) { icase = 0; }
265  else { icase = 1; }
266 
267  if(fCdensity < ClimiS[icase]) { fX0density = 0.2; }
268  else { fX0density = 0.326*fCdensity - X0valS[icase]; }
269 
270  fX1density = X1valS[icase]; fMdensity = 3.0;
271 
272  //special: Hydrogen
273  if (1 == nelm && 1 == Z0) {
274  fX0density = 0.425; fX1density = 2.0; fMdensity = 5.949;
275  }
276  } else {
277  //
278  // gases
279  //
280  fMdensity = 3.;
281  fX1density = 4.0;
282  //static const G4double ClimiG[] = {10.,10.5,11.,11.5,12.25,13.804};
283  //static const G4double X0valG[] = {1.6,1.7,1.8,1.9,2.0,2.0};
284  //static const G4double X1valG[] = {4.0,4.0,4.0,4.0,4.0,5.0};
285 
286  if(fCdensity < 10.) {
287  fX0density = 1.6;
288  } else if(fCdensity < 11.5) {
289  fX0density = 1.6 + 0.2*(fCdensity - 10.);
290  } else if(fCdensity < 12.25) {
291  fX0density = 1.9 + (fCdensity - 11.5)/7.5;
292  } else if(fCdensity < 13.804) {
293  fX0density = 2.0;
294  fX1density = 4.0 + (fCdensity - 12.25)/1.554;
295  } else {
296  fX0density = 0.326*fCdensity-2.5; fX1density = 5.0;
297  }
298 
299  //special: Hydrogen
300  if (1 == nelm && 1 == Z0) {
301  fX0density = 1.837; fX1density = 3.0; fMdensity = 4.754;
302  }
303 
304  //special: Helium
305  if (1 == nelm && 2 == Z0) {
306  fX0density = 2.191; fX1density = 3.0; fMdensity = 3.297;
307  }
308  }
309  }
310 
311  // change parameters if the gas is not in STP.
312  // For the correction the density(STP) is needed.
313  // Density(STP) is calculated here :
314 
315 
316  if (State == kStateGas) {
317  G4double Density = fMaterial->GetDensity();
318  G4double Pressure = fMaterial->GetPressure();
320 
321  G4double DensitySTP = Density*STP_Pressure*Temp/(Pressure*NTP_Temperature);
322 
323  G4double ParCorr = G4Log(Density/DensitySTP);
324 
325  fCdensity -= ParCorr;
326  fX0density -= ParCorr/twoln10;
327  fX1density -= ParCorr/twoln10;
328  }
329 
330  // fAdensity parameter can be fixed for not conductive materials
331  if(0.0 == fD0density) {
334  /std::pow((fX1density-fX0density),fMdensity);
335  }
336  /*
337  G4cout << "G4IonisParamMat: density effect data for <"
338  << fMaterial->GetName()
339  << "> " << G4endl;
340  G4cout << "Eplasma(eV)= " << fPlasmaEnergy/eV
341  << " rho= " << fAdjustmentFactor
342  << " -C= " << fCdensity
343  << " x0= " << fX0density
344  << " x1= " << fX1density
345  << " a= " << fAdensity
346  << " m= " << fMdensity
347  << G4endl;
348  */
349 }
350 
351 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
352 
354 {
355  // compute parameters for the energy loss fluctuation model
356  // needs an 'effective Z'
357  G4double Zeff = 0.;
358  for (size_t i=0;i<fMaterial->GetNumberOfElements();i++) {
359  Zeff += (fMaterial->GetFractionVector())[i]
360  *((*(fMaterial->GetElementVector()))[i]->GetZ());
361  }
362  if (Zeff > 2.) { fF2fluct = 2./Zeff; }
363  else { fF2fluct = 0.; }
364 
365  fF1fluct = 1. - fF2fluct;
366  fEnergy2fluct = 10.*Zeff*Zeff*eV;
369  /fF1fluct;
371  fEnergy0fluct = 10.*eV;
372  fRateionexcfluct = 0.4;
373 }
374 
375 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
376 
378 {
379  // get elements in the actual material,
380  const G4ElementVector* theElementVector = fMaterial->GetElementVector() ;
381  const G4double* theAtomicNumDensityVector =
383  const G4int NumberOfElements = fMaterial->GetNumberOfElements() ;
384 
385  // loop for the elements in the material
386  // to find out average values Z, vF, lF
387  G4double z(0.0), vF(0.0), lF(0.0), norm(0.0), a23(0.0);
388 
389  G4Pow* g4pow = G4Pow::GetInstance();
390  if( 1 == NumberOfElements ) {
391  const G4Element* element = (*theElementVector)[0];
392  z = element->GetZ();
393  vF= element->GetIonisation()->GetFermiVelocity();
394  lF= element->GetIonisation()->GetLFactor();
395  a23 = 1.0/g4pow->A23(element->GetN());
396 
397  } else {
398  for (G4int iel=0; iel<NumberOfElements; iel++)
399  {
400  const G4Element* element = (*theElementVector)[iel];
401  const G4double weight = theAtomicNumDensityVector[iel];
402  norm += weight ;
403  z += element->GetZ() * weight;
404  vF += element->GetIonisation()->GetFermiVelocity() * weight;
405  lF += element->GetIonisation()->GetLFactor() * weight;
406  a23 += weight/g4pow->A23(element->GetN());
407  }
408  z /= norm;
409  vF /= norm;
410  lF /= norm;
411  a23 /= norm;
412  }
413  fZeff = z;
414  fLfactor = lF;
415  fFermiEnergy = 25.*keV*vF*vF;
416  fInvA23 = a23;
417 }
418 
419 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
420 
422 {
423  if(value == fMeanExcitationEnergy || value <= 0.0) { return; }
424  if (G4NistManager::Instance()->GetVerbose() > 1) {
425  G4cout << "G4Material: Mean excitation energy is changed for "
426  << fMaterial->GetName()
427  << " Iold= " << fMeanExcitationEnergy/eV
428  << "eV; Inew= " << value/eV << " eV;"
429  << G4endl;
430  }
431 
433 
434  // add corrections to density effect
435  G4double newlog = G4Log(value);
436  G4double corr = 2*(newlog - fLogMeanExcEnergy);
437  fCdensity += corr;
438  fX0density += corr/twoln10;
439  fX1density += corr/twoln10;
440 
441  // recompute parameters of fluctuation model
442  fLogMeanExcEnergy = newlog;
444 }
445 
446 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
447 
449  G4double ad, G4double x0,
450  G4double x1, G4double d0)
451 {
452  // no check on consistence of user parameters
453 #ifdef G4MULTITHREADED
454  G4MUTEXLOCK(&ionisMutex);
455 #endif
456  fCdensity = cd;
457  fMdensity = md;
458  fAdensity = ad;
459  fX0density = x0;
460  fX1density = x1;
461  fD0density = d0;
462 #ifdef G4MULTITHREADED
463  G4MUTEXUNLOCK(&ionisMutex);
464 #endif
465 }
466 
467 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
468 
470 {
471 #ifdef G4MULTITHREADED
472  G4MUTEXLOCK(&ionisMutex);
473 #endif
474  const G4IonisParamMat* ipm = bmat->GetIonisation();
475  fCdensity = ipm->GetCdensity();
476  fMdensity = ipm->GetMdensity();
477  fAdensity = ipm->GetAdensity();
478  fX0density = ipm->GetX0density();
479  fX1density = ipm->GetX1density();
480  fD0density = ipm->GetD0density();
481 
482  G4double corr = G4Log(bmat->GetDensity()/fMaterial->GetDensity());
483  fCdensity += corr;
484  fX0density += corr/twoln10;
485  fX1density += corr/twoln10;
486 #ifdef G4MULTITHREADED
487  G4MUTEXUNLOCK(&ionisMutex);
488 #endif
489 }
490 
491 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
492 
494 {
495  G4double res = 0.0;
496  // data from density effect data
497  if(fDensityData) {
498  G4int idx = fDensityData->GetIndex(mat->GetName());
499  if(idx >= 0) {
501  }
502  }
503 
504  // The data on mean excitation energy for compaunds
505  // from "Stopping Powers for Electrons and Positrons"
506  // ICRU Report N#37, 1984 (energy in eV)
507  // this value overwrites Density effect data
508  G4String chFormula = mat->GetChemicalFormula();
509  if(chFormula != "") {
510 
511  static const size_t numberOfMolecula = 54;
512  static const G4String name[numberOfMolecula] = {
513  // gas 0 - 12
514  "NH_3", "C_4H_10", "CO_2", "C_2H_6", "C_7H_16-Gas",
515  // "G4_AMMONIA", "G4_BUTANE","G4_CARBON_DIOXIDE","G4_ETHANE", "G4_N-HEPTANE"
516  "C_6H_14-Gas", "CH_4", "NO", "N_2O", "C_8H_18-Gas",
517  // "G4_N-HEXANE" , "G4_METHANE", "x", "G4_NITROUS_OXIDE", "G4_OCTANE"
518  "C_5H_12-Gas", "C_3H_8", "H_2O-Gas",
519  // "G4_N-PENTANE", "G4_PROPANE", "G4_WATER_VAPOR"
520 
521  // liquid 13 - 39
522  "C_3H_6O", "C_6H_5NH_2", "C_6H_6", "C_4H_9OH", "CCl_4",
523  //"G4_ACETONE","G4_ANILINE","G4_BENZENE","G4_N-BUTYL_ALCOHOL","G4_CARBON_TETRACHLORIDE"
524  "C_6H_5Cl", "CHCl_3", "C_6H_12", "C_6H_4Cl_2", "C_4Cl_2H_8O",
525  //"G4_CHLOROBENZENE","G4_CHLOROFORM","G4_CYCLOHEXANE","G4_1,2-DICHLOROBENZENE",
526  //"G4_DICHLORODIETHYL_ETHER"
527  "C_2Cl_2H_4", "(C_2H_5)_2O", "C_2H_5OH", "C_3H_5(OH)_3","C_7H_16",
528  //"G4_1,2-DICHLOROETHANE","G4_DIETHYL_ETHER","G4_ETHYL_ALCOHOL","G4_GLYCEROL","G4_N-HEPTANE"
529  "C_6H_14", "CH_3OH", "C_6H_5NO_2","C_5H_12", "C_3H_7OH",
530  //"G4_N-HEXANE","G4_METHANOL","G4_NITROBENZENE","G4_N-PENTANE","G4_N-PROPYL_ALCOHOL",
531  "C_5H_5N", "C_8H_8", "C_2Cl_4", "C_7H_8", "C_2Cl_3H",
532  //"G4_PYRIDINE","G4_POLYSTYRENE","G4_TETRACHLOROETHYLENE","G4_TOLUENE","G4_TRICHLOROETHYLENE"
533  "H_2O", "C_8H_10",
534  // "G4_WATER", "G4_XYLENE"
535 
536  // solid 40 - 53
537  "C_5H_5N_5", "C_5H_5N_5O", "(C_6H_11NO)-nylon", "C_25H_52",
538  // "G4_ADENINE", "G4_GUANINE", "G4_NYLON-6-6", "G4_PARAFFIN"
539  "(C_2H_4)-Polyethylene", "(C_5H_8O_2)-Polymethil_Methacrylate",
540  // "G4_ETHYLENE", "G4_PLEXIGLASS"
541  "(C_8H_8)-Polystyrene", "A-150-tissue", "Al_2O_3", "CaF_2",
542  // "G4_POLYSTYRENE", "G4_A-150_TISSUE", "G4_ALUMINUM_OXIDE", "G4_CALCIUM_FLUORIDE"
543  "LiF", "Photo_Emulsion", "(C_2F_4)-Teflon", "SiO_2"
544  // "G4_LITHIUM_FLUORIDE", "G4_PHOTO_EMULSION", "G4_TEFLON", "G4_SILICON_DIOXIDE"
545  } ;
546 
547  static const G4double meanExcitation[numberOfMolecula] = {
548 
549  53.7, 48.3, 85.0, 45.4, 49.2,
550  49.1, 41.7, 87.8, 84.9, 49.5,
551  48.2, 47.1, 71.6,
552 
553  64.2, 66.2, 63.4, 59.9, 166.3,
554  89.1, 156.0, 56.4, 106.5, 103.3,
555  111.9, 60.0, 62.9, 72.6, 54.4,
556  54.0, 67.6, 75.8, 53.6, 61.1,
557  66.2, 64.0, 159.2, 62.5, 148.1,
558  75.0, 61.8,
559 
560  71.4, 75.0, 63.9, 48.3, 57.4,
561  74.0, 68.7, 65.1, 145.2, 166.,
562  94.0, 331.0, 99.1, 139.2
563  };
564 
565  for(size_t i=0; i<numberOfMolecula; i++) {
566  if(chFormula == name[i]) {
567  res = meanExcitation[i]*eV;
568  break;
569  }
570  }
571  }
572  return res;
573 }
574 
575 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
576 
G4double GetDelta0density(G4int idx) const
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
const XML_Char * name
Definition: expat.h:151
G4double logZ(G4int Z) const
Definition: G4Pow.hh:149
G4double FindMeanExcitationEnergy(const G4Material *) const
const G4double * GetFractionVector() const
Definition: G4Material.hh:195
void SetDensityEffectParameters(G4double cd, G4double md, G4double ad, G4double x0, G4double x1, G4double d0)
static const G4double NTP_Temperature
Definition: G4Material.hh:117
static G4DensityEffectData * fDensityData
static constexpr double keV
Definition: G4SIunits.hh:216
Float_t x1[n_points_granero]
Definition: compare.C:5
static const G4int numberOfMolecula
#define G4endl
Definition: G4ios.hh:61
G4double GetMeanExcitationEnergy() const
G4double GetAdjustmentFactor(G4int idx) const
Double_t z
G4double A23(G4double A) const
Definition: G4Pow.hh:143
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:191
void SetMeanExcitationEnergy(G4double value)
G4double GetX1density() const
G4double GetNominalDensity(G4int Z) const
G4double fLogMeanExcEnergy
const G4double * GetVecNbOfAtomsPerVolume() const
Definition: G4Material.hh:207
G4double GetX0density(G4int idx) const
static constexpr double classic_electr_radius
G4double fMeanExcitationEnergy
G4double G4Log(G4double x)
Definition: G4Log.hh:230
G4double GetCdensity(G4int idx) const
G4double fLogEnergy1fluct
static constexpr double STP_Pressure
G4double GetN() const
Definition: G4Element.hh:135
const G4String & GetName() const
Definition: G4Material.hh:179
G4double GetTotNbOfElectPerVolume() const
Definition: G4Material.hh:213
G4double GetFermiVelocity() const
G4double fRateionexcfluct
double G4double
Definition: G4Types.hh:76
#define G4MUTEX_INITIALIZER
Definition: G4Threading.hh:88
static G4Pow * GetInstance()
Definition: G4Pow.cc:57
const G4String & GetChemicalFormula() const
Definition: G4Material.hh:180
G4State GetState() const
Definition: G4Material.hh:182
const XML_Char int const XML_Char * value
Definition: expat.h:331
G4double GetLFactor() const
static const G4double cd
G4double GetAdensity() const
static constexpr double eV
Definition: G4SIunits.hh:215
Float_t mat
G4double * fShellCorrectionVector
#define State(X)
#define G4MUTEXUNLOCK(mutex)
Definition: G4Threading.hh:234
G4double GetX0density() const
G4IonisParamMat(const G4Material *)
void ComputeMeanParameters()
G4double GetMeanIonisationPotential(G4int idx) const
double weight
Definition: plottest35.C:25
G4double GetCdensity() const
G4double GetPressure() const
Definition: G4Material.hh:184
std::vector< G4Element * > G4ElementVector
int G4int
Definition: G4Types.hh:78
G4double GetPlasmaEnergy(G4int idx) const
G4int GetElementIndex(G4int Z, G4State mState) const
Float_t norm
G4double GetX1density(G4int idx) const
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:227
G4double GetMdensity() const
Definition: G4Pow.hh:56
G4int GetIndex(const G4String &matName) const
G4double GetAdensity(G4int idx) const
G4IonisParamElm * GetIonisation() const
Definition: G4Element.hh:199
#define G4MUTEXLOCK(mutex)
Definition: G4Threading.hh:233
G4double fLogEnergy2fluct
G4double GetMdensity(G4int idx) const
G4GLOB_DLL std::ostream G4cout
G4double fAdjustmentFactor
const G4Material * fMaterial
G4double GetZ() const
Definition: G4Element.hh:131
G4double fMeanEnergyPerIon
static G4DensityEffectData * GetDensityEffectData()
static constexpr double pi
Definition: G4SIunits.hh:75
const G4double * GetAtomicNumDensityVector() const
Definition: G4Material.hh:217
G4State
Definition: G4Material.hh:115
static constexpr double hbarc_squared
G4double GetD0density() const
const G4Material * GetBaseMaterial() const
Definition: G4Material.hh:234
size_t GetNumberOfElements() const
Definition: G4Material.hh:187
G4double GetTemperature() const
Definition: G4Material.hh:183
static G4NistManager * Instance()
G4double GetDensity() const
Definition: G4Material.hh:181
std::mutex G4Mutex
Definition: G4Threading.hh:84