Go to the documentation of this file.
38 #ifndef HepRandomEngine_h
39 #define HepRandomEngine_h 1
47 #include "CLHEP/Random/defs.h"
67 virtual double flat() = 0;
74 virtual void setSeed(
long seed,
int) = 0;
81 virtual void saveStatus(
const char filename[] =
"Config.conf")
const = 0;
85 virtual void restoreStatus(
const char filename[] =
"Config.conf" ) = 0;
92 virtual std::string
name()
const = 0;
95 virtual std::ostream &
put (std::ostream & os)
const;
96 virtual std::istream &
get (std::istream &
is);
100 virtual std::istream &
getState ( std::istream &
is );
109 virtual std::vector<unsigned long>
put ()
const;
110 virtual bool get (
const std::vector<unsigned long> &
v);
111 virtual bool getState (
const std::vector<unsigned long> &
v);
120 virtual operator double();
121 virtual operator float();
122 virtual operator unsigned int();
157 static bool checkFile (std::istream & file,
158 const std::string & filename,
159 const std::string & classname,
160 const std::string & methodname);
167 template <
class IS,
class T>
169 std::string firstWord;
171 if (firstWord == key)
return true;
172 std::istringstream reread(firstWord);
179 #ifdef ENABLE_BACKWARDS_COMPATIBILITY
181 using namespace CLHEP;
184 #include "CLHEP/Random/RandomEngine.icc"
virtual std::istream & getState(std::istream &is)
static double twoToMinus_49()
bool operator!=(const HepRandomEngine &engine)
static HepRandomEngine * newEngine(std::istream &is)
static double twoToMinus_48()
virtual void setSeeds(const long *seeds, int)=0
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 double mantissa_bit_12()
bool operator==(const HepRandomEngine &engine)
virtual std::string name() const =0
virtual std::vector< unsigned long > put() const
static double nearlyTwoToMinus_54()
static double mantissa_bit_24()
virtual std::istream & get(std::istream &is)
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 double mantissa_bit_32()
static double exponent_bit_32()
static double twoToMinus_53()
they are gone ZOOM Features Discontinued The following features of the ZOOM package were felt to be extreme overkill These have been after checking that no existing user code was utilizing as in SpaceVector v
virtual void saveStatus(const char filename[]="Config.conf") const =0
bool possibleKeywordInput(IS &is, const std::string &key, T &t)
std::istream & operator>>(std::istream &is, HepAxisAngle &aa)
Technical Maintenance Note for CLHEP Random Consequences of seeding JamesRandom with positive seed values greater than In the source code JamesRandom The usual way of seeding a generator is via the default which makes use of the table of seeds(with some trickery to ensure that the values won 't repeat after the table rows are exhausted). The trickery preserves the fact that sees are never negative(because the table values are never negative
virtual ~HepRandomEngine()
virtual void restoreStatus(const char filename[]="Config.conf")=0
virtual void flatArray(const int size, double *vect)=0
static std::string beginTag()
virtual void showStatus() const =0
static double twoToMinus_32()
static bool checkFile(std::istream &file, const std::string &filename, const std::string &classname, const std::string &methodname)
std::ostream & operator<<(std::ostream &os, const HepAxisAngle &aa)
const long * getSeeds() const
virtual void setSeed(long seed, int)=0