Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CLHEP::RandGeneral Class Reference

#include <RandGeneral.h>

Inheritance diagram for CLHEP::RandGeneral:
Collaboration diagram for CLHEP::RandGeneral:

Public Member Functions

 RandGeneral (const double *aProbFunc, int theProbSize, int IntType=0)
 
 RandGeneral (HepRandomEngine &anEngine, const double *aProbFunc, int theProbSize, int IntType=0)
 
 RandGeneral (HepRandomEngine *anEngine, const double *aProbFunc, int theProbSize, int IntType=0)
 
virtual ~RandGeneral ()
 
double shoot ()
 
void shootArray (const int size, double *vect)
 
double shoot (HepRandomEngine *anEngine)
 
void shootArray (HepRandomEngine *anEngine, const int size, double *vect)
 
double fire ()
 
void fireArray (const int size, double *vect)
 
double operator() ()
 
std::ostream & put (std::ostream &os) const
 
std::istream & get (std::istream &is)
 
std::string name () const
 
HepRandomEngineengine ()
 
- Public Member Functions inherited from CLHEP::HepRandom
 HepRandom ()
 
 HepRandom (long seed)
 
 HepRandom (HepRandomEngine &algorithm)
 
 HepRandom (HepRandomEngine *algorithm)
 
virtual ~HepRandom ()
 
double flat ()
 
void flatArray (const int size, double *vect)
 
double flat (HepRandomEngine *theNewEngine)
 
void flatArray (HepRandomEngine *theNewEngine, const int size, double *vect)
 

Static Public Member Functions

static std::string distributionName ()
 
- Static Public Member Functions inherited from CLHEP::HepRandom
static void setTheSeed (long seed, int lux=3)
 
static long getTheSeed ()
 
static void setTheSeeds (const long *seeds, int aux=-1)
 
static const long * getTheSeeds ()
 
static void getTheTableSeeds (long *seeds, int index)
 
static HepRandomgetTheGenerator ()
 
static void setTheEngine (HepRandomEngine *theNewEngine)
 
static HepRandomEnginegetTheEngine ()
 
static void saveEngineStatus (const char filename[]="Config.conf")
 
static void restoreEngineStatus (const char filename[]="Config.conf")
 
static std::ostream & saveFullState (std::ostream &os)
 
static std::istream & restoreFullState (std::istream &is)
 
static std::ostream & saveDistState (std::ostream &os)
 
static std::istream & restoreDistState (std::istream &is)
 
static std::ostream & saveStaticRandomStates (std::ostream &os)
 
static std::istream & restoreStaticRandomStates (std::istream &is)
 
static void showEngineStatus ()
 
static int createInstance ()
 
static std::string distributionName ()
 

Additional Inherited Members

- Static Protected Attributes inherited from CLHEP::HepRandom
static const long seedTable [215][2]
 

Detailed Description

Author

Definition at line 39 of file RandGeneral.h.

Constructor & Destructor Documentation

CLHEP::RandGeneral::RandGeneral ( const double *  aProbFunc,
int  theProbSize,
int  IntType = 0 
)

Definition at line 64 of file RandGeneral.cc.

67  : HepRandom(),
68  localEngine(HepRandom::getTheEngine(), do_nothing_deleter()),
69  nBins(theProbSize),
70  InterpolationType(IntType)
71 {
72  prepareTable(aProbFunc);
73 }
static HepRandomEngine * getTheEngine()
Definition: Random.cc:265
CLHEP::RandGeneral::RandGeneral ( HepRandomEngine anEngine,
const double *  aProbFunc,
int  theProbSize,
int  IntType = 0 
)

Definition at line 75 of file RandGeneral.cc.

79 : HepRandom(),
80  localEngine(&anEngine, do_nothing_deleter()),
81  nBins(theProbSize),
82  InterpolationType(IntType)
83 {
84  prepareTable(aProbFunc);
85 }
CLHEP::RandGeneral::RandGeneral ( HepRandomEngine anEngine,
const double *  aProbFunc,
int  theProbSize,
int  IntType = 0 
)

Definition at line 87 of file RandGeneral.cc.

91 : HepRandom(),
92  localEngine(anEngine),
93  nBins(theProbSize),
94  InterpolationType(IntType)
95 {
96  prepareTable(aProbFunc);
97 }
CLHEP::RandGeneral::~RandGeneral ( )
virtual

Definition at line 172 of file RandGeneral.cc.

172  {
173 }

Member Function Documentation

static std::string CLHEP::RandGeneral::distributionName ( )
inlinestatic

Definition at line 125 of file RandGeneral.h.

125 {return "RandGeneral";}
HepRandomEngine & CLHEP::RandGeneral::engine ( )
virtual

Reimplemented from CLHEP::HepRandom.

Definition at line 57 of file RandGeneral.cc.

57 {return *localEngine;}
double CLHEP::RandGeneral::fire ( )

Here is the caller graph for this function:

void CLHEP::RandGeneral::fireArray ( const int  size,
double *  vect 
)

Definition at line 238 of file RandGeneral.cc.

239 {
240  int i;
241 
242  for (i=0; i<size; ++i) {
243  vect[i] = fire();
244  }
245 }

Here is the call graph for this function:

std::istream & CLHEP::RandGeneral::get ( std::istream &  is)
virtual

Reimplemented from CLHEP::HepRandom.

Definition at line 264 of file RandGeneral.cc.

264  {
265  std::string inName;
266  is >> inName;
267  if (inName != name()) {
268  is.clear(std::ios::badbit | is.rdstate());
269  std::cerr << "Mismatch when expecting to read state of a "
270  << name() << " distribution\n"
271  << "Name found was " << inName
272  << "\nistream is left in the badbit state\n";
273  return is;
274  }
275  if (possibleKeywordInput(is, "Uvec", nBins)) {
276  std::vector<unsigned long> t(2);
277  is >> nBins >> oneOverNbins >> InterpolationType;
278  is >> t[0] >> t[1]; oneOverNbins = DoubConv::longs2double(t);
279  theIntegralPdf.resize(nBins+1);
280  for (unsigned int i=0; i<theIntegralPdf.size(); ++i) {
281  is >> theIntegralPdf[i] >> t[0] >> t[1];
282  theIntegralPdf[i] = DoubConv::longs2double(t);
283  }
284  return is;
285  }
286  // is >> nBins encompassed by possibleKeywordInput
287  is >> oneOverNbins >> InterpolationType;
288  theIntegralPdf.resize(nBins+1);
289  for (unsigned int i=0; i<theIntegralPdf.size(); ++i) is >> theIntegralPdf[i];
290  return is;
291 }
std::string name() const
Definition: RandGeneral.cc:56
bool possibleKeywordInput(IS &is, const std::string &key, T &t)
Definition: RandomEngine.h:167
static double longs2double(const std::vector< unsigned long > &v)
Definition: DoubConv.cc:114

Here is the call graph for this function:

std::string CLHEP::RandGeneral::name ( ) const
virtual

Reimplemented from CLHEP::HepRandom.

Definition at line 56 of file RandGeneral.cc.

56 {return "RandGeneral";}

Here is the caller graph for this function:

double CLHEP::RandGeneral::operator() ( )
virtual

Reimplemented from CLHEP::HepRandom.

std::ostream & CLHEP::RandGeneral::put ( std::ostream &  os) const
virtual

Reimplemented from CLHEP::HepRandom.

Definition at line 247 of file RandGeneral.cc.

247  {
248  int pr=os.precision(20);
249  std::vector<unsigned long> t(2);
250  os << " " << name() << "\n";
251  os << "Uvec" << "\n";
252  os << nBins << " " << oneOverNbins << " " << InterpolationType << "\n";
253  t = DoubConv::dto2longs(oneOverNbins);
254  os << t[0] << " " << t[1] << "\n";
255  assert (static_cast<int>(theIntegralPdf.size())==nBins+1);
256  for (unsigned int i=0; i<theIntegralPdf.size(); ++i) {
257  t = DoubConv::dto2longs(theIntegralPdf[i]);
258  os << theIntegralPdf[i] << " " << t[0] << " " << t[1] << "\n";
259  }
260  os.precision(pr);
261  return os;
262 }
std::string name() const
Definition: RandGeneral.cc:56
static std::vector< unsigned long > dto2longs(double d)
Definition: DoubConv.cc:98

Here is the call graph for this function:

double CLHEP::RandGeneral::shoot ( )
inline

Here is the caller graph for this function:

double CLHEP::RandGeneral::shoot ( HepRandomEngine anEngine)
void CLHEP::RandGeneral::shootArray ( const int  size,
double *  vect 
)
inline
void CLHEP::RandGeneral::shootArray ( HepRandomEngine anEngine,
const int  size,
double *  vect 
)

Definition at line 228 of file RandGeneral.cc.

230 {
231  int i;
232 
233  for (i=0; i<size; ++i) {
234  vect[i] = shoot(anEngine);
235  }
236 }

Here is the call graph for this function:


The documentation for this class was generated from the following files: