29 #ifndef RandMultiGauss_h
30 #define RandMultiGauss_h 1
33 #include "CLHEP/Random/RandomEngine.h"
35 #include "CLHEP/Matrix/Vector.h"
36 #include "CLHEP/Matrix/Matrix.h"
37 #include "CLHEP/Matrix/SymMatrix.h"
45 class 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
141 using namespace CLHEP;
144 #endif // RandMultiGauss_h
virtual ~RandMultiGauss()
RandMultiGauss(HepRandomEngine &anEngine, const HepVector &mu, const HepSymMatrix &S)
void fireArray(const int size, HepVector *array)