| # Gaudi Framework, version v22r0 |

Home |  | Generated: 9 Feb 2011

# Rndm::DefinedPdf Class Reference

Generate a random number Generator following generally distributed random values, given a user-defined probability distribution function. More...

`#include <RndmGenerators.h>`

Inheritance diagram for Rndm::DefinedPdf:
[legend]
Collaboration diagram for Rndm::DefinedPdf:
[legend]

List of all members.

## Public Member Functions
| DefinedPdf (const std::vector< double > &pdf, long intpol)
| Standard Constructor.
virtual | ~DefinedPdf ()
| Standard Destructor.
std::vector< double > & | pdf ()
| Access pdf.
long | interpolation () const
| Access interpolation type.
virtual IRndmGen::Param * | clone () const
| Clone parameters.
## Static Public Member Functions
static const InterfaceID & | typeID ()
| Identifier for factory.
## Protected Attributes
std::vector< double > | m_pdf
| Vector containing probability distribution function.
long | m_interpolation
| Interpolation type.

## Detailed Description

Generate a random number Generator following generally distributed random values, given a user-defined probability distribution function.

The probability distribution function (Pdf) must be provided by the user as an array of positive real number. The array size must also be provided. The Pdf doesn't need to be normalized to 1. if IntType = 0 ( default value ) a uniform random number is generated. The uniform number is then transformed to the user's distribution using the cumulative probability distribution constructed from his histogram. The cumulative distribution is inverted using a binary search for the nearest bin boundary and a linear interpolation within the bin. Therefore a constant density within each bin is generated. if IntType = 1 no interpolation is performed and the result is a discrete distribution.

Definition at line 321 of file RndmGenerators.h.

## Constructor & Destructor Documentation

Rndm::DefinedPdf::DefinedPdf | ( | const std::vector< double > & | pdf,
|  | long | intpol |
| ) |  |  | `[inline]`

Standard Constructor.

Definition at line 329 of file RndmGenerators.h.

    00330     : IRndmGen::Param(IID_IRndmDefinedPdf),
    00331       m_pdf(pdf),
    00332       m_interpolation(intpol)  {     }

virtual Rndm::DefinedPdf::~DefinedPdf | ( |  | ) | `[inline, virtual]`

Standard Destructor.

Definition at line 334 of file RndmGenerators.h.

    00334 {  }

## Member Function Documentation

virtual IRndmGen::Param* Rndm::DefinedPdf::clone | ( |  | ) | const`[inline, virtual]`

Clone parameters.

Implements IRndmGen::Param.

Definition at line 342 of file RndmGenerators.h.

    00342                                             {
    00343       return new DefinedPdf(m_pdf,m_interpolation);
    00344     }

long Rndm::DefinedPdf::interpolation | ( |  | ) | const`[inline]`

Access interpolation type.

Definition at line 338 of file RndmGenerators.h.

    00338 { return m_interpolation;       }

std::vector<double>& Rndm::DefinedPdf::pdf | ( |  | ) | `[inline]`

Access pdf.

Definition at line 336 of file RndmGenerators.h.

    00336 { return m_pdf;                 }

static const InterfaceID& Rndm::DefinedPdf::typeID | ( |  | ) | `[inline, static]`

Identifier for factory.

Definition at line 340 of file RndmGenerators.h.

    00340 { return IID_IRndmDefinedPdf;   }

## Member Data Documentation

long Rndm::DefinedPdf::m_interpolation`[protected]`

Interpolation type.

Definition at line 326 of file RndmGenerators.h.

std::vector<double> Rndm::DefinedPdf::m_pdf`[protected]`

Vector containing probability distribution function.

Definition at line 324 of file RndmGenerators.h.

The documentation for this class was generated from the following file:

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v22r0/GaudiKernel/GaudiKernel/RndmGenerators.h

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines