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