]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoYlm.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemtoUser / AliFemtoYlm.h
CommitLineData
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
17class 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