Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4IonCoulombCrossSection.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// G4IonCoulombCrossSection.hh
27//-------------------------------------------------------------------
28//
29// GEANT4 Class header file
30//
31// File name: G4IonCoulombCrossSection
32//
33// Author: Cristina Consolandi
34//
35// Creation date: 05.10.2010 from G4eCoulombScatteringModel
36//
37// Class Description:
38// Computation of Screen-Coulomb Cross Section
39// for protons, alpha and heavy Ions
40//
41//
42// Reference:
43// M.J. Boschini et al. "Nuclear and Non-Ionizing Energy-Loss
44// for Coulomb Scattered Particles from Low Energy up to Relativistic
45// Regime in Space Radiation Environment"
46// Accepted for publication in the Proceedings of the ICATPP Conference
47// on Cosmic Rays for Particle and Astroparticle Physics, Villa Olmo, 7-8
48// October, 2010, to be published by World Scientific (Singapore).
49//
50// Available for downloading at:
51// http://arxiv.org/abs/1011.4822
52//
53// -------------------------------------------------------------------
54
55//
56#ifndef G4IonCoulombCrossSection_h
57#define G4IonCoulombCrossSection_h 1
58
59//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
60
62
63#include "globals.hh"
64#include "G4Material.hh"
65#include "G4Element.hh"
66#include "G4ElementVector.hh"
67#include "G4NistManager.hh"
68#include "G4ThreeVector.hh"
69#include "G4Pow.hh"
70#include "G4LossTableManager.hh"
71
73
74//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
75
77{
78
79public:
80
82
84
85 void Initialise(const G4ParticleDefinition*, G4double cosThetaLim);
86
88
90
91 inline void SetupParticle(const G4ParticleDefinition*);
92
93 void SetupKinematic(G4double kinEnergy, G4double cut,G4int iz);
94
95 void SetupTarget(G4double Z, G4double kinEnergy,G4int heavycorr);
96
97 inline G4double GetMomentum2();
98
99private:
100 void SetScreenRSquare(G4int iz);
101
102
103 G4IonCoulombCrossSection & operator=(const G4IonCoulombCrossSection &right);
105
106
107
108 const G4ParticleDefinition* theProton;
109
110 G4NistManager* fNistManager;
111
112protected:
114
115 //cost - min - max
118
119 //SetupTarget
120 G4double cosTetMinNuc;// -->cosThetaMin
121 G4double cosTetMaxNuc;// -->cosThetaMax
122
123
124 //cross section
126
127 //energy cut
130
131 // projectile........................
133
137
138 //lab of incedent particle
142
143 //relative system with nucleus
147
148 // target nucleus
152
153
154private:
155
156 G4double alpha2;
157 G4double ScreenRSquare;
158
159};
160
161
162//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
163
165{
166 particle = p;
169 if(0.0 != spin) { spin = 0.5; }
170 G4double q = std::fabs(particle->GetPDGCharge()/CLHEP::eplus);
171 chargeSquare = q*q;
172 tkin = 0.0;
173}
174//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
175
176
178 return mom2;
179}
180//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
181
182#endif
183
184
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
void SetupTarget(G4double Z, G4double kinEnergy, G4int heavycorr)
void SetupKinematic(G4double kinEnergy, G4double cut, G4int iz)
const G4ParticleDefinition * particle
void SetupParticle(const G4ParticleDefinition *)
G4double GetPDGCharge() const