Geant4 11.2.2
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 "G4NistManager.hh"
66
67//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
68
70{
71public:
72
73 explicit G4IonCoulombCrossSection();
74
76
77 void Initialise(const G4ParticleDefinition*, G4double cosThetaLim);
78
80
82
83 void SetupKinematic(G4double kinEnergy, G4double tmass);
84
85 void SetupTarget(G4double Z, G4double kinEnergy, G4int heavycorr);
86
87 inline void SetupParticle(const G4ParticleDefinition*);
88
89 inline G4double GetMomentum2();
90
92 (const G4IonCoulombCrossSection &right) = delete;
94
95private:
96
97 void SetScreenRSquare(G4int iz);
98
99 const G4ParticleDefinition* theProton;
100
101 G4NistManager* fNistManager;
102 G4Pow* fG4pow;
103
104 G4double coeff;
105
106 //cost - min - max
107 G4double cosThetaMin;// def 1.0
108 G4double cosThetaMax;// def -1.0
109 //SetupTarget
110 G4double cosTetMinNuc;// -->cosThetaMin
111 G4double cosTetMaxNuc;// -->cosThetaMax
112
113 //cross section
114 G4double nucXSection;
115
116 //energy
117 G4double etag;
118
119 // projectile........................
120 const G4ParticleDefinition* particle;
121
122 G4double chargeSquare;
123 G4double spin;
124 G4double mass;
125
126 //lab of incedent particle
127 G4double tkinLab;
128 G4double momLab2;
129 G4double invbetaLab2;
130
131 //relative system with nucleus
132 G4double tkin;
133 G4double mom2;
134 G4double invbeta2;
135
136 // target nucleus
137 G4double targetZ;
138 G4double targetMass;
139 G4double screenZ;
140 G4double alpha2;
141 G4double ScreenRSquare;
142};
143
144//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
145
146inline
148{
149 particle = p;
150 mass = particle->GetPDGMass();
151 spin = particle->GetPDGSpin();
152 if(0.0 != spin) { spin = 0.5; }
153 G4double q = particle->GetPDGCharge()/CLHEP::eplus;
154 chargeSquare = q*q;
155 tkin = 0.0;
156}
157//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
158
160{
161 return mom2;
162}
163//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
164
165#endif
166
167
double G4double
Definition G4Types.hh:83
int G4int
Definition G4Types.hh:85
void Initialise(const G4ParticleDefinition *, G4double cosThetaLim)
G4IonCoulombCrossSection(const G4IonCoulombCrossSection &)=delete
void SetupTarget(G4double Z, G4double kinEnergy, G4int heavycorr)
~G4IonCoulombCrossSection()=default
void SetupKinematic(G4double kinEnergy, G4double tmass)
void SetupParticle(const G4ParticleDefinition *)
Definition G4Pow.hh:49