00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef TrivariateGaussian_h
00010 #define TrivariateGaussian_h 1
00011 #include "CLHEP/GenericFunctions/AbsFunction.hh"
00012 #include "CLHEP/GenericFunctions/Parameter.hh"
00013
00014 namespace Genfun {
00015
00020 class TrivariateGaussian : public AbsFunction {
00021
00022 FUNCTION_OBJECT_DEF(TrivariateGaussian)
00023
00024 public:
00025
00026
00027 TrivariateGaussian();
00028
00029
00030 TrivariateGaussian(const TrivariateGaussian &right);
00031
00032
00033 virtual ~TrivariateGaussian();
00034
00035
00036 virtual double operator ()(double argument) const;
00037 virtual double operator ()(const Argument & a) const;
00038
00039
00040 virtual unsigned int dimensionality() const;
00041
00042
00043 Parameter & mean0();
00044 const Parameter & mean0() const;
00045 Parameter & mean1();
00046 const Parameter & mean1() const;
00047 Parameter & mean2();
00048 const Parameter & mean2() const;
00049
00050
00051 Parameter & sigma0();
00052 const Parameter & sigma0() const;
00053 Parameter & sigma1();
00054 const Parameter & sigma1() const;
00055 Parameter & sigma2();
00056 const Parameter & sigma2() const;
00057
00058
00059 Parameter & corr01();
00060 const Parameter & corr01() const;
00061 Parameter & corr02();
00062 const Parameter & corr02() const;
00063 Parameter & corr12();
00064 const Parameter & corr12() const;
00065
00066
00067 private:
00068
00069
00070 const TrivariateGaussian & operator=(const TrivariateGaussian &right);
00071
00072
00073 Parameter _mean0;
00074 Parameter _mean1;
00075 Parameter _mean2;
00076
00077
00078 Parameter _sigma0;
00079 Parameter _sigma1;
00080 Parameter _sigma2;
00081
00082
00083 Parameter _corr01;
00084 Parameter _corr02;
00085 Parameter _corr12;
00086
00087 };
00088 }
00089
00090 #endif