Geant4  10.04
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
PhaseSpaceRauboldLynch Class Reference

Generate momenta using the RauboldLynch method. More...

Inheritance diagram for PhaseSpaceRauboldLynch:
IPhaseSpaceGenerator

Public Member Functions

 PhaseSpaceRauboldLynch ()
 
virtual ~PhaseSpaceRauboldLynch ()
 
 PhaseSpaceRauboldLynch (PhaseSpaceRauboldLynch const &other)
 Dummy copy constructor to silence Coverity warning. More...
 
PhaseSpaceRauboldLynchoperator= (PhaseSpaceRauboldLynch const &rhs)
 Dummy assignment operator to silence Coverity warning. More...
 
void generate (const G4double sqrtS, ParticleList &particles)
 Generate momenta according to a uniform, Lorentz-invariant phase-space model. More...
 
G4double getMaxGeneratedWeight () const
 Return the largest generated weight. More...
 
- Public Member Functions inherited from IPhaseSpaceGenerator
 IPhaseSpaceGenerator ()
 
virtual ~IPhaseSpaceGenerator ()
 

Private Member Functions

void initialize (ParticleList &particles)
 Initialize internal structures (masses and sum of masses) More...
 
G4double computeMaximumWeightNaive ()
 Compute the maximum possible weight using a naive algorithm. More...
 
G4double computeMaximumWeightParam ()
 Compute the maximum possible weight using parametrizations. More...
 
G4double computeWeight ()
 Compute the maximum possible weight. More...
 
void generateEvent (ParticleList &particles)
 Generate an event. More...
 

Private Attributes

std::vector< G4doublemasses
 
std::vector< G4doublesumMasses
 
std::vector< G4doublernd
 
std::vector< G4doubleinvariantMasses
 
std::vector< G4doublemomentaCM
 
size_t nParticles
 
G4double sqrtS
 
G4double availableEnergy
 
G4double maxGeneratedWeight
 
InterpolationTablewMaxMassless
 
InterpolationTablewMaxCorrection
 
G4double prelog [wMaxNP]
 Precalculated coefficients: -ln(n) More...
 

Static Private Attributes

static const size_t nMasslessParticlesTable = 13
 
static const size_t wMaxNE = 30
 
static const G4double wMaxMasslessX [wMaxNE]
 
static const G4double wMaxMasslessY [wMaxNE]
 
static const G4double wMaxCorrectionX [wMaxNE]
 
static const G4double wMaxCorrectionY [wMaxNE]
 
static const G4double wMaxInterpolationMargin
 
static const size_t wMaxNP = 20
 

Detailed Description

Generate momenta using the RauboldLynch method.

Constructor & Destructor Documentation

virtual ~PhaseSpaceRauboldLynch ( )
virtual

Dummy copy constructor to silence Coverity warning.

Member Function Documentation

Dummy assignment operator to silence Coverity warning.

void generate ( const G4double  sqrtS,
ParticleList particles 
)
virtual

Generate momenta according to a uniform, Lorentz-invariant phase-space model.

This function will assign momenta to the particles in the list that is passed as an argument. The event is generated in the CM frame.

Parameters
sqrtStotal centre-of-mass energy of the system
particleslist of particles

Implements IPhaseSpaceGenerator.

G4double getMaxGeneratedWeight ( ) const

Return the largest generated weight.

void initialize ( ParticleList particles)
private

Initialize internal structures (masses and sum of masses)

G4double computeMaximumWeightNaive ( )
private

Compute the maximum possible weight using a naive algorithm.

G4double computeMaximumWeightParam ( )
private

Compute the maximum possible weight using parametrizations.

G4double computeWeight ( )
private

Compute the maximum possible weight.

void generateEvent ( ParticleList particles)
private

Generate an event.

Member Data Documentation

std::vector<G4double> masses
private
std::vector<G4double> sumMasses
private
std::vector<G4double> rnd
private
std::vector<G4double> invariantMasses
private
std::vector<G4double> momentaCM
private
size_t nParticles
private
G4double sqrtS
private
G4double availableEnergy
private
G4double maxGeneratedWeight
private
const size_t nMasslessParticlesTable = 13
staticprivate
const size_t wMaxNE = 30
staticprivate
const G4double wMaxMasslessX[wMaxNE]
staticprivate
const G4double wMaxMasslessY[wMaxNE]
staticprivate
const G4double wMaxCorrectionX[wMaxNE]
staticprivate
const G4double wMaxCorrectionY[wMaxNE]
staticprivate
const G4double wMaxInterpolationMargin
staticprivate
InterpolationTable* wMaxMassless
private
InterpolationTable* wMaxCorrection
private
const size_t wMaxNP = 20
staticprivate
G4double prelog[wMaxNP]
private

Precalculated coefficients: -ln(n)