CLHEP VERSION Reference Documentation
   
CLHEP Home Page     CLHEP Documentation     CLHEP Bug Reports

SphericalHarmonicCoefficientSet.hh

Go to the documentation of this file.
00001 #ifndef _SPHERICALHARMONICCOEFFICIENTSET_H_
00002 #define _SPHERICALHARMONICCOEFFICIENTSET_H_
00003 #include <complex>
00004 namespace Genfun {
00005 
00006   class SphericalHarmonicCoefficientSet {
00007     
00008   public:
00009     
00010     
00011     // Constructor:
00012     SphericalHarmonicCoefficientSet(unsigned int LMAX);
00013     
00014     // Copy Constructor:
00015     SphericalHarmonicCoefficientSet(const SphericalHarmonicCoefficientSet &);
00016     
00017     // Destructor:
00018     ~SphericalHarmonicCoefficientSet();
00019     
00020     
00021     // Get the size of the set:
00022     unsigned int getLMax() const;
00023     
00024     // Readonly access to a specific coefficient:
00025     const std::complex<double> & operator () (unsigned int l, int m) const;
00026     
00027     // Read/write access to a specific coefficient:
00028     std::complex<double> & operator () (unsigned int l, int m);
00029     
00030     // Assignement
00031     SphericalHarmonicCoefficientSet & operator= (const SphericalHarmonicCoefficientSet & );
00032 
00033     // Scale:
00034     SphericalHarmonicCoefficientSet & operator*= (const std::complex<double> & s );
00035 
00036     // Addition:
00037     SphericalHarmonicCoefficientSet & operator+= (const SphericalHarmonicCoefficientSet & );
00038 
00039     // Subtraction:
00040     SphericalHarmonicCoefficientSet & operator-= (const SphericalHarmonicCoefficientSet & );
00041     
00042     
00043   private:
00044     
00045     
00046     class Clockwork;
00047     Clockwork *c;
00048     
00049     
00050   };
00051   
00052   // Dump:
00053   std::ostream & operator<< ( std::ostream & o, const SphericalHarmonicCoefficientSet & c); 
00054   
00055   // Take the dot product:
00056   std::complex<double>  dot(const SphericalHarmonicCoefficientSet &, 
00057                             const SphericalHarmonicCoefficientSet &) ;
00058 
00059   // If an expansion in Spherical Harmonics is squared, another expansion in Spherical
00060   // harmonics is the result:
00061   SphericalHarmonicCoefficientSet squareExpansionCoefficients(const SphericalHarmonicCoefficientSet &);
00062 
00063 
00064 }
00065 
00066 #include "CLHEP/GenericFunctions/SphericalHarmonicCoefficientSet.icc"
00067 
00068 #endif
00069 
00070 

Generated on 15 Nov 2012 for CLHEP by  doxygen 1.4.7