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
G4ScreeningMottCrossSection.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// G4ScreeningMottCrossSection.hh
27//-------------------------------------------------------------------
28//
29// GEANT4 Class header file
30//
31// File name: G4ScreeningMottCrossSection
32//
33// Author: Cristina Consolandi
34//
35// Creation date: 20.10.2011
36//
37// Modifications:
38// 27-05-2012 Added Analytic Fitting to the Mott Cross Section by means of G4MottCoefficients class.
39//
40//
41// Class Description:
42// Computation of electron Coulomb Scattering Cross Section.
43// Suitable for high energy electrons and light target materials.
44//
45// Reference:
46// M.J. Boschini et al.
47// "Non Ionizing Energy Loss induced by Electrons in the Space Environment"
48// Proc. of the 13th International Conference on Particle Physics and Advanced Technology
49// (13th ICPPAT, Como 3-7/10/2011), World Scientific (Singapore).
50// Available at: http://arxiv.org/abs/1111.4042v4
51//
52// 1) Mott Differential Cross Section Approximation:
53// For Target material up to Z=92 (U):
54// As described in http://arxiv.org/abs/1111.4042v4
55// par. 2.1 , eq. (16)-(17)
56// Else (Z>92):
57// W. A. McKinley and H. Fashbach, Phys. Rev. 74, (1948) 1759.
58// 2) Screening coefficient:
59// vomn G. Moliere, Z. Naturforsh A2 (1947), 133-145; A3 (1948), 78.
60// 3) Nuclear Form Factor:
61// A.V. Butkevich et al. Nucl. Instr. and Meth. in Phys. Res. A 488 (2002), 282-294.
62//
63// ----------------------------------------------------------------------------------------
64
65//
66#ifndef G4ScreeningMottCrossSection_h
67#define G4ScreeningMottCrossSection_h 1
68
69//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
70
71
72#include "G4MottCoefficients.hh"
73#include "globals.hh"
74#include "G4Material.hh"
75#include "G4Element.hh"
76#include "G4ElementVector.hh"
77#include "G4NistManager.hh"
78#include "G4ThreeVector.hh"
79#include "G4Pow.hh"
80#include "G4LossTableManager.hh"
81
83
84//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
85
87{
88
89public:
90
92
94
95 void Initialise(const G4ParticleDefinition*, G4double cosThetaLim);
96
99
100
101
102 inline void SetupParticle(const G4ParticleDefinition*);
103 void SetupKinematic(G4double kinEnergy ,G4double Z);
104
107
108 inline G4double GetMom2CM()const;
109 inline G4double GetMom2Lab()const;
110 inline G4double GetTrec() const;
111 inline G4double GetScreeningCoefficient() const;
112 inline G4double GetTotalCross() const;
113
114
115
121
122
123private:
124
127
128
129 G4NistManager* fNistManager;
130 G4MottCoefficients * mottcoeff;
131
132 G4double TotalCross;
133
134 //cost - min - max
135 G4double cosThetaMin;// def 1.0
136 G4double cosThetaMax;// def -1.0
137
138 G4double cosTetMinNuc;
139 G4double cosTetMaxNuc;
140
141
142 //energy cut
143 G4double ecut;
144 G4double etag;
145
146 // projectile........................
147 const G4ParticleDefinition* particle;
148
149 G4double spin;
150 G4double mass;
151
152 //lab of incedent particle
153 G4double tkinLab;
154 G4double momLab2;
155 G4double invbetaLab2;
156
157 //relative system with nucleus
158 G4double mu_rel;
159 G4double tkin;
160 G4double mom2;
161 G4double invbeta2;
162 G4double beta;
163 G4double gamma;
164
165
166 // target nucleus
167 G4double targetZ;
168 G4double targetA;
169 G4double targetMass;
170 G4double Trec;
171 G4double As;
172 G4double coeffb[5][6];
173
174 //constants
175 G4double alpha;
176 G4double htc2;
177 G4double e2;
178
179};
180
181
182//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
183
185{
186 particle = p;
187 mass = particle->GetPDGMass();
188 spin = particle->GetPDGSpin();
189 if(0.0 != spin) { spin = 0.5; }
190 tkin = 0.0;
191}
192//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
193
194
196{
197 return mom2;
198}
199//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
200
201
203{
204 return momLab2;
205}
206
207
208//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
209
211{
212 return Trec;
213}
214
215//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
216
218{
219 return As;
220}
221
222
223//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
224
226{
227 return TotalCross;
228}
229
230//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
231
232#endif
233
234
double G4double
Definition: G4Types.hh:64
void SetupKinematic(G4double kinEnergy, G4double Z)
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
void SetupParticle(const G4ParticleDefinition *)