CLHEP VERSION Reference Documentation
CLHEP Home Page
CLHEP Documentation
CLHEP Bug Reports
Main Page
Namespaces
Classes
Files
File List
File Members
Matrix
CLHEP
Random
Matrix/CLHEP/Random/RandStudentT.h
Go to the documentation of this file.
1
// $Id: RandStudentT.h,v 1.5 2010/06/16 17:24:53 garren Exp $
2
// -*- C++ -*-
3
//
4
// -----------------------------------------------------------------------
5
// HEP Random
6
// --- RandStudentT ---
7
// class header file
8
// -----------------------------------------------------------------------
9
10
// Class defining methods for shooting Student's t- distributed random
11
// values, given a number of degrees of freedom a (default=1.0).
12
// Default values are used for operator()().
13
14
// Valid input values are a > 0. When invalid values are presented, the
15
// code silently returns DBL_MAX from <float.h> which is the same as
16
// MAXDOUBLE in <values.h> on systems where the latter exists.
17
18
// =======================================================================
19
// John Marraffino - Created: Based on the C-Rand package
20
// by Ernst Stadlober and Franz Niederl of the Technical
21
// University of Graz, Austria : 12th May 1998
22
// - Removed <values.h> because that won't work
23
// on NT : 26th Jun 1998
24
// Gabriele Cosmo - Fixed minor bug on inline definition for shoot()
25
// methods. Created .icc file : 20th Aug 1998
26
// - Removed useless methods and data: 5th Jan 1999
27
// M Fischler - put and get to/from streams 12/10/04
28
// =======================================================================
29
30
#ifndef RandStudentT_h
31
#define RandStudentT_h 1
32
33
#include "CLHEP/Random/defs.h"
34
#include "CLHEP/Random/Random.h"
35
#include "CLHEP/Utility/memory.h"
36
37
namespace
CLHEP {
38
43
class
RandStudentT
:
public
HepRandom
{
44
45
public
:
46
47
inline
RandStudentT
(
HepRandomEngine
& anEngine,
double
a
=1.0 );
48
inline
RandStudentT
(
HepRandomEngine
* anEngine,
double
a
=1.0 );
49
// These constructors should be used to instantiate a RandStudentT
50
// distribution object defining a local engine for it.
51
// The static generator will be skipped using the non-static methods
52
// defined below.
53
// If the engine is passed by pointer the corresponding engine object
54
// will be deleted by the RandStudentT destructor.
55
// If the engine is passed by reference the corresponding engine object
56
// will not be deleted by the RandStudentT destructor.
57
58
virtual
~RandStudentT
();
59
// Destructor
60
61
// Save and restore to/from streams
62
63
std::ostream &
put
( std::ostream & os )
const
;
64
std::istream &
get
( std::istream & is );
65
66
// Static methods to shoot random values using the static generator
67
68
static
inline
double
shoot
();
69
70
static
double
shoot
(
double
a
);
71
72
static
void
shootArray
(
const
int
size,
double
* vect,
73
double
a=1.0 );
74
75
// Static methods to shoot random values using a given engine
76
// by-passing the static generator.
77
78
static
inline
double
shoot
(
HepRandomEngine
* anEngine );
79
80
static
double
shoot
(
HepRandomEngine
* anEngine,
81
double
a );
82
83
static
void
shootArray
(
HepRandomEngine
* anEngine,
const
int
size,
84
double
* vect,
double
a=1.0 );
85
86
// Methods using the localEngine to shoot random values, by-passing
87
// the static generator.
88
89
inline
double
fire
();
90
91
double
fire
(
double
a );
92
93
void
fireArray
(
const
int
size,
double
* vect );
94
void
fireArray
(
const
int
size,
double
* vect,
double
a );
95
double
operator()
();
96
double
operator()
(
double
a );
97
98
std::string
name
()
const
;
99
HepRandomEngine
&
engine
();
100
101
static
std::string
distributionName
() {
return
"RandStudentT"
;}
102
// Provides the name of this distribution class
103
104
105
private
:
106
107
shared_ptr<HepRandomEngine>
localEngine;
108
double
defaultA;
109
110
};
111
112
}
// namespace CLHEP
113
114
#ifdef ENABLE_BACKWARDS_COMPATIBILITY
115
// backwards compatibility will be enabled ONLY in CLHEP 1.9
116
using namespace
CLHEP;
117
#endif
118
119
#include "CLHEP/Random/RandStudentT.icc"
120
121
#endif
Generated on Sun Jun 17 2012 08:08:27 for CLHEP by
1.8.1.1