Go to the documentation of this file.
24 #ifndef RandGaussZiggurat_h
25 #define RandGaussZiggurat_h 1
28 #include "CLHEP/Random/defs.h"
29 #include "CLHEP/Random/RandGauss.h"
37 class RandGaussZiggurat :
public RandGauss {
41 inline RandGaussZiggurat ( HepRandomEngine& anEngine,
double mean=0.0,
double stdDev=1.0 );
42 inline RandGaussZiggurat ( HepRandomEngine* anEngine,
double mean=0.0,
double stdDev=1.0 );
50 static inline float shoot(
float mean,
float stdDev ) {
return shoot()*stdDev + mean;};
52 static void shootArray (
const int size,
float* vect,
float mean=0.0,
float stdDev=1.0 );
53 static void shootArray (
const int size,
double* vect,
double mean=0.0,
double stdDev=1.0 );
73 void fireArray (
const int size,
float* vect,
float mean,
float stdDev );
74 void fireArray (
const int size,
double* vect,
double mean,
double stdDev );
77 virtual double operator()(
double mean,
double stdDev );
81 std::ostream &
put ( std::ostream & os )
const;
82 std::istream &
get ( std::istream &
is );
84 std::string
name()
const;
108 static unsigned long kn[128],
ke[256];
109 static float wn[128],
fn[128],
we[256],
fe[256];
117 unsigned long iz=hz&127;
134 #ifdef ENABLE_BACKWARDS_COMPATIBILITY
136 using namespace CLHEP;
static std::string distributionName()
static bool ziggurat_init()
std::istream & get(std::istream &is)
static float shoot(HepRandomEngine *anotherEngine, float mean, float stdDev)
How the various random distributions are validated The distributions in for example RandGauss
HepRotation and so forth isNear() norm2() rectify() static Rotation row1 row4(To avoid bloat in the code pulled in for programs which don 't use all these features, we split the implementation .cc files. Only isNear() goes into the original Rotation.cc) --------------------------------------- HepAxisAngle and HepEulerAngles classes --------------------------------------- These classes are very useful and simple structures for holding the result of a nice intuituve decomposition of a rotation there is no longer much content in the distinct ZOOM PhysicsVectors library The only content left in the library is the object files representing the various Exception objects When we build the CLHEP classes for the ZOOM we will set up so as to use ZOOM SpaceVector is(but we can disable namespace usage and most of our users do so at this point). What I do is leave Hep3Vector in the global namespace
static float ziggurat_RNOR(HepRandomEngine *anEngine)
user code seldom needs to call this function directly ZMerrno whether or not they are still recorded ZMerrno size() Return the(integer) number of ZMthrow 'n exceptions currently recorded. 5) ZMerrno.clear() Set an internal counter to zero. This counter is available(see next function) to user code to track ZMthrow 'n exceptions that have occurred during any arbitrary time interval. 6) ZMerrno.countSinceCleared() Return the(integer) number of ZMthrow 'n exceptions that have been recorded via ZMerrno.write()
static void shootArray(const int size, float *vect, float mean=0.0, float stdDev=1.0)
virtual double operator()()
static float ziggurat_nfix(long hz, HepRandomEngine *anEngine)
static float shoot(float mean, float stdDev)
HepRandomEngine & engine()
static float shoot(HepRandomEngine *anotherEngine)
void fireArray(const int size, float *vect)
RandGaussZiggurat(HepRandomEngine &anEngine, double mean=0.0, double stdDev=1.0)
static bool ziggurat_is_init
std::ostream & put(std::ostream &os) const
static unsigned long kn[128]
virtual ~RandGaussZiggurat()
float fire(float mean, float stdDev)
shared_ptr< HepRandomEngine > localEngine
static float ziggurat_UNI(HepRandomEngine *anEngine)
static unsigned long ke[256]
static HepRandomEngine * getTheEngine()
static unsigned long ziggurat_SHR3(HepRandomEngine *anEngine)