Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/materials/include/G4IonisParamMat.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /materials/include/G4IonisParamMat.hh (Version 11.3.0) and /materials/include/G4IonisParamMat.hh (Version 4.0.p1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                    <<   3 // * DISCLAIMER                                                       *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th <<   5 // * The following disclaimer summarizes all the specific disclaimers *
  6 // * the Geant4 Collaboration.  It is provided <<   6 // * of contributors to this software. The specific disclaimers,which *
  7 // * conditions of the Geant4 Software License <<   7 // * govern, are listed with their locations in:                      *
  8 // * LICENSE and available at  http://cern.ch/ <<   8 // *   http://cern.ch/geant4/license                                  *
  9 // * include a list of copyright holders.      << 
 10 // *                                                9 // *                                                                  *
 11 // * Neither the authors of this software syst     10 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     11 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     12 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     13 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file  <<  14 // * use.                                                             *
 16 // * for the full disclaimer and the limitatio << 
 17 // *                                               15 // *                                                                  *
 18 // * This  code  implementation is the result  <<  16 // * This  code  implementation is the  intellectual property  of the *
 19 // * technical work of the GEANT4 collaboratio <<  17 // * GEANT4 collaboration.                                            *
 20 // * By using,  copying,  modifying or  distri <<  18 // * By copying,  distributing  or modifying the Program (or any work *
 21 // * any work based  on the software)  you  ag <<  19 // * based  on  the Program)  you indicate  your  acceptance of  this *
 22 // * use  in  resulting  scientific  publicati <<  20 // * statement, and all its terms.                                    *
 23 // * acceptance of all terms of the Geant4 Sof << 
 24 // *******************************************     21 // ********************************************************************
                                                   >>  22 //
                                                   >>  23 //
                                                   >>  24 // $Id: G4IonisParamMat.hh,v 1.6 2001/07/11 10:01:25 gunter Exp $
                                                   >>  25 // GEANT4 tag $Name: geant4-04-00 $
                                                   >>  26 //
 25                                                    27 
 26 // class description                               28 // class description
 27 //                                                 29 //
 28 // The class contains few (physical) quantitie     30 // The class contains few (physical) quantities related to the Ionisation
 29 // process, for a material defined by its poin     31 // process, for a material defined by its pointer G4Material*
 30 //                                                 32 //
                                                   >>  33 
                                                   >>  34 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
                                                   >>  35 
                                                   >>  36 // 09.03.01: copy constructor and assignement operator in public (mma)
 31 // 09-07-98: data moved from G4Material (mma)      37 // 09-07-98: data moved from G4Material (mma)
 32 // 09-03-01: copy constructor and assignement  <<  38 
 33 // 28-10-02: add setMeanExcitationEnergy (V.Iv <<  39 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
 34 // 27-09-07: add computation of parameters for << 
 35 // 04-03-08: add fBirks constant (mma)         << 
 36 // 16-01-19, add exact computation of the dens << 
 37                                                    40 
 38 #ifndef G4IonisParamMat_HH                         41 #ifndef G4IonisParamMat_HH
 39 #define G4IonisParamMat_HH                         42 #define G4IonisParamMat_HH
 40                                                    43 
 41 #include "G4DensityEffectCalculator.hh"        << 
 42 #include "G4ios.hh"                                44 #include "G4ios.hh"
 43 #include "globals.hh"                              45 #include "globals.hh"
 44                                                    46 
 45 class G4Material;                              <<  47 class G4Material;                        // forward declaration
 46 class G4DensityEffectData;                     << 
 47                                                    48 
 48 class G4IonisParamMat                          <<  49 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
                                                   >>  50 
                                                   >>  51 class G4IonisParamMat  // with description
 49 {                                                  52 {
 50  public:                                       <<  53 public:
 51   G4IonisParamMat(const G4Material*);          <<  54 
 52   ~G4IonisParamMat();                          <<  55     G4IonisParamMat(G4Material*); 
 53   G4IonisParamMat& operator=(const G4IonisPara <<  56     virtual ~G4IonisParamMat();
 54   G4IonisParamMat(const G4IonisParamMat&) = de <<  57 
 55                                                <<  58     //
 56   // parameters for mean energy loss calculati <<  59     // retrieval methods
 57   inline G4double GetMeanExcitationEnergy() co <<  60     //
 58                                                <<  61      
 59   void SetMeanExcitationEnergy(G4double value) <<  62     // parameters for mean energy loss calculation:
 60   G4double FindMeanExcitationEnergy(const G4Ma <<  63     G4double  GetMeanExcitationEnergy()   const {return fMeanExcitationEnergy;};
 61                                                <<  64     G4double  GetLogMeanExcEnergy()       const {return fLogMeanExcEnergy;};
 62   inline G4double GetLogMeanExcEnergy() const  <<  65     G4double* GetShellCorrectionVector()  const {return fShellCorrectionVector;};
 63   inline G4double* GetShellCorrectionVector()  <<  66     G4double  GetTaul()                   const {return fTaul;};
 64   inline G4double GetTaul() const { return fTa <<  67     
 65                                                <<  68     // parameters of the density correction:
 66   // parameters of the density correction:     <<  69     G4double  GetCdensity()               const {return fCdensity;};
 67   inline G4double GetPlasmaEnergy() const { re <<  70     G4double  GetMdensity()               const {return fMdensity;};
 68   inline G4double GetAdjustmentFactor() const  <<  71     G4double  GetAdensity()               const {return fAdensity;};
 69   inline G4double GetCdensity() const { return <<  72     G4double  GetX0density()              const {return fX0density;};
 70   inline G4double GetMdensity() const { return <<  73     G4double  GetX1density()              const {return fX1density;};
 71   inline G4double GetAdensity() const { return <<  74 
 72   inline G4double GetX0density() const { retur <<  75     // parameters of the energy loss fluctuation model:
 73   inline G4double GetX1density() const { retur <<  76     G4double  GetF1fluct()                const {return fF1fluct;};
 74   inline G4double GetD0density() const { retur <<  77     G4double  GetF2fluct()                const {return fF2fluct;};
 75                                                <<  78     G4double  GetEnergy1fluct()           const {return fEnergy1fluct;};
 76   // user defined density correction parameter <<  79     G4double  GetLogEnergy1fluct()        const {return fLogEnergy1fluct;};
 77   void SetDensityEffectParameters(             <<  80     G4double  GetEnergy2fluct()           const {return fEnergy2fluct;};
 78     G4double cd, G4double md, G4double ad, G4d <<  81     G4double  GetLogEnergy2fluct()        const {return fLogEnergy2fluct;};
 79                                                <<  82     G4double  GetEnergy0fluct()           const {return fEnergy0fluct;};
 80   // defined density correction parameterisati <<  83     G4double  GetRateionexcfluct()        const {return fRateionexcfluct;};
 81   void SetDensityEffectParameters(const G4Mate <<  84 
 82                                                <<  85 public:  // without description
 83   void ComputeDensityEffectOnFly(G4bool);      <<  86 
 84                                                <<  87     G4IonisParamMat(const G4IonisParamMat&);
 85   inline G4DensityEffectCalculator* GetDensity <<  88     const G4IonisParamMat& operator=(const G4IonisParamMat&);          
 86   {                                            <<  89     G4int operator==(const G4IonisParamMat&) const;
 87     return fDensityEffectCalc;                 <<  90     G4int operator!=(const G4IonisParamMat&) const;
 88   }                                            <<  91 
 89                                                <<  92 private:
 90   // compute density correction as a function  <<  93     
 91   // x = log10(beta*gamma) using parameterisat <<  94     // Compute mean parameters : ExcitationEnergy,Shell corretion vector ...
 92   inline G4double DensityCorrection(G4double x <<  95     void ComputeMeanParameters();
 93   {                                            <<  96 
 94     return (nullptr == fDensityEffectCalc) ? G <<  97     // Compute parameters for the density effect
 95                                            : f <<  98     void ComputeDensityEffect();
 96   }                                            <<  99 
 97                                                << 100     // Compute parameters for the energy fluctuation model
 98   // use parameterisation                      << 101     void ComputeFluctModel();
 99   G4double GetDensityCorrection(G4double x) co << 102 
100                                                << 103 private:
101   static G4DensityEffectData* GetDensityEffect << 104 
102                                                << 105 //
103   // parameters of the energy loss fluctuation << 106 // data members
104   inline G4double GetF1fluct() const { return  << 107 //
105   inline G4double GetF2fluct() const { return  << 108     G4Material* fMaterial;                    // this material
106   inline G4double GetEnergy1fluct() const { re << 
107   inline G4double GetLogEnergy1fluct() const { << 
108   inline G4double GetEnergy2fluct() const { re << 
109   inline G4double GetLogEnergy2fluct() const { << 
110   inline G4double GetEnergy0fluct() const { re << 
111   inline G4double GetRateionexcfluct() const { << 
112                                                << 
113   // parameters for ion corrections computatio << 
114   inline G4double GetZeffective() const { retu << 
115   inline G4double GetFermiEnergy() const { ret << 
116   inline G4double GetLFactor() const { return  << 
117   inline G4double GetInvA23() const { return f << 
118                                                << 
119   // parameters for Birks attenuation:         << 
120   inline void SetBirksConstant(G4double value) << 
121   inline G4double GetBirksConstant() const { r << 
122                                                << 
123   // parameters for average energy per ion     << 
124   inline void SetMeanEnergyPerIonPair(G4double << 
125   inline G4double GetMeanEnergyPerIonPair() co << 
126                                                << 
127   // parameter for sampling of positron annihi << 
128   inline void SetOrtoPositroniumFraction(G4dou << 
129   inline G4double GetOrtoPositroniumFraction() << 
130                                                << 
131                                                << 
132   // operators                                 << 
133   G4bool operator==(const G4IonisParamMat&) co << 
134   G4bool operator!=(const G4IonisParamMat&) co << 
135                                                << 
136  private:                                      << 
137   // Compute mean parameters : ExcitationEnerg << 
138   void ComputeMeanParameters();                << 
139                                                << 
140   // Compute parameters for the density effect << 
141   void ComputeDensityEffectParameters();       << 
142                                                << 
143   // Compute parameters for the energy fluctua << 
144   void ComputeFluctModel();                    << 
145                                                << 
146   // Compute parameters for ion parameterizati << 
147   void ComputeIonParameters();                 << 
148                                                << 
149   //                                           << 
150   // data members                              << 
151   //                                           << 
152   const G4Material* fMaterial;  // this materi << 
153                                                << 
154   G4DensityEffectCalculator* fDensityEffectCal << 
155   G4double* fShellCorrectionVector;  // shell  << 
156                                                << 
157   // parameters for mean energy loss calculati << 
158   G4double fMeanExcitationEnergy;  //          << 
159   G4double fLogMeanExcEnergy;  //              << 
160   G4double fTaul;  // lower limit of Bethe-Blo << 
161                                                << 
162   // parameters of the density correction      << 
163   G4double fCdensity;  // mat.constant         << 
164   G4double fMdensity;  // exponent             << 
165   G4double fAdensity;  //                      << 
166   G4double fX0density;  //                     << 
167   G4double fX1density;  //                     << 
168   G4double fD0density;                         << 
169                                                << 
170   G4double fPlasmaEnergy;                      << 
171   G4double fAdjustmentFactor;                  << 
172                                                << 
173   // parameters of the energy loss fluctuation << 
174   G4double fF1fluct;                           << 
175   G4double fF2fluct;                           << 
176   G4double fEnergy1fluct;                      << 
177   G4double fLogEnergy1fluct;                   << 
178   G4double fEnergy2fluct;                      << 
179   G4double fLogEnergy2fluct;                   << 
180   G4double fEnergy0fluct;                      << 
181   G4double fRateionexcfluct;                   << 
182                                                << 
183   // parameters for ion corrections computatio << 
184   G4double fZeff;                              << 
185   G4double fFermiEnergy;                       << 
186   G4double fLfactor;                           << 
187   G4double fInvA23;                            << 
188                                                << 
189   // parameter for Birks attenuation           << 
190   G4double fBirks;                             << 
191   // average energy per ion pair               << 
192   G4double fMeanEnergyPerIon;                  << 
193   G4double twoln10;                            << 
194   // parameter for sampling of positron annihi << 
195   G4double fOrtoPositroniumFraction{0.035};    << 
196                                                   109 
197   // static data created only once             << 110    // parameters for mean energy loss calculation
198   static G4DensityEffectData* fDensityData;    << 111     G4double  fMeanExcitationEnergy;          // 
                                                   >> 112     G4double  fLogMeanExcEnergy;              // 
                                                   >> 113     G4double* fShellCorrectionVector;         // shell correction coefficients
                                                   >> 114     G4double  fTaul;                          // lower limit of Bethe-Bloch formula
                                                   >> 115 
                                                   >> 116    // parameters of the density correction....
                                                   >> 117     G4double fCdensity;                      // mat.constant
                                                   >> 118     G4double fMdensity;                      // exponent
                                                   >> 119     G4double fAdensity;                      //
                                                   >> 120     G4double fX0density;                     //
                                                   >> 121     G4double fX1density;                     //
                                                   >> 122 
                                                   >> 123    // parameters of the energy loss fluctuation model
                                                   >> 124     G4double fF1fluct;                       
                                                   >> 125     G4double fF2fluct;                       
                                                   >> 126     G4double fEnergy1fluct;
                                                   >> 127     G4double fLogEnergy1fluct;
                                                   >> 128     G4double fEnergy2fluct;
                                                   >> 129     G4double fLogEnergy2fluct;
                                                   >> 130     G4double fEnergy0fluct;
                                                   >> 131     G4double fRateionexcfluct;
199 };                                                132 };
200                                                   133 
201 #endif                                            134 #endif
202                                                   135