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)