ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4DensityEffectCalculator.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4DensityEffectCalculator.hh
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
/*
27
* Interface to calculation of the Fermi density effect as per the method
28
* described in:
29
*
30
* R. M. Sternheimer, M. J. Berger, and S. M. Seltzer. Density
31
* effect for the ionization loss of charged particles in various sub-
32
* stances. Atom. Data Nucl. Data Tabl., 30:261, 1984.
33
*
34
* Which (among other Sternheimer references) builds on:
35
*
36
* R. M. Sternheimer. The density effect for ionization loss in
37
* materials. Phys. Rev., 88:851859, 1952.
38
*
39
* The returned values of delta are directly from the Sternheimer calculation,
40
* and not Sternheimer's popular three-part approximate parameterization
41
* introduced in the same paper.
42
*
43
* Author: Matthew Strait <straitm@umn.edu> 2019
44
*/
45
46
#ifndef G4DensityEffectCalculator_HH
47
#define G4DensityEffectCalculator_HH
48
49
#include "
globals.hh
"
50
51
class
G4Material
;
52
53
class
G4DensityEffectCalculator
54
{
55
public
:
56
57
G4DensityEffectCalculator
(
const
G4Material
*,
G4int
);
58
~G4DensityEffectCalculator
();
59
60
// The Sternheimer 'x' defined as log10(p/m) == log10(beta*gamma).
61
G4double
ComputeDensityCorrection
(
G4double
x
);
62
63
private
:
64
65
/*
66
* Given a material defined in 'par' with a plasma energy, mean excitation
67
* energy, and set of atomic energy levels ("oscillator frequencies") with
68
* occupation fractions ("oscillation strengths"), solve for the Sternheimer
69
* adjustment factor (Sternheimer 1984 eq 8) and record (into 'par') the values
70
* of the adjusted oscillator frequencies and Sternheimer constants l_i.
71
* After doing this, 'par' is ready for a calculation of delta for an
72
* arbitrary particle energy. Returns true on success, false on failure.
73
*/
74
G4double
FermiDeltaCalculation
(
G4double
x);
75
76
G4double
Newton
(
G4double
x0,
G4bool
first);
77
78
G4double
DFRho
(
G4double
);
79
80
G4double
FRho
(
G4double
);
81
82
G4double
DEll
(
G4double
);
83
84
G4double
Ell
(
G4double
);
85
86
G4double
DeltaOnceSolved
(
G4double
);
87
88
const
G4Material
*
fMaterial
;
89
G4int
fVerbose
;
90
G4int
fWarnings
;
91
92
// Number of energy levels. If a single element, this is the number
93
// of subshells. If several elements, this is the sum of the number
94
// of subshells. In principle, could include levels for molecular
95
// orbitals or other non-atomic states. The last level is always
96
// the conduction band. If the material is an insulator, set the
97
// oscillator strength for that level to zero and the energy to
98
// any value.
99
const
G4int
nlev
;
100
101
G4double
fConductivity
;
102
103
// Current Sternheimer 'x' defined as log10(p/m) == log10(beta*gamma).
104
G4double
sternx
;
105
106
// The plasma energy of the material in eV, which is simply
107
// 28.816 sqrt(density Z/A), with density in g/cc.
108
G4double
plasmaE
;
109
110
// The mean excitation energy of the material in eV, i.e. the 'I' in the
111
// Bethe energy loss formula.
112
G4double
meanexcite
;
113
114
// Sternheimer's "oscillator strengths", which are simply the fraction
115
// of electrons in a given energy level. For a single element, this is
116
// the fraction of electrons in a subshell. For a compound or mixture,
117
// it is weighted by the number fraction of electrons contributed by
118
// each element, e.g. for water, oxygen's electrons are given 8/10 of the
119
// weight.
120
G4double
*
sternf
;
121
122
// Energy levels. Can be found for free atoms in, e.g., T. A. Carlson.
123
// Photoelectron and Auger Spectroscopy. Plenum Press, New York and London,
124
// 1985. Available in a convenient form in G4AtomicShells.cc.
125
//
126
// Sternheimer 1984 implies that the energy level for conduction electrons
127
// (the final element of this array) should be set to zero, although the
128
// computation could be run with other values.
129
G4double
*
levE
;
130
131
/***** Results of intermediate calculations *****/
132
133
// The Sternheimer parameters l_i which appear in Sternheimer 1984 eq(1).
134
G4double
*
sternl
;
135
136
// The adjusted energy levels, as found using Sternheimer 1984 eq(8).
137
G4double
*
sternEbar
;
138
};
139
140
#endif
geant4
tree
geant4-10.6-release
source
materials
include
G4DensityEffectCalculator.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:22
using
1.8.2 with
ECCE GitHub integration