Geant4  10.01.p03
G4IonisParamMat.cc
Go to the documentation of this file.
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 88957 2015-03-16 16:46:05Z 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 #include "G4Log.hh"
52 #include "G4Exp.hh"
53 
55 
56 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
57 
59  : fMaterial(material)
60 {
61  fBirks = 0.;
62  fMeanEnergyPerIon = 0.0;
63  twoln10 = 2.*G4Pow::GetInstance()->logZ(10);
64 
65  // minimal set of default parameters for density effect
66  fCdensity = 0.0;
67  fD0density = 0.0;
68  fAdjustmentFactor = 1.0;
70 
71  // compute parameters
76 }
77 
78 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
79 
80 // Fake default constructor - sets only member data and allocates memory
81 // for usage restricted to object persistency
82 
84  : fMaterial(0), fShellCorrectionVector(0)
85 {
87  fLogMeanExcEnergy = 0.0;
88  fTaul = 0.0;
89  fCdensity = 0.0;
90  fMdensity = 0.0;
91  fAdensity = 0.0;
92  fX0density = 0.0;
93  fX1density = 0.0;
94  fD0density = 0.0;
95  fPlasmaEnergy = 0.0;
96  fAdjustmentFactor = 0.0;
97  fF1fluct = 0.0;
98  fF2fluct = 0.0;
99  fEnergy1fluct = 0.0;
100  fLogEnergy1fluct = 0.0;
101  fEnergy2fluct = 0.0;
102  fLogEnergy2fluct = 0.0;
103  fEnergy0fluct = 0.0;
104  fRateionexcfluct = 0.0;
105  fZeff = 0.0;
106  fFermiEnergy = 0.0;
107  fLfactor = 0.0;
108  fInvA23 = 0.0;
109  fBirks = 0.0;
110  fMeanEnergyPerIon = 0.0;
111  twoln10 = 2.*G4Pow::GetInstance()->logZ(10);
112 
114 }
115 
116 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
117 
119 {
121  if (fDensityData) { delete fDensityData; }
122  fDensityData = 0;
124 }
125 
126 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
127 
129 {
130  // compute mean excitation energy and shell correction vector
131  fTaul = (*(fMaterial->GetElementVector()))[0]->GetIonisation()->GetTaul();
132 
134  fLogMeanExcEnergy = 0.;
135 
136  size_t nElements = fMaterial->GetNumberOfElements();
137  const G4ElementVector* elmVector = fMaterial->GetElementVector();
138  const G4double* nAtomsPerVolume = fMaterial->GetVecNbOfAtomsPerVolume();
139 
141 
142  if(ch != "") { fMeanExcitationEnergy = FindMeanExcitationEnergy(ch); }
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 = G4lrint((*(fMaterial->GetElementVector()))[0]->GetZ());
191  if(idx < 0 && 1 == nelm) {
193  }
194 
195  //G4cout<<"DensityEffect for "<<fMaterial->GetName()<<" "<< idx << G4endl;
196 
197  if(idx >= 0) {
198 
199  // Take parameters for the density effect correction from
200  // R.M. Sternheimer et al. Density Effect For The Ionization Loss
201  // of Charged Particles in Various Substances.
202  // Atom. Data Nucl. Data Tabl. 30 (1984) 261-271.
203 
212 
213  // Correction for base material
214  const G4Material* bmat = fMaterial->GetBaseMaterial();
215  if(bmat) {
216  G4double corr = G4Log(bmat->GetDensity()/fMaterial->GetDensity());
217  fCdensity += corr;
218  fX0density += corr/twoln10;
219  fX1density += corr/twoln10;
220  }
221 
222  } else {
223 
224  static const G4double Cd2 = 4*pi*hbarc_squared*classic_electr_radius;
226 
227  // Compute parameters for the density effect correction in DE/Dx formula.
228  // The parametrization is from R.M. Sternheimer, Phys. Rev.B,3:3681 (1971)
229  G4int icase;
230 
232  //
233  // condensed materials
234  //
235  if ((State == kStateSolid)||(State == kStateLiquid)) {
236 
237  static const G4double E100eV = 100.*eV;
238  static const G4double ClimiS[] = {3.681 , 5.215 };
239  static const G4double X0valS[] = {1.0 , 1.5 };
240  static const G4double X1valS[] = {2.0 , 3.0 };
241 
242  if(fMeanExcitationEnergy < E100eV) { icase = 0; }
243  else { icase = 1; }
244 
245  if(fCdensity < ClimiS[icase]) { fX0density = 0.2; }
246  else { fX0density = 0.326*fCdensity - X0valS[icase]; }
247 
248  fX1density = X1valS[icase]; fMdensity = 3.0;
249 
250  //special: Hydrogen
251  if (1 == nelm && 1 == Z0) {
252  fX0density = 0.425; fX1density = 2.0; fMdensity = 5.949;
253  }
254  }
255  //
256  // gases
257  //
258  if (State == kStateGas) {
259 
260  fMdensity = 3.;
261  fX1density = 4.0;
262  //static const G4double ClimiG[] = {10.,10.5,11.,11.5,12.25,13.804};
263  //static const G4double X0valG[] = {1.6,1.7,1.8,1.9,2.0,2.0};
264  //static const G4double X1valG[] = {4.0,4.0,4.0,4.0,4.0,5.0};
265 
266  if(fCdensity < 10.) {
267  fX0density = 1.6;
268  } else if(fCdensity < 11.5) {
269  fX0density = 1.6 + 0.2*(fCdensity - 10.);
270  } else if(fCdensity < 12.25) {
271  fX0density = 1.9 + (fCdensity - 11.5)/7.5;
272  } else if(fCdensity < 13.804) {
273  fX0density = 2.0;
274  fX1density = 4.0 + (fCdensity - 12.25)/1.554;
275  } else {
276  fX0density = 0.326*fCdensity-2.5; fX1density = 5.0;
277  }
278 
279  //special: Hydrogen
280  if (1 == nelm && 1 == Z0) {
281  fX0density = 1.837; fX1density = 3.0; fMdensity = 4.754;
282  }
283 
284  //special: Helium
285  if (1 == nelm && 2 == Z0) {
286  fX0density = 2.191; fX1density = 3.0; fMdensity = 3.297;
287  }
288  }
289  }
290 
291  // change parameters if the gas is not in STP.
292  // For the correction the density(STP) is needed.
293  // Density(STP) is calculated here :
294 
295 
296  if (State == kStateGas) {
297  G4double Density = fMaterial->GetDensity();
298  G4double Pressure = fMaterial->GetPressure();
300 
301  G4double DensitySTP = Density*STP_Pressure*Temp/(Pressure*NTP_Temperature);
302 
303  G4double ParCorr = G4Log(Density/DensitySTP);
304 
305  fCdensity -= ParCorr;
306  fX0density -= ParCorr/twoln10;
307  fX1density -= ParCorr/twoln10;
308  }
309 
310  // fAdensity parameter can be fixed for not conductive materials
311  if(0.0 == fD0density) {
314  /std::pow((fX1density-fX0density),fMdensity);
315  }
316  /*
317  G4cout << "G4IonisParamMat: density effect data for <"
318  << fMaterial->GetName()
319  << "> " << G4endl;
320  G4cout << "Eplasma(eV)= " << fPlasmaEnergy/eV
321  << " rho= " << fAdjustmentFactor
322  << " -C= " << fCdensity
323  << " x0= " << fX0density
324  << " x1= " << fX1density
325  << " a= " << fAdensity
326  << " m= " << fMdensity
327  << G4endl;
328  */
329 }
330 
331 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
332 
334 {
335  // compute parameters for the energy loss fluctuation model
336  // needs an 'effective Z'
337  G4double Zeff = 0.;
338  for (size_t i=0;i<fMaterial->GetNumberOfElements();i++) {
339  Zeff += (fMaterial->GetFractionVector())[i]
340  *((*(fMaterial->GetElementVector()))[i]->GetZ());
341  }
342  if (Zeff > 2.) { fF2fluct = 2./Zeff; }
343  else { fF2fluct = 0.; }
344 
345  fF1fluct = 1. - fF2fluct;
346  fEnergy2fluct = 10.*Zeff*Zeff*eV;
349  /fF1fluct;
351  fEnergy0fluct = 10.*eV;
352  fRateionexcfluct = 0.4;
353 }
354 
355 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
356 
358 {
359  // get elements in the actual material,
360  const G4ElementVector* theElementVector = fMaterial->GetElementVector() ;
361  const G4double* theAtomicNumDensityVector =
363  const G4int NumberOfElements = fMaterial->GetNumberOfElements() ;
364 
365  // loop for the elements in the material
366  // to find out average values Z, vF, lF
367  G4double z(0.0), vF(0.0), lF(0.0), norm(0.0), a23(0.0);
368 
369  if( 1 == NumberOfElements ) {
370  const G4Element* element = (*theElementVector)[0];
371  z = element->GetZ();
372  vF= element->GetIonisation()->GetFermiVelocity();
373  lF= element->GetIonisation()->GetLFactor();
374  a23 = 1.0/G4Pow::GetInstance()->Z23(G4int(element->GetN()));
375 
376  } else {
377  for (G4int iel=0; iel<NumberOfElements; iel++)
378  {
379  const G4Element* element = (*theElementVector)[iel];
380  const G4double weight = theAtomicNumDensityVector[iel];
381  norm += weight ;
382  z += element->GetZ() * weight;
383  vF += element->GetIonisation()->GetFermiVelocity() * weight;
384  lF += element->GetIonisation()->GetLFactor() * weight;
385  a23 += weight/G4Pow::GetInstance()->Z23(G4int(element->GetN()));
386  }
387  z /= norm;
388  vF /= norm;
389  lF /= norm;
390  a23 /= norm;
391  }
392  fZeff = z;
393  fLfactor = lF;
394  fFermiEnergy = 25.*keV*vF*vF;
395  fInvA23 = a23;
396 }
397 
398 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
399 
401 {
402  if(value == fMeanExcitationEnergy || value <= 0.0) { return; }
403  if (G4NistManager::Instance()->GetVerbose() > 1) {
404  G4cout << "G4Material: Mean excitation energy is changed for "
405  << fMaterial->GetName()
406  << " Iold= " << fMeanExcitationEnergy/eV
407  << "eV; Inew= " << value/eV << " eV;"
408  << G4endl;
409  }
410 
411  fMeanExcitationEnergy = value;
412 
413  // add corrections to density effect
414  G4double newlog = G4Log(value);
415  G4double corr = 2*(newlog - fLogMeanExcEnergy);
416  fCdensity += corr;
417  fX0density += corr/twoln10;
418  fX1density += corr/twoln10;
419 
420  // recompute parameters of fluctuation model
421  fLogMeanExcEnergy = newlog;
423 }
424 
425 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
426 
428 {
429  // The data on mean excitation energy for compaunds
430  // from "Stopping Powers for Electrons and Positrons"
431  // ICRU Report N#37, 1984 (energy in eV)
432 
433  size_t numberOfMolecula = 54;
434  static const G4String name[54] = {
435  // gas 0 - 12
436  "NH_3", "C_4H_10", "CO_2", "C_2H_6", "C_7H_16-Gas",
437  // "G4_AMMONIA", "G4_BUTANE","G4_CARBON_DIOXIDE","G4_ETHANE", "G4_N-HEPTANE"
438  "C_6H_14-Gas", "CH_4", "NO", "N_2O", "C_8H_18-Gas",
439  // "G4_N-HEXANE" , "G4_METHANE", "x", "G4_NITROUS_OXIDE", "G4_OCTANE"
440  "C_5H_12-Gas", "C_3H_8", "H_2O-Gas",
441  // "G4_N-PENTANE", "G4_PROPANE", "G4_WATER_VAPOR"
442 
443  // liquid 13 - 39
444  "C_3H_6O", "C_6H_5NH_2", "C_6H_6", "C_4H_9OH", "CCl_4",
445  //"G4_ACETONE","G4_ANILINE","G4_BENZENE","G4_N-BUTYL_ALCOHOL","G4_CARBON_TETRACHLORIDE"
446  "C_6H_5Cl", "CHCl_3", "C_6H_12", "C_6H_4Cl_2", "C_4Cl_2H_8O",
447  //"G4_CHLOROBENZENE","G4_CHLOROFORM","G4_CYCLOHEXANE","G4_1,2-DICHLOROBENZENE","G4_DICHLORODIETHYL_ETHER"
448  "C_2Cl_2H_4", "(C_2H_5)_2O", "C_2H_5OH", "C_3H_5(OH)_3","C_7H_16",
449  //"G4_1,2-DICHLOROETHANE","G4_DIETHYL_ETHER","G4_ETHYL_ALCOHOL","G4_GLYCEROL","G4_N-HEPTANE"
450  "C_6H_14", "CH_3OH", "C_6H_5NO_2","C_5H_12", "C_3H_7OH",
451  //"G4_N-HEXANE","G4_METHANOL","G4_NITROBENZENE","G4_N-PENTANE","G4_N-PROPYL_ALCOHOL",
452  "C_5H_5N", "C_8H_8", "C_2Cl_4", "C_7H_8", "C_2Cl_3H",
453  //"G4_PYRIDINE","G4_POLYSTYRENE","G4_TETRACHLOROETHYLENE","G4_TOLUENE","G4_TRICHLOROETHYLENE"
454  "H_2O", "C_8H_10",
455  // "G4_WATER", "G4_XYLENE"
456 
457  // solid 40 - 53
458  "C_5H_5N_5", "C_5H_5N_5O", "(C_6H_11NO)-nylon", "C_25H_52",
459  // "G4_ADENINE", "G4_GUANINE", "G4_NYLON-6-6", "G4_PARAFFIN"
460  "(C_2H_4)-Polyethylene", "(C_5H_8O_2)-Polymethil_Methacrylate",
461  // "G4_ETHYLENE", "G4_PLEXIGLASS"
462  "(C_8H_8)-Polystyrene", "A-150-tissue", "Al_2O_3", "CaF_2",
463  // "G4_POLYSTYRENE", "G4_A-150_TISSUE", "G4_ALUMINUM_OXIDE", "G4_CALCIUM_FLUORIDE"
464  "LiF", "Photo_Emulsion", "(C_2F_4)-Teflon", "SiO_2"
465  // "G4_LITHIUM_FLUORIDE", "G4_PHOTO_EMULSION", "G4_TEFLON", "G4_SILICON_DIOXIDE"
466  } ;
467 
468  static const G4double meanExcitation[54] = {
469 
470  53.7, 48.3, 85.0, 45.4, 49.2,
471  49.1, 41.7, 87.8, 84.9, 49.5,
472  48.2, 47.1, 71.6,
473 
474  64.2, 66.2, 63.4, 59.9, 166.3,
475  89.1, 156.0, 56.4, 106.5, 103.3,
476  111.9, 60.0, 62.9, 72.6, 54.4,
477  54.0, 67.6, 75.8, 53.6, 61.1,
478  66.2, 64.0, 159.2, 62.5, 148.1,
479  75.0, 61.8,
480 
481  71.4, 75.0, 63.9, 48.3, 57.4,
482  74.0, 68.7, 65.1, 145.2, 166.,
483  94.0, 331.0, 99.1, 139.2
484  };
485 
487 
488  for(size_t i=0; i<numberOfMolecula; i++) {
489  if(chFormula == name[i]) {
490  x = meanExcitation[i]*eV;
491  break;
492  }
493  }
494  return x;
495 }
496 
497 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
498 /*
499 G4IonisParamMat::G4IonisParamMat(const G4IonisParamMat& right)
500 {
501  fShellCorrectionVector = 0;
502  fMaterial = 0;
503  *this = right;
504 }
505 */
506 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
507 
509 {
510  if (this != &right)
511  {
512  fMaterial = right.fMaterial;
520  fTaul = right.fTaul;
521  fCdensity = right.fCdensity;
522  fMdensity = right.fMdensity;
523  fAdensity = right.fAdensity;
524  fX0density = right.fX0density;
525  fX1density = right.fX1density;
526  fD0density = right.fD0density;
529  fF1fluct = right.fF1fluct;
530  fF2fluct = right.fF2fluct;
537  fZeff = right.fZeff;
538  fFermiEnergy = right.fFermiEnergy;
539  fLfactor = right.fLfactor;
540  fInvA23 = right.fInvA23;
541  fBirks = right.fBirks;
543  twoln10 = right.twoln10;
544  }
545  return *this;
546 }
547 
548 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
549 
551 {
552  return (this == (G4IonisParamMat*) &right);
553 }
554 
555 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
556 
558 {
559  return (this != (G4IonisParamMat*) &right);
560 }
561 
562 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
563 
G4double GetPressure() const
Definition: G4Material.hh:183
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
G4IonisParamMat & operator=(const G4IonisParamMat &)
G4double fLogEnergy2fluct
G4double GetTotNbOfElectPerVolume() const
Definition: G4Material.hh:212
std::vector< G4Element * > G4ElementVector
G4double GetN() const
Definition: G4Element.hh:134
G4int GetElementIndex(G4int Z, G4State mState)
G4State
Definition: G4Material.hh:114
G4double z
Definition: TRTMaterials.hh:39
G4double FindMeanExcitationEnergy(const G4String &chFormula)
static const G4int numberOfMolecula
const G4String & GetChemicalFormula() const
Definition: G4Material.hh:179
void SetMeanExcitationEnergy(G4double value)
G4String name
Definition: TRTMaterials.hh:40
const G4String & GetName() const
Definition: G4Material.hh:178
const G4double pi
G4double GetZ() const
Definition: G4Element.hh:131
#define State(X)
G4double fAdjustmentFactor
G4double GetDensity() const
Definition: G4Material.hh:180
G4double GetLFactor() const
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:190
int G4int
Definition: G4Types.hh:78
static G4NistManager * Instance()
G4double logZ(G4int Z) const
Definition: G4Pow.hh:163
G4double GetFermiVelocity() const
const G4double * GetVecNbOfAtomsPerVolume() const
Definition: G4Material.hh:206
G4double GetMeanExcitationEnergy() const
G4double fRateionexcfluct
G4GLOB_DLL std::ostream G4cout
G4double GetX1density(G4int idx)
G4int GetIndex(const G4String &matName)
virtual ~G4IonisParamMat()
G4double GetPlasmaEnergy(G4int idx)
G4double fLogMeanExcEnergy
const G4double * GetAtomicNumDensityVector() const
Definition: G4Material.hh:216
G4double fMeanEnergyPerIon
G4double fLogEnergy1fluct
static G4DensityEffectData * GetDensityEffectData()
G4double G4Log(G4double x)
Definition: G4Log.hh:230
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
G4double GetAdensity(G4int idx)
G4double fMeanExcitationEnergy
static const double eV
Definition: G4SIunits.hh:194
G4double * fShellCorrectionVector
int G4lrint(double ad)
Definition: templates.hh:163
G4Material * fMaterial
G4IonisParamMat(G4Material *)
G4IonisParamElm * GetIonisation() const
Definition: G4Element.hh:198
const G4Material * GetBaseMaterial() const
Definition: G4Material.hh:233
G4double Z23(G4int Z) const
Definition: G4Pow.hh:151
G4int operator!=(const G4IonisParamMat &) const
G4double GetCdensity(G4int idx)
static const G4double NTP_Temperature
Definition: G4Material.hh:116
G4double GetTemperature() const
Definition: G4Material.hh:182
#define G4endl
Definition: G4ios.hh:61
G4double GetMdensity(G4int idx)
size_t GetNumberOfElements() const
Definition: G4Material.hh:186
static const double keV
Definition: G4SIunits.hh:195
G4State GetState() const
Definition: G4Material.hh:181
double G4double
Definition: G4Types.hh:76
G4double GetDelta0density(G4int idx)
const G4double * GetFractionVector() const
Definition: G4Material.hh:194
G4int operator==(const G4IonisParamMat &) const
G4double GetAdjustmentFactor(G4int idx)
G4double GetX0density(G4int idx)
static G4DensityEffectData * fDensityData
void ComputeMeanParameters()