Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
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 // $Id: G4InitXscPAI.hh 96934 2016-05-18 09:10:41Z gcosmo $
28 //
29 //
30 // G4InitXscPAI.hh -- header file
31 //
32 // History:
33 //
34 // 02.04.04, V. Grichine: 1st version based on G4PAIxSection class
35 
36 #ifndef G4INITXSCPAI_HH
37 #define G4INITXSCPAI_HH
38 
39 #include "G4ios.hh"
40 #include "globals.hh"
41 #include "Randomize.hh"
42 #include "G4OrderedTable.hh"
43 #include "G4PhysicsLogVector.hh"
44 
46 class G4SandiaTable;
47 
49 {
50 public:
51  // Constructors
52  explicit G4InitXscPAI( const G4MaterialCutsCouple* matCC);
53 
54  virtual ~G4InitXscPAI() ;
55 
56  // Methods
57  // General control functions
58 
59  void KillCloseIntervals();
60 
61  void Normalisation();
62 
63 
64  // Physical methods
65 
66 
67  G4double RutherfordIntegral( G4int intervalNumber,
68  G4double limitLow,
69  G4double limitHigh ) ;
70 
72 
73  G4double ImPartDielectricConst( G4int intervalNumber,
74  G4double energy ) ;
75 
77 
78  G4double ModuleSqDielectricConst( G4int intervalNumber,
79  G4double energy ) ;
80 
82  G4double DifPAIdEdx( G4double omega ) ;
83 
85 
87 
88  void IntegralPAIxSection(G4double bg2, G4double Tmax) ;
89  void IntegralCherenkov(G4double bg2, G4double Tmax) ;
90  void IntegralPlasmon(G4double bg2, G4double Tmax) ;
91 
92  void IntegralPAIdEdx(G4double bg2, G4double Tmax) ;
93 
94 
96 
97 
101 
102  // Inline access functions
103 
104 
106  G4int GetBinPAI() const { return fPAIbin ; }
107 
109 
111  { return (*(*fMatSandiaMatrix)[i])[j]; }
112 
119 
120 protected :
121 
122 private :
123 
124  G4InitXscPAI & operator=(const G4InitXscPAI &right) = delete;
125  G4InitXscPAI(const G4InitXscPAI&) = delete;
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
137  G4double fBetaGammaSq ; // (beta*gamma)^2
139  G4double fDensity ; // Current density
140  G4double fElectronDensity ; // Current electron (number) density
141 
142  // Arrays of Sandia coefficients
143 
146 
147  // vectors of integral cross-sections
148 
155 
156 };
157 
158 #endif
159 
160 //
161 //
G4double fTmax
G4PhysicsLogVector * fPAIxscVector
G4PhysicsLogVector * GetPAIdEdxVector() const
G4PhysicsLogVector * GetChCosSqVector() const
G4int fCurrentInterval
G4PhysicsLogVector * fPAIelectronVector
G4int fIntervalTmax
G4OrderedTable * fMatSandiaMatrix
G4double ModuleSqDielectricConst(G4int intervalNumber, G4double energy)
static const G4double fSolidDensity
G4double DifPAIdEdx(G4double omega)
G4double fDensity
G4PhysicsLogVector * fPAIphotonVector
G4PhysicsLogVector * GetPAIelectronVector() const
G4PhysicsLogVector * GetPAIphotonVector() const
G4int GetBinPAI() const
G4double RutherfordIntegral(G4int intervalNumber, G4double limitLow, G4double limitHigh)
G4double GetStepPlasmonLoss(G4double step)
void IntegralPAIdEdx(G4double bg2, G4double Tmax)
void IntegralPlasmon(G4double bg2, G4double Tmax)
G4int fIntervalNumber
void IntegralPAIxSection(G4double bg2, G4double Tmax)
static const G4int fPAIbin
G4PhysicsLogVector * GetPAIxscVector() const
G4PhysicsLogVector * fChWidthVector
G4double GetNormalizationCof() const
double G4double
Definition: G4Types.hh:76
static const G4double fDelta
G4PhysicsLogVector * fPAIdEdxVector
G4PhysicsLogVector * fChCosSqVector
G4double PAIdNdxPlasmon(G4double omega)
G4double fNormalizationCof
double energy
Definition: plottest35.C:25
G4PhysicsLogVector * GetChWidthVector() const
G4double GetStepEnergyLoss(G4double step)
G4double DifPAIxSection(G4double omega)
G4double RePartDielectricConst(G4double energy)
int G4int
Definition: G4Types.hh:78
G4double GetMatSandiaMatrix(G4int i, G4int j) const
virtual ~G4InitXscPAI()
G4double GetStepCerenkovLoss(G4double step)
G4InitXscPAI(const G4MaterialCutsCouple *matCC)
Definition: G4InitXscPAI.cc:70
G4double fElectronDensity
G4double ImPartDielectricConst(G4int intervalNumber, G4double energy)
void KillCloseIntervals()
void Normalisation()
G4double fBetaGammaSq
G4SandiaTable * fSandia
G4double PAIdNdxCherenkov(G4double omega)
G4int GetIntervalNumber() const
G4InitXscPAI & operator=(const G4InitXscPAI &right)=delete
void IntegralCherenkov(G4double bg2, G4double Tmax)
G4double IntegralTerm(G4double omega)
G4double GetPhotonLambda(G4double omega)