28-oct-2002 NvE "Riostream.h" introduced to replace the standard C++ includes and
[u/mrichter/AliRoot.git] / RALICE / AliMath.h
1 #ifndef ALIMATH_H
2 #define ALIMATH_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 // $Id$
7
8 #include "Riostream.h"
9 #include <math.h>
10  
11 #include "TObject.h"
12  
13 class AliMath : public TObject
14 {
15  public:
16   AliMath();                              // Default constructor
17   ~AliMath();                             // Destructor
18   Double_t Gamma(Double_t z);             // Standard gamma function Gamma(z)
19   Double_t Gamma(Double_t a,Double_t x);  // Incomplete gamma function P(a,x)
20   Double_t LnGamma(Double_t z);           // Compute ln[Gamma(z)]
21   Double_t Erf(Double_t x);               // Error function erf(x)
22   Double_t Erfc(Double_t x);              // Complementary error function erfc(x)
23   Double_t Prob(Double_t chi2,Int_t ndf); // Compute Chi-squared probability
24   Double_t BesselI(Int_t n,Double_t x);   // Compute integer order modified Bessel function I_n(x)
25   Double_t BesselK(Int_t n,Double_t x);   // Compute integer order modified Bessel function K_n(x)
26  
27  protected:
28   Double_t GamSer(Double_t a,Double_t x); // Compute P(a,x) via serial representation
29   Double_t GamCf(Double_t a,Double_t x);  // Compute P(a,x) via continued fractions
30   Double_t BesselI0(Double_t x);          // Compute modified Bessel function I_0(x)
31   Double_t BesselK0(Double_t x);          // Compute modified Bessel function K_0(x)
32   Double_t BesselI1(Double_t x);          // Compute modified Bessel function I_1(x)
33   Double_t BesselK1(Double_t x);          // Compute modified Bessel function K_1(x)
34  
35  ClassDef(AliMath,1) // Various mathematical tools for physics analysis.
36  
37 };
38 #endif