Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/electromagnetic/standard/include/G4PAIySection.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 /processes/electromagnetic/standard/include/G4PAIySection.hh (Version 11.3.0) and /processes/electromagnetic/standard/include/G4PAIySection.hh (Version 7.0)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 // G4PAIySection.hh -- header file                
 27 //                                                
 28 //                                                
 29 // Preparation of ionizing collision cross sec    
 30 // Ionization (PAI) model for simulation of io    
 31 // absorbers. Author: Vladimir.Grichine@cern.c    
 32 //                                                
 33 // History:                                       
 34 //                                                
 35 // 01.10.07, V.Ivanchenko create using V.Grich    
 36 // 21.11.10, V.Grichine   fVerbose and SetVerb    
 37 // 28.10.11, V.Ivanchenko Migration of excepti    
 38                                                   
 39 #ifndef G4PAIYSECTION_HH                          
 40 #define G4PAIYSECTION_HH                          
 41                                                   
 42 #include "G4ios.hh"                               
 43 #include "globals.hh"                             
 44 #include "Randomize.hh"                           
 45                                                   
 46 #include "G4SandiaTable.hh"                       
 47                                                   
 48 class G4PAIySection                               
 49 {                                                 
 50 public:                                           
 51                                                   
 52   explicit G4PAIySection();                       
 53                                                   
 54   ~G4PAIySection() = default;                     
 55                                                   
 56   void Initialize(const G4Material* material,     
 57                   G4double betaGammaSq, G4Sand    
 58                                                   
 59   void ComputeLowEnergyCof(const G4Material* m    
 60                                                   
 61   void InitPAI();                                 
 62                                                   
 63   void NormShift( G4double betaGammaSq );         
 64                                                   
 65   void SplainPAI( G4double betaGammaSq );         
 66                                                   
 67   // Physical methods                             
 68   G4double RutherfordIntegral( G4int intervalN    
 69                                G4double limitL    
 70                                G4double limitH    
 71                                                   
 72   G4double ImPartDielectricConst( G4int interv    
 73                                   G4double ene    
 74                                                   
 75   G4double RePartDielectricConst(G4double ener    
 76                                                   
 77   G4double DifPAIySection( G4int intervalNumbe    
 78                            G4double betaGammaS    
 79                                                   
 80   G4double PAIdNdxCerenkov( G4int intervalNumb    
 81                             G4double betaGamma    
 82                                                   
 83   G4double PAIdNdxPlasmon( G4int intervalNumbe    
 84                            G4double betaGammaS    
 85                                                   
 86   void     IntegralPAIySection();                 
 87   void     IntegralCerenkov();                    
 88   void     IntegralPlasmon();                     
 89                                                   
 90   G4double SumOverInterval(G4int intervalNumbe    
 91   G4double SumOverIntervaldEdx(G4int intervalN    
 92   G4double SumOverInterCerenkov(G4int interval    
 93   G4double SumOverInterPlasmon(G4int intervalN    
 94                                                   
 95   G4double SumOverBorder( G4int intervalNumber    
 96                           G4double energy         
 97   G4double SumOverBorderdEdx( G4int intervalNu    
 98                               G4double energy     
 99   G4double SumOverBordCerenkov( G4int interval    
100                                 G4double energ    
101   G4double SumOverBordPlasmon( G4int intervalN    
102                                G4double energy    
103                                                   
104   G4double GetStepEnergyLoss( G4double step );    
105   G4double GetStepCerenkovLoss( G4double step     
106   G4double GetStepPlasmonLoss( G4double step )    
107                                                   
108   G4double GetLorentzFactor(G4int j) const;       
109                                                   
110   // Inline access functions                      
111                                                   
112   inline G4int GetNumberOfGammas() const { ret    
113                                                   
114   inline G4int GetSplineSize() const { return     
115                                                   
116   inline G4int GetIntervalNumber() const { ret    
117                                                   
118   inline G4double GetEnergyInterval(G4int i){     
119                                                   
120   inline G4double GetDifPAIySection(G4int i){     
121   inline G4double GetPAIdNdxCrenkov(G4int i){     
122   inline G4double GetPAIdNdxPlasmon(G4int i){     
123                                                   
124   inline G4double GetMeanEnergyLoss() const {r    
125   inline G4double GetMeanCerenkovLoss() const     
126   inline G4double GetMeanPlasmonLoss() const {    
127                                                   
128   inline G4double GetNormalizationCof() const     
129                                                   
130   inline G4double GetPAItable(G4int i,G4int j)    
131                                                   
132   inline G4double GetSplineEnergy(G4int i) con    
133                                                   
134   inline G4double GetIntegralPAIySection(G4int    
135   inline G4double GetIntegralPAIdEdx(G4int i)     
136   inline G4double GetIntegralCerenkov(G4int i)    
137   inline G4double GetIntegralPlasmon(G4int i)     
138                                                   
139   inline void SetVerbose(G4int v) { fVerbose =    
140                                                   
141   G4PAIySection & operator=(const G4PAIySectio    
142   G4PAIySection(const G4PAIySection&) = delete    
143                                                   
144 private :                                         
145                                                   
146   void CallError(G4int i, const G4String& meth    
147                                                   
148   // Local class constants                        
149                                                   
150   static const G4double fDelta; // energy shif    
151   static const G4double fError; // error in li    
152                                                   
153   static G4int fNumberOfGammas; // = 111;         
154   static const G4double fLorentzFactor[112];      
155                                                   
156   static                                          
157   const G4int fRefGammaNumber; // The number o    
158                                                   
159   G4int    fIntervalNumber ;   //  The number     
160   G4double fNormalizationCof;  // Normalizatio    
161                                                   
162   G4double betaBohr;                              
163   G4double betaBohr4;                             
164                                                   
165   G4double fDensity;            // Current den    
166   G4double fElectronDensity;    // Current ele    
167   G4double fLowEnergyCof;       // Correction     
168   G4int    fSplineNumber;       // Current siz    
169   G4int    fVerbose;            // verbose fla    
170                                                   
171   G4SandiaTable*  fSandia;                        
172                                                   
173   G4DataVector fEnergyInterval;                   
174   G4DataVector fA1;                               
175   G4DataVector fA2;                               
176   G4DataVector fA3;                               
177   G4DataVector fA4;                               
178                                                   
179   static                                          
180   const G4int  fMaxSplineSize; // Max size of     
181                                                   
182   G4DataVector fSplineEnergy;          // ener    
183   G4DataVector fRePartDielectricConst; // Real    
184   G4DataVector fImPartDielectricConst; // Imag    
185   G4DataVector fIntegralTerm;          // Inte    
186   G4DataVector fDifPAIySection;        // Diff    
187   G4DataVector fdNdxCerenkov;          // dNdx    
188   G4DataVector fdNdxPlasmon;           // dNdx    
189                                                   
190   G4DataVector fIntegralPAIySection;   // Inte    
191   G4DataVector fIntegralPAIdEdx;       // Inte    
192   G4DataVector fIntegralCerenkov;      // Inte    
193   G4DataVector fIntegralPlasmon;       // Inte    
194                                                   
195   G4double     fPAItable[500][112];    // Outp    
196 };                                                
197                                                   
198 inline G4double G4PAIySection::GetPAItable(G4i    
199 {                                                 
200    return fPAItable[i][j];                        
201 }                                                 
202                                                   
203 inline G4double G4PAIySection::GetSplineEnergy    
204 {                                                 
205   if(i < 1 || i > fSplineNumber) { CallError(i    
206   return fSplineEnergy[i];                        
207 }                                                 
208                                                   
209 inline G4double G4PAIySection::GetIntegralPAIy    
210 {                                                 
211   if(i < 1 || i > fSplineNumber) { CallError(i    
212   return fIntegralPAIySection[i];                 
213 }                                                 
214                                                   
215 inline G4double G4PAIySection::GetIntegralPAId    
216 {                                                 
217   if(i < 1 || i > fSplineNumber) { CallError(i    
218   return fIntegralPAIdEdx[i];                     
219 }                                                 
220                                                   
221 inline G4double G4PAIySection::GetIntegralCere    
222 {                                                 
223   if(i < 1 || i > fSplineNumber) { CallError(i    
224   return fIntegralCerenkov[i];                    
225 }                                                 
226                                                   
227 inline G4double G4PAIySection::GetIntegralPlas    
228 {                                                 
229   if(i < 1 || i > fSplineNumber) { CallError(i    
230   return fIntegralPlasmon[i];                     
231 }                                                 
232                                                   
233 #endif                                            
234                                                   
235 // -----------------   end of G4PAIySection he    
236