29#ifndef RandMultiGauss_h
30#define RandMultiGauss_h 1
35#include "CLHEP/Matrix/Vector.h"
36#include "CLHEP/Matrix/Matrix.h"
37#include "CLHEP/Matrix/SymMatrix.h"
45class RandMultiGauss :
public HepRandomVector {
51 const HepSymMatrix& S );
57 const HepSymMatrix& S );
81 HepVector
fire(
const HepVector& mu,
const HepSymMatrix& S );
100 void fireArray (
const int size, HepVector* array);
101 void fireArray (
const int size, HepVector* array,
102 const HepVector& mu,
const HepSymMatrix& S );
105 HepVector
operator()(
const HepVector& mu,
const HepSymMatrix& S );
114 HepRandomEngine* localEngine;
118 HepVector defaultSigmas;
123 static void prepareUsigmas (
const HepSymMatrix & S,
125 HepVector & sigmas );
127 static HepVector deviates (
const HepMatrix & U,
128 const HepVector & sigmas,
129 HepRandomEngine * engine,
139#ifdef ENABLE_BACKWARDS_COMPATIBILITY
141using namespace CLHEP;
void fireArray(const int size, HepVector *array)
RandMultiGauss(HepRandomEngine &anEngine, const HepVector &mu, const HepSymMatrix &S)
virtual ~RandMultiGauss()