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 53 of file G4INCLDeuteronDensity.hh.


Member Function Documentation

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

PDF for a nucleon in p space.

The distribution is normalised to 1.

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

Definition at line 108 of file G4INCLDeuteronDensity.cc.

References wavefunctionP().

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

00108                                                      {
00109     const G4double sWave = wavefunctionP(0, p);
00110     const G4double dWave = wavefunctionP(2, p);
00111     return p*p*(sWave*sWave + dWave*dWave);
00112   }

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

PDF for a nucleon in r space.

The distribution is normalised to 1.

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

Definition at line 94 of file G4INCLDeuteronDensity.cc.

References wavefunctionR().

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

00094                                                      {
00095     const G4double sWave = wavefunctionR(0, r);
00096     const G4double dWave = wavefunctionR(2, r);
00097     return r*r*(sWave*sWave + dWave*dWave);
00098   }

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

First derivative of the r-space density function.

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

Definition at line 100 of file G4INCLDeuteronDensity.cc.

References derivWavefunctionR(), G4INCL::Math::twoPi, and wavefunctionR().

00100                                                           {
00101     const G4double sWave = wavefunctionR(0, r);
00102     const G4double dWave = wavefunctionR(2, r);
00103     const G4double sWaveDeriv = derivWavefunctionR(0, r);
00104     const G4double dWaveDeriv = derivWavefunctionR(2, r);
00105     return (sWave*sWaveDeriv + dWave*dWaveDeriv) / Math::twoPi;
00106   }

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

Definition at line 134 of file G4INCLDeuteronDensity.cc.

Referenced by derivDensityR().

00134                                                                                  {
00135 // assert(l==0 || l==2); // only s- and d-waves in a deuteron
00136     const G4double r = 2. * std::max(theR, 1.e-4);
00137 
00138     G4double result = 0.;
00139     G4double fmr;
00140 
00141     for(G4int i=0; i<coeffTableSize; ++i) {
00142       fmr = r * (al+i);
00143       if(l==0) { // s-wave
00144         result += coeff1[i] * std::exp(-fmr) * (fmr + 1.);
00145       } else { // d-wave
00146         result += coeff2[i] * std::exp(-fmr) * (fmr + 4. + 9./fmr + 9./(fmr*fmr));
00147       }
00148     }
00149 
00150     result *= -normalisationR/(r*r);
00151     return result;
00152   }

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

Definition at line 154 of file G4INCLDeuteronDensity.cc.

References G4INCL::PhysicalConstants::hc.

Referenced by densityP().

00154                                                                             {
00155 // assert(l==0 || l==2); // only s- and d-waves in a deuteron
00156     const G4double q = theQ / PhysicalConstants::hc;
00157     const G4double q2 = q*q;
00158     G4double result=0.;
00159     G4double fmq, alPlusI;
00160     for(G4int i=0; i<coeffTableSize; ++i) {
00161       alPlusI = al+i;
00162       fmq = q2 + alPlusI*alPlusI;
00163       if(l==0) { // s-wave
00164         result += coeff1[i] / fmq;
00165       } else { // d-wave
00166         result += coeff2[i] / fmq;
00167       }
00168     }
00169 
00170     result *= normalisationP;
00171     return result;
00172   }

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

Definition at line 114 of file G4INCLDeuteronDensity.cc.

Referenced by densityR(), and derivDensityR().

00114                                                                             {
00115 // assert(l==0 || l==2); // only s- and d-waves in a deuteron
00116     const G4double r = 2. * std::max(theR, 1.e-4);
00117 
00118     G4double result = 0.;
00119     G4double fmr;
00120 
00121     for(G4int i=0; i<coeffTableSize; ++i) {
00122       fmr = r * (al+i);
00123       if(l==0) { // s-wave
00124         result += coeff1[i] * std::exp(-fmr);
00125       } else { // d-wave
00126         result += coeff2[i] * std::exp(-fmr) * (1.+3./fmr+3./(fmr*fmr));
00127       }
00128     }
00129 
00130     result *= normalisationR/r;
00131     return result;
00132   }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:54:07 2013 for Geant4 by  doxygen 1.4.7