Changeset 1196 for trunk/source/materials
- Timestamp:
- Nov 25, 2009, 5:13:58 PM (16 years ago)
- Location:
- trunk/source/materials
- Files:
-
- 49 edited
-
History (modified) (3 diffs)
-
include/G4AtomicShells.hh (modified) (1 diff)
-
include/G4Element.hh (modified) (4 diffs)
-
include/G4ElementTable.hh (modified) (1 diff)
-
include/G4ElementVector.hh (modified) (1 diff)
-
include/G4ExtDEDXTable.hh (modified) (2 diffs)
-
include/G4IonisParamElm.hh (modified) (1 diff)
-
include/G4IonisParamMat.hh (modified) (4 diffs)
-
include/G4IronStoppingICRU73.hh (modified) (3 diffs)
-
include/G4Isotope.hh (modified) (1 diff)
-
include/G4IsotopeVector.hh (modified) (1 diff)
-
include/G4MPVEntry.hh (modified) (1 diff)
-
include/G4Material.hh (modified) (1 diff)
-
include/G4MaterialPropertiesTable.hh (modified) (1 diff)
-
include/G4MaterialPropertiesTable.icc (modified) (1 diff)
-
include/G4MaterialPropertyVector.hh (modified) (1 diff)
-
include/G4MaterialPropertyVector.icc (modified) (1 diff)
-
include/G4MaterialStoppingICRU73.hh (modified) (4 diffs)
-
include/G4MaterialTable.hh (modified) (1 diff)
-
include/G4NistElementBuilder.hh (modified) (1 diff)
-
include/G4NistManager.hh (modified) (1 diff)
-
include/G4NistMaterialBuilder.hh (modified) (1 diff)
-
include/G4NistMessenger.hh (modified) (2 diffs)
-
include/G4OpticalSurface.hh (modified) (4 diffs)
-
include/G4SandiaTable.hh (modified) (1 diff)
-
include/G4SimpleMaterialStoppingICRU73.hh (modified) (3 diffs)
-
include/G4StaticSandiaData.hh (modified) (1 diff)
-
include/G4SurfaceProperty.hh (modified) (2 diffs)
-
include/G4VIonDEDXTable.hh (modified) (2 diffs)
-
src/G4AtomicShells.cc (modified) (1 diff)
-
src/G4Element.cc (modified) (8 diffs)
-
src/G4ExtDEDXTable.cc (modified) (2 diffs)
-
src/G4IonisParamElm.cc (modified) (1 diff)
-
src/G4IonisParamMat.cc (modified) (10 diffs)
-
src/G4IronStoppingICRU73.cc (modified) (3 diffs)
-
src/G4Isotope.cc (modified) (1 diff)
-
src/G4MPVEntry.cc (modified) (1 diff)
-
src/G4Material.cc (modified) (1 diff)
-
src/G4MaterialPropertiesTable.cc (modified) (1 diff)
-
src/G4MaterialPropertyVector.cc (modified) (1 diff)
-
src/G4MaterialStoppingICRU73.cc (modified) (7 diffs)
-
src/G4NistElementBuilder.cc (modified) (3 diffs)
-
src/G4NistManager.cc (modified) (1 diff)
-
src/G4NistMaterialBuilder.cc (modified) (6 diffs)
-
src/G4NistMessenger.cc (modified) (6 diffs)
-
src/G4OpticalSurface.cc (modified) (5 diffs)
-
src/G4SandiaTable.cc (modified) (1 diff)
-
src/G4SimpleMaterialStoppingICRU73.cc (modified) (3 diffs)
-
src/G4SurfaceProperty.cc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/materials/History
r1058 r1196 1 $Id: History,v 1.1 42 2009/05/25 08:34:15 gcosmoExp $1 $Id: History,v 1.164 2009/11/20 00:59:40 gum Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 18 18 ---------------------------------------------------------- 19 19 20 19-11-09 P.Gumplinger (materials-V09-02-20) 21 - change the code such that the LUT are now read in and kept by 22 G4OpticalSurface and not G4OpBoundaryProcess, reordering in 23 enumeration 24 25 19-11-09 V.Ivanchenko (materials-V09-02-19) 26 - G4IonisParamMat - fixed crash at destruction 27 28 18-11-09 G.Cosmo (materials-V09-02-18) 29 - G4IonisParamMat - fix for usage of static data to allow for build of 30 DLLs libraries on Windows. 31 32 18-11-09 V.Ivanchenko (materials-V09-02-17) 33 - G4IonisParamMat - fixed minor memory leak due to G4DensityEffectData 34 35 10-11-09 P.Gumplinger (materials-V09-02-16) 36 - increase flexibily of G4SurfaceProperty and G4OpticalSurface classes 37 to allow for Look-Up-Table boundary process simulations. 38 Thanks to Martin Janecek and William Moses from LBNL 39 40 09-11-09 V.Ivanchenko (materials-V09-02-15) 41 - improved comments to ICRU73 classes 42 43 05-11-09 V.Ivanchenko (materials-V09-02-14) 44 - G4DensityEffectData - (A.Bagulya) fixed GetIndex method for compounds 45 46 04-11-09 P. Gumplinger (materials-V09-02-13) 47 - cleanup of include file: G4OpticalSurface.hh (and consequent small 48 change in the imlementation .cc) 49 50 04-11-09 V.Ivanchenko (materials-V09-02-12) 51 - G4VIonDEDXTable - (A.Lechner) added new method (BuildPhysicsVector) which 52 invoke the build process of physics vectors on demand in 53 the initialisation phase 54 - G4SimpleMaterialStoppingICRU73 - (A.Lechner) added method BuildPhysicsVector 55 according to change in base class 56 - G4MaterialStoppingICRU73 - (A.Lechner) added method BuildPhysicsVector 57 according to change in base class, changed material name 58 from G4_NYLON-6/6 to G4_NYLON-6-6 59 - G4IronStoppingICRU73 - (A.Lechner) added method BuildPhysicsVector 60 according to change in base class 61 - G4ExtDEDXTable - (A.Lechner) added method BuildPhysicsVector according to 62 change in base class 63 - G4IonStoppingData - (A.Lechner) new class, which can read ion stopping power 64 vectors contained in G4LEDATA: Allows to include larger 65 physics vectors than those in the ICRU 73 classes, where 66 vectors are restricted to the maximum energy 10 MeV/nuc. 67 - G4NistMaterialBuilder - (A.Lechner) changed following material names: 68 * from G4_NYLON-6/6 to G4_NYLON-6-6 69 * from G4_NYLON-6/10 to G4_NYLON-6-10 70 to allow matching with ion stopping power data files, 71 which have material name in the file name 72 - G4DensityEffectData - (A.Bagulya) added method GetIndex 73 - G4IonisParamMat - (A.Bagulya) fixed density effect computation; 74 added plasma energy computation and access to 75 G4DensityEffectData by the atomic number 76 77 01-11-09 A.Lechner (materials-V09-02-11) 78 - G4MaterialStoppingICRU73 - (A.Lechner) Extended the energy range of revised 79 ICRU 73 tables for water from 0.025 - 10 MeV/u to 80 0.025 - 1 GeV/u. Added new function (AddPhysics- 81 VectorFullRange) for creating the corresponding 82 physics vectors. 83 84 30-10-09 V.Ivanchenko (materials-V09-02-10) 85 - G4DensityEffectData - (A.Bagulya) added data from Atom. Data Nucl. 86 Data Tabl. 30 (1984) 261 accessible 87 via material name 88 - G4NistMessenger - (A.Bagulya) added UI command to print parameters of 89 density effect data 90 - G4IonisParamMat - added new members: Eplasma, AdjustmentFactor, 91 Delta0 parameter of density effect parameterization, 92 and pointer to G4DensityEffectData; 93 added new access method and method DensityCorrection; 94 fixed copy constructor 95 - G4NistMaterialBuilder - (A.Ivantchenko) changed density of G4_GRAPHITE 96 according to PDG'2008, added new 97 material G4_GRAPHITE_POROUS 98 99 17-09-09 V.Ivanchenko (materials-V09-02-09) 100 - G4Element - (V. Grichine) added method GetNbOfShellElectrons which 101 returns the number of electrons on a shell 102 103 17-07-09 V.Ivanchenko (materials-V09-02-08) 104 - G4NistManager, G4NistMessenger, G4NistElementBuilder - improved 105 implementation of UI commands 106 20 107 25-05-09 V.Ivanchenko (materials-V09-02-07) 21 108 - Renamed G4ExternalDEDXTable class to G4ExtDEDXTable to allow for generation … … 33 120 to 78 eV according to GSI Annual Report (2008) p.373 34 121 and recommendation of Prof.P.Sigmund in order to 35 cons sitent with ICRU'73 tables122 consistent with ICRU'73 tables 36 123 37 124 29-04-09 V.Ivanchenko (materials-V09-02-04) -
trunk/source/materials/include/G4AtomicShells.hh
r986 r1196 26 26 // 27 27 // $Id: G4AtomicShells.hh,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 // class description -
trunk/source/materials/include/G4Element.hh
r986 r1196 25 25 // 26 26 // 27 // $Id: G4Element.hh,v 1.2 3 2008/11/14 15:14:24 gcosmoExp $28 // GEANT4 tag $Name: geant4-09-02-ref-02$27 // $Id: G4Element.hh,v 1.27 2009/09/19 14:13:03 vnivanch Exp $ 28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 … … 71 71 // 01-04-05, new data member fIndexZ to count the number of elements with same Z 72 72 // 17-10-06: Add Get/Set fNaturalAbandances (V.Ivanchenko) 73 73 // 17.09.09, add fNbOfShellElectrons and methods (V. Grichine) 74 74 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 75 75 … … 131 131 G4int GetNbOfAtomicShells() const {return fNbOfAtomicShells;} 132 132 133 //the binding energy of the shell: 134 // 135 G4double GetAtomicShell(G4int) const; 133 //the binding energy of the shell, ground shell index=0 134 // 135 G4double GetAtomicShell(G4int index) const; 136 137 //the number of electrons at the shell, ground shell index=0 138 // 139 G4int GetNbOfShellElectrons(G4int index) const; 136 140 137 141 //number of isotopes constituing this element: … … 233 237 G4int fNbOfAtomicShells; // number of atomic shells 234 238 G4double* fAtomicShells ; // Pointer to atomic shell binding energies 239 G4int* fNbOfShellElectrons; // pointer to the number of subshell electrons 235 240 236 241 // Isotope vector contains constituent isotopes of the element -
trunk/source/materials/include/G4ElementTable.hh
r986 r1196 26 26 // 27 27 // $Id: G4ElementTable.hh,v 1.6 2006/06/29 19:10:58 gunter 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/include/G4ElementVector.hh
r986 r1196 26 26 // 27 27 // $Id: G4ElementVector.hh,v 1.6 2006/06/29 19:11:00 gunter 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/include/G4ExtDEDXTable.hh
r1059 r1196 38 38 // 39 39 // Modifications: 40 // 03.11.2009 A. Lechner: Added new methods BuildPhysicsVector according 41 // to interface changes in base class G4VIonDEDXTable. 40 42 // 41 43 // … … 65 67 G4ExtDEDXTable(); 66 68 virtual ~G4ExtDEDXTable(); 69 70 G4bool BuildPhysicsVector(G4int ionZ, 71 const G4String& matName); 72 73 G4bool BuildPhysicsVector(G4int ionZ, 74 G4int matZ); 67 75 68 76 // Function for checking the availability of stopping power tables -
trunk/source/materials/include/G4IonisParamElm.hh
r986 r1196 26 26 // 27 27 // $Id: G4IonisParamElm.hh,v 1.10 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/include/G4IonisParamMat.hh
r986 r1196 25 25 // 26 26 // 27 // $Id: G4IonisParamMat.hh,v 1.1 2 2008/07/08 10:34:56 vnivanchExp $28 // GEANT4 tag $Name: geant4-09-02-ref-02$27 // $Id: G4IonisParamMat.hh,v 1.17 2009/11/18 17:42:23 gcosmo Exp $ 28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 … … 52 52 53 53 class G4Material; // forward declaration 54 class G4DensityEffectData; 54 55 55 56 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... … … 59 60 public: 60 61 61 G4IonisParamMat(G4Material*);62 virtual ~G4IonisParamMat();63 64 //65 // retrieval methods66 //62 G4IonisParamMat(G4Material*); 63 virtual ~G4IonisParamMat(); 64 65 // 66 // retrieval methods 67 // 67 68 68 // parameters for mean energy loss calculation: 69 G4double GetMeanExcitationEnergy() const {return fMeanExcitationEnergy;}; 70 void SetMeanExcitationEnergy(G4double value); 71 G4double FindMeanExcitationEnergy(const G4String& chFormula); 72 G4double GetLogMeanExcEnergy() const {return fLogMeanExcEnergy;}; 73 G4double* GetShellCorrectionVector() const {return fShellCorrectionVector;}; 74 G4double GetTaul() const {return fTaul;}; 75 76 // parameters of the density correction: 77 G4double GetCdensity() const {return fCdensity;}; 78 G4double GetMdensity() const {return fMdensity;}; 79 G4double GetAdensity() const {return fAdensity;}; 80 G4double GetX0density() const {return fX0density;}; 81 G4double GetX1density() const {return fX1density;}; 82 83 // parameters of the energy loss fluctuation model: 84 G4double GetF1fluct() const {return fF1fluct;}; 85 G4double GetF2fluct() const {return fF2fluct;}; 86 G4double GetEnergy1fluct() const {return fEnergy1fluct;}; 87 G4double GetLogEnergy1fluct() const {return fLogEnergy1fluct;}; 88 G4double GetEnergy2fluct() const {return fEnergy2fluct;}; 89 G4double GetLogEnergy2fluct() const {return fLogEnergy2fluct;}; 90 G4double GetEnergy0fluct() const {return fEnergy0fluct;}; 91 G4double GetRateionexcfluct() const {return fRateionexcfluct;}; 92 93 // parameters for ion corrections computations 94 G4double GetZeffective() const {return fZeff;}; 95 G4double GetFermiEnergy() const {return fFermiEnergy;}; 96 G4double GetLFactor() const {return fLfactor;}; 97 98 // parameters for Birks attenuation: 99 void SetBirksConstant(G4double value) {fBirks = value;}; 100 G4double GetBirksConstant() const {return fBirks;}; 101 102 // parameters for average energy per ion 103 void SetMeanEnergyPerIonPair(G4double value) {fMeanEnergyPerIon = value;}; 104 G4double GetMeanEnergyPerIonPair() const {return fMeanEnergyPerIon;}; 69 // parameters for mean energy loss calculation: 70 G4double GetMeanExcitationEnergy() const {return fMeanExcitationEnergy;}; 71 void SetMeanExcitationEnergy(G4double value); 72 G4double FindMeanExcitationEnergy(const G4String& chFormula); 73 G4double GetLogMeanExcEnergy() const {return fLogMeanExcEnergy;}; 74 G4double* GetShellCorrectionVector() const {return fShellCorrectionVector;}; 75 G4double GetTaul() const {return fTaul;}; 76 77 // parameters of the density correction: 78 G4double GetPlasmaEnergy() const {return fPlasmaEnergy;}; 79 G4double GetAdjustmentFactor() const {return fAdjustmentFactor;}; 80 G4double GetCdensity() const {return fCdensity;}; 81 G4double GetMdensity() const {return fMdensity;}; 82 G4double GetAdensity() const {return fAdensity;}; 83 G4double GetX0density() const {return fX0density;}; 84 G4double GetX1density() const {return fX1density;}; 85 G4double GetD0density() const {return fD0density;}; 86 87 // compute density correction as a function of the kinematic variable 88 // x = log10(beta*gamma) 89 inline G4double DensityCorrection(G4double x); 90 static G4DensityEffectData* GetDensityEffectData(); 91 92 // parameters of the energy loss fluctuation model: 93 G4double GetF1fluct() const {return fF1fluct;}; 94 G4double GetF2fluct() const {return fF2fluct;}; 95 G4double GetEnergy1fluct() const {return fEnergy1fluct;}; 96 G4double GetLogEnergy1fluct() const {return fLogEnergy1fluct;}; 97 G4double GetEnergy2fluct() const {return fEnergy2fluct;}; 98 G4double GetLogEnergy2fluct() const {return fLogEnergy2fluct;}; 99 G4double GetEnergy0fluct() const {return fEnergy0fluct;}; 100 G4double GetRateionexcfluct() const {return fRateionexcfluct;}; 101 102 // parameters for ion corrections computations 103 G4double GetZeffective() const {return fZeff;}; 104 G4double GetFermiEnergy() const {return fFermiEnergy;}; 105 G4double GetLFactor() const {return fLfactor;}; 106 107 // parameters for Birks attenuation: 108 void SetBirksConstant(G4double value) {fBirks = value;}; 109 G4double GetBirksConstant() const {return fBirks;}; 110 111 // parameters for average energy per ion 112 void SetMeanEnergyPerIonPair(G4double value) {fMeanEnergyPerIon = value;}; 113 G4double GetMeanEnergyPerIonPair() const {return fMeanEnergyPerIon;}; 105 114 106 115 public: // without description 107 116 108 G4IonisParamMat(const G4IonisParamMat&);109 const G4IonisParamMat& operator=(const G4IonisParamMat&);110 G4int operator==(const G4IonisParamMat&) const;111 G4int operator!=(const G4IonisParamMat&) const;112 113 G4IonisParamMat(__void__&);114 // Fake default constructor for usage restricted to direct object115 // persistency for clients requiring preallocation of memory for116 // persistifiable objects.117 G4IonisParamMat(const G4IonisParamMat&); 118 const G4IonisParamMat& operator=(const G4IonisParamMat&); 119 G4int operator==(const G4IonisParamMat&) const; 120 G4int operator!=(const G4IonisParamMat&) const; 121 122 G4IonisParamMat(__void__&); 123 // Fake default constructor for usage restricted to direct object 124 // persistency for clients requiring preallocation of memory for 125 // persistifiable objects. 117 126 118 127 private: 119 128 120 // Compute mean parameters : ExcitationEnergy,Shell corretion vector ...121 void ComputeMeanParameters();122 123 // Compute parameters for the density effect124 void ComputeDensityEffect();125 126 // Compute parameters for the energy fluctuation model127 void ComputeFluctModel();128 129 // Compute parameters for ion parameterizations130 void ComputeIonParameters();129 // Compute mean parameters : ExcitationEnergy,Shell corretion vector ... 130 void ComputeMeanParameters(); 131 132 // Compute parameters for the density effect 133 void ComputeDensityEffect(); 134 135 // Compute parameters for the energy fluctuation model 136 void ComputeFluctModel(); 137 138 // Compute parameters for ion parameterizations 139 void ComputeIonParameters(); 131 140 132 141 private: … … 135 144 // data members 136 145 // 137 G4Material* fMaterial; // this material 138 139 // parameters for mean energy loss calculation 140 G4double fMeanExcitationEnergy; // 141 G4double fLogMeanExcEnergy; // 142 G4double* fShellCorrectionVector; // shell correction coefficients 143 G4double fTaul; // lower limit of Bethe-Bloch formula 144 145 // parameters of the density correction.... 146 G4double fCdensity; // mat.constant 147 G4double fMdensity; // exponent 148 G4double fAdensity; // 149 G4double fX0density; // 150 G4double fX1density; // 151 152 // parameters of the energy loss fluctuation model 153 G4double fF1fluct; 154 G4double fF2fluct; 155 G4double fEnergy1fluct; 156 G4double fLogEnergy1fluct; 157 G4double fEnergy2fluct; 158 G4double fLogEnergy2fluct; 159 G4double fEnergy0fluct; 160 G4double fRateionexcfluct; 161 162 // parameters for ion corrections computations 163 G4double fZeff; 164 G4double fFermiEnergy; 165 G4double fLfactor; 166 167 // parameter for Birks attenuation 168 G4double fBirks; 169 // average energy per ion pair 170 G4double fMeanEnergyPerIon; 146 G4Material* fMaterial; // this material 147 148 // parameters for mean energy loss calculation 149 G4double fMeanExcitationEnergy; // 150 G4double fLogMeanExcEnergy; // 151 G4double* fShellCorrectionVector; // shell correction coefficients 152 G4double fTaul; // lower limit of Bethe-Bloch formula 153 154 // parameters of the density correction 155 G4double fCdensity; // mat.constant 156 G4double fMdensity; // exponent 157 G4double fAdensity; // 158 G4double fX0density; // 159 G4double fX1density; // 160 G4double fD0density; 161 162 G4double fPlasmaEnergy; 163 G4double fAdjustmentFactor; 164 165 // parameters of the energy loss fluctuation model 166 G4double fF1fluct; 167 G4double fF2fluct; 168 G4double fEnergy1fluct; 169 G4double fLogEnergy1fluct; 170 G4double fEnergy2fluct; 171 G4double fLogEnergy2fluct; 172 G4double fEnergy0fluct; 173 G4double fRateionexcfluct; 174 175 // parameters for ion corrections computations 176 G4double fZeff; 177 G4double fFermiEnergy; 178 G4double fLfactor; 179 180 // parameter for Birks attenuation 181 G4double fBirks; 182 // average energy per ion pair 183 G4double fMeanEnergyPerIon; 184 185 // static data created only once 186 static G4DensityEffectData* fDensityData; 171 187 }; 172 188 189 // x = log10(beta*gamma) 190 inline G4double G4IonisParamMat::DensityCorrection(G4double x) 191 { 192 static const G4double twoln10 = 2.*std::log(10.); 193 G4double y = 0.0; 194 if(x < fX0density) { 195 if(fD0density > 0.0) { y = fD0density*std::pow(10.,2*(x - fX0density)); } 196 } else if(x >= fX1density) { y = twoln10*x - fCdensity; } 197 else {y = twoln10*x - fCdensity + fAdensity*std::pow(fX1density - x, fMdensity);} 198 return y; 199 } 200 173 201 #endif -
trunk/source/materials/include/G4IronStoppingICRU73.hh
r1058 r1196 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4IronStoppingICRU73.hh,v 1. 4 2009/03/18 10:14:48 alechnerExp $27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01$26 // $Id: G4IronStoppingICRU73.hh,v 1.6 2009/11/09 16:51:07 vnivanch Exp $ 27 // GEANT4 tag $Name: materials-V09-02-18 $ 28 28 29 29 #ifndef G4IronStoppingICRU73_h … … 38 38 // Author: A.Ivantchenko 8.08.2008 39 39 // 40 // in the framework of the ESA Technology Research Programme 41 // (ESA contract 21435/08/NL/AT) 42 // 40 43 // Modifications: 44 // 03.11.2009 A. Lechner: Added new methods BuildPhysicsVector according 45 // to interface changes in base class G4VIonDEDXTable. 41 46 // 42 47 //---------------------------------------------------------------------------- … … 63 68 64 69 ~G4IronStoppingICRU73(); 70 71 G4bool BuildPhysicsVector(G4int ionZ, 72 const G4String& matName); 73 74 G4bool BuildPhysicsVector(G4int ionZ, 75 G4int matZ); 65 76 66 77 G4bool IsApplicable(G4int ionZ, -
trunk/source/materials/include/G4Isotope.hh
r986 r1196 26 26 // 27 27 // $Id: G4Isotope.hh,v 1.21 2008/11/14 15:14:24 gcosmo 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/include/G4IsotopeVector.hh
r986 r1196 26 26 // 27 27 // $Id: G4IsotopeVector.hh,v 1.6 2006/06/29 19:11:09 gunter 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/include/G4MPVEntry.hh
r1058 r1196 26 26 // 27 27 // $Id: G4MPVEntry.hh,v 1.8 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/include/G4Material.hh
r986 r1196 26 26 // 27 27 // $Id: G4Material.hh,v 1.27 2008/11/14 15:14:24 gcosmo 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/include/G4MaterialPropertiesTable.hh
r1058 r1196 26 26 // 27 27 // $Id: G4MaterialPropertiesTable.hh,v 1.20 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/include/G4MaterialPropertiesTable.icc
r1058 r1196 26 26 // 27 27 // $Id: G4MaterialPropertiesTable.icc,v 1.1 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/include/G4MaterialPropertyVector.hh
r1058 r1196 26 26 // 27 27 // $Id: G4MaterialPropertyVector.hh,v 1.14 2009/04/24 09:35:14 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/include/G4MaterialPropertyVector.icc
r1058 r1196 26 26 // 27 27 // $Id: G4MaterialPropertyVector.icc,v 1.2 2009/04/21 15:41:20 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/include/G4MaterialStoppingICRU73.hh
r1058 r1196 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MaterialStoppingICRU73.hh,v 1. 5 2009/03/18 10:14:49 alechnerExp $27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01$26 // $Id: G4MaterialStoppingICRU73.hh,v 1.8 2009/11/09 16:51:07 vnivanch Exp $ 27 // GEANT4 tag $Name: materials-V09-02-18 $ 28 28 29 29 #ifndef G4MaterialStoppingICRU73_h … … 38 38 // Author: Ivantchenko 10.07.2008 39 39 // 40 // in the framework of the ESA Technology Research Programme 41 // (ESA contract 21435/08/NL/AT) 42 // 40 43 // Modifications: 44 // 03.11.2009 A. Lechner: Added new methods BuildPhysicsVector according 45 // to interface changes in base class G4VIonDEDXTable. 41 46 // 42 47 //---------------------------------------------------------------------------- … … 63 68 64 69 ~G4MaterialStoppingICRU73(); 70 71 G4bool BuildPhysicsVector(G4int ionZ, 72 const G4String& matName); 73 74 G4bool BuildPhysicsVector(G4int ionZ, 75 G4int matZ); 65 76 66 77 G4bool IsApplicable(G4int ionZ, … … 89 100 G4double* stoppower, 90 101 G4double factor); 102 103 // Function for creating a physics vector (full range up to 1 GeV/u) 104 G4PhysicsVector* CreatePhysicsVectorFullRange(G4double* energy, 105 G4double* stoppower, 106 G4double factor); 91 107 92 108 // Assignment operator and copy constructor -
trunk/source/materials/include/G4MaterialTable.hh
r986 r1196 26 26 // 27 27 // $Id: G4MaterialTable.hh,v 1.6 2006/06/29 19:11:19 gunter 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/include/G4NistElementBuilder.hh
r986 r1196 25 25 // 26 26 // $Id: G4NistElementBuilder.hh,v 1.18 2008/08/07 10:15:16 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02$27 // GEANT4 tag $Name: materials-V09-02-18 $ 28 28 29 29 #ifndef G4NistElementBuilder_h -
trunk/source/materials/include/G4NistManager.hh
r986 r1196 25 25 // 26 26 // $Id: G4NistManager.hh,v 1.23 2008/08/07 10:15:16 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/include/G4NistMaterialBuilder.hh
r986 r1196 25 25 // 26 26 // $Id: G4NistMaterialBuilder.hh,v 1.13 2008/04/28 08:51:29 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02$27 // GEANT4 tag $Name: materials-V09-02-18 $ 28 28 29 29 #ifndef G4NistMaterialBuilder_h -
trunk/source/materials/include/G4NistMessenger.hh
r986 r1196 25 25 // 26 26 // 27 // $Id: G4NistMessenger.hh,v 1. 4 2007/05/02 10:48:52 vnivanchExp $28 // GEANT4 tag $Name: geant4-09-02-ref-02$27 // $Id: G4NistMessenger.hh,v 1.5 2009/10/30 18:01:22 bagoulia Exp $ 28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 // File name: G4NistMessenger … … 103 103 G4UIdirectory* g4Dir; 104 104 G4UIcmdWithAString* g4ElmCmd; 105 G4UIcmdWithAString* g4MatCmd; 106 105 G4UIcmdWithAString* g4MatCmd; 106 G4UIcmdWithAString* g4DensCmd; 107 107 }; 108 108 -
trunk/source/materials/include/G4OpticalSurface.hh
r1058 r1196 25 25 // 26 26 // 27 // $Id: G4OpticalSurface.hh,v 1.1 2 2009/04/21 15:35:45 gcosmoExp $28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $27 // $Id: G4OpticalSurface.hh,v 1.15 2009/11/20 00:57:34 gum Exp $ 28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // … … 64 64 polishedfrontpainted, // smooth top-layer (front) paint 65 65 polishedbackpainted, // same is 'polished' but with a back-paint 66 66 67 ground, // rough surface 67 68 groundfrontpainted, // rough top-layer (front) paint 68 groundbackpainted // same as 'ground' but with a back-paint 69 groundbackpainted, // same as 'ground' but with a back-paint 70 71 polishedlumirrorair, // mechanically polished surface, with lumirror 72 polishedlumirrorglue, // mechanically polished surface, with lumirror & meltmount 73 polishedair, // mechanically polished surface 74 polishedteflonair, // mechanically polished surface, with teflon 75 polishedtioair, // mechanically polished surface, with tio paint 76 polishedtyvekair, // mechanically polished surface, with tyvek 77 polishedvm2000air, // mechanically polished surface, with esr film 78 polishedvm2000glue, // mechanically polished surface, with esr film & meltmount 79 80 etchedlumirrorair, // chemically etched surface, with lumirror 81 etchedlumirrorglue, // chemically etched surface, with lumirror & meltmount 82 etchedair, // chemically etched surface 83 etchedteflonair, // chemically etched surface, with teflon 84 etchedtioair, // chemically etched surface, with tio paint 85 etchedtyvekair, // chemically etched surface, with tyvek 86 etchedvm2000air, // chemically etched surface, with esr film 87 etchedvm2000glue, // chemically etched surface, with esr film & meltmount 88 89 groundlumirrorair, // rough-cut surface, with lumirror 90 groundlumirrorglue, // rough-cut surface, with lumirror & meltmount 91 groundair, // rough-cut surface 92 groundteflonair, // rough-cut surface, with teflon 93 groundtioair, // rough-cut surface, with tio paint 94 groundtyvekair, // rough-cut surface, with tyvek 95 groundvm2000air, // rough-cut surface, with esr film 96 groundvm2000glue // rough-cut surface, with esr film & meltmount 69 97 }; 70 98 … … 72 100 { 73 101 glisur, // original GEANT3 model 74 unified // UNIFIED model 102 unified, // UNIFIED model 103 LUT // Look-Up-Table model 75 104 }; 76 105 … … 83 112 class G4OpticalSurface : public G4SurfaceProperty 84 113 { 85 public: // With description 86 87 //////////////////////////////// 88 // Constructor 89 //////////////////////////////// 90 91 G4OpticalSurface(const G4String& name, 92 G4OpticalSurfaceModel model = glisur, 93 G4OpticalSurfaceFinish finish = polished, 94 G4SurfaceType type = dielectric_dielectric, 95 G4double value = 1.0); 96 // Constructor of an optical surface object. 97 98 public: // Without description 99 100 ////////////// 101 // Constructors and destructor 102 ////////////// 103 104 G4OpticalSurface(); 105 virtual ~G4OpticalSurface(); 106 G4OpticalSurface(const G4OpticalSurface &right); 114 115 public: // Without description 107 116 108 //////////////109 // Operators110 //////////////117 ////////////// 118 // Operators 119 ////////////// 111 120 112 const G4OpticalSurface & operator=(const G4OpticalSurface &right); 121 G4OpticalSurface(const G4OpticalSurface &right); 122 const G4OpticalSurface & operator=(const G4OpticalSurface &right); 113 123 114 G4int operator==(const G4OpticalSurface &right) const; 115 G4int operator!=(const G4OpticalSurface &right) const; 116 117 //////////// 118 // Methods 119 //////////// 120 121 public: // With description 122 123 const G4OpticalSurfaceFinish& GetFinish() const { return theFinish; } 124 // Returns the optical surface finish. 125 void SetFinish(const G4OpticalSurfaceFinish& finish) { theFinish = finish; } 126 // Sets the optical surface finish. 127 128 const G4OpticalSurfaceModel& GetModel() const { return theModel; } 129 // Returns the optical surface model used. 130 void SetModel(const G4OpticalSurfaceModel& model) { theModel = model; } 131 // Sets the optical surface model to be followed. 132 133 G4double GetSigmaAlpha() const { return sigma_alpha; } 134 // Returns an unified model surface parameter. 135 void SetSigmaAlpha(const G4double s_a) { sigma_alpha = s_a; } 136 // Sets an unified model surface parameter. 137 138 G4double GetPolish() const { return polish; } 139 // Returns the optical surface polish type. 140 void SetPolish(const G4double plsh) { polish=plsh; } 141 // Sets the optical surface polish type. 142 143 G4MaterialPropertiesTable* GetMaterialPropertiesTable() const 144 { return theMaterialPropertiesTable; } 145 // Retrieves the pointer of the G4MaterialPropertiesTable 146 // attached to optical surface. 147 148 void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT) 149 { theMaterialPropertiesTable = anMPT; } 150 // Attaches a G4MaterialPropertiesTable to the optical surface. 151 152 void DumpInfo() const; 153 // Prints information about the optical surface. 154 155 private: 156 157 // ------------------ 158 // Basic data members ( To define an optical surface) 159 // ------------------ 160 161 G4OpticalSurfaceModel theModel; // Surface model 162 G4OpticalSurfaceFinish theFinish; // Surface finish 163 164 G4double sigma_alpha; // The sigma of micro-facet polar angle 165 G4double polish; // Polish parameter in glisur model 166 167 G4MaterialPropertiesTable* theMaterialPropertiesTable; 124 G4int operator==(const G4OpticalSurface &right) const; 125 G4int operator!=(const G4OpticalSurface &right) const; 126 127 public: // With description 128 129 //////////////////////////////// 130 // Constructors and Destructor 131 //////////////////////////////// 132 133 G4OpticalSurface(const G4String& name, 134 G4OpticalSurfaceModel model = glisur, 135 G4OpticalSurfaceFinish finish = polished, 136 G4SurfaceType type = dielectric_dielectric, 137 G4double value = 1.0); 138 // Constructor of an optical surface object. 139 140 public: // Without description 141 142 virtual ~G4OpticalSurface(); 143 144 //////////// 145 // Methods 146 //////////// 147 148 // public methods 149 150 public: // With description 151 152 virtual void Overwrite() {G4cout << "G4OpticalSurface" << G4endl;}; 153 154 void SetType(const G4SurfaceType& type); 155 156 G4OpticalSurfaceFinish GetFinish() const {return theFinish;}; 157 // Returns the optical surface finish. 158 void SetFinish(const G4OpticalSurfaceFinish ); 159 // Sets the optical surface finish. 160 161 G4OpticalSurfaceModel GetModel() const {return theModel;}; 162 // Returns the optical surface model used. 163 void SetModel(const G4OpticalSurfaceModel model) 164 {theModel = model;}; 165 // Sets the optical surface model to be followed. 166 167 G4double GetSigmaAlpha() const {return sigma_alpha;}; 168 // Returns an unified model surface parameter. 169 void SetSigmaAlpha(const G4double s_a) 170 {sigma_alpha = s_a;}; 171 // Sets an unified model surface parameter. 172 173 G4double GetPolish() const {return polish;}; 174 // Returns the optical surface polish type. 175 void SetPolish(const G4double plsh) {polish=plsh;}; 176 // Sets the optical surface polish type. 177 178 G4MaterialPropertiesTable* GetMaterialPropertiesTable() const 179 { return theMaterialPropertiesTable;}; 180 // Retrieves the pointer of the G4MaterialPropertiesTable 181 // attached to optical surface. 182 183 void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT) 184 { theMaterialPropertiesTable = anMPT;}; 185 // Attaches a G4MaterialPropertiesTable to the optical surface. 186 187 void DumpInfo() const; 188 // Prints information about the optical surface. 189 190 void ReadFile(void); 191 // Method to read the Look-Up-Table into array AngularDistribution 192 193 G4double GetAngularDistributionValue(G4int, G4int, G4int); 194 195 inline G4int GetThetaIndexMax(void) const { return thetaIndexMax; } 196 inline G4int GetPhiIndexMax(void) const { return phiIndexMax; } 197 198 private: 199 200 // ------------------ 201 // Basic data members ( To define an optical surface) 202 // ------------------ 203 204 G4OpticalSurfaceModel theModel; // Surface model 205 G4OpticalSurfaceFinish theFinish; // Surface finish 206 207 G4double sigma_alpha; // The sigma of micro-facet polar angle 208 G4double polish; // Polish parameter in glisur model 209 210 G4MaterialPropertiesTable* theMaterialPropertiesTable; 211 212 static const G4int incidentIndexMax = 91; 213 static const G4int thetaIndexMax = 45; 214 static const G4int phiIndexMax = 37; 215 216 G4float* AngularDistribution; 217 168 218 }; 169 219 220 //////////////////// 221 // Inline methods 222 //////////////////// 223 224 inline 225 G4double G4OpticalSurface::GetAngularDistributionValue(G4int angleIncident, 226 G4int thetaIndex, 227 G4int phiIndex) 228 { 229 return *(AngularDistribution+angleIncident+ 230 thetaIndex*incidentIndexMax+ 231 phiIndex*thetaIndexMax*incidentIndexMax); 232 } 233 170 234 #endif /* G4OpticalSurface_h */ -
trunk/source/materials/include/G4SandiaTable.hh
r986 r1196 26 26 // 27 27 // $Id: G4SandiaTable.hh,v 1.21 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 // class description -
trunk/source/materials/include/G4SimpleMaterialStoppingICRU73.hh
r1058 r1196 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4SimpleMaterialStoppingICRU73.hh,v 1. 6 2009/03/18 10:14:49 alechnerExp $27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01$26 // $Id: G4SimpleMaterialStoppingICRU73.hh,v 1.8 2009/11/09 16:51:07 vnivanch Exp $ 27 // GEANT4 tag $Name: materials-V09-02-18 $ 28 28 29 29 #ifndef G4SimpleMaterialStoppingICRU73_h … … 38 38 // Author: Ivantchenko 10.07.2008 39 39 // 40 // in the framework of the ESA Technology Research Programme 41 // (ESA contract 21435/08/NL/AT) 42 // 40 43 // Modifications: 44 // 03.11.2009 A. Lechner: Added new methods BuildPhysicsVector according 45 // to interface changes in base class G4VIonDEDXTable. 41 46 // 42 47 //---------------------------------------------------------------------------- … … 65 70 66 71 ~G4SimpleMaterialStoppingICRU73(); 72 73 G4bool BuildPhysicsVector(G4int ionZ, 74 const G4String& matName); 75 76 G4bool BuildPhysicsVector(G4int ionZ, 77 G4int matZ); 67 78 68 79 G4bool IsApplicable(G4int ionZ, -
trunk/source/materials/include/G4StaticSandiaData.hh
r986 r1196 26 26 // 27 27 // $Id: G4StaticSandiaData.hh,v 1.7 2006/06/29 19:12:35 gunter 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/include/G4SurfaceProperty.hh
r1058 r1196 25 25 // 26 26 // 27 // $Id: G4SurfaceProperty.hh,v 1. 9 2009/04/21 15:35:45 gcosmoExp $28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01$27 // $Id: G4SurfaceProperty.hh,v 1.10 2009/11/12 00:53:43 gum Exp $ 28 // GEANT4 tag $Name: materials-V09-02-18 $ 29 29 // 30 30 // … … 68 68 dielectric_metal, // dielectric-metal interface 69 69 dielectric_dielectric, // dielectric-dielectric interface 70 dielectric_LUT, // dielectric-Look-Up-Table interface 70 71 firsov, // for Firsov Process 71 72 x_ray // for x-ray mirror process -
trunk/source/materials/include/G4VIonDEDXTable.hh
r1059 r1196 35 35 // First implementation: 15. 02. 2009 36 36 // 37 // Modifications: 38 // 37 // Modifications: 38 // 02. 11. 2009 A. Lechner: Added BuildPhysicsVector function which should 39 // invoke the build process of physics vectors. 39 40 // 40 41 // Class description: … … 59 60 G4VIonDEDXTable(); 60 61 virtual ~G4VIonDEDXTable(); 62 63 // Function for building a stopping power table for a material consisting of 64 // a single element only. 65 virtual G4bool BuildPhysicsVector( 66 G4int, // Atomic number of ion 67 G4int // Atomic number of elemental material 68 ) = 0; 69 70 // Function building stopping power table for a given ion-material pair. 71 virtual G4bool BuildPhysicsVector( 72 G4int, // Atomic number of ion 73 const G4String& // Name or chemical formula of material 74 ) = 0; 61 75 62 76 // Function for checking the availability of stopping power tables -
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.
