#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) |
Definition at line 53 of file G4INCLDeuteronDensity.hh.
PDF for a nucleon in p space.
The distribution is normalised to 1.
p | nucleon momentum [MeV/c] |
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 }
PDF for a nucleon in r space.
The distribution is normalised to 1.
r | distance from the deuteron centre [fm] |
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 }
First derivative of the r-space density function.
r | distance from the deuteron centre [fm] |
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 }
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 }
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 }
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 }