ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
RandStudentT.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file RandStudentT.h
1
// -*- C++ -*-
2
//
3
// -----------------------------------------------------------------------
4
// HEP Random
5
// --- RandStudentT ---
6
// class header file
7
// -----------------------------------------------------------------------
8
9
// Class defining methods for shooting Student's t- distributed random
10
// values, given a number of degrees of freedom a (default=1.0).
11
// Default values are used for operator()().
12
13
// Valid input values are a > 0. When invalid values are presented, the
14
// code silently returns DBL_MAX from <float.h> which is the same as
15
// MAXDOUBLE in <values.h> on systems where the latter exists.
16
17
// =======================================================================
18
// John Marraffino - Created: Based on the C-Rand package
19
// by Ernst Stadlober and Franz Niederl of the Technical
20
// University of Graz, Austria : 12th May 1998
21
// - Removed <values.h> because that won't work
22
// on NT : 26th Jun 1998
23
// Gabriele Cosmo - Fixed minor bug on inline definition for shoot()
24
// methods. Created .icc file : 20th Aug 1998
25
// - Removed useless methods and data: 5th Jan 1999
26
// M Fischler - put and get to/from streams 12/10/04
27
// =======================================================================
28
29
#ifndef RandStudentT_h
30
#define RandStudentT_h 1
31
32
#include "
CLHEP/Random/Random.h
"
33
#include "
CLHEP/Utility/memory.h
"
34
35
namespace
CLHEP {
36
41
class
RandStudentT
:
public
HepRandom
{
42
43
public
:
44
45
inline
RandStudentT
(
HepRandomEngine
& anEngine,
double
a
=1.0 );
46
inline
RandStudentT
(
HepRandomEngine
* anEngine,
double
a
=1.0 );
47
// These constructors should be used to instantiate a RandStudentT
48
// distribution object defining a local engine for it.
49
// The static generator will be skipped using the non-static methods
50
// defined below.
51
// If the engine is passed by pointer the corresponding engine object
52
// will be deleted by the RandStudentT destructor.
53
// If the engine is passed by reference the corresponding engine object
54
// will not be deleted by the RandStudentT destructor.
55
56
virtual
~RandStudentT
();
57
// Destructor
58
59
// Save and restore to/from streams
60
61
std::ostream &
put
( std::ostream & os )
const
;
62
std::istream &
get
( std::istream & is );
63
64
// Static methods to shoot random values using the static generator
65
66
static
inline
double
shoot
();
67
68
static
double
shoot
(
double
a
);
69
70
static
void
shootArray
(
const
int
size,
double
* vect,
71
double
a=1.0 );
72
73
// Static methods to shoot random values using a given engine
74
// by-passing the static generator.
75
76
static
inline
double
shoot
(
HepRandomEngine
* anEngine );
77
78
static
double
shoot
(
HepRandomEngine
* anEngine,
79
double
a );
80
81
static
void
shootArray
(
HepRandomEngine
* anEngine,
const
int
size,
82
double
* vect,
double
a=1.0 );
83
84
// Methods using the localEngine to shoot random values, by-passing
85
// the static generator.
86
87
inline
double
fire
();
88
89
double
fire
(
double
a );
90
91
void
fireArray
(
const
int
size,
double
* vect );
92
void
fireArray
(
const
int
size,
double
* vect,
double
a );
93
double
operator()
();
94
double
operator()
(
double
a );
95
96
std::string
name
()
const
;
97
HepRandomEngine
&
engine
();
98
99
static
std::string
distributionName
() {
return
"RandStudentT"
;}
100
// Provides the name of this distribution class
101
102
103
private
:
104
105
std::shared_ptr<HepRandomEngine>
localEngine
;
106
double
defaultA
;
107
108
};
109
110
}
// namespace CLHEP
111
112
#include "CLHEP/Random/RandStudentT.icc"
113
114
#endif
geant4
tree
geant4-10.6-release
source
externals
clhep
include
CLHEP
Random
RandStudentT.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:14
using
1.8.2 with
ECCE GitHub integration