CLHEP VERSION Reference Documentation
CLHEP Home Page CLHEP Documentation CLHEP Bug Reports |
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