CLHEP VERSION 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.8 2010/06/16 18:22:01 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 AbsFunction(right),
00028 _mean(right._mean),
00029 _sigma(right._sigma)
00030 {
00031 }
00032 
00033 double Gaussian::operator() (double x) const {
00034   double s   = _sigma.getValue();
00035   double x0  = _mean.getValue();
00036   return (1.0/(sqrt(2*M_PI)*s))*
00037           exp(-(x-x0)*(x-x0)/(2.0*s*s));
00038 }
00039 
00040 Parameter & Gaussian::mean() {
00041   return _mean;
00042 }
00043 
00044 Parameter & Gaussian::sigma() {
00045   return _sigma;
00046 }
00047 
00048 const Parameter & Gaussian::mean() const {
00049   return _mean;
00050 }
00051 
00052 const Parameter & Gaussian::sigma() const {
00053   return _sigma;
00054 }
00055 
00056 
00057 
00058 Derivative Gaussian::partial(unsigned int index) const {
00059   assert(index==0);
00060   Variable x;
00061   const AbsFunction & fPrime  = (*this)*(_mean-x)/_sigma/_sigma;
00062   return Derivative(&fPrime);
00063 }
00064 
00065 } // namespace Genfun

Generated on 15 Nov 2012 for CLHEP by  doxygen 1.4.7