ROOT logo
////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// AliFemtoYlm - the class to calculate varous components of spherical        //
//  harmonics                                                                 //
//                                                                            //
// Authors: Adam Kisiel kisiel@mps.ohio-state.edu                             //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

#ifndef ALIFEMTOYLM_H
#define ALIFEMTOYLM_H
#include <cstdlib>
#include <cmath>
#include <complex>
#include <TMath.h>

class AliFemtoYlm {
 public:
  AliFemtoYlm();
  ~AliFemtoYlm();

  AliFemtoYlm(const AliFemtoYlm& aYlm);
  AliFemtoYlm& operator=(const AliFemtoYlm& aYlm);

  static double Legendre(int ell, int emm, double ctheta);
  static void   LegendreUpToYlm(int lmax, double ctheta, double *lbuf);

  static std::complex<double> Ylm(int ell,int m,double theta,double phi);
  static std::complex<double> Ylm(int ell, int m, double x, double y, double z);

  static void YlmUpToL(int lmax, double x, double y, double z, std::complex<double> *ylms);
  static void YlmUpToL(int lmax, double ctheta, double phi, std::complex<double> *ylms);

  static double ReYlm(int ell, int m, double theta, double phi);
  static double ReYlm(int ell, int m, double x, double y, double z);
  static double ImYlm(int ell, int m, double theta, double phi);
  static double ImYlm(int ell, int m, double x, double y, double z);

  static void InitializeYlms();
  
 private:
  static std::complex<double> Ceiphi(double phi);

  static double *fgPrefactors;
  static int    *fgPrefshift;
  static int    *fgPlmshift;
};

#endif
 AliFemtoYlm.h:1
 AliFemtoYlm.h:2
 AliFemtoYlm.h:3
 AliFemtoYlm.h:4
 AliFemtoYlm.h:5
 AliFemtoYlm.h:6
 AliFemtoYlm.h:7
 AliFemtoYlm.h:8
 AliFemtoYlm.h:9
 AliFemtoYlm.h:10
 AliFemtoYlm.h:11
 AliFemtoYlm.h:12
 AliFemtoYlm.h:13
 AliFemtoYlm.h:14
 AliFemtoYlm.h:15
 AliFemtoYlm.h:16
 AliFemtoYlm.h:17
 AliFemtoYlm.h:18
 AliFemtoYlm.h:19
 AliFemtoYlm.h:20
 AliFemtoYlm.h:21
 AliFemtoYlm.h:22
 AliFemtoYlm.h:23
 AliFemtoYlm.h:24
 AliFemtoYlm.h:25
 AliFemtoYlm.h:26
 AliFemtoYlm.h:27
 AliFemtoYlm.h:28
 AliFemtoYlm.h:29
 AliFemtoYlm.h:30
 AliFemtoYlm.h:31
 AliFemtoYlm.h:32
 AliFemtoYlm.h:33
 AliFemtoYlm.h:34
 AliFemtoYlm.h:35
 AliFemtoYlm.h:36
 AliFemtoYlm.h:37
 AliFemtoYlm.h:38
 AliFemtoYlm.h:39
 AliFemtoYlm.h:40
 AliFemtoYlm.h:41
 AliFemtoYlm.h:42
 AliFemtoYlm.h:43
 AliFemtoYlm.h:44
 AliFemtoYlm.h:45
 AliFemtoYlm.h:46
 AliFemtoYlm.h:47
 AliFemtoYlm.h:48
 AliFemtoYlm.h:49