34#define INCLXX_IN_GEANT4_MODE 1
38#ifndef G4INCLPHASESPACERAUBOLDLYNCH_HH
39#define G4INCLPHASESPACERAUBOLDLYNCH_HH
77 std::vector<G4double>
rnd;
Abstract interface for the phase-space generators.
Simple interpolation table.
Abstract interface for the phase-space generators.
Class for interpolating the of a 1-dimensional function.
Generate momenta using the RauboldLynch method.
PhaseSpaceRauboldLynch(PhaseSpaceRauboldLynch const &other)
Dummy copy constructor to silence Coverity warning.
G4double prelog[wMaxNP]
Precalculated coefficients: -ln(n)
G4double maxGeneratedWeight
std::vector< G4double > sumMasses
void initialize(ParticleList &particles)
Initialize internal structures (masses and sum of masses)
static const size_t nMasslessParticlesTable
std::vector< G4double > invariantMasses
std::vector< G4double > masses
InterpolationTable * wMaxMassless
static const G4double wMaxInterpolationMargin
G4double getMaxGeneratedWeight() const
Return the largest generated weight.
static const G4double wMaxMasslessX[wMaxNE]
virtual ~PhaseSpaceRauboldLynch()
static const G4double wMaxMasslessY[wMaxNE]
void generateEvent(ParticleList &particles)
Generate an event.
void generate(const G4double sqrtS, ParticleList &particles)
Generate momenta according to a uniform, Lorentz-invariant phase-space model.
static const size_t wMaxNE
static const size_t wMaxNP
G4double computeMaximumWeightParam()
Compute the maximum possible weight using parametrizations.
PhaseSpaceRauboldLynch & operator=(PhaseSpaceRauboldLynch const &rhs)
Dummy assignment operator to silence Coverity warning.
G4double computeMaximumWeightNaive()
Compute the maximum possible weight using a naive algorithm.
InterpolationTable * wMaxCorrection
G4double computeWeight()
Compute the maximum possible weight.
static const G4double wMaxCorrectionY[wMaxNE]
static const G4double wMaxCorrectionX[wMaxNE]
std::vector< G4double > momentaCM
std::vector< G4double > rnd