Changeset 1196 for trunk/source/materials/src
- Timestamp:
- Nov 25, 2009, 5:13:58 PM (16 years ago)
- Location:
- trunk/source/materials/src
- Files:
-
- 20 edited
-
G4AtomicShells.cc (modified) (1 diff)
-
G4Element.cc (modified) (8 diffs)
-
G4ExtDEDXTable.cc (modified) (2 diffs)
-
G4IonisParamElm.cc (modified) (1 diff)
-
G4IonisParamMat.cc (modified) (10 diffs)
-
G4IronStoppingICRU73.cc (modified) (3 diffs)
-
G4Isotope.cc (modified) (1 diff)
-
G4MPVEntry.cc (modified) (1 diff)
-
G4Material.cc (modified) (1 diff)
-
G4MaterialPropertiesTable.cc (modified) (1 diff)
-
G4MaterialPropertyVector.cc (modified) (1 diff)
-
G4MaterialStoppingICRU73.cc (modified) (7 diffs)
-
G4NistElementBuilder.cc (modified) (3 diffs)
-
G4NistManager.cc (modified) (1 diff)
-
G4NistMaterialBuilder.cc (modified) (6 diffs)
-
G4NistMessenger.cc (modified) (6 diffs)
-
G4OpticalSurface.cc (modified) (5 diffs)
-
G4SandiaTable.cc (modified) (1 diff)
-
G4SimpleMaterialStoppingICRU73.cc (modified) (3 diffs)
-
G4SurfaceProperty.cc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/materials/src/G4AtomicShells.cc
r986 r1196 26 26 // 27 27 // $Id: G4AtomicShells.cc,v 1.7 2006/10/17 15:15:46 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02-ref-02$28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... -
trunk/source/materials/src/G4Element.cc
r986 r1196 25 25 // 26 26 // 27 // $Id: G4Element.cc,v 1.3 1 2008/08/11 11:53:11vnivanch Exp $28 // GEANT4 tag $Name: geant4-09-02-ref-02$27 // $Id: G4Element.cc,v 1.34 2009/09/18 15:35:36 vnivanch Exp $ 28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... … … 99 99 } 100 100 101 fNbOfAtomicShells = G4AtomicShells::GetNumberOfShells(iz); 102 fAtomicShells = new G4double[fNbOfAtomicShells]; 103 for (G4int i=0;i<fNbOfAtomicShells;i++) { 101 fNbOfAtomicShells = G4AtomicShells::GetNumberOfShells(iz); 102 fAtomicShells = new G4double[fNbOfAtomicShells]; 103 fNbOfShellElectrons = new G4int[fNbOfAtomicShells]; 104 105 for (G4int i=0;i<fNbOfAtomicShells;i++) 106 { 104 107 fAtomicShells[i] = G4AtomicShells::GetBindingEnergy(iz, i); 108 fNbOfShellElectrons[i] = G4AtomicShells::GetNumberOfElectrons(iz, i); 105 109 } 106 110 ComputeDerivedQuantities(); … … 172 176 fNbOfAtomicShells = G4AtomicShells::GetNumberOfShells(iz); 173 177 fAtomicShells = new G4double[fNbOfAtomicShells]; 174 for (G4int j=0;j<fNbOfAtomicShells;j++) { 175 fAtomicShells[j] = G4AtomicShells::GetBindingEnergy(iz, j); 176 } 177 178 fNbOfShellElectrons = new G4int[fNbOfAtomicShells]; 179 180 for ( G4int j = 0; j < fNbOfAtomicShells; j++ ) 181 { 182 fAtomicShells[j] = G4AtomicShells::GetBindingEnergy(iz, j); 183 fNbOfShellElectrons[j] = G4AtomicShells::GetNumberOfElectrons(iz, j); 184 } 178 185 ComputeDerivedQuantities(); 179 186 … … 188 195 fRelativeAbundanceVector = 0; 189 196 fAtomicShells = 0; 197 fNbOfShellElectrons = 0; 190 198 fIonisation = 0; 191 199 fNumberOfIsotopes = 0; … … 200 208 G4Element::G4Element( __void__& ) 201 209 : fZeff(0), fNeff(0), fAeff(0), fNbOfAtomicShells(0), 202 fAtomicShells(0), fN umberOfIsotopes(0), theIsotopeVector(0),210 fAtomicShells(0), fNbOfShellElectrons(0), fNumberOfIsotopes(0), theIsotopeVector(0), 203 211 fRelativeAbundanceVector(0), fCountUse(0), fIndexInTable(0), 204 212 fCoulomb(0), fRadTsai(0), fIonisation(0) … … 215 223 if (fRelativeAbundanceVector) delete [] fRelativeAbundanceVector; 216 224 if (fAtomicShells) delete [] fAtomicShells; 225 if (fNbOfShellElectrons) delete [] fNbOfShellElectrons; 217 226 if (fIonisation) delete fIonisation; 218 227 … … 288 297 G4double G4Element::GetAtomicShell(G4int i) const 289 298 { 290 if (i<0 || i>=fNbOfAtomicShells) 291 G4Exception("Invalid argument in G4Element::GetAtomicShell"); 299 if (i<0 || i>=fNbOfAtomicShells) { 300 G4Exception("Invalid argument in G4Element::GetAtomicShell"); 301 } 292 302 return fAtomicShells[i]; 303 } 304 305 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 306 307 G4int G4Element::GetNbOfShellElectrons(G4int i) const 308 { 309 if (i<0 || i>=fNbOfAtomicShells) { 310 G4Exception("Invalid argument in G4Element::GetNbOfShellElectrons"); 311 } 312 return fNbOfShellElectrons[i]; 293 313 } 294 314 … … 352 372 353 373 if (fAtomicShells) delete [] fAtomicShells; 354 fNbOfAtomicShells = right.fNbOfAtomicShells;374 fNbOfAtomicShells = right.fNbOfAtomicShells; 355 375 fAtomicShells = new G4double[fNbOfAtomicShells]; 356 for (G4int i=0;i<fNbOfAtomicShells;i++) 357 fAtomicShells[i] = right.fAtomicShells[i]; 358 376 377 if (fNbOfShellElectrons) delete [] fNbOfShellElectrons; 378 fNbOfAtomicShells = right.fNbOfAtomicShells; 379 fNbOfShellElectrons = new G4int[fNbOfAtomicShells]; 380 381 for ( G4int i = 0; i < fNbOfAtomicShells; i++ ) 382 { 383 fAtomicShells[i] = right.fAtomicShells[i]; 384 fNbOfShellElectrons[i] = right.fNbOfShellElectrons[i]; 385 } 359 386 if (theIsotopeVector) delete theIsotopeVector; 360 387 if (fRelativeAbundanceVector) delete [] fRelativeAbundanceVector; -
trunk/source/materials/src/G4ExtDEDXTable.cc
r1058 r1196 37 37 // 38 38 // Modifications: 39 // 03.11.2009 A. Lechner: Added new methods BuildPhysicsVector according 40 // to interface changes in base class G4VIonDEDXTable. 39 41 // 40 42 // … … 78 80 // ######################################################################### 79 81 82 G4bool G4ExtDEDXTable::BuildPhysicsVector(G4int ionZ, G4int matZ) { 83 84 return IsApplicable( ionZ, matZ ); 85 } 86 87 88 // ######################################################################### 89 90 G4bool G4ExtDEDXTable::BuildPhysicsVector(G4int ionZ, 91 const G4String& matName) { 92 93 return IsApplicable( ionZ, matName ); 94 } 95 96 // ######################################################################### 97 80 98 G4bool G4ExtDEDXTable::IsApplicable( 81 99 G4int atomicNumberIon, // Atomic number of ion -
trunk/source/materials/src/G4IonisParamElm.cc
r986 r1196 26 26 // 27 27 // $Id: G4IonisParamElm.cc,v 1.15 2008/06/03 14:30:10 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02-ref-02$28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 // -
trunk/source/materials/src/G4IonisParamMat.cc
r986 r1196 25 25 // 26 26 // 27 // $Id: G4IonisParamMat.cc,v 1. 25 2008/07/08 10:34:56 vnivanch Exp $28 // GEANT4 tag $Name: geant4-09-0 2-ref-02$27 // $Id: G4IonisParamMat.cc,v 1.33 2009/11/19 16:43:36 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // … … 40 40 // 27-09-07, add computation of parameters for ions (V.Ivanchenko) 41 41 // 04-03-08, remove reference to G4NistManager. Add fBirks constant (mma) 42 // 30-10-09, add G4DensityEffectData class and density effect computation (VI) 42 43 43 44 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... … … 45 46 #include "G4IonisParamMat.hh" 46 47 #include "G4Material.hh" 48 #include "G4DensityEffectData.hh" 49 50 G4DensityEffectData* G4IonisParamMat::fDensityData = 0; 47 51 48 52 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... … … 51 55 : fMaterial(material) 52 56 { 57 fBirks = 0.; 58 fMeanEnergyPerIon = 0.0; 59 60 // minimal set of default parameters for density effect 61 fCdensity = 0.0; 62 fD0density = 0.0; 63 fAdjustmentFactor = 1.0; 64 if(!fDensityData) fDensityData = new G4DensityEffectData(); 65 66 // compute parameters 53 67 ComputeMeanParameters(); 54 68 ComputeDensityEffect(); 55 69 ComputeFluctModel(); 56 70 ComputeIonParameters(); 57 58 fBirks = 0.;59 fMeanEnergyPerIon = 0.;60 71 } 61 72 … … 119 130 120 131 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... 132 133 G4DensityEffectData* G4IonisParamMat::GetDensityEffectData() 134 { 135 return fDensityData; 136 } 137 138 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... 121 139 122 140 void G4IonisParamMat::ComputeDensityEffect() 123 141 { 124 // Compute parameters for the density effect correction in DE/Dx formula. 125 // The parametrization is from R.M. Sternheimer, Phys. Rev.B,3:3681 (1971) 126 127 const G4double Cd2 = 4*pi*hbarc_squared*classic_electr_radius; 128 const G4double twoln10 = 2.*std::log(10.); 129 130 G4int icase; 142 static const G4double twoln10 = 2.*std::log(10.); 143 G4State State = fMaterial->GetState(); 144 145 // Check if density effect data exist in the table 146 // R.M. Sternheimer, Atomic Data and Nuclear Data Tables, 30: 261 (1984) 147 G4int idx = fDensityData->GetIndex(fMaterial->GetName()); 148 if(idx < 0 && fMaterial->GetNumberOfElements() == 1) { 149 idx = fDensityData->GetIndex(G4int(fMaterial->GetZ())); 150 } 151 152 if(idx >= 0) { 153 154 // Take parameters for the density effect correction from 155 // R.M. Sternheimer et al. Density Effect For The Ionization Loss 156 // of Charged Particles in Various Substances. 157 // Atom. Data Nucl. Data Tabl. 30 (1984) 261-271. 158 159 fCdensity = fDensityData->GetCdensity(idx); 160 fMdensity = fDensityData->GetMdensity(idx); 161 fAdensity = fDensityData->GetAdensity(idx); 162 fX0density = fDensityData->GetX0density(idx); 163 fX1density = fDensityData->GetX1density(idx); 164 fD0density = fDensityData->GetDelta0density(idx); 165 fPlasmaEnergy = fDensityData->GetPlasmaEnergy(idx); 166 fAdjustmentFactor = fDensityData->GetAdjustmentFactor(idx); 167 168 } else { 169 170 const G4double Cd2 = 4*pi*hbarc_squared*classic_electr_radius; 171 fPlasmaEnergy = std::sqrt(Cd2*fMaterial->GetTotNbOfElectPerVolume()); 172 173 // Compute parameters for the density effect correction in DE/Dx formula. 174 // The parametrization is from R.M. Sternheimer, Phys. Rev.B,3:3681 (1971) 175 G4int icase; 176 177 fCdensity = 1. + 2*std::log(fMeanExcitationEnergy/fPlasmaEnergy); 178 179 //fCdensity = 1. + std::log(fMeanExcitationEnergy*fMeanExcitationEnergy 180 // /(Cd2*fMaterial->GetTotNbOfElectPerVolume())); 181 182 // 183 // condensed materials 184 // 131 185 132 fCdensity = 1. + std::log(fMeanExcitationEnergy*fMeanExcitationEnergy 133 /(Cd2*fMaterial->GetTotNbOfElectPerVolume())); 134 135 // 136 // condensed materials 137 // 138 G4State State = fMaterial->GetState(); 139 140 if ((State == kStateSolid)||(State == kStateLiquid)) { 186 if ((State == kStateSolid)||(State == kStateLiquid)) { 141 187 142 188 const G4double E100eV = 100.*eV; … … 157 203 fX0density = 0.425; fX1density = 2.0; fMdensity = 5.949; 158 204 } 159 }160 161 //162 // gases163 //164 if (State == kStateGas) {205 } 206 207 // 208 // gases 209 // 210 if (State == kStateGas) { 165 211 166 212 const G4double ClimiG[] = { 10. , 10.5 , 11. , 11.5 , 12.25 , 13.804}; … … 182 228 fX0density = 2.191; fX1density = 3.0; fMdensity = 3.297; 183 229 } 184 185 // change parameters if the gas is not in STP. 186 // For the correction the density(STP) is needed. 187 // Density(STP) is calculated here : 230 } 231 } 232 233 // change parameters if the gas is not in STP. 234 // For the correction the density(STP) is needed. 235 // Density(STP) is calculated here : 236 237 238 if (State == kStateGas) { 239 G4double Density = fMaterial->GetDensity(); 240 G4double Pressure = fMaterial->GetPressure(); 241 G4double Temp = fMaterial->GetTemperature(); 188 242 189 G4double Density = fMaterial->GetDensity(); 190 G4double Pressure = fMaterial->GetPressure(); 191 G4double Temp = fMaterial->GetTemperature(); 192 193 G4double DensitySTP = Density*STP_Pressure*Temp/(Pressure*STP_Temperature); 194 195 G4double ParCorr = std::log(Density/DensitySTP); 243 G4double DensitySTP = Density*STP_Pressure*Temp/(Pressure*STP_Temperature); 244 245 G4double ParCorr = std::log(Density/DensitySTP); 196 246 197 fCdensity -= ParCorr; 198 fX0density -= ParCorr/twoln10; 199 fX1density -= ParCorr/twoln10; 200 } 201 202 G4double Xa = fCdensity/twoln10; 203 fAdensity = twoln10*(Xa-fX0density) 204 /std::pow((fX1density-fX0density),fMdensity); 247 fCdensity -= ParCorr; 248 fX0density -= ParCorr/twoln10; 249 fX1density -= ParCorr/twoln10; 250 } 251 252 // fAdensity parameter can be fixed for not conductive materials 253 if(0.0 == fD0density) { 254 G4double Xa = fCdensity/twoln10; 255 fAdensity = twoln10*(Xa-fX0density) 256 /std::pow((fX1density-fX0density),fMdensity); 257 } 258 /* 259 G4cout << "G4IonisParamMat: density effect data for <" << fMaterial->GetName() 260 << "> " << G4endl; 261 G4cout << "Eplasma(eV)= " << fPlasmaEnergy/eV 262 << " rho= " << fAdjustmentFactor 263 << " -C= " << fCdensity 264 << " x0= " << fX0density 265 << " x1= " << fX1density 266 << " a= " << fAdensity 267 << " m= " << fMdensity 268 << G4endl; 269 */ 205 270 } 206 271 … … 358 423 G4IonisParamMat::~G4IonisParamMat() 359 424 { 360 if (fShellCorrectionVector) delete [] fShellCorrectionVector; 425 if (fShellCorrectionVector) { delete [] fShellCorrectionVector; } 426 if (fDensityData) { delete fDensityData; } 427 fDensityData = 0; 361 428 } 362 429 … … 388 455 fX0density = right.fX0density; 389 456 fX1density = right.fX1density; 457 fD0density = right.fD0density; 458 fPlasmaEnergy = right.fPlasmaEnergy; 459 fAdjustmentFactor = right.fAdjustmentFactor; 390 460 fF1fluct = right.fF1fluct; 391 461 fF2fluct = right.fF2fluct; … … 396 466 fEnergy0fluct = right.fEnergy0fluct; 397 467 fRateionexcfluct = right.fRateionexcfluct; 398 } 468 fZeff = right.fZeff; 469 fFermiEnergy = right.fFermiEnergy; 470 fLfactor = right.fLfactor; 471 fBirks = right.fBirks; 472 fMeanEnergyPerIon = right.fMeanEnergyPerIon; 473 fDensityData = right.fDensityData; 474 } 399 475 return *this; 400 476 } -
trunk/source/materials/src/G4IronStoppingICRU73.cc
r1058 r1196 25 25 // 26 26 // 27 // $Id: G4IronStoppingICRU73.cc,v 1. 7 2009/05/07 18:51:01vnivanch Exp $28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01$27 // $Id: G4IronStoppingICRU73.cc,v 1.9 2009/11/09 16:51:07 vnivanch Exp $ 28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 30 30 //--------------------------------------------------------------------------- … … 35 35 // 36 36 // Author: A.Ivanchenko 10.08.2008 37 // 38 // in the framework of the ESA Technology Research Programme 39 // (ESA contract 21435/08/NL/AT) 37 40 // 38 41 // Modifications: 39 42 // 29.04.2009 A.Ivantchenko added data for G4WATER 40 43 // provided by Prof.P.Sigmund Univ. Southern Denmark 44 // 03.11.2009 A. Lechner: Added new methods BuildPhysicsVector according 45 // to interface changes in base class G4VIonDEDXTable. 41 46 // 42 47 //---------------------------------------------------------------------------- … … 77 82 atomicNumbersMat.clear(); 78 83 namesMat.clear(); 84 } 85 86 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 87 G4bool G4IronStoppingICRU73::BuildPhysicsVector(G4int ionZ, 88 G4int matZ) 89 { 90 return IsApplicable( ionZ, matZ ); 91 } 92 93 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 94 95 G4bool G4IronStoppingICRU73::BuildPhysicsVector(G4int ionZ, 96 const G4String& matName) 97 { 98 return IsApplicable( ionZ, matName ); 79 99 } 80 100 -
trunk/source/materials/src/G4Isotope.cc
r986 r1196 26 26 // 27 27 // $Id: G4Isotope.cc,v 1.22 2008/08/11 11:53:11 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02-ref-02$28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -
trunk/source/materials/src/G4MPVEntry.cc
r1058 r1196 26 26 // 27 27 // $Id: G4MPVEntry.cc,v 1.9 2009/04/21 15:35:45 gcosmo Exp $ 28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01$28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 // -
trunk/source/materials/src/G4Material.cc
r986 r1196 26 26 // 27 27 // $Id: G4Material.cc,v 1.42 2008/08/13 16:06:42 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02-ref-02$28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -
trunk/source/materials/src/G4MaterialPropertiesTable.cc
r1058 r1196 26 26 // 27 27 // $Id: G4MaterialPropertiesTable.cc,v 1.21 2009/04/21 15:35:45 gcosmo Exp $ 28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01$28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 // -
trunk/source/materials/src/G4MaterialPropertyVector.cc
r1058 r1196 26 26 // 27 27 // $Id: G4MaterialPropertyVector.cc,v 1.17 2009/04/21 15:35:45 gcosmo Exp $ 28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01$28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 // -
trunk/source/materials/src/G4MaterialStoppingICRU73.cc
r1058 r1196 25 25 // 26 26 // 27 // $Id: G4MaterialStoppingICRU73.cc,v 1. 7 2009/04/29 13:51:53vnivanch Exp $28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01$27 // $Id: G4MaterialStoppingICRU73.cc,v 1.10 2009/11/09 16:51:07 vnivanch Exp $ 28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 30 30 //--------------------------------------------------------------------------- … … 36 36 // Author: A.Ivantchenko 07.08.2008 37 37 // 38 // in the framework of the ESA Technology Research Programme 39 // (ESA contract 21435/08/NL/AT) 40 // 38 41 // Modifications: 39 42 // 29.04.2009 A.Ivantchenko added revised data for G4WATER, G4WATER_VAPOR, 40 43 // G4_NYLON-6/6 provided by Prof.P.Sigmund Univ. Southern Denmark 41 // 44 // 01.11.2009 A. Lechner: Extended energy range of G4_WATER tables up to 45 // 1 GeV/u 46 // 03.11.2009 A. Lechner: Changed material name from G4_NYLON-6/6 to 47 // G4_NYLON-6-6. Added new methods BuildPhysicsVector according 48 // to interface changes in base class G4VIonDEDXTable. 49 // 42 50 //---------------------------------------------------------------------------- 43 51 // … … 56 64 maxIonAtomicNmb = 18; 57 65 58 G4String matName[31] = {"G4_A-150_TISSUE","G4_ADIPOSE_TISSUE_ICRP","G4_AIR","G4_ALUMINUM_OXIDE","G4_BONE_COMPACT_ICRU","G4_BONE_CORTICAL_ICRP","G4_C-552","G4_CALCIUM_FLUORIDE","G4_CARBON_DIOXIDE","G4_Pyrex_Glass","G4_KAPTON","G4_LITHIUM_FLUORIDE","G4_LITHIUM_TETRABORATE","G4_METHANE","G4_MUSCLE_STRIATED_ICRU","G4_NYLON-6 /6","G4_PHOTO_EMULSION","G4_PLASTIC_SC_VINYLTOLUENE","G4_POLYCARBONATE","G4_POLYETHYLENE","G4_MYLAR","G4_LUCITE","G4_POLYSTYRENE","G4_TEFLON","G4_PROPANE","G4_SILICON_DIOXIDE","G4_SODIUM_IODIDE","G4_TISSUE-METHANE","G4_TISSUE-PROPANE","G4_WATER","G4_WATER_VAPOR"};66 G4String matName[31] = {"G4_A-150_TISSUE","G4_ADIPOSE_TISSUE_ICRP","G4_AIR","G4_ALUMINUM_OXIDE","G4_BONE_COMPACT_ICRU","G4_BONE_CORTICAL_ICRP","G4_C-552","G4_CALCIUM_FLUORIDE","G4_CARBON_DIOXIDE","G4_Pyrex_Glass","G4_KAPTON","G4_LITHIUM_FLUORIDE","G4_LITHIUM_TETRABORATE","G4_METHANE","G4_MUSCLE_STRIATED_ICRU","G4_NYLON-6-6","G4_PHOTO_EMULSION","G4_PLASTIC_SC_VINYLTOLUENE","G4_POLYCARBONATE","G4_POLYETHYLENE","G4_MYLAR","G4_LUCITE","G4_POLYSTYRENE","G4_TEFLON","G4_PROPANE","G4_SILICON_DIOXIDE","G4_SODIUM_IODIDE","G4_TISSUE-METHANE","G4_TISSUE-PROPANE","G4_WATER","G4_WATER_VAPOR"}; 59 67 60 68 for( size_t i = 0; i < 31; i++ ) { … … 74 82 dedxKeys.clear(); 75 83 dedx.clear(); 84 } 85 86 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 87 G4bool G4MaterialStoppingICRU73::BuildPhysicsVector(G4int ionZ, 88 G4int matZ) 89 { 90 return IsApplicable( ionZ, matZ ); 91 } 92 93 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 94 95 G4bool G4MaterialStoppingICRU73::BuildPhysicsVector(G4int ionZ, 96 const G4String& matName) 97 { 98 return IsApplicable( ionZ, matName ); 76 99 } 77 100 … … 114 137 115 138 for( G4int i = 0; i < 31; i++ ) { 139 pv->PutValues(i,energy[i],stoppower[i]*factor); 140 } 141 142 return pv; 143 } 144 145 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 146 147 G4PhysicsVector* G4MaterialStoppingICRU73::CreatePhysicsVectorFullRange( 148 G4double* energy, 149 G4double* stoppower, 150 G4double factor) 151 { 152 G4LPhysicsFreeVector* pv = new G4LPhysicsFreeVector(53,energy[0],energy[52]); 153 pv->SetSpline(spline); 154 155 for( G4int i = 0; i < 53; i++ ) { 116 156 pv->PutValues(i,energy[i],stoppower[i]*factor); 117 157 } … … 182 222 G4double factor = MeV * cm2 / (0.001 * g); 183 223 184 G4double E[ 31] = {.025,.03,.04,.05,.06,.07,.08,.09,.1,.15,.2,.25,.3,.4,.5,.6,.7,.8,.9,1,1.5,2,2.5,3,4,5,6,7,8,9,10};185 186 for( G4int i = 0; i < 31; i++ ) E[i] *= MeV;224 G4double E[53] = {.025,.03,.04,.05,.06,.07,0.08,0.09,0.1,0.15,0.2,0.25,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.5,2,2.5,3,4,5,6,7,8,9,10,15,20,25,30,40,50,60,70,80,90,100,150,200,250,300,400,500,600,700,800,900,1000}; 225 226 for( G4int i = 0; i < 53; i++ ) E[i] *= MeV; 187 227 188 228 if( matName == namesMat[0] ) { … … 2131 2171 else if( matName == namesMat[29] ) { 2132 2172 if( ionZ == 3) { 2133 G4double ZZ_3[ 31]={2.3193,2.5198,2.8539,3.1164,3.3203,3.4756,3.5914,3.6755,3.7347,3.8125,3.7349,3.6134,3.4818,3.2258,2.9949,2.7909,2.611,2.4517,2.3103,2.1841,1.7151,1.4139,1.2053,1.0525,0.84417,0.70862,0.61317,0.54214,0.48708,0.44305,0.40697};2134 physicsVector = CreatePhysicsVector (E,ZZ_3,factor);2173 G4double ZZ_3[53]={2.3193,2.5198,2.8539,3.1164,3.3203,3.4756,3.5914,3.6755,3.7347,3.8125,3.7349,3.6134,3.4818,3.2258,2.9949,2.7909,2.611,2.4517,2.3103,2.1841,1.7151,1.4139,1.2053,1.0525,0.84417,0.70862,0.61317,0.54214,0.48708,0.44305,0.40697,0.29312,0.23208,0.19364,0.16706,0.13252,0.11092,0.09608,0.08522,0.076915,0.07035,0.065026,0.048615,0.040137,0.034964,0.03149,0.027148,0.024579,0.022911,0.021761,0.020937,0.020327,0.019862}; 2174 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_3,factor); 2135 2175 } 2136 2176 else if( ionZ == 4) { 2137 G4double ZZ_4[ 31]={2.872,3.1439,3.6102,3.9967,4.3169,4.5788,4.7897,4.9568,5.0872,5.387,5.4028,5.3185,5.1971,4.9243,4.6549,4.4036,4.1732,3.9629,3.771,3.5957,2.9117,2.4439,2.1062,1.8518,1.4956,1.2587,1.0901,0.96393,0.86589,0.78742,0.72313};2138 physicsVector = CreatePhysicsVector (E,ZZ_4,factor);2177 G4double ZZ_4[53]={2.872,3.1439,3.6102,3.9967,4.3169,4.5788,4.7897,4.9568,5.0872,5.387,5.4028,5.3185,5.1971,4.9243,4.6549,4.4036,4.1732,3.9629,3.771,3.5957,2.9117,2.4439,2.1062,1.8518,1.4956,1.2587,1.0901,0.96393,0.86589,0.78742,0.72313,0.52053,0.41214,0.34394,0.2968,0.2355,0.19717,0.17081,0.15152,0.13676,0.1251,0.11564,0.086471,0.071399,0.062202,0.056023,0.048303,0.043734,0.040767,0.038723,0.037256,0.036172,0.035345}; 2178 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_4,factor); 2139 2179 } 2140 2180 else if( ionZ == 5) { 2141 G4double ZZ_5[ 31]={3.2922,3.6315,4.2226,4.7242,5.1543,5.5219,5.8323,6.0911,6.3043,6.8888,7.0451,7.0309,6.9445,6.6925,6.4129,6.1372,5.8747,5.6283,5.3983,5.1841,4.3121,3.6826,3.2109,2.8459,2.3203,1.9619,1.7028,1.5072,1.3543,1.2315,1.1307};2142 physicsVector = CreatePhysicsVector (E,ZZ_5,factor);2181 G4double ZZ_5[53]={3.2922,3.6315,4.2226,4.7242,5.1543,5.5219,5.8323,6.0911,6.3043,6.8888,7.0451,7.0309,6.9445,6.6925,6.4129,6.1372,5.8747,5.6283,5.3983,5.1841,4.3121,3.6826,3.2109,2.8459,2.3203,1.9619,1.7028,1.5072,1.3543,1.2315,1.1307,0.81305,0.64344,0.53693,0.46337,0.36777,0.30797,0.26684,0.23674,0.21371,0.1955,0.18072,0.13517,0.11163,0.097256,0.087601,0.075535,0.068395,0.063757,0.060561,0.058268,0.056574,0.05528}; 2182 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_5,factor); 2143 2183 } 2144 2184 else if( ionZ == 6) { 2145 G4double ZZ_6[ 31]={3.6037,4.0035,4.7125,5.3248,5.8601,6.3287,6.7363,7.0875,7.3872,8.2986,8.635,8.7189,8.6879,8.485,8.2162,7.9331,7.6534,7.3839,7.1272,6.884,5.8573,5.0814,4.4808,4.0044,3.3005,2.808,2.4458,2.1691,1.9511,1.7751,1.6302};2146 physicsVector = CreatePhysicsVector (E,ZZ_6,factor);2185 G4double ZZ_6[53]={3.6037,4.0035,4.7125,5.3248,5.8601,6.3287,6.7363,7.0875,7.3872,8.2986,8.635,8.7189,8.6879,8.485,8.2162,7.9331,7.6534,7.3839,7.1272,6.884,5.8573,5.0814,4.4808,4.0044,3.3005,2.808,2.4458,2.1691,1.9511,1.7751,1.6302,1.1714,0.9263,0.77269,0.66676,0.52925,0.44328,0.38415,0.34086,0.30773,0.28154,0.26028,0.19473,0.16083,0.14014,0.12624,0.10886,0.098575,0.091894,0.08729,0.083986,0.081545,0.079682}; 2186 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_6,factor); 2147 2187 } 2148 2188 else if( ionZ == 7) { 2149 G4double ZZ_7[ 31]={3.8821,4.3278,5.1314,5.8371,6.4632,7.021,7.5168,7.9545,8.3378,9.5943,10.145,10.356,10.402,10.278,10.041,9.7677,9.4845,9.2035,8.9301,8.6668,7.5173,6.6126,5.8919,5.308,4.4226,3.7883,3.3138,2.9467,2.655,2.4179,2.2217};2150 physicsVector = CreatePhysicsVector (E,ZZ_7,factor);2189 G4double ZZ_7[53]={3.8821,4.3278,5.1314,5.8371,6.4632,7.021,7.5168,7.9545,8.3378,9.5943,10.145,10.356,10.402,10.278,10.041,9.7677,9.4845,9.2035,8.9301,8.6668,7.5173,6.6126,5.8919,5.308,4.4226,3.7883,3.3138,2.9467,2.655,2.4179,2.2217,1.5965,1.2614,1.0516,0.90715,0.71995,0.60305,0.52268,0.46384,0.41882,0.3832,0.35431,0.26515,0.21903,0.19087,0.17194,0.14829,0.13429,0.12519,0.11892,0.11442,0.1111,0.10856}; 2190 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_7,factor); 2151 2191 } 2152 2192 else if( ionZ == 8) { 2153 G4double ZZ_8[ 31]={4.1215,4.6063,5.4945,6.2868,6.9978,7.6391,8.2175,8.7372,9.201,10.808,11.596,11.955,12.096,12.077,11.89,11.639,11.364,11.081,10.799,10.523,9.2787,8.2615,7.4307,6.7431,5.6787,4.8981,4.3045,3.8393,3.4663,3.161,2.9069};2154 physicsVector = CreatePhysicsVector (E,ZZ_8,factor);2193 G4double ZZ_8[53]={4.1215,4.6063,5.4945,6.2868,6.9978,7.6391,8.2175,8.7372,9.201,10.808,11.596,11.955,12.096,12.077,11.89,11.639,11.364,11.081,10.799,10.523,9.2787,8.2615,7.4307,6.7431,5.6787,4.8981,4.3045,3.8393,3.4663,3.161,2.9069,2.0903,1.6501,1.3745,1.1851,0.94004,0.78733,0.68244,0.60568,0.54694,0.50048,0.46278,0.34643,0.28622,0.24945,0.22474,0.19384,0.17555,0.16367,0.15547,0.14959,0.14525,0.14194}; 2194 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_8,factor); 2155 2195 } 2156 2196 else if( ionZ == 9) { 2157 G4double ZZ_9[ 31]={4.2951,4.8107,5.7678,6.6342,7.4196,8.1343,8.7858,9.3786,9.9152,11.857,12.89,13.408,13.652,13.749,13.62,13.398,13.136,12.857,12.573,12.291,10.982,9.88,8.9601,8.1871,6.9687,6.0574,5.3535,4.7954,4.3434,3.9704,3.658};2158 physicsVector = CreatePhysicsVector (E,ZZ_9,factor);2197 G4double ZZ_9[53]={4.2951,4.8107,5.7678,6.6342,7.4196,8.1343,8.7858,9.3786,9.9152,11.857,12.89,13.408,13.652,13.749,13.62,13.398,13.136,12.857,12.573,12.291,10.982,9.88,8.9601,8.1871,6.9687,6.0574,5.3535,4.7954,4.3434,3.9704,3.658,2.642,2.0878,1.7393,1.4994,1.1892,0.99601,0.86336,0.76632,0.69207,0.63334,0.58568,0.43857,0.36242,0.3159,0.28462,0.24552,0.22237,0.20733,0.19696,0.18951,0.18401,0.17981}; 2198 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_9,factor); 2159 2199 } 2160 2200 else if( ionZ == 10) { 2161 G4double ZZ_10[ 31]={4.4513,4.991,6.004,6.9338,7.7852,8.5662,9.284,9.9435,10.547,12.813,14.099,14.791,15.151,15.382,15.321,15.136,14.895,14.626,14.345,14.061,12.705,11.53,10.532,9.6823,8.3208,7.2846,6.4735,5.8234,5.2919,4.8502,4.4779};2162 physicsVector = CreatePhysicsVector (E,ZZ_10,factor);2201 G4double ZZ_10[53]={4.4513,4.991,6.004,6.9338,7.7852,8.5662,9.284,9.9435,10.547,12.813,14.099,14.791,15.151,15.382,15.321,15.136,14.895,14.626,14.345,14.061,12.705,11.53,10.532,9.6823,8.3208,7.2846,6.4735,5.8234,5.2919,4.8502,4.4779,3.252,2.5745,2.146,1.8503,1.4675,1.2291,1.0654,0.94575,0.85419,0.78178,0.72301,0.54158,0.44763,0.39022,0.35162,0.30335,0.27477,0.25619,0.24339,0.23419,0.2274,0.22222}; 2202 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_10,factor); 2163 2203 } 2164 2204 else if( ionZ == 11) { 2165 G4double ZZ_11[ 31]={4.5914,5.1553,6.2244,7.2203,8.1435,8.9982,9.7906,10.526,11.206,13.848,15.453,16.384,16.916,17.369,17.442,17.344,17.16,16.93,16.675,16.407,15.045,13.799,12.706,11.753,10.187,8.9672,7.9956,7.2072,6.5562,6.0112,5.5493};2166 physicsVector = CreatePhysicsVector (E,ZZ_11,factor);2205 G4double ZZ_11[53]={4.5914,5.1553,6.2244,7.2203,8.1435,8.9982,9.7906,10.526,11.206,13.848,15.453,16.384,16.916,17.369,17.442,17.344,17.16,16.93,16.675,16.407,15.045,13.799,12.706,11.753,10.187,8.9672,7.9956,7.2072,6.5562,6.0112,5.5493,4.0154,3.1635,2.6262,2.2573,1.7832,1.4904,1.2907,1.1451,1.0339,0.94615,0.87498,0.65548,0.54186,0.47243,0.42574,0.36734,0.33275,0.31027,0.29478,0.28364,0.27542,0.26915}; 2206 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_11,factor); 2167 2207 } 2168 2208 else if( ionZ == 12) { 2169 G4double ZZ_12[ 31]={4.7537,5.3178,6.3962,7.4137,8.3663,9.2554,10.085,10.859,11.581,14.455,16.279,17.373,18.018,18.598,18.727,18.654,18.479,18.25,17.99,17.716,16.313,15.026,13.895,12.907,11.277,9.9981,8.9727,8.1344,7.4376,6.8507,6.35};2170 physicsVector = CreatePhysicsVector (E,ZZ_12,factor);2209 G4double ZZ_12[53]={4.7537,5.3178,6.3962,7.4137,8.3663,9.2554,10.085,10.859,11.581,14.455,16.279,17.373,18.018,18.598,18.727,18.654,18.479,18.25,17.99,17.716,16.313,15.026,13.895,12.907,11.277,9.9981,8.9727,8.1344,7.4376,6.8507,6.35,4.6625,3.7049,3.0916,2.666,2.1135,1.7695,1.5336,1.3613,1.2296,1.1255,1.041,0.7802,0.64511,0.56252,0.50698,0.43749,0.39634,0.36958,0.35114,0.33789,0.3281,0.32063}; 2210 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_12,factor); 2171 2211 } 2172 2212 else if( ionZ == 13) { 2173 G4double ZZ_13[ 31]={4.911,5.4856,6.5852,7.6302,8.6193,9.551,10.426,11.248,12.018,15.152,17.23,18.531,19.33,20.11,20.354,20.352,20.224,20.024,19.785,19.521,18.12,16.795,15.611,14.565,12.819,11.431,10.305,9.3772,8.6003,7.9413,7.3761};2174 physicsVector = CreatePhysicsVector (E,ZZ_13,factor);2213 G4double ZZ_13[53]={4.911,5.4856,6.5852,7.6302,8.6193,9.551,10.426,11.248,12.018,15.152,17.23,18.531,19.33,20.11,20.354,20.352,20.224,20.024,19.785,19.521,18.12,16.795,15.611,14.565,12.819,11.431,10.305,9.3772,8.6003,7.9413,7.3761,5.45,4.342,3.6272,3.129,2.4808,2.0767,1.7997,1.5975,1.4429,1.3207,1.2216,0.91581,0.75739,0.66053,0.59537,0.51383,0.46554,0.43413,0.41248,0.39693,0.38544,0.37667}; 2214 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_13,factor); 2175 2215 } 2176 2216 else if( ionZ == 14) { 2177 G4double ZZ_14[ 31]={5.0697,5.6529,6.77,7.8376,8.8564,9.8229,10.736,11.597,12.409,15.773,18.09,19.594,20.549,21.535,21.9,21.975,21.896,21.73,21.513,21.265,19.878,18.525,17.298,16.202,14.354,12.867,11.651,10.64,9.7876,9.0607,8.4341};2178 physicsVector = CreatePhysicsVector (E,ZZ_14,factor);2217 G4double ZZ_14[53]={5.0697,5.6529,6.77,7.8376,8.8564,9.8229,10.736,11.597,12.409,15.773,18.09,19.594,20.549,21.535,21.9,21.975,21.896,21.73,21.513,21.265,19.878,18.525,17.298,16.202,14.354,12.867,11.651,10.64,9.7876,9.0607,8.4341,6.2756,5.0169,4.1981,3.6247,2.8758,2.4078,2.0868,1.8523,1.6731,1.5315,1.4167,1.0623,0.8787,0.76644,0.69091,0.59637,0.54036,0.50394,0.47883,0.46078,0.44746,0.43728}; 2218 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_14,factor); 2179 2219 } 2180 2220 else if( ionZ == 15) { 2181 G4double ZZ_15[ 31]={5.2616,5.8538,6.9867,8.074,9.1192,10.117,11.065,11.964,12.815,16.396,18.945,20.657,21.779,22.993,23.502,23.672,23.659,23.54,23.356,23.132,21.792,20.425,19.162,18.02,16.066,14.472,13.155,12.051,11.114,10.311,9.6149};2182 physicsVector = CreatePhysicsVector (E,ZZ_15,factor);2221 G4double ZZ_15[53]={5.2616,5.8538,6.9867,8.074,9.1192,10.117,11.065,11.964,12.815,16.396,18.945,20.657,21.779,22.993,23.502,23.672,23.659,23.54,23.356,23.132,21.792,20.425,19.162,18.02,16.066,14.472,13.155,12.051,11.114,10.311,9.6149,7.1917,5.7614,4.8249,4.1667,3.305,2.7661,2.3966,2.1269,1.9215,1.7603,1.6263,1.2197,1.0091,0.88027,0.79361,0.68512,0.62083,0.57902,0.55019,0.52947,0.51417,0.50248}; 2222 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_15,factor); 2183 2223 } 2184 2224 else if( ionZ == 16) { 2185 G4double ZZ_16[ 31]={5.4129,6.0193,7.1761,8.2871,9.36,10.39,11.373,12.308,13.196,16.986,19.762,21.683,22.976,24.431,25.091,25.363,25.421,25.354,25.208,25.013,23.734,22.366,21.074,19.891,17.84,16.146,14.731,13.536,12.516,11.636,10.869};2186 physicsVector = CreatePhysicsVector (E,ZZ_16,factor);2225 G4double ZZ_16[53]={5.4129,6.0193,7.1761,8.2871,9.36,10.39,11.373,12.308,13.196,16.986,19.762,21.683,22.976,24.431,25.091,25.363,25.421,25.354,25.208,25.013,23.734,22.366,21.074,19.891,17.84,16.146,14.731,13.536,12.516,11.636,10.869,8.1727,6.5617,5.4997,4.7505,3.7671,3.1514,2.7293,2.4215,2.1866,2.0012,1.8509,1.3881,1.1485,1.002,0.90348,0.78008,0.70695,0.65938,0.62657,0.60299,0.58558,0.57229}; 2226 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_16,factor); 2187 2227 } 2188 2228 else if( ionZ == 17) { 2189 G4double ZZ_17[ 31]={5.6171,6.2307,7.3984,8.5209,9.6097,10.661,11.669,12.632,13.551,17.518,20.497,22.615,24.076,25.769,26.58,26.953,27.082,27.066,26.958,26.791,25.579,24.214,22.901,21.685,19.553,17.771,16.271,14.996,13.9,12.949,12.118};2190 physicsVector = CreatePhysicsVector (E,ZZ_17,factor);2229 G4double ZZ_17[53]={5.6171,6.2307,7.3984,8.5209,9.6097,10.661,11.669,12.632,13.551,17.518,20.497,22.615,24.076,25.769,26.58,26.953,27.082,27.066,26.958,26.791,25.579,24.214,22.901,21.685,19.553,17.771,16.271,14.996,13.9,12.949,12.118,9.1688,7.385,6.2003,5.3604,4.2535,3.5588,3.0821,2.7343,2.4689,2.2595,2.0898,1.5673,1.297,1.1318,1.0205,0.88128,0.79874,0.74504,0.708,0.68138,0.66172,0.64671}; 2230 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_17,factor); 2191 2231 } 2192 2232 else if( ionZ == 18) { 2193 G4double ZZ_18[ 31]={5.7158,6.3394,7.5204,8.6525,9.7528,10.82,11.849,12.836,13.78,17.904,21.07,23.375,24.999,26.928,27.889,28.361,28.559,28.592,28.521,28.381,27.228,25.869,24.541,23.299,21.103,19.255,17.686,16.346,15.19,14.183,13.3};2194 physicsVector = CreatePhysicsVector (E,ZZ_18,factor);2233 G4double ZZ_18[53]={5.7158,6.3394,7.5204,8.6525,9.7528,10.82,11.849,12.836,13.78,17.904,21.07,23.375,24.999,26.928,27.889,28.361,28.559,28.592,28.521,28.381,27.228,25.869,24.541,23.299,21.103,19.255,17.686,16.346,15.19,14.183,13.3,10.137,8.2021,6.9062,5.9819,4.757,3.9841,3.4523,3.0636,2.7668,2.5324,2.3425,1.7573,1.4546,1.2694,1.1448,0.98872,0.8962,0.83601,0.79448,0.76464,0.74259,0.72575}; 2234 physicsVector = CreatePhysicsVectorFullRange(E,ZZ_18,factor); 2195 2235 } 2196 2236 } -
trunk/source/materials/src/G4NistElementBuilder.cc
r986 r1196 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4NistElementBuilder.cc,v 1.2 2 2008/08/11 11:53:11vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02-ref-02$26 // $Id: G4NistElementBuilder.cc,v 1.23 2009/07/17 18:45:57 vnivanch Exp $ 27 // GEANT4 tag $Name: materials-V09-02-18 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 203 203 << nc << " isotopes:" 204 204 << G4endl; 205 if(verbose > 1) { 206 G4int j; 207 G4int idx = idxIsotopes[i]; 208 G4int n0 = nFirstIsotope[i]; 209 G4cout << " N: "; 210 for(j=0; j<nc; j++) {G4cout << n0 + j << " ";} 211 G4cout << G4endl; 212 G4cout << " mass(amu): "; 213 for(j=0; j<nc; j++) {G4cout << GetAtomicMass(i, n0 + j) << " ";} 214 G4cout << G4endl; 215 G4cout << " abanbance: "; 216 for(j=0; j<nc; j++) {G4cout << relAbundance[idx + j] << " ";} 217 G4cout << G4endl; 218 } 205 G4int j; 206 G4int idx = idxIsotopes[i]; 207 G4int n0 = nFirstIsotope[i]; 208 G4cout << " N: "; 209 for(j=0; j<nc; j++) {G4cout << n0 + j << " ";} 210 G4cout << G4endl; 211 G4cout << " mass(amu): "; 212 for(j=0; j<nc; j++) {G4cout << GetAtomicMass(i, n0 + j) << " ";} 213 G4cout << G4endl; 214 G4cout << " abanbance: "; 215 for(j=0; j<nc; j++) {G4cout << relAbundance[idx + j] << " ";} 216 G4cout << G4endl; 219 217 } 220 218 } … … 270 268 } 271 269 272 if (verbose > 0) PrintElement(Z); 270 if (verbose > 1) {PrintElement(Z);} 271 else if(1 == verbose) { 272 G4cout << "Nist Element " << elmSymbol[Z] 273 << " Z= " << Z 274 << " Aeff(amu)= " << atomicMass[Z] << " " 275 << nIsotopes[Z] << " isotopes:" 276 << G4endl; 277 } 273 278 } 274 279 -
trunk/source/materials/src/G4NistManager.cc
r986 r1196 25 25 // 26 26 // $Id: G4NistManager.cc,v 1.19 2008/07/23 14:49:31 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02$27 // GEANT4 tag $Name: materials-V09-02-18 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/materials/src/G4NistMaterialBuilder.cc
r1058 r1196 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4NistMaterialBuilder.cc,v 1.2 0 2009/05/07 18:50:46 vnivanchExp $27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01$26 // $Id: G4NistMaterialBuilder.cc,v 1.22 2009/11/03 17:02:03 alechner Exp $ 27 // GEANT4 tag $Name: materials-V09-02-18 $ 28 28 // 29 29 // … … 44 44 // 27.06.06 V.Ivanchneko fix graphite description 45 45 // 27.07.07 V.Ivanchneko remove dependence on NistManager 46 // 30.10.09 V.Ivanchneko update density of G4_GRAFITE from PDG'2008 47 // added G4_GRAPHITE_POROUS 48 // 03.11.09 A.Lechner changed following material names: 49 // From G4_NYLON-6/6 to G4_NYLON-6-6 50 // From G4_NYLON-6/10 to G4_NYLON-6-10 46 51 // 47 52 // ------------------------------------------------------------------- … … 1337 1342 AddElementByWeightFraction( 8, 0.148539); 1338 1343 1339 AddMaterial("G4_NYLON-6 /6", 1.14, 0, 63.9, 4);1344 AddMaterial("G4_NYLON-6-6", 1.14, 0, 63.9, 4); 1340 1345 AddElementByWeightFraction( 1, 0.097976); 1341 1346 AddElementByWeightFraction( 6, 0.636856); … … 1343 1348 AddElementByWeightFraction( 8, 0.141389); 1344 1349 1345 AddMaterial("G4_NYLON-6 /10", 1.14, 0, 63.2, 4);1350 AddMaterial("G4_NYLON-6-10", 1.14, 0, 63.2, 4); 1346 1351 AddElementByWeightFraction( 1, 0.107062); 1347 1352 AddElementByWeightFraction( 6, 0.680449); … … 1703 1708 AddElementByWeightFraction( 6, 0.905065); 1704 1709 1705 AddMaterial("G4_GRAPHITE", 1.7, 6, 78.);1710 AddMaterial("G4_GRAPHITE", 2.21, 6, 78.); 1706 1711 nNIST = nMaterials; 1707 1712 AddChemicalFormula("G4_GRAPHITE","Graphite"); … … 1727 1732 AddMaterial("G4_Galactic", density, 1, 21.8, 1, kStateGas); 1728 1733 AddGas("G4_Galactic",2.73*kelvin, 3.e-18*pascal); 1729 } 1730 1731 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 1732 1734 1735 AddMaterial("G4_GRAPHITE_POROUS", 1.7, 6, 78.); 1736 AddChemicalFormula("G4_GRAPHITE","Graphite"); 1737 1738 } 1739 1740 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 1741 -
trunk/source/materials/src/G4NistMessenger.cc
r986 r1196 25 25 // 26 26 // 27 // $Id: G4NistMessenger.cc,v 1. 4 2007/05/02 10:48:52 vnivanchExp $28 // GEANT4 tag $Name: geant4-09-02-ref-02$27 // $Id: G4NistMessenger.cc,v 1.8 2009/10/30 19:39:35 bagoulia Exp $ 28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 // … … 51 51 #include "G4UIcmdWithAnInteger.hh" 52 52 #include "G4UIcmdWithAString.hh" 53 #include "G4IonisParamMat.hh" 54 #include "G4DensityEffectData.hh" 53 55 54 56 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... … … 70 72 prtElmCmd->SetGuidance("symbol = element."); 71 73 prtElmCmd->SetGuidance("all = all elements."); 72 prtElmCmd->SetGuidance("verbose>1 : list associated isotopes.");73 74 prtElmCmd->SetParameterName("symbol", true); 74 75 prtElmCmd->SetDefaultValue("all"); … … 76 77 przElmCmd = new G4UIcmdWithAnInteger("/material/nist/printElementZ",this); 77 78 przElmCmd->SetGuidance("print element Z in dataBase."); 78 przElmCmd->SetGuidance("verbose>1 : list associated isotopes."); 79 przElmCmd->SetGuidance("0 = all elements."); 80 przElmCmd->SetParameterName("Z", true); 81 przElmCmd->SetDefaultValue(0); 79 82 80 83 lisMatCmd = new G4UIcmdWithAString("/material/nist/listMaterials",this); 81 lisMatCmd->SetGuidance("list materials in dataBase.");82 lisMatCmd->SetGuidance("simple = simple nistmaterials.");83 lisMatCmd->SetGuidance("compound = compound nistmaterials.");84 lisMatCmd->SetGuidance("hep = hepmaterials.");85 lisMatCmd->SetGuidance("all = allmaterials.");84 lisMatCmd->SetGuidance("list materials in Geant4 dataBase."); 85 lisMatCmd->SetGuidance("simple - simple NIST materials."); 86 lisMatCmd->SetGuidance("compound - compound NIST materials."); 87 lisMatCmd->SetGuidance("hep - HEP materials."); 88 lisMatCmd->SetGuidance("all - list of all Geant4 materials."); 86 89 lisMatCmd->SetParameterName("list", true); 87 90 lisMatCmd->SetCandidates("simple compound hep all"); … … 92 95 93 96 g4ElmCmd = new G4UIcmdWithAString("/material/g4/printElement",this); 94 g4ElmCmd->SetGuidance("print Element in G4ElementTable."); 97 g4ElmCmd->SetGuidance("print Element from G4ElementTable."); 98 g4ElmCmd->SetGuidance("all - all elements."); 99 g4ElmCmd->SetParameterName("elm", true); 100 g4ElmCmd->SetDefaultValue("all"); 95 101 96 102 g4MatCmd = new G4UIcmdWithAString("/material/g4/printMaterial",this); 97 g4MatCmd->SetGuidance("print Material in G4MaterialTable."); 103 g4MatCmd->SetGuidance("print Material from G4MaterialTable."); 104 g4MatCmd->SetGuidance("all - all materials"); 105 g4MatCmd->SetParameterName("mat", true); 106 g4MatCmd->SetDefaultValue("all"); 98 107 108 g4DensCmd = new G4UIcmdWithAString("/material/g4/printDensityEffParam",this); 109 g4DensCmd->SetGuidance("print Material from G4DensityEffectData."); 110 g4DensCmd->SetGuidance("all - all materials"); 111 g4DensCmd->SetParameterName("mat", true); 112 g4DensCmd->SetDefaultValue("all"); 99 113 } 100 114 … … 136 150 if (command == g4MatCmd) 137 151 { manager->PrintG4Material(newValue);} 152 153 if (command == g4DensCmd) 154 { if (G4Material::GetNumberOfMaterials > 0) { 155 G4IonisParamMat::GetDensityEffectData()->PrintData(newValue); 156 } 157 } 138 158 } 139 140 159 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -
trunk/source/materials/src/G4OpticalSurface.cc
r986 r1196 25 25 // 26 26 // 27 // $Id: G4OpticalSurface.cc,v 1.1 2 2008/12/11 10:23:54 gcosmoExp $28 // GEANT4 tag $Name: geant4-09-0 2-ref-02$27 // $Id: G4OpticalSurface.cc,v 1.15 2009/11/20 00:57:51 gum Exp $ 28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // … … 66 66 polish = right.polish; 67 67 theMaterialPropertiesTable = right.theMaterialPropertiesTable; 68 AngularDistribution = right.AngularDistribution; 68 69 } 69 70 return *this; … … 92 93 polish = 0.0; 93 94 } 95 else if ( model == LUT ) { 96 sigma_alpha = value; 97 polish = 0.0; 98 } 94 99 else { 95 100 G4Exception("G4OpticalSurface::G4OpticalSurface ==> " 96 101 "Constructor called with INVALID model."); 97 102 } 98 } 99 100 G4OpticalSurface::G4OpticalSurface() 101 : G4SurfaceProperty() 102 { 103 104 AngularDistribution = NULL; 105 106 if (type == dielectric_LUT) { 107 AngularDistribution = 108 new float[incidentIndexMax*thetaIndexMax*phiIndexMax]; 109 ReadFile(); 110 } 103 111 } 104 112 105 113 G4OpticalSurface::~G4OpticalSurface() 106 114 { 115 if (AngularDistribution) delete AngularDistribution; 107 116 } 108 117 … … 143 152 G4cout << polish << G4endl; 144 153 } 154 else if (theModel == LUT ){ 155 G4cout << sigma_alpha << G4endl; 156 } 145 157 else { 146 158 G4cout << sigma_alpha << G4endl; … … 148 160 G4cout << G4endl; 149 161 } 162 163 void G4OpticalSurface::SetType(const G4SurfaceType& type) 164 { 165 theType = type; 166 if (type == dielectric_LUT) { 167 if (!AngularDistribution) AngularDistribution = 168 new float[incidentIndexMax*thetaIndexMax*phiIndexMax]; 169 ReadFile(); 170 } 171 } 172 173 void G4OpticalSurface::SetFinish(const G4OpticalSurfaceFinish finish) 174 { 175 theFinish = finish; 176 if (theType == dielectric_LUT) { 177 if (!AngularDistribution) AngularDistribution = 178 new float[incidentIndexMax*thetaIndexMax*phiIndexMax]; 179 ReadFile(); 180 } 181 } 182 183 void G4OpticalSurface::ReadFile() 184 { 185 G4String readFileName = " "; 186 187 if (theFinish == polishedlumirrorglue) { 188 readFileName = "PolishedLumirrorGlue.dat"; 189 } 190 else if (theFinish == polishedlumirrorair) { 191 readFileName = "PolishedLumirror.dat"; 192 } 193 else if (theFinish == polishedteflonair) { 194 readFileName = "PolishedTeflon.dat"; 195 } 196 else if (theFinish == polishedtioair) { 197 readFileName = "PolishedTiO.dat"; 198 } 199 else if (theFinish == polishedtyvekair) { 200 readFileName = "PolishedTyvek.dat"; 201 } 202 else if (theFinish == polishedvm2000glue) { 203 readFileName = "PolishedVM2000Glue.dat"; 204 } 205 else if (theFinish == polishedvm2000air) { 206 readFileName = "PolishedVM2000.dat"; 207 } 208 else if (theFinish == etchedlumirrorglue) { 209 readFileName = "EtchedLumirrorGlue.dat"; 210 } 211 else if (theFinish == etchedlumirrorair) { 212 readFileName = "EtchedLumirror.dat"; 213 } 214 else if (theFinish == etchedteflonair) { 215 readFileName = "EtchedTeflon.dat"; 216 } 217 else if (theFinish == etchedtioair) { 218 readFileName = "EtchedTiO.dat"; 219 } 220 else if (theFinish == etchedtyvekair) { 221 readFileName = "EtchedTyvek.dat"; 222 } 223 else if (theFinish == etchedvm2000glue) { 224 readFileName = "EtchedVM2000Glue.dat"; 225 } 226 else if (theFinish == etchedvm2000air) { 227 readFileName = "EtchedVM2000.dat"; 228 } 229 else if (theFinish == groundlumirrorglue) { 230 readFileName = "GroundLumirrorGlue.dat"; 231 } 232 else if (theFinish == groundlumirrorair) { 233 readFileName = "GroundLumirror.dat"; 234 } 235 else if (theFinish == groundteflonair) { 236 readFileName = "GroundTeflon.dat"; 237 } 238 else if (theFinish == groundtioair) { 239 readFileName = "GroundTiO.dat"; 240 } 241 else if (theFinish == groundtyvekair) { 242 readFileName = "GroundTyvek.dat"; 243 } 244 else if (theFinish == groundvm2000glue) { 245 readFileName = "GroundVM2000Glue.dat"; 246 } 247 else if (theFinish == groundvm2000air) { 248 readFileName = "GroundVM2000.dat"; 249 } 250 251 if (readFileName == " ") return; 252 253 char* path = getenv("G4REALSURFACEDATA"); 254 if (!path) { 255 G4String excep = 256 "G4OpBoundaryProcess - G4REALSURFACEDATA environment variable not set"; 257 G4Exception(excep); 258 } 259 G4String pathString(path); 260 261 readFileName = pathString + "/" + readFileName; 262 263 // Open LUT with Material and Integer Angle 264 FILE* readFileHandle; 265 266 readFileHandle = fopen(readFileName,"r"); 267 268 if (readFileHandle!=NULL) { 269 for (int i=0;i<incidentIndexMax*thetaIndexMax*phiIndexMax;i++) { 270 fscanf(readFileHandle,"%6f", &AngularDistribution[i]); 271 } 272 G4cout << "LUT - data file: " << readFileName << " read in! " << G4endl; 273 } 274 else { 275 G4String excep = "LUT - data file: " + readFileName + " not found"; 276 G4Exception(excep); 277 } 278 fclose(readFileHandle); 279 } -
trunk/source/materials/src/G4SandiaTable.cc
r986 r1196 26 26 // 27 27 // $Id: G4SandiaTable.cc,v 1.34 2007/10/02 10:13:33 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02-ref-02$28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... -
trunk/source/materials/src/G4SimpleMaterialStoppingICRU73.cc
r1058 r1196 25 25 // 26 26 // 27 // $Id: G4SimpleMaterialStoppingICRU73.cc,v 1. 7 2009/04/29 13:51:53vnivanch Exp $28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01$27 // $Id: G4SimpleMaterialStoppingICRU73.cc,v 1.9 2009/11/09 16:51:07 vnivanch Exp $ 28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 30 30 //--------------------------------------------------------------------------- … … 36 36 // Author: A.Ivantchenko 07.08.2008 37 37 // 38 // in the framework of the ESA Technology Research Programme 39 // (ESA contract 21435/08/NL/AT) 40 // 38 41 // Modifications: 39 42 // 29.04.2009 A.Ivantchenko added revised data for G4_Cu 40 43 // provided by Prof.P.Sigmund Univ. Southern Denmark 44 // 03.11.2009 A. Lechner: Added new methods BuildPhysicsVector according 45 // to interface changes in base class G4VIonDEDXTable. 41 46 // 42 47 //---------------------------------------------------------------------------- … … 67 72 68 73 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 69 74 G4bool G4SimpleMaterialStoppingICRU73::BuildPhysicsVector(G4int ionZ, 75 G4int matZ) 76 { 77 return IsApplicable( ionZ, matZ ); 78 } 79 80 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 81 82 G4bool G4SimpleMaterialStoppingICRU73::BuildPhysicsVector(G4int ionZ, 83 const G4String& matName) 84 { 85 return IsApplicable( ionZ, matName ); 86 } 87 88 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 70 89 G4bool G4SimpleMaterialStoppingICRU73::IsApplicable(G4int ionZ, 71 90 G4int matZ) -
trunk/source/materials/src/G4SurfaceProperty.cc
r986 r1196 26 26 // 27 27 // $Id: G4SurfaceProperty.cc,v 1.5 2008/12/11 10:23:54 gcosmo Exp $ 28 // GEANT4 tag $Name: geant4-09-02-ref-02$28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 //
Note:
See TracChangeset
for help on using the changeset viewer.
