24 #ifndef MTwistEngine_h
25 #define MTwistEngine_h
27 #include "CLHEP/Random/defs.h"
28 #include "CLHEP/Random/RandomEngine.h"
36 class MTwistEngine :
public HepRandomEngine {
60 void saveStatus(
const char filename[] =
"MTwist.conf")
const;
70 operator unsigned int();
72 virtual std::ostream &
put (std::ostream & os)
const;
73 virtual std::istream &
get (std::istream & is);
75 virtual std::istream &
getState ( std::istream & is );
80 std::vector<unsigned long>
put ()
const;
81 bool get (
const std::vector<unsigned long> & v);
82 bool getState (
const std::vector<unsigned long> & v);
91 enum{ NminusM = 227, M = 397, N = 624};
92 static int numEngines;
99 #ifdef ENABLE_BACKWARDS_COMPATIBILITY
101 using namespace CLHEP;
bool getState(const std::vector< unsigned long > &v)
virtual std::istream & get(std::istream &is)
void flatArray(const int size, double *vect)
MTwistEngine(std::istream &is)
static std::string beginTag()
void restoreStatus(const char filename[]="MTwist.conf")
static std::string engineName()
void setSeeds(const long *seeds, int)
void saveStatus(const char filename[]="MTwist.conf") const
MTwistEngine(int rowIndex, int colIndex)
static const unsigned int VECTOR_STATE_SIZE
virtual std::istream & getState(std::istream &is)
bool get(const std::vector< unsigned long > &v)
void setSeed(long seed, int)
std::vector< unsigned long > put() const
virtual std::ostream & put(std::ostream &os) const