| # Gaudi Framework, version v20r3
Generated: 24 Nov 2008

# HepRndm::Generator< Rndm::DefinedPdf > Class Template Reference

Inheritance diagram for HepRndm::Generator< Rndm::DefinedPdf >:

[legend]
Collaboration diagram for HepRndm::Generator< Rndm::DefinedPdf >:

[legend]

List of all members.

## Detailed Description

### template<>
class HepRndm::Generator< Rndm::DefinedPdf >

Definition at line 323 of file HepRndmGenerators.cpp.

## Public Member Functions
| Generator (IInterface *engine)
| Standard Constructor.
virtual | ~Generator ()
| Standard Destructor.
virtual StatusCode | initialize (const IRndmGen::Param &par)
| Initialize the generator.
virtual StatusCode | finalize ()
| Finalize the generator.
virtual double | shoot () const
| Single shot.
## Protected Attributes
RandGeneral * | m_generator
HepRandomEngine * | m_hepEngine

## Constructor & Destructor Documentation

HepRndm::Generator< Rndm::DefinedPdf >::Generator | ( | IInterface * | engine | ) | `[inline]`

Standard Constructor.

Definition at line 329 of file HepRndmGenerators.cpp.

    00330     : RndmGen (engine), m_generator(0), m_hepEngine(0)    {
    00331     }

virtual HepRndm::Generator< Rndm::DefinedPdf >::~Generator | ( |  | ) | `[inline, virtual]`

Standard Destructor.

Definition at line 333 of file HepRndmGenerators.cpp.

    00333                          {
    00334     }

## Member Function Documentation

virtual StatusCode HepRndm::Generator< Rndm::DefinedPdf >::initialize | ( | const IRndmGen::Param & | par | ) | `[inline, virtual]`

Initialize the generator.

Reimplemented from RndmGen.

Definition at line 336 of file HepRndmGenerators.cpp.

    00336                                                               {
    00337       StatusCode status = RndmGen::initialize(par);
    00338       if ( status.isSuccess() )   {
    00339         try   {
    00340           Rndm::DefinedPdf* specs = dynamic_cast<Rndm::DefinedPdf*>(m_params);
    00341           if ( 0 != specs )  {
    00342             m_generator = new RandGeneral( &specs->pdf()[0],
    00343                                            specs->pdf().size(),
    00344                                            specs->interpolation());
    00345             BaseEngine* engine = dynamic_cast<BaseEngine*>(m_engine);
    00346             if ( 0 != engine )    {
    00347               m_hepEngine = engine->hepEngine();
    00348               if ( 0 != m_hepEngine )   {
    00349                 return StatusCode::SUCCESS;
    00350               }
    00351             }
    00352           }
    00353         }
    00354         catch (...)   {
    00355         }
    00356       }
    00357       return StatusCode::FAILURE;
    00358     }

virtual StatusCode HepRndm::Generator< Rndm::DefinedPdf >::finalize | ( | void |  | ) | `[inline, virtual]`

Finalize the generator.

Reimplemented from RndmGen.

Definition at line 360 of file HepRndmGenerators.cpp.

    00360                                     {
    00361       if ( m_generator ) delete m_generator;
    00362       m_generator = 0;
    00363       return RndmGen::finalize();
    00364     }

virtual double HepRndm::Generator< Rndm::DefinedPdf >::shoot | ( |  | ) | const`[inline, virtual]`

Single shot.

Reimplemented from RndmGen.

Definition at line 366 of file HepRndmGenerators.cpp.

    00366                                     {
    00367       return m_generator->shoot(m_hepEngine);
    00368     }

## Member Data Documentation

RandGeneral* HepRndm::Generator< Rndm::DefinedPdf >::m_generator`[protected]`

Definition at line 325 of file HepRndmGenerators.cpp.

HepRandomEngine* HepRndm::Generator< Rndm::DefinedPdf >::m_hepEngine`[protected]`

Definition at line 326 of file HepRndmGenerators.cpp.

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v20r3/GaudiSvc/src/RndmGenSvc/HepRndmGenerators.cpp