34#define INCLXX_IN_GEANT4_MODE 1
52 sampleOneProton(&
ParticleSampler::sampleOneParticleWithoutRPCorrelation),
53 sampleOneNeutron(&
ParticleSampler::sampleOneParticleWithoutRPCorrelation),
117 theList.resize(
theA);
127 Particle *p = (this->*sampleOneParticle)(type);
139 theList[0] = aProton;
140 theList[1] = aNeutron;
149 const G4double momentumRatio = momentumAbs/theFermiMomentum;
162 return new Particle(t, momentumVector, positionVector);
G4double S(G4double temp)
Class for sampling particles in a nucleus.
Class for interpolating the of a 1-dimensional function.
G4double getMaxRFromP(const ParticleType t, const G4double p) const
Get the maximum allowed radius for a given momentum.
G4double getFermiMomentum(const Particle *const p) const
Return the Fermi momentum for a particle.
void setPotential(NuclearPotential::INuclearPotential const *const p)
Setter for thePotential.
~ParticleSampler()
Destructor.
const G4int theA
Mass number.
ParticleSamplerMethod sampleOneNeutron
Sample a list of particles.
ParticleSamplerMethod sampleOneProton
Sample a list of particles.
G4double rpCorrelationCoefficient[UnknownParticle]
Correlation coefficients for the r-p correlation.
void sampleParticlesIntoList(ThreeVector const &position, ParticleList &theList)
Particle * sampleOneParticleWithFuzzyRPCorrelation(const ParticleType t) const
Sample one particle with a fuzzy rp-correlation.
Particle * sampleOneParticleWithoutRPCorrelation(const ParticleType t) const
Sample one particle not taking into account the rp-correlation.
ParticleSampler(const G4int A, const G4int Z, const G4int S)
Constructor.
void setDensity(NuclearDensity const *const d)
Setter for theDensity.
Particle * sampleOneParticleWithRPCorrelation(const ParticleType t) const
Sample one particle taking into account the rp-correlation.
NuclearDensity const * theDensity
Pointer to the Cluster's NuclearDensity.
InterpolationTable const * theRCDFTable[UnknownParticle]
Array of pointers to the r-space CDF table.
const G4int theS
Strangeness number.
InterpolationTable const * thePCDFTable[UnknownParticle]
Array of pointers to the p-space CDF table.
ParticleList sampleParticles(ThreeVector const &position)
NuclearPotential::INuclearPotential const * thePotential
Pointer to the Cluster's NuclearPotential.
const G4int theZ
Charge number.
void updateSampleOneParticleMethods()
Particle *(ParticleSampler::* ParticleSamplerMethod)(const ParticleType t) const
void setUncorrelatedMomentum(const G4double p)
Set the uncorrelated momentum.
const G4INCL::ThreeVector & getPosition() const
const G4INCL::ThreeVector & getMomentum() const
virtual void setPosition(const G4INCL::ThreeVector &position)
G4double pow13(G4double x)
InterpolationTable * createPCDFTable(const ParticleType t, const G4int A, const G4int Z)
InterpolationTable * createRCDFTable(const ParticleType t, const G4int A, const G4int Z)
G4double getRPCorrelationCoefficient(const ParticleType t)
Get the value of the r-p correlation coefficient.
ThreeVector normVector(G4double norm=1.)
ThreeVector sphereVector(G4double rmax=1.)
std::pair< G4double, G4double > correlatedUniform(const G4double corrCoeff)
Generate pairs of correlated uniform random numbers.