Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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// G4InitXscPAI.hh -- header file
27//
28// History:
29//
30// 02.04.04, V. Grichine: 1st version based on G4PAIxSection class
31
32#ifndef G4INITXSCPAI_HH
33#define G4INITXSCPAI_HH
34
35#include "G4ios.hh"
36#include "globals.hh"
37#include "Randomize.hh"
38#include "G4OrderedTable.hh"
39#include "G4PhysicsLogVector.hh"
40
42class G4SandiaTable;
43
45{
46public:
47 // Constructors
48 explicit G4InitXscPAI( const G4MaterialCutsCouple* matCC);
49
51
52 // Methods
53 // General control functions
54
55 void KillCloseIntervals();
56
57 void Normalisation();
58
59 // Physical methods
60 G4double RutherfordIntegral( G4int intervalNumber,
61 G4double limitLow,
62 G4double limitHigh ) ;
63
65
66 G4double ImPartDielectricConst( G4int intervalNumber,
67 G4double energy ) ;
68
70
72 G4double energy ) ;
73
76
78
80
81 void IntegralPAIxSection(G4double bg2, G4double Tmax) ;
82 void IntegralCherenkov(G4double bg2, G4double Tmax) ;
83 void IntegralPlasmon(G4double bg2, G4double Tmax) ;
84
85 void IntegralPAIdEdx(G4double bg2, G4double Tmax) ;
86
88
92
93 // Inline access functions
94
95
96 G4int GetIntervalNumber() const { return fIntervalNumber ; }
97 G4int GetBinPAI() const { return fPAIbin ; }
98
99 G4double GetNormalizationCof() const { return fNormalizationCof ; }
100
102 { return (*(*fMatSandiaMatrix)[i])[j]; }
103
104 G4PhysicsLogVector* GetPAIxscVector() const { return fPAIxscVector;}
105 G4PhysicsLogVector* GetPAIdEdxVector() const { return fPAIdEdxVector;}
106 G4PhysicsLogVector* GetPAIphotonVector() const { return fPAIphotonVector;}
107 G4PhysicsLogVector* GetPAIelectronVector() const { return fPAIelectronVector;}
108 G4PhysicsLogVector* GetChCosSqVector() const { return fChCosSqVector;}
109 G4PhysicsLogVector* GetChWidthVector() const { return fChWidthVector;}
110
111 G4InitXscPAI & operator=(const G4InitXscPAI &right) = delete;
112 G4InitXscPAI(const G4InitXscPAI&) = delete;
113
114private :
115
116 // Local class constants
117
118 static const G4double fDelta ; // energy shift from interval border = 0.001
119 static const G4int fPAIbin;
120 static const G4double fSolidDensity; // ~the border between gases and solids
121
122 G4int fIntervalNumber; // The number of energy intervals
123 G4double fNormalizationCof; // Normalization cof for PhotoAbsorptionXsection
124 G4int fCurrentInterval;
125 G4int fIntervalTmax;
126 G4double fBetaGammaSq ; // (beta*gamma)^2
127 G4double fTmax;
128 G4double fDensity ; // Current density
129 G4double fElectronDensity ; // Current electron (number) density
130
131 // Arrays of Sandia coefficients
132 G4OrderedTable* fMatSandiaMatrix;
133 G4SandiaTable* fSandia;
134
135 // vectors of integral cross-sections
136 G4PhysicsLogVector* fPAIxscVector;
137 G4PhysicsLogVector* fPAIdEdxVector;
138 G4PhysicsLogVector* fPAIphotonVector;
139 G4PhysicsLogVector* fPAIelectronVector;
140 G4PhysicsLogVector* fChCosSqVector;
141 G4PhysicsLogVector* fChWidthVector;
142};
143
144#endif
145
146//
147//
148///////////////// end of G4InitXscPAI header file //////////////////////
double G4double
Definition G4Types.hh:83
int G4int
Definition G4Types.hh:85
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)
G4InitXscPAI(const G4InitXscPAI &)=delete
G4PhysicsLogVector * GetPAIelectronVector() const
G4double GetStepEnergyLoss(G4double step)
G4InitXscPAI & operator=(const G4InitXscPAI &right)=delete
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)
G4InitXscPAI(const G4MaterialCutsCouple *matCC)
G4double DifPAIxSection(G4double omega)
G4PhysicsLogVector * GetChCosSqVector() const
G4double RePartDielectricConst(G4double energy)
void IntegralPAIdEdx(G4double bg2, G4double Tmax)
G4PhysicsLogVector * GetChWidthVector() const
void KillCloseIntervals()
G4double PAIdNdxPlasmon(G4double omega)
void Normalisation()