Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4InitXscPAI.hh
Go to the documentation of this file.
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$
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
46class G4SandiaTable;
47
49{
50public:
51 // Constructors
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
79 G4double energy ) ;
80
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
105 G4int GetIntervalNumber() const { return fIntervalNumber ; }
106 G4int GetBinPAI() const { return fPAIbin ; }
107
108 G4double GetNormalizationCof() const { return fNormalizationCof ; }
109
111 { return (*(*fMatSandiaMatrix)[i])[j]; }
112
113 G4PhysicsLogVector* GetPAIxscVector() const { return fPAIxscVector;}
114 G4PhysicsLogVector* GetPAIdEdxVector() const { return fPAIdEdxVector;}
115 G4PhysicsLogVector* GetPAIphotonVector() const { return fPAIphotonVector;}
116 G4PhysicsLogVector* GetPAIelectronVector() const { return fPAIelectronVector;}
117 G4PhysicsLogVector* GetChCosSqVector() const { return fChCosSqVector;}
118 G4PhysicsLogVector* GetChWidthVector() const { return fChWidthVector;}
119
120protected :
121
122private :
123
124 G4InitXscPAI & operator=(const G4InitXscPAI &right);
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 //////////////////////
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
G4double RutherfordIntegral(G4int intervalNumber, G4double limitLow, G4double limitHigh)
G4double GetMatSandiaMatrix(G4int i, G4int j) const
G4double GetPhotonLambda(G4double omega)
void IntegralCherenkov(G4double bg2, G4double Tmax)
void IntegralPAIxSection(G4double bg2, G4double Tmax)
G4PhysicsLogVector * GetPAIdEdxVector() const
G4PhysicsLogVector * GetPAIphotonVector() const
G4int GetBinPAI() const
G4double GetStepCerenkovLoss(G4double step)
G4double ModuleSqDielectricConst(G4int intervalNumber, G4double energy)
G4double DifPAIdEdx(G4double omega)
G4double GetNormalizationCof() const
G4double PAIdNdxCherenkov(G4double omega)
G4PhysicsLogVector * GetPAIelectronVector() const
G4double GetStepEnergyLoss(G4double step)
G4PhysicsLogVector * GetPAIxscVector() const
void IntegralPlasmon(G4double bg2, G4double Tmax)
G4double IntegralTerm(G4double omega)
G4double GetStepPlasmonLoss(G4double step)
G4int GetIntervalNumber() const
G4double ImPartDielectricConst(G4int intervalNumber, G4double energy)
G4double DifPAIxSection(G4double omega)
G4PhysicsLogVector * GetChCosSqVector() const
G4double RePartDielectricConst(G4double energy)
void IntegralPAIdEdx(G4double bg2, G4double Tmax)
G4PhysicsLogVector * GetChWidthVector() const
void KillCloseIntervals()
virtual ~G4InitXscPAI()
G4double PAIdNdxPlasmon(G4double omega)
void Normalisation()