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
G4eSingleCoulombScatteringModel.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// G4eSingleCoulombScatteringModel.hh
27// -------------------------------------------------------------------
28//
29// GEANT4 Class header file
30//
31// File name: G4eSingleCoulombScatteringModel
32//
33// Author: Cristina Consolandi
34//
35// Creation date: 20.10.2011
36//
37// Class Description:
38// Single Scattering model for electron-nuclei interaction.
39// Suitable for high energy electrons and low scattering angles.
40//
41// Reference:
42// M.J. Boschini et al.
43// "Non Ionizing Energy Loss induced by Electrons in the Space Environment"
44// Proc. of the 13th International Conference on Particle Physics and Advanced Technology
45// (13th ICPPAT, Como 3-7/10/2011), World Scientific (Singapore).
46// Available at: http://arxiv.org/abs/1111.4042v4
47//
48//
49// -------------------------------------------------------------------
50//
51
52#ifndef G4eSingleCoulombScatteringModel_h
53#define G4eSingleCoulombScatteringModel_h 1
54
55#include "G4VEmModel.hh"
56#include "globals.hh"
57#include "G4NistManager.hh"
59
60#include <vector>
61using namespace std;
62
65
67{
68
69public:
70
71 G4eSingleCoulombScatteringModel(const G4String& nam = "eSingleCoulombScattering");
72
74
75 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
76
79 G4double kinEnergy,
80 G4double Z,
81 G4double A,
82 G4double cut,
83 G4double emax);
84
85
86
87
88
89
90 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
92 const G4DynamicParticle*,
93 G4double tmin,
94 G4double maxEnergy);
95
96 inline void SetRecoilThreshold(G4double eth);
97
98
99
100protected:
101
102
103 inline void DefineMaterial(const G4MaterialCutsCouple*);
104 inline void SetupParticle(const G4ParticleDefinition*);
105
106
107
108private:
109
110
111 // hide assignment operator
114
115
116protected:
117
118
123
124 const std::vector<G4double>* pCuts;
129
130
133
134
135 // projectile
139
140
141private:
142
143 G4bool isInitialised;
144
145};
146
147//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
149{
150 if(cup != currentCouple) {
151 currentCouple = cup;
154
155 }
156}
157
158//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
159
160inline
162{
163 if(p != particle) {
164 particle = p;
167 }
168}
169//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
170
172{
173 recoilThreshold = eth;
174}
175
176//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
177
178#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
const G4Material * GetMaterial() const
void SetupParticle(const G4ParticleDefinition *)
void SetupParticle(const G4ParticleDefinition *)
void DefineMaterial(const G4MaterialCutsCouple *)
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A, G4double cut, G4double emax)