CLHEP VERSION Reference Documentation
CLHEP Home Page
CLHEP Documentation
CLHEP Bug Reports
GenericFunctions
src
BivariateGaussian.cc
Go to the documentation of this file.
1
// -*- C++ -*-
2
// $Id: BivariateGaussian.cc,v 1.8 2010/06/16 18:22:01 garren Exp $
3
#include "
CLHEP/GenericFunctions/defs.h
"
4
#include "
CLHEP/GenericFunctions/BivariateGaussian.hh
"
5
#include <assert.h>
6
#include <cmath>
// for exp()
7
8
#if (defined __STRICT_ANSI__) || (defined _WIN32)
9
#ifndef M_PI
10
#define M_PI 3.14159265358979323846
11
#endif
// M_PI
12
#endif
// __STRICT_ANSI__
13
14
namespace
Genfun
{
15
FUNCTION_OBJECT_IMP
(BivariateGaussian)
16
17
BivariateGaussian
::
BivariateGaussian
():
18
_mean0("Mean0", 0.0,-10,10),
19
_mean1("Mean1", 0.0,-10,10),
20
_sigma0("Sigma0",1.0,0, 10),
21
_sigma1("Sigma1",1.0,0, 10),
22
_corr01("Corr01", 0.0, -1.0, 1.0)
23
{}
24
25
BivariateGaussian::~BivariateGaussian
() {
26
}
27
28
BivariateGaussian::BivariateGaussian
(
const
BivariateGaussian
& right):
29
AbsFunction
(right),
30
_mean0(right._mean0),
31
_mean1(right._mean1),
32
_sigma0(right._sigma0),
33
_sigma1(right._sigma1),
34
_corr01(right._corr01)
35
{
36
}
37
38
double
BivariateGaussian::operator()
(
const
Argument
&
a
)
const
{
39
assert (
a
.dimension()==2);
40
double
x =
a
[0];
41
double
y =
a
[1];
42
43
double
x0 = _mean0.
getValue
();
44
double
y0 = _mean1.
getValue
();
45
double
dx = x-x0;
46
double
dy = y-y0;
47
48
double
sx = _sigma0.
getValue
();
49
double
sy = _sigma1.
getValue
();
50
51
double
sxs = sx*sx;
52
double
sys = sy*sy;
53
double
rho = _corr01.
getValue
();
54
double
dt = (1.0+rho)*(1.0-rho);
55
56
return
(1.0/(2*M_PI*sx*sy*sqrt(dt))) *
57
exp(-1.0/(2.0*dt)*(dx*dx/sxs+dy*dy/sys-2.0*rho*dx*dy/sx/sy));
58
}
59
60
Parameter
&
BivariateGaussian::mean0
() {
61
return
_mean0;
62
}
63
64
Parameter
&
BivariateGaussian::sigma0
() {
65
return
_sigma0;
66
}
67
68
const
Parameter
&
BivariateGaussian::mean0
()
const
{
69
return
_mean0;
70
}
71
72
const
Parameter
&
BivariateGaussian::sigma0
()
const
{
73
return
_sigma0;
74
}
75
76
Parameter
&
BivariateGaussian::mean1
() {
77
return
_mean1;
78
}
79
80
Parameter
&
BivariateGaussian::sigma1
() {
81
return
_sigma1;
82
}
83
84
const
Parameter
&
BivariateGaussian::mean1
()
const
{
85
return
_mean1;
86
}
87
88
const
Parameter
&
BivariateGaussian::sigma1
()
const
{
89
return
_sigma1;
90
}
91
92
93
94
Parameter
&
BivariateGaussian::corr01
() {
95
return
_corr01;
96
}
97
98
const
Parameter
&
BivariateGaussian::corr01
()
const
{
99
return
_corr01;
100
}
101
102
103
unsigned
int
BivariateGaussian::dimensionality
()
const
{
104
return
2;
105
}
106
107
double
BivariateGaussian::operator ()
(
double
)
const
108
{
109
std::cerr
110
<<
"Warning. bivariate Gaussian called with scalar argument"
111
<< std::endl;
112
assert(0);
113
return
0;
114
}
115
116
}
// namespace Genfun
FUNCTION_OBJECT_IMP
#define FUNCTION_OBJECT_IMP(classname)
Definition
CLHEP/GenericFunctions/AbsFunction.hh:156
BivariateGaussian.hh
defs.h
Genfun::AbsFunction
Definition
CLHEP/GenericFunctions/AbsFunction.hh:48
Genfun::Argument
Definition
CLHEP/GenericFunctions/Argument.hh:17
Genfun::BivariateGaussian
Definition
CLHEP/GenericFunctions/BivariateGaussian.hh:20
Genfun::BivariateGaussian::mean0
Parameter & mean0()
Definition
BivariateGaussian.cc:60
Genfun::BivariateGaussian::sigma0
Parameter & sigma0()
Definition
BivariateGaussian.cc:64
Genfun::BivariateGaussian::sigma1
Parameter & sigma1()
Definition
BivariateGaussian.cc:80
Genfun::BivariateGaussian::corr01
Parameter & corr01()
Definition
BivariateGaussian.cc:94
Genfun::BivariateGaussian::BivariateGaussian
BivariateGaussian()
Definition
BivariateGaussian.cc:17
Genfun::BivariateGaussian::dimensionality
virtual unsigned int dimensionality() const
Definition
BivariateGaussian.cc:103
Genfun::BivariateGaussian::~BivariateGaussian
virtual ~BivariateGaussian()
Definition
BivariateGaussian.cc:25
Genfun::BivariateGaussian::mean1
Parameter & mean1()
Definition
BivariateGaussian.cc:76
Genfun::BivariateGaussian::operator()
virtual double operator()(double argument) const
Definition
BivariateGaussian.cc:107
Genfun::Parameter
Definition
CLHEP/GenericFunctions/Parameter.hh:35
Genfun::Parameter::getValue
virtual double getValue() const
Definition
Parameter.cc:27
Genfun
Definition
CLHEP/GenericFunctions/Abs.hh:14
a
@ a
Definition
testCategories.cc:125
Generated by
1.9.8