ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4InitXscPAI.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4InitXscPAI.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 //
28 //
29 // G4InitXscPAI.hh -- header file
30 //
31 // History:
32 //
33 // 02.04.04, V. Grichine: 1st version based on G4PAIxSection class
34 
35 #ifndef G4INITXSCPAI_HH
36 #define G4INITXSCPAI_HH
37 
38 #include "G4ios.hh"
39 #include "globals.hh"
40 #include "Randomize.hh"
41 #include "G4OrderedTable.hh"
42 #include "G4PhysicsLogVector.hh"
43 
45 class G4SandiaTable;
46 
48 {
49 public:
50  // Constructors
51  explicit G4InitXscPAI( const G4MaterialCutsCouple* matCC);
52 
53  virtual ~G4InitXscPAI() ;
54 
55  // Methods
56  // General control functions
57 
58  void KillCloseIntervals();
59 
60  void Normalisation();
61 
62 
63  // Physical methods
64 
65 
66  G4double RutherfordIntegral( G4int intervalNumber,
67  G4double limitLow,
68  G4double limitHigh ) ;
69 
71 
72  G4double ImPartDielectricConst( G4int intervalNumber,
73  G4double energy ) ;
74 
76 
77  G4double ModuleSqDielectricConst( G4int intervalNumber,
78  G4double energy ) ;
79 
81  G4double DifPAIdEdx( G4double omega ) ;
82 
84 
86 
87  void IntegralPAIxSection(G4double bg2, G4double Tmax) ;
88  void IntegralCherenkov(G4double bg2, G4double Tmax) ;
89  void IntegralPlasmon(G4double bg2, G4double Tmax) ;
90 
91  void IntegralPAIdEdx(G4double bg2, G4double Tmax) ;
92 
93 
95 
96 
100 
101  // Inline access functions
102 
103 
105  G4int GetBinPAI() const { return fPAIbin ; }
106 
108 
110  { return (*(*fMatSandiaMatrix)[i])[j]; }
111 
118 
119 protected :
120 
121 private :
122 
123  G4InitXscPAI & operator=(const G4InitXscPAI &right) = delete;
124  G4InitXscPAI(const G4InitXscPAI&) = delete;
125 
126  // Local class constants
127 
128  static const G4double fDelta ; // energy shift from interval border = 0.001
129  static const G4int fPAIbin;
130  static const G4double fSolidDensity; // ~the border between gases and solids
131 
132  G4int fIntervalNumber; // The number of energy intervals
133  G4double fNormalizationCof; // Normalization cof for PhotoAbsorptionXsection
136  G4double fBetaGammaSq ; // (beta*gamma)^2
138  G4double fDensity ; // Current density
139  G4double fElectronDensity ; // Current electron (number) density
140 
141  // Arrays of Sandia coefficients
142 
145 
146  // vectors of integral cross-sections
147 
154 
155 };
156 
157 #endif
158 
159 //
160 //