]>
Commit | Line | Data |
---|---|---|
76ce4b5b | 1 | //////////////////////////////////////////////////////////////////////////////// |
2 | // // | |
3 | // AliFemtoYlm - the class to calculate varous components of spherical // | |
4 | // harmonics // | |
5 | // // | |
6 | // Authors: Adam Kisiel kisiel@mps.ohio-state.edu // | |
7 | // // | |
8 | //////////////////////////////////////////////////////////////////////////////// | |
9 | ||
10 | #ifndef ALIFEMTOYLM_H | |
11 | #define ALIFEMTOYLM_H | |
12 | #include <cstdlib> | |
13 | #include <cmath> | |
14 | #include <complex> | |
15 | #include <TMath.h> | |
16 | ||
17 | class AliFemtoYlm { | |
18 | public: | |
19 | AliFemtoYlm(); | |
20 | ~AliFemtoYlm(); | |
21 | ||
22 | AliFemtoYlm(const AliFemtoYlm& aYlm); | |
23 | AliFemtoYlm& operator=(const AliFemtoYlm& aYlm); | |
24 | ||
25 | static double Legendre(int ell, int emm, double ctheta); | |
26 | static void LegendreUpToYlm(int lmax, double ctheta, double *lbuf); | |
27 | ||
28 | static std::complex<double> Ylm(int ell,int m,double theta,double phi); | |
29 | static std::complex<double> Ylm(int ell, int m, double x, double y, double z); | |
30 | ||
31 | static void YlmUpToL(int lmax, double x, double y, double z, std::complex<double> *ylms); | |
32 | static void YlmUpToL(int lmax, double ctheta, double phi, std::complex<double> *ylms); | |
33 | ||
34 | static double ReYlm(int ell, int m, double theta, double phi); | |
35 | static double ReYlm(int ell, int m, double x, double y, double z); | |
36 | static double ImYlm(int ell, int m, double theta, double phi); | |
37 | static double ImYlm(int ell, int m, double x, double y, double z); | |
38 | ||
39 | static void InitializeYlms(); | |
40 | ||
41 | private: | |
42 | static std::complex<double> Ceiphi(double phi); | |
43 | ||
44 | static double *fgPrefactors; | |
45 | static int *fgPrefshift; | |
46 | static int *fgPlmshift; | |
47 | }; | |
48 | ||
49 | #endif |