Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4INCL::DeuteronDensity Class Reference

Static class for the deuteron density. More...

#include <G4INCLDeuteronDensity.hh>

Static Public Member Functions

static G4double densityR (const G4double r)
 PDF for a nucleon in r space.
 
static G4double derivDensityR (const G4double r)
 First derivative of the r-space density function.
 
static G4double densityP (const G4double p)
 PDF for a nucleon in p space.
 
static G4double wavefunctionR (const G4int l, const G4double r)
 
static G4double wavefunctionP (const G4int l, const G4double p)
 
static G4double derivWavefunctionR (const G4int l, const G4double r)
 

Detailed Description

Static class for the deuteron density.

Definition at line 55 of file G4INCLDeuteronDensity.hh.

Member Function Documentation

◆ densityP()

G4double G4INCL::DeuteronDensity::densityP ( const G4double  p)
static

PDF for a nucleon in p space.

The distribution is normalised to 1.

Parameters
pnucleon momentum [MeV/c]
Returns
4 * pi * p^2 * d|psi|^2/dp

Definition at line 110 of file G4INCLDeuteronDensity.cc.

110 {
111 const G4double sWave = wavefunctionP(0, p);
112 const G4double dWave = wavefunctionP(2, p);
113 return p*p*(sWave*sWave + dWave*dWave);
114 }
double G4double
Definition: G4Types.hh:64
static G4double wavefunctionP(const G4int l, const G4double p)

Referenced by G4INCL::NuclearDensityFunctions::ParisP::operator()().

◆ densityR()

G4double G4INCL::DeuteronDensity::densityR ( const G4double  r)
static

PDF for a nucleon in r space.

The distribution is normalised to 1.

Parameters
rdistance from the deuteron centre [fm]
Returns
4 * pi * r^2 * |psi|^2

Definition at line 96 of file G4INCLDeuteronDensity.cc.

96 {
97 const G4double sWave = wavefunctionR(0, r);
98 const G4double dWave = wavefunctionR(2, r);
99 return r*r*(sWave*sWave + dWave*dWave);
100 }
static G4double wavefunctionR(const G4int l, const G4double r)

Referenced by G4INCL::NuclearDensityFunctions::ParisR::operator()().

◆ derivDensityR()

G4double G4INCL::DeuteronDensity::derivDensityR ( const G4double  r)
static

First derivative of the r-space density function.

Parameters
rdistance from the deuteron centre [fm]
Returns
d|psi|^2/dr

Definition at line 102 of file G4INCLDeuteronDensity.cc.

102 {
103 const G4double sWave = wavefunctionR(0, r);
104 const G4double dWave = wavefunctionR(2, r);
105 const G4double sWaveDeriv = derivWavefunctionR(0, r);
106 const G4double dWaveDeriv = derivWavefunctionR(2, r);
107 return (sWave*sWaveDeriv + dWave*dWaveDeriv) / Math::twoPi;
108 }
static G4double derivWavefunctionR(const G4int l, const G4double r)
const G4double twoPi

◆ derivWavefunctionR()

G4double G4INCL::DeuteronDensity::derivWavefunctionR ( const G4int  l,
const G4double  r 
)
static

Definition at line 136 of file G4INCLDeuteronDensity.cc.

136 {
137// assert(l==0 || l==2); // only s- and d-waves in a deuteron
138 const G4double r = 2. * std::max(theR, 1.e-4);
139
140 G4double result = 0.;
141 G4double fmr;
142
143 for(G4int i=0; i<coeffTableSize; ++i) {
144 fmr = r * (al+i);
145 if(l==0) { // s-wave
146 result += coeff1[i] * std::exp(-fmr) * (fmr + 1.);
147 } else { // d-wave
148 result += coeff2[i] * std::exp(-fmr) * (fmr + 4. + 9./fmr + 9./(fmr*fmr));
149 }
150 }
151
152 result *= -normalisationR/(r*r);
153 return result;
154 }
int G4int
Definition: G4Types.hh:66

Referenced by derivDensityR().

◆ wavefunctionP()

G4double G4INCL::DeuteronDensity::wavefunctionP ( const G4int  l,
const G4double  p 
)
static

Definition at line 156 of file G4INCLDeuteronDensity.cc.

156 {
157// assert(l==0 || l==2); // only s- and d-waves in a deuteron
158 const G4double q = theQ / PhysicalConstants::hc;
159 const G4double q2 = q*q;
160 G4double result=0.;
161 G4double fmq, alPlusI;
162 for(G4int i=0; i<coeffTableSize; ++i) {
163 alPlusI = al+i;
164 fmq = q2 + alPlusI*alPlusI;
165 if(l==0) { // s-wave
166 result += coeff1[i] / fmq;
167 } else { // d-wave
168 result += coeff2[i] / fmq;
169 }
170 }
171
172 result *= normalisationP;
173 return result;
174 }
const G4double hc
[MeV*fm]

Referenced by densityP().

◆ wavefunctionR()

G4double G4INCL::DeuteronDensity::wavefunctionR ( const G4int  l,
const G4double  r 
)
static

Definition at line 116 of file G4INCLDeuteronDensity.cc.

116 {
117// assert(l==0 || l==2); // only s- and d-waves in a deuteron
118 const G4double r = 2. * std::max(theR, 1.e-4);
119
120 G4double result = 0.;
121 G4double fmr;
122
123 for(G4int i=0; i<coeffTableSize; ++i) {
124 fmr = r * (al+i);
125 if(l==0) { // s-wave
126 result += coeff1[i] * std::exp(-fmr);
127 } else { // d-wave
128 result += coeff2[i] * std::exp(-fmr) * (1.+3./fmr+3./(fmr*fmr));
129 }
130 }
131
132 result *= normalisationR/r;
133 return result;
134 }

Referenced by densityR(), and derivDensityR().


The documentation for this class was generated from the following files: