source: trunk/source/processes/electromagnetic/standard/include/G4InitXscPAI.hh@ 1192

Last change on this file since 1192 was 1007, checked in by garnier, 17 years ago

update to geant4.9.2

File size: 5.2 KB
Line 
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// $Id: G4InitXscPAI.hh,v 1.8 2006/06/29 19:50:22 gunter Exp $
28// GEANT4 tag $Name: geant4-09-02 $
29//
30//
31// G4InitXscPAI.hh -- header file
32//
33// History:
34//
35// 02.04.04, V. Grichine: 1st version based on G4PAIxSection class
36
37#ifndef G4INITXSCPAI_HH
38#define G4INITXSCPAI_HH
39
40#include "G4ios.hh"
41#include "globals.hh"
42#include "Randomize.hh"
43#include "G4OrderedTable.hh"
44#include "G4PhysicsLogVector.hh"
45
46class G4MaterialCutsCouple;
47class G4SandiaTable;
48
49class G4InitXscPAI
50{
51public:
52 // Constructors
53 G4InitXscPAI( const G4MaterialCutsCouple* matCC);
54
55
56
57 virtual ~G4InitXscPAI() ;
58
59 // Methods
60 // General control functions
61
62 void KillCloseIntervals();
63
64 void Normalisation();
65
66
67 // Physical methods
68
69
70 G4double RutherfordIntegral( G4int intervalNumber,
71 G4double limitLow,
72 G4double limitHigh ) ;
73
74 G4double IntegralTerm(G4double omega);
75
76 G4double ImPartDielectricConst( G4int intervalNumber,
77 G4double energy ) ;
78
79 G4double RePartDielectricConst(G4double energy) ;
80
81 G4double ModuleSqDielectricConst( G4int intervalNumber,
82 G4double energy ) ;
83
84 G4double DifPAIxSection( G4double omega ) ;
85 G4double DifPAIdEdx( G4double omega ) ;
86
87 G4double PAIdNdxCherenkov( G4double omega ) ;
88
89 G4double PAIdNdxPlasmon( G4double omega ) ;
90
91 void IntegralPAIxSection(G4double bg2, G4double Tmax) ;
92 void IntegralCherenkov(G4double bg2, G4double Tmax) ;
93 void IntegralPlasmon(G4double bg2, G4double Tmax) ;
94
95 void IntegralPAIdEdx(G4double bg2, G4double Tmax) ;
96
97
98 G4double GetPhotonLambda( G4double omega ) ;
99
100
101 G4double GetStepEnergyLoss( G4double step ) ;
102 G4double GetStepCerenkovLoss( G4double step ) ;
103 G4double GetStepPlasmonLoss( G4double step ) ;
104
105 // Inline access functions
106
107
108 G4int GetIntervalNumber() const { return fIntervalNumber ; }
109 G4int GetBinPAI() const { return fPAIbin ; }
110
111 G4double GetNormalizationCof() const { return fNormalizationCof ; }
112
113 G4double GetMatSandiaMatrix(G4int i, G4int j) const
114 { return (*(*fMatSandiaMatrix)[i])[j]; }
115
116 G4PhysicsLogVector* GetPAIxscVector() const { return fPAIxscVector;}
117 G4PhysicsLogVector* GetPAIdEdxVector() const { return fPAIdEdxVector;}
118 G4PhysicsLogVector* GetPAIphotonVector() const { return fPAIphotonVector;}
119 G4PhysicsLogVector* GetPAIelectronVector() const { return fPAIelectronVector;}
120 G4PhysicsLogVector* GetChCosSqVector() const { return fChCosSqVector;}
121 G4PhysicsLogVector* GetChWidthVector() const { return fChWidthVector;}
122
123protected :
124
125private :
126
127 // Local class constants
128
129 static const G4double fDelta ; // energy shift from interval border = 0.001
130 static const G4int fPAIbin;
131 static const G4double fSolidDensity; // ~the border between gases and solids
132
133 G4int fIntervalNumber; // The number of energy intervals
134 G4double fNormalizationCof; // Normalization cof for PhotoAbsorptionXsection
135 G4int fCurrentInterval;
136 G4int fIntervalTmax;
137 G4double fBetaGammaSq ; // (beta*gamma)^2
138 G4double fTmax;
139 G4double fDensity ; // Current density
140 G4double fElectronDensity ; // Current electron (number) density
141
142 // Arrays of Sandia coefficients
143
144 G4OrderedTable* fMatSandiaMatrix;
145 G4SandiaTable* fSandia;
146
147 // vectors of integral cross-sections
148
149 G4PhysicsLogVector* fPAIxscVector;
150 G4PhysicsLogVector* fPAIdEdxVector;
151 G4PhysicsLogVector* fPAIphotonVector;
152 G4PhysicsLogVector* fPAIelectronVector;
153 G4PhysicsLogVector* fChCosSqVector;
154 G4PhysicsLogVector* fChWidthVector;
155
156};
157
158#endif
159
160//
161//
162///////////////// end of G4InitXscPAI header file //////////////////////
Note: See TracBrowser for help on using the repository browser.