Ignore:
Timestamp:
Nov 25, 2009, 5:13:58 PM (16 years ago)
Author:
garnier
Message:

update CVS release candidate geant4.9.3.01

Location:
trunk/source/materials
Files:
49 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/materials/History

    r1058 r1196  
    1 $Id: History,v 1.142 2009/05/25 08:34:15 gcosmo Exp $
     1$Id: History,v 1.164 2009/11/20 00:59:40 gum Exp $
    22-------------------------------------------------------------------
    33
     
    1818     ----------------------------------------------------------
    1919
     2019-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
     2519-11-09 V.Ivanchenko (materials-V09-02-19)
     26- G4IonisParamMat - fixed crash at destruction
     27
     2818-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
     3218-11-09 V.Ivanchenko (materials-V09-02-17)
     33- G4IonisParamMat - fixed minor memory leak due to G4DensityEffectData
     34
     3510-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
     4009-11-09 V.Ivanchenko (materials-V09-02-15)
     41- improved comments to ICRU73 classes
     42
     4305-11-09 V.Ivanchenko (materials-V09-02-14)
     44- G4DensityEffectData - (A.Bagulya) fixed GetIndex method for compounds
     45
     4604-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 
     5004-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
     7701-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
     8430-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
     9917-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
     10317-07-09 V.Ivanchenko (materials-V09-02-08)
     104- G4NistManager, G4NistMessenger, G4NistElementBuilder - improved
     105         implementation of UI commands
     106
    2010725-05-09 V.Ivanchenko (materials-V09-02-07)
    21108- Renamed G4ExternalDEDXTable class to G4ExtDEDXTable to allow for generation
     
    33120                        to 78 eV according to GSI Annual Report (2008) p.373
    34121                        and recommendation of Prof.P.Sigmund in order to
    35                         conssitent with ICRU'73 tables
     122                        consistent with ICRU'73 tables
    36123
    3712429-04-09 V.Ivanchenko (materials-V09-02-04)
  • trunk/source/materials/include/G4AtomicShells.hh

    r986 r1196  
    2626//
    2727// $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 $
    2929
    3030// class description
  • trunk/source/materials/include/G4Element.hh

    r986 r1196  
    2525//
    2626//
    27 // $Id: G4Element.hh,v 1.23 2008/11/14 15:14:24 gcosmo Exp $
    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 $
    2929//
    3030
     
    7171// 01-04-05, new data member fIndexZ to count the number of elements with same Z
    7272// 17-10-06: Add Get/Set fNaturalAbandances (V.Ivanchenko)
    73 
     73// 17.09.09, add fNbOfShellElectrons and methods (V. Grichine)
    7474//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    7575
     
    131131  G4int GetNbOfAtomicShells() const {return fNbOfAtomicShells;}
    132132 
    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;
    136140   
    137141  //number of isotopes constituing this element:
     
    233237  G4int fNbOfAtomicShells;     // number  of atomic shells
    234238  G4double* fAtomicShells ;    // Pointer to atomic shell binding energies
     239  G4int* fNbOfShellElectrons; // pointer to the number of subshell electrons
    235240   
    236241  // Isotope vector contains constituent isotopes of the element   
  • trunk/source/materials/include/G4ElementTable.hh

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030//
  • trunk/source/materials/include/G4ElementVector.hh

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030//
  • trunk/source/materials/include/G4ExtDEDXTable.hh

    r1059 r1196  
    3838//
    3939// Modifications:
     40// 03.11.2009 A. Lechner:  Added new methods BuildPhysicsVector according
     41//            to interface changes in base class G4VIonDEDXTable.
    4042//
    4143//
     
    6567   G4ExtDEDXTable();
    6668   virtual ~G4ExtDEDXTable();
     69
     70   G4bool BuildPhysicsVector(G4int ionZ,
     71                             const G4String& matName);
     72
     73   G4bool BuildPhysicsVector(G4int ionZ,
     74                             G4int matZ);
    6775
    6876   // Function for checking the availability of stopping power tables
  • trunk/source/materials/include/G4IonisParamElm.hh

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030
  • trunk/source/materials/include/G4IonisParamMat.hh

    r986 r1196  
    2525//
    2626//
    27 // $Id: G4IonisParamMat.hh,v 1.12 2008/07/08 10:34:56 vnivanch Exp $
    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 $
    2929//
    3030
     
    5252
    5353class G4Material;                        // forward declaration
     54class G4DensityEffectData;
    5455
    5556//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
     
    5960public:
    6061
    61     G4IonisParamMat(G4Material*);
    62     virtual ~G4IonisParamMat();
    63 
    64     //
    65     // retrieval methods
    66     //
     62  G4IonisParamMat(G4Material*);
     63  virtual ~G4IonisParamMat();
     64
     65  //
     66  // retrieval methods
     67  //
    6768     
    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;};
    105114     
    106115public:  // without description
    107116
    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 object
    115       // persistency for clients requiring preallocation of memory for
    116       // 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.
    117126
    118127private:
    119128   
    120     // Compute mean parameters : ExcitationEnergy,Shell corretion vector ...
    121     void ComputeMeanParameters();
    122 
    123     // Compute parameters for the density effect
    124     void ComputeDensityEffect();
    125 
    126     // Compute parameters for the energy fluctuation model
    127     void ComputeFluctModel();
    128 
    129     // Compute parameters for ion parameterizations
    130     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();
    131140
    132141private:
     
    135144// data members
    136145//
    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;
    171187};
    172188
     189  // x = log10(beta*gamma) 
     190inline 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
    173201#endif
  • trunk/source/materials/include/G4IronStoppingICRU73.hh

    r1058 r1196  
    2424// ********************************************************************
    2525//
    26 // $Id: G4IronStoppingICRU73.hh,v 1.4 2009/03/18 10:14:48 alechner Exp $
    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 $
    2828
    2929#ifndef G4IronStoppingICRU73_h
     
    3838// Author:      A.Ivantchenko 8.08.2008
    3939//
     40// in the framework of the ESA Technology Research Programme
     41// (ESA contract 21435/08/NL/AT)
     42//
    4043// Modifications:
     44// 03.11.2009 A. Lechner:  Added new methods BuildPhysicsVector according
     45//            to interface changes in base class G4VIonDEDXTable.
    4146//
    4247//----------------------------------------------------------------------------
     
    6368
    6469  ~G4IronStoppingICRU73();
     70
     71  G4bool BuildPhysicsVector(G4int ionZ,
     72                            const G4String& matName);
     73
     74  G4bool BuildPhysicsVector(G4int ionZ,
     75                            G4int matZ);
    6576
    6677  G4bool IsApplicable(G4int ionZ, 
  • trunk/source/materials/include/G4Isotope.hh

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  • trunk/source/materials/include/G4IsotopeVector.hh

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030//
  • trunk/source/materials/include/G4MPVEntry.hh

    r1058 r1196  
    2626//
    2727// $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 $
    2929//
    3030//
  • trunk/source/materials/include/G4Material.hh

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030
  • trunk/source/materials/include/G4MaterialPropertiesTable.hh

    r1058 r1196  
    2626//
    2727// $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 $
    2929//
    3030////////////////////////////////////////////////////////////////////////
  • trunk/source/materials/include/G4MaterialPropertiesTable.icc

    r1058 r1196  
    2626//
    2727// $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 $
    2929//
    3030////////////////////////////////////////////////////////////////////////
  • trunk/source/materials/include/G4MaterialPropertyVector.hh

    r1058 r1196  
    2626//
    2727// $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 $
    2929//
    3030//
  • trunk/source/materials/include/G4MaterialPropertyVector.icc

    r1058 r1196  
    2626//
    2727// $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 $
    2929//
    3030//
  • trunk/source/materials/include/G4MaterialStoppingICRU73.hh

    r1058 r1196  
    2424// ********************************************************************
    2525//
    26 // $Id: G4MaterialStoppingICRU73.hh,v 1.5 2009/03/18 10:14:49 alechner Exp $
    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 $
    2828
    2929#ifndef G4MaterialStoppingICRU73_h
     
    3838// Author:      Ivantchenko 10.07.2008
    3939//
     40// in the framework of the ESA Technology Research Programme
     41// (ESA contract 21435/08/NL/AT)
     42//
    4043// Modifications:
     44// 03.11.2009 A. Lechner:  Added new methods BuildPhysicsVector according
     45//            to interface changes in base class G4VIonDEDXTable.
    4146//
    4247//----------------------------------------------------------------------------
     
    6368
    6469  ~G4MaterialStoppingICRU73();
     70
     71  G4bool BuildPhysicsVector(G4int ionZ,
     72                            const G4String& matName);
     73
     74  G4bool BuildPhysicsVector(G4int ionZ,
     75                            G4int matZ);
    6576
    6677  G4bool IsApplicable(G4int ionZ,
     
    89100                                       G4double* stoppower,
    90101                                       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);
    91107
    92108  // Assignment operator and copy constructor
  • trunk/source/materials/include/G4MaterialTable.hh

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030//
  • trunk/source/materials/include/G4NistElementBuilder.hh

    r986 r1196  
    2525//
    2626// $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 $
    2828
    2929#ifndef G4NistElementBuilder_h
  • trunk/source/materials/include/G4NistManager.hh

    r986 r1196  
    2525//
    2626// $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 $
    2828//
    2929//
  • trunk/source/materials/include/G4NistMaterialBuilder.hh

    r986 r1196  
    2525//
    2626// $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 $
    2828
    2929#ifndef G4NistMaterialBuilder_h
  • trunk/source/materials/include/G4NistMessenger.hh

    r986 r1196  
    2525//
    2626//
    27 // $Id: G4NistMessenger.hh,v 1.4 2007/05/02 10:48:52 vnivanch Exp $
    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 $
    2929//
    3030// File name:     G4NistMessenger
     
    103103  G4UIdirectory*             g4Dir;
    104104  G4UIcmdWithAString*        g4ElmCmd;   
    105   G4UIcmdWithAString*        g4MatCmd;     
    106 
     105  G4UIcmdWithAString*        g4MatCmd;
     106  G4UIcmdWithAString*        g4DensCmd;   
    107107};
    108108
  • trunk/source/materials/include/G4OpticalSurface.hh

    r1058 r1196  
    2525//
    2626//
    27 // $Id: G4OpticalSurface.hh,v 1.12 2009/04/21 15:35:45 gcosmo Exp $
    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 $
    2929//
    3030//
     
    6464   polishedfrontpainted,        // smooth top-layer (front) paint
    6565   polishedbackpainted,         // same is 'polished' but with a back-paint
     66
    6667   ground,                      // rough surface
    6768   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
    6997};
    7098
     
    72100{
    73101   glisur,                      // original GEANT3 model
    74    unified                      // UNIFIED model
     102   unified,                     // UNIFIED model
     103   LUT                          // Look-Up-Table model
    75104};
    76105
     
    83112class G4OpticalSurface : public G4SurfaceProperty
    84113{
    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
     115public: // Without description
    107116 
    108     //////////////
    109     // Operators
    110     //////////////
     117        //////////////
     118        // Operators
     119        //////////////
    111120 
    112     const G4OpticalSurface & operator=(const G4OpticalSurface &right);
     121        G4OpticalSurface(const G4OpticalSurface &right);
     122        const G4OpticalSurface & operator=(const G4OpticalSurface &right);
    113123 
    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
     127public: // 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
     140public: // Without description
     141
     142        virtual ~G4OpticalSurface();
     143
     144        ////////////
     145        // Methods
     146        ////////////
     147
     148        // public methods
     149
     150public: // 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
     198private:
     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
    168218};
    169219
     220////////////////////
     221// Inline methods
     222////////////////////
     223
     224inline
     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
    170234#endif /* G4OpticalSurface_h */
  • trunk/source/materials/include/G4SandiaTable.hh

    r986 r1196  
    2626//
    2727// $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 $
    2929
    3030// class description
  • trunk/source/materials/include/G4SimpleMaterialStoppingICRU73.hh

    r1058 r1196  
    2424// ********************************************************************
    2525//
    26 // $Id: G4SimpleMaterialStoppingICRU73.hh,v 1.6 2009/03/18 10:14:49 alechner Exp $
    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 $
    2828
    2929#ifndef G4SimpleMaterialStoppingICRU73_h
     
    3838// Author:      Ivantchenko 10.07.2008
    3939//
     40// in the framework of the ESA Technology Research Programme
     41// (ESA contract 21435/08/NL/AT)
     42//
    4043// Modifications:
     44// 03.11.2009 A. Lechner:  Added new methods BuildPhysicsVector according
     45//            to interface changes in base class G4VIonDEDXTable.
    4146//
    4247//----------------------------------------------------------------------------
     
    6570
    6671  ~G4SimpleMaterialStoppingICRU73();
     72
     73  G4bool BuildPhysicsVector(G4int ionZ,
     74                            const G4String& matName);
     75
     76  G4bool BuildPhysicsVector(G4int ionZ,
     77                            G4int matZ);
    6778
    6879  G4bool IsApplicable(G4int ionZ, 
  • trunk/source/materials/include/G4StaticSandiaData.hh

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030
  • trunk/source/materials/include/G4SurfaceProperty.hh

    r1058 r1196  
    2525//
    2626//
    27 // $Id: G4SurfaceProperty.hh,v 1.9 2009/04/21 15:35:45 gcosmo Exp $
    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 $
    2929//
    3030//
     
    6868   dielectric_metal,            // dielectric-metal interface
    6969   dielectric_dielectric,       // dielectric-dielectric interface
     70   dielectric_LUT,              // dielectric-Look-Up-Table interface
    7071   firsov,                      // for Firsov Process
    7172   x_ray                        // for x-ray mirror process
  • trunk/source/materials/include/G4VIonDEDXTable.hh

    r1059 r1196  
    3535// First implementation: 15. 02. 2009
    3636//
    37 // Modifications:
    38 //
     37// Modifications:       
     38// 02. 11. 2009 A. Lechner: Added BuildPhysicsVector function which should
     39//              invoke the build process of physics vectors.
    3940//
    4041// Class description:
     
    5960   G4VIonDEDXTable();
    6061   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;
    6175
    6276   // Function for checking the availability of stopping power tables
  • trunk/source/materials/src/G4AtomicShells.cc

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
  • trunk/source/materials/src/G4Element.cc

    r986 r1196  
    2525//
    2626//
    27 // $Id: G4Element.cc,v 1.31 2008/08/11 11:53:11 vnivanch 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 $
    2929//
    3030//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     
    9999  }
    100100   
    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  {
    104107    fAtomicShells[i] = G4AtomicShells::GetBindingEnergy(iz, i);
     108    fNbOfShellElectrons[i] = G4AtomicShells::GetNumberOfElectrons(iz, i);
    105109  }
    106110  ComputeDerivedQuantities();
     
    172176    fNbOfAtomicShells = G4AtomicShells::GetNumberOfShells(iz);
    173177    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    }         
    178185    ComputeDerivedQuantities();
    179186
     
    188195  fRelativeAbundanceVector = 0;
    189196  fAtomicShells = 0;
     197  fNbOfShellElectrons = 0;
    190198  fIonisation = 0;
    191199  fNumberOfIsotopes = 0;
     
    200208G4Element::G4Element( __void__& )
    201209  : fZeff(0), fNeff(0), fAeff(0), fNbOfAtomicShells(0),
    202     fAtomicShells(0), fNumberOfIsotopes(0), theIsotopeVector(0),
     210    fAtomicShells(0), fNbOfShellElectrons(0), fNumberOfIsotopes(0), theIsotopeVector(0),
    203211    fRelativeAbundanceVector(0), fCountUse(0), fIndexInTable(0),
    204212    fCoulomb(0), fRadTsai(0), fIonisation(0)
     
    215223  if (fRelativeAbundanceVector) delete [] fRelativeAbundanceVector;
    216224  if (fAtomicShells)            delete [] fAtomicShells;
     225  if (fNbOfShellElectrons)      delete [] fNbOfShellElectrons;
    217226  if (fIonisation)              delete    fIonisation;
    218227 
     
    288297G4double G4Element::GetAtomicShell(G4int i) const
    289298{
    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  }
    292302  return fAtomicShells[i];
     303}
     304
     305//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     306
     307G4int G4Element::GetNbOfShellElectrons(G4int i) const
     308{
     309  if (i<0 || i>=fNbOfAtomicShells) {
     310    G4Exception("Invalid argument in G4Element::GetNbOfShellElectrons");
     311  }
     312  return fNbOfShellElectrons[i];
    293313}
    294314
     
    352372     
    353373      if (fAtomicShells) delete [] fAtomicShells;     
    354       fNbOfAtomicShells        = right.fNbOfAtomicShells;
     374      fNbOfAtomicShells = right.fNbOfAtomicShells;
    355375      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      }
    359386      if (theIsotopeVector) delete theIsotopeVector;
    360387      if (fRelativeAbundanceVector) delete [] fRelativeAbundanceVector;
  • trunk/source/materials/src/G4ExtDEDXTable.cc

    r1058 r1196  
    3737//
    3838// Modifications:
     39// 03.11.2009 A. Lechner:  Added new methods BuildPhysicsVector according
     40//            to interface changes in base class G4VIonDEDXTable.
    3941//
    4042//
     
    7880// #########################################################################
    7981
     82G4bool G4ExtDEDXTable::BuildPhysicsVector(G4int ionZ, G4int matZ) {
     83
     84  return IsApplicable( ionZ, matZ );
     85}
     86
     87
     88// #########################################################################
     89
     90G4bool G4ExtDEDXTable::BuildPhysicsVector(G4int ionZ,
     91                                          const G4String& matName) {
     92
     93  return IsApplicable( ionZ, matName );
     94}
     95
     96// #########################################################################
     97
    8098G4bool G4ExtDEDXTable::IsApplicable(
    8199         G4int atomicNumberIon,  // Atomic number of ion
  • trunk/source/materials/src/G4IonisParamElm.cc

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030//
  • trunk/source/materials/src/G4IonisParamMat.cc

    r986 r1196  
    2525//
    2626//
    27 // $Id: G4IonisParamMat.cc,v 1.25 2008/07/08 10:34:56 vnivanch Exp $
    28 // GEANT4 tag $Name: geant4-09-02-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 $
    2929//
    3030//
     
    4040// 27-09-07, add computation of parameters for ions (V.Ivanchenko)
    4141// 04-03-08, remove reference to G4NistManager. Add fBirks constant (mma)
     42// 30-10-09, add G4DensityEffectData class and density effect computation (VI)
    4243
    4344//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
     
    4546#include "G4IonisParamMat.hh"
    4647#include "G4Material.hh"
     48#include "G4DensityEffectData.hh"
     49
     50G4DensityEffectData* G4IonisParamMat::fDensityData = 0;
    4751
    4852//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
     
    5155  : fMaterial(material)
    5256{
     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
    5367  ComputeMeanParameters();
    5468  ComputeDensityEffect();
    5569  ComputeFluctModel();
    5670  ComputeIonParameters();
    57  
    58   fBirks = 0.;
    59   fMeanEnergyPerIon = 0.;
    6071}
    6172
     
    119130
    120131//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
     132
     133G4DensityEffectData* G4IonisParamMat::GetDensityEffectData()
     134{
     135  return fDensityData;
     136}
     137
     138//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
    121139                   
    122140void G4IonisParamMat::ComputeDensityEffect()
    123141{
    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    //
    131185 
    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)) {
    141187
    142188      const G4double E100eV  = 100.*eV;
     
    157203         fX0density = 0.425; fX1density = 2.0; fMdensity = 5.949;
    158204      }
    159   }
    160 
    161   //
    162   // gases
    163   //
    164   if (State == kStateGas) {
     205    }
     206
     207    //
     208    // gases
     209    //
     210    if (State == kStateGas) {
    165211
    166212      const G4double ClimiG[] = { 10. , 10.5 , 11. , 11.5 , 12.25 , 13.804};
     
    182228         fX0density = 2.191; fX1density = 3.0; fMdensity = 3.297;
    183229      }
    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();
    188242     
    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);
    196246 
    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  */
    205270}
    206271
     
    358423G4IonisParamMat::~G4IonisParamMat()
    359424{
    360   if (fShellCorrectionVector) delete [] fShellCorrectionVector;
     425  if (fShellCorrectionVector) { delete [] fShellCorrectionVector; }
     426  if (fDensityData) { delete fDensityData; }
     427  fDensityData = 0;
    361428}
    362429
     
    388455      fX0density                = right.fX0density;
    389456      fX1density                = right.fX1density;
     457      fD0density                = right.fD0density;
     458      fPlasmaEnergy             = right.fPlasmaEnergy;
     459      fAdjustmentFactor         = right.fAdjustmentFactor;
    390460      fF1fluct                  = right.fF1fluct;
    391461      fF2fluct                  = right.fF2fluct;
     
    396466      fEnergy0fluct             = right.fEnergy0fluct;
    397467      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    }
    399475  return *this;
    400476}
  • trunk/source/materials/src/G4IronStoppingICRU73.cc

    r1058 r1196  
    2525//
    2626//
    27 // $Id: G4IronStoppingICRU73.cc,v 1.7 2009/05/07 18:51:01 vnivanch 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 $
    2929
    3030//---------------------------------------------------------------------------
     
    3535//
    3636// Author:    A.Ivanchenko 10.08.2008
     37//
     38// in the framework of the ESA Technology Research Programme
     39// (ESA contract 21435/08/NL/AT)
    3740//
    3841// Modifications:
    3942// 29.04.2009 A.Ivantchenko added data for G4WATER
    4043//            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.
    4146//
    4247//----------------------------------------------------------------------------
     
    7782  atomicNumbersMat.clear();
    7883  namesMat.clear();
     84}
     85
     86//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     87G4bool G4IronStoppingICRU73::BuildPhysicsVector(G4int ionZ,
     88                                                G4int matZ)
     89{
     90  return IsApplicable( ionZ, matZ );
     91}
     92
     93//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     94
     95G4bool G4IronStoppingICRU73::BuildPhysicsVector(G4int ionZ,
     96                                                const G4String& matName)
     97{
     98  return IsApplicable( ionZ, matName );
    7999}
    80100
  • trunk/source/materials/src/G4Isotope.cc

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  • trunk/source/materials/src/G4MPVEntry.cc

    r1058 r1196  
    2626//
    2727// $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 $
    2929//
    3030//
  • trunk/source/materials/src/G4Material.cc

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  • trunk/source/materials/src/G4MaterialPropertiesTable.cc

    r1058 r1196  
    2626//
    2727// $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 $
    2929//
    3030//
  • trunk/source/materials/src/G4MaterialPropertyVector.cc

    r1058 r1196  
    2626//
    2727// $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 $
    2929//
    3030//
  • trunk/source/materials/src/G4MaterialStoppingICRU73.cc

    r1058 r1196  
    2525//
    2626//
    27 // $Id: G4MaterialStoppingICRU73.cc,v 1.7 2009/04/29 13:51:53 vnivanch 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 $
    2929
    3030//---------------------------------------------------------------------------
     
    3636// Author:      A.Ivantchenko 07.08.2008
    3737//
     38// in the framework of the ESA Technology Research Programme
     39// (ESA contract 21435/08/NL/AT)
     40//
    3841// Modifications:
    3942// 29.04.2009 A.Ivantchenko added revised data for G4WATER, G4WATER_VAPOR,
    4043//            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// 
    4250//----------------------------------------------------------------------------
    4351//
     
    5664  maxIonAtomicNmb = 18;
    5765
    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"};
    5967
    6068  for( size_t i = 0; i < 31; i++ ) {
     
    7482  dedxKeys.clear();
    7583  dedx.clear();
     84}
     85
     86//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     87G4bool G4MaterialStoppingICRU73::BuildPhysicsVector(G4int ionZ,
     88                                                    G4int matZ)
     89{
     90  return IsApplicable( ionZ, matZ );
     91}
     92
     93//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     94
     95G4bool G4MaterialStoppingICRU73::BuildPhysicsVector(G4int ionZ,
     96                                                    const G4String& matName)
     97{
     98  return IsApplicable( ionZ, matName );
    7699}
    77100
     
    114137
    115138  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
     147G4PhysicsVector* 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++ ) {
    116156    pv->PutValues(i,energy[i],stoppower[i]*factor);
    117157  }
     
    182222  G4double factor = MeV * cm2 / (0.001 * g);
    183223
    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;
    187227
    188228  if( matName == namesMat[0] ) {
     
    21312171  else if( matName == namesMat[29] ) {
    21322172    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);
    21352175}
    21362176 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);
    21392179 }
    21402180 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);
    21432183 }
    21442184 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);
    21472187 }
    21482188 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);
    21512191 }
    21522192 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);
    21552195 }
    21562196else 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);
    21592199}
    21602200else 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);
    21632203}
    21642204 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);
    21672207 }
    21682208 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);
    21712211 }
    21722212 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);
    21752215 }
    21762216 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);
    21792219 }
    21802220 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);
    21832223 }
    21842224 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);
    21872227 }
    21882228 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);
    21912231 }
    21922232 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);
    21952235 }
    21962236  }
  • trunk/source/materials/src/G4NistElementBuilder.cc

    r986 r1196  
    2424// ********************************************************************
    2525//
    26 // $Id: G4NistElementBuilder.cc,v 1.22 2008/08/11 11:53:11 vnivanch 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 $
    2828//
    2929// -------------------------------------------------------------------
     
    203203           << nc << " isotopes:"
    204204           << 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;
    219217  }
    220218}
     
    270268  }
    271269
    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  }
    273278}
    274279
  • trunk/source/materials/src/G4NistManager.cc

    r986 r1196  
    2525//
    2626// $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 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/materials/src/G4NistMaterialBuilder.cc

    r1058 r1196  
    2424// ********************************************************************
    2525//
    26 // $Id: G4NistMaterialBuilder.cc,v 1.20 2009/05/07 18:50:46 vnivanch Exp $
    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 $
    2828//
    2929//
     
    4444// 27.06.06 V.Ivanchneko fix graphite description
    4545// 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
    4651//
    4752// -------------------------------------------------------------------
     
    13371342  AddElementByWeightFraction( 8, 0.148539);
    13381343
    1339   AddMaterial("G4_NYLON-6/6", 1.14, 0, 63.9, 4);
     1344  AddMaterial("G4_NYLON-6-6", 1.14, 0, 63.9, 4);
    13401345  AddElementByWeightFraction( 1, 0.097976);
    13411346  AddElementByWeightFraction( 6, 0.636856);
     
    13431348  AddElementByWeightFraction( 8, 0.141389);
    13441349
    1345   AddMaterial("G4_NYLON-6/10", 1.14, 0, 63.2, 4);
     1350  AddMaterial("G4_NYLON-6-10", 1.14, 0, 63.2, 4);
    13461351  AddElementByWeightFraction( 1, 0.107062);
    13471352  AddElementByWeightFraction( 6, 0.680449);
     
    17031708  AddElementByWeightFraction( 6, 0.905065);
    17041709
    1705   AddMaterial("G4_GRAPHITE", 1.7, 6, 78.);
     1710  AddMaterial("G4_GRAPHITE", 2.21, 6, 78.);
    17061711  nNIST = nMaterials;
    17071712  AddChemicalFormula("G4_GRAPHITE","Graphite");
     
    17271732  AddMaterial("G4_Galactic", density, 1, 21.8, 1, kStateGas);
    17281733  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  
    2525//
    2626//
    27 // $Id: G4NistMessenger.cc,v 1.4 2007/05/02 10:48:52 vnivanch Exp $
    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 $
    2929//
    3030//
     
    5151#include "G4UIcmdWithAnInteger.hh"
    5252#include "G4UIcmdWithAString.hh"
     53#include "G4IonisParamMat.hh"
     54#include "G4DensityEffectData.hh"
    5355
    5456//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     
    7072  prtElmCmd->SetGuidance("symbol = element.");
    7173  prtElmCmd->SetGuidance("all    = all elements.");
    72   prtElmCmd->SetGuidance("verbose>1 : list associated isotopes."); 
    7374  prtElmCmd->SetParameterName("symbol", true);
    7475  prtElmCmd->SetDefaultValue("all");
     
    7677  przElmCmd = new G4UIcmdWithAnInteger("/material/nist/printElementZ",this);
    7778  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);
    7982   
    8083  lisMatCmd = new G4UIcmdWithAString("/material/nist/listMaterials",this);
    81   lisMatCmd->SetGuidance("list materials in dataBase.");
    82   lisMatCmd->SetGuidance("simple = simple nist materials.");
    83   lisMatCmd->SetGuidance("compound = compound nist materials.");
    84   lisMatCmd->SetGuidance("hep = hep materials.");
    85   lisMatCmd->SetGuidance("all = all materials.");
     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.");
    8689  lisMatCmd->SetParameterName("list", true);
    8790  lisMatCmd->SetCandidates("simple compound hep all");
     
    9295 
    9396  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");
    95101   
    96102  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");
    98107
     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");
    99113}
    100114
     
    136150  if (command == g4MatCmd)
    137151   { manager->PrintG4Material(newValue);}
     152
     153  if (command == g4DensCmd)
     154    { if (G4Material::GetNumberOfMaterials > 0) {
     155      G4IonisParamMat::GetDensityEffectData()->PrintData(newValue);
     156    }
     157    }
    138158}
    139 
    140159//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
  • trunk/source/materials/src/G4OpticalSurface.cc

    r986 r1196  
    2525//
    2626//
    27 // $Id: G4OpticalSurface.cc,v 1.12 2008/12/11 10:23:54 gcosmo Exp $
    28 // GEANT4 tag $Name: geant4-09-02-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 $
    2929//
    3030//
     
    6666      polish                     = right.polish;
    6767      theMaterialPropertiesTable = right.theMaterialPropertiesTable;
     68      AngularDistribution        = right.AngularDistribution;
    6869     }
    6970  return *this;
     
    9293                polish = 0.0;
    9394        }
     95        else if ( model == LUT ) {
     96                sigma_alpha = value;
     97                polish = 0.0;
     98        }
    9499        else {
    95100                G4Exception("G4OpticalSurface::G4OpticalSurface ==> "
    96101                            "Constructor called with INVALID model.");
    97102        }
    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        }
    103111}
    104112
    105113G4OpticalSurface::~G4OpticalSurface()
    106114{
     115        if (AngularDistribution) delete AngularDistribution;
    107116}
    108117
     
    143152                G4cout << polish      << G4endl;
    144153        }
     154        else if (theModel == LUT ){
     155                G4cout << sigma_alpha << G4endl;
     156        }
    145157        else {
    146158                G4cout << sigma_alpha << G4endl;
     
    148160        G4cout << G4endl;
    149161}
     162
     163void 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
     173void 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
     183void 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  
    2626//
    2727// $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 $
    2929//
    3030//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
  • trunk/source/materials/src/G4SimpleMaterialStoppingICRU73.cc

    r1058 r1196  
    2525//
    2626//
    27 // $Id: G4SimpleMaterialStoppingICRU73.cc,v 1.7 2009/04/29 13:51:53 vnivanch 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 $
    2929
    3030//---------------------------------------------------------------------------
     
    3636// Author:      A.Ivantchenko 07.08.2008
    3737//
     38// in the framework of the ESA Technology Research Programme
     39// (ESA contract 21435/08/NL/AT)
     40//
    3841// Modifications:
    3942// 29.04.2009 A.Ivantchenko added revised data for G4_Cu
    4043//            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.
    4146//
    4247//----------------------------------------------------------------------------
     
    6772
    6873//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    69 
     74G4bool G4SimpleMaterialStoppingICRU73::BuildPhysicsVector(G4int ionZ,
     75                                                          G4int matZ)
     76{
     77  return IsApplicable( ionZ, matZ );
     78}
     79
     80//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     81
     82G4bool G4SimpleMaterialStoppingICRU73::BuildPhysicsVector(G4int ionZ,
     83                                                       const G4String& matName)
     84{
     85  return IsApplicable( ionZ, matName );
     86}
     87
     88//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    7089G4bool G4SimpleMaterialStoppingICRU73::IsApplicable(G4int ionZ,
    7190                                             G4int matZ)
  • trunk/source/materials/src/G4SurfaceProperty.cc

    r986 r1196  
    2626//
    2727// $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 $
    2929//
    3030//
Note: See TracChangeset for help on using the changeset viewer.