CLHEP 2.0.4.7 Reference Documentation
   
CLHEP Home Page     CLHEP Documentation     CLHEP Bug Reports

Gaussian.cc

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 // $Id: Gaussian.cc,v 1.5.4.1.2.1 2009/11/10 20:43:12 garren Exp $
00003 #include "CLHEP/GenericFunctions/defs.h"
00004 #include "CLHEP/GenericFunctions/Gaussian.hh"
00005 #include "CLHEP/GenericFunctions/Variable.hh"
00006 #include <assert.h>
00007 #include <cmath>      // for exp()
00008 
00009 #if (defined __STRICT_ANSI__) || (defined _WIN32)
00010 #ifndef M_PI
00011 #define M_PI            3.14159265358979323846
00012 #endif // M_PI
00013 #endif // __STRICT_ANSI__
00014 
00015 namespace Genfun {
00016 FUNCTION_OBJECT_IMP(Gaussian)
00017 
00018 Gaussian::Gaussian():
00019   _mean("Mean", 0.0,-10,10),
00020   _sigma("Sigma",1.0,0, 10)
00021 {}
00022 
00023 Gaussian::~Gaussian() {
00024 }
00025 
00026 Gaussian::Gaussian(const Gaussian & right):
00027 _mean(right._mean),
00028 _sigma(right._sigma)
00029 {
00030 }
00031 
00032 double Gaussian::operator() (double x) const {
00033   double s   = _sigma.getValue();
00034   double x0  = _mean.getValue();
00035   return (1.0/(sqrt(2*M_PI)*s))*
00036           exp(-(x-x0)*(x-x0)/(2.0*s*s));
00037 }
00038 
00039 Parameter & Gaussian::mean() {
00040   return _mean;
00041 }
00042 
00043 Parameter & Gaussian::sigma() {
00044   return _sigma;
00045 }
00046 
00047 const Parameter & Gaussian::mean() const {
00048   return _mean;
00049 }
00050 
00051 const Parameter & Gaussian::sigma() const {
00052   return _sigma;
00053 }
00054 
00055 
00056 
00057 Derivative Gaussian::partial(unsigned int index) const {
00058   assert(index==0);
00059   Variable x;
00060   const AbsFunction & fPrime  = (*this)*(_mean-x)/_sigma/_sigma;
00061   return Derivative(&fPrime);
00062 }
00063 
00064 } // namespace Genfun

Generated on Thu Jul 1 22:02:30 2010 for CLHEP by  doxygen 1.4.7